<p>1、元素加载数序</p> <p>web.xml文件的加载顺序与元素的前后顺序是无关的。加载数序为:</p> <p>context-param -> listener -> filter –> servlet</p> <p>在配置servlet时,有这个标签<load-on-startup>正整数(大于等于0)</load-on-startup>,表示在容器启动的时候就加载这个servlet,而且正整数的值越小,servlet的启动优先级就越高。</p> <p>对于某类配置,与它们出现的顺序是有关系的。好比filter.</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:a76cc6a0-cf3e-4cd3-9e38-088dcdaabd1e" class="wlWriterEditableSmartContent"><pre class="brush: xml; gutter: true; first-line: 1; tab-size: 4; toolbar: true; width: 739px; height: 264px;" style=" width: 739px; height: 264px;overflow: auto;"><filter> <filter-name>characterEncoding</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>characterEncoding</filter-name> <servlet-name>webview</servlet-name> </filter-mapping></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div>java
<p>例如上面的<filter-mapping></filter-mapping>必定得在<filter></filter>的下面,不然解析到<filter-mapping></filter-mapping>的时候,它所对应的 filter-name 还未定义。web 容器启动时初始化每一个 filter 时,是按照 filter 配置节出现的顺序来初始化的,当请求资源匹配多个 filter-mapping 时,filter 拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用 doFilter() 方法的。</p>web
<p> </p>spring
<p>2、文件详解(经常使用)</p>apache
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:100fd93a-5340-4e12-8193-37248df2ff63" class="wlWriterEditableSmartContent"><pre class="brush: xml; gutter: true; first-line: 1; tab-size: 4; toolbar: true; width: 1014px; height: 619px;" style=" width: 1014px; height: 619px;overflow: auto;"><?xml version="1.0" encoding="UTF-8"?> <!--首先是要包含它的schema --> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>reserves</display-name><!-- 定义项目的名称 --> <description></description><!-- 是对项目的描述 --> <distributable/><!--是指定该项目是否可分布式处理 -->session
<!-- context-param用来设定web项目的环境参数,包含两个子元素 <param-name></param-name> 用来指定参数的名称 <param-value></param-value> 用来设定参数值 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/init-context.xml</param-value> </context-param> <!-- 在此设定的参数,能够在servlet中用 getServletContext().getInitParameter("my_param") 来取得 --> <context-param> <param-name>m_parameter</param-name> <param-value>helloworld</param-value> </context-param> <!-- <filter></filter> 是用来声明filter的相关设定,包含如下子元素 <filter-name></filter-name> 指定filter的名字 <filter-class></filter-class> 定义filter的类的名称 <init-param></init-param> 用来定义参数,它有两个子元素: <param-name></param-name> 指定参数的名称 <param-value></param-value> 设定参数值 --> <filter> <filter-name>characterEncoding</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>characterEncoding</filter-name> <servlet-name>webview</servlet-name> </filter-mapping> <!-- <filter-mapping></filter-mapping>(与<filter></filter>同时使用) 用来定义filter所对应的URL,它有两个子元素: <filter-name></filter-name> 指定filter的名字 <url-pattern></url-pattern> 指定filter所对应的URL <servlet-name></servlet-name> 定义servlet的名称 全部filter-mapping元素中必须提供url-pattern或servlet-name。 但不能对单个filter-mapping元素提供多个url-pattern元素项。若是但愿过滤器适用于多个模式,可重复整个filter-mapping元素。 不能给单个filter-mapping元素提供多个servlet-name元素项。若是但愿过滤器适合于多个servlet名,可重复这个filter-mapping元素。 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- <listener></listener> 用来设定Listener接口,它的主要子元素为 <listener-class></listener-class> 定义Listener的类名称 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- <servlet></servlet> 用来声明一个servlet的数据,主要有如下子元素: <servlet-name></servlet-name> 指定servlet的名称 <servlet-class></servlet-class> 指定servlet的类名称 <jsp-file></jsp-file> 指定web站台中的某个JSP网页的完整路径 <init-param></init-param> 用来定义参数,和前面的<init-param>差很少 <load-on-startup>0</load-on-startup> 设置启动级别 --> <servlet> <servlet-name>webview</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/init-servlet.xml </param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <!-- 与<servlet></servlet>一块儿使用的是<servlet-mapping></servlet-mapping> 用来定义servlet所对应的URL,包含两个子元素: <servlet-name></servlet-name> 指定servlet的名称 <url-pattern></url-pattern> 指定servlet所对应的URL --> <servlet-mapping> <servlet-name>webview</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- <session-config></session-config> 用来定义session参数,包含一个子元素: <session-timeout></session-timeout> 用来定义这个web站台全部session的有效期限,单位为分钟 --> <session-config> <session-timeout>30</session-timeout> </session-config> <!-- <welcome-file-list></welcom-file-list> 用来定义首页的列单,包含一个子元素: <welcome-file></welcome-file> 指定首页的文件名称 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- <error-page></error-page> 用来处理错误代码或异常的页面,有三个子元素: <error-code></error-code> 指定错误代码 <exception-type></exception-type> 指定一个JAVA异常类型 <location></location> 指定在web站台内的相关资源路径 --> <error-page> <error-code>404</error-code> <location>/error.jsp</location> </error-page> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/exception.jsp</location> </error-page>
</web-app></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div>app
<p>本文参考:<a href="http://blog.csdn.net/zdwzzu2006/article/details/7407839">http://blog.csdn.net/zdwzzu2006/article/details/7407839</a></p>jsp