web.xml 详解
来源:互联网 发布:lol国服有mac版 编辑:程序博客网 时间:2024/06/05 02:06
参考:http://blog.csdn.net/believejava/article/details/43229361
一、加载的顺序
在启动WEB项目时,容器首先会读取web.xml的配置。当这项工作无误时,项目才会被启动。
加载web.xml的顺序如下:
1、context-param:将对应的值存入ServletContext,WEB项目所有部分都将共享这个上下文。
2、listener:根据配置的class类路径来创建监听,项目启动时系统调用对应的监听事件。
3、filter:指定的类路径来实例化过滤器。
4、Servlet:指定对应的Servlet类。在第一次发起请求的时候被实例化的,而且一般不会被容器销毁,它可以服务于多个用户的请求。
二、主要标签详解
1、基本格式:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"></web-app>
2、display-name:定义了web应用的名称。
3、context-param:用作应用的Servlet上下文初始化参数。
特点: 整个项目唯一; 存在项目的整个生命周期; 任意的Servlet和jsp都可以随时随地访问;
<!-- 定义项目的webAppRootKey,用于区分同一容器下多个项目 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>webapp.root</param-value> </context-param>
4、session-config:设置容器的session参数。
<session-config> <session-timeout>30</session-timeout> </session-config>
5、listener:为web应用程序定义监听器,监听器用来监听各种事件。监听器的方式定义相同,功能取决去它们各自实现的接口。
常用接口: ServletContextListener:用于监听Web应用的启动和关闭; ServletContextAttributeListener:用于监听ServletContext范围(application)内属性的改变; ServletRequestListener:用于监听用户的请求; ServletRequestAttributeListener:用于监听ServletRequest范围(request)内属性的改变; HttpSessionListener:用于监听用户session的开始和结束; HttpSessionAttributeListener:用于监听HttpSession范围(session)内属性的改变。
<!-- Spring的log4j监听器 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
6、Filter:用于对用户请求request进行预处理,也可以对Response进行后处理,是个典型的处理链。
Filter可负责拦截多个请求或响应;一个请求或响应也可被多个Filter拦截。创建方法: 创建Filter处理类 Web.xml文件中配置FilterFilter必须实现javax.servlet.Filter接口,在该接口中定义了三个方法: void init(FilterConfig config):用于完成Filter的初始化。FilteConfig用于访问Filter的配置信息。 void destroy():用于Filter销毁前,完成某些资源的回收。
Filter:可包含filter-name、filter-class、init-param、filter-mapping等。
filter-name:用来定义过滤器的名称,该名称在整个程序中都必须唯一。filter-class:元素指定过滤器类的完全限定的名称,即Filter的实现类。init-param:为Filter配置参数。filter-mapping:用来声明Web应用中的过滤器映射,过滤器被映射到一个servlet或一个URL模式。过滤是按照部署描述符的filter-mapping出现的顺序执行的。
<!-- 字符集 过滤器 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
7、Servlet:通常称为服务器端小程序,是运行在服务器端的程序,用于处理及响应客户的请求。
配置:description:为Servlet指定一个文本描述。display-name:为Servlet提供一个简短的名字被某些工具显示。icon:为Servlet指定一个图标,在图形管理工具中表示该Servlet。servlet-name:用来定义servlet的名称,该名称在整个应用中必须是惟一的。servlet-class:用来指定servlet的完全限定的名称jsp-file:用来指定应用中JSP文件的完整路径。这个完整路径必须由/开始。load-on-startup:内容可以为空,或者是一个整数。这个值表示由Web容器载入内存的顺序。servlet-mapping:将URL模式映射到某个Servlet,即该Servlet处理的URL。
<!-- Spring view分发器 --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
8、welcome-file-list:用来指定首页文件名称,包含多个时会查找第一个,如果不存在则查找第二个。
<welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list>
- web.xml详解
- web.xml详解
- web.xml元素详解
- web.xml 详解
- Web.XML 配置详解
- web.xml 详解
- Web.XML 配置详解
- web.xml详解
- web.xml详解
- web.xml配置详解
- web.xml详解
- web.xml配置详解
- web.xml详解
- web.xml详解
- web.xml详解
- web.xml文件详解
- web.xml 详解
- web.xml详解
- 为何说张三丰是个优秀的程序员?
- 第7周项目4-队列数组
- cocoa 异常
- Android网络请求库 - Say hello to retrofit
- 智慧北京总结
- web.xml 详解
- 第7周 项目4-队列数组
- eclipse中mybatis generator插件的安装
- 第七周项目2—建立链队算法库
- 语义化的理解
- PHP Socket 编程过程详解
- thinkphp隐藏index.php/home,并允许访问其他模块
- 关于子类对象的构造函数和父类构造函数的执行顺序
- ROS:关于tf的探索(1) Writing a tf broadcaster(Python)