<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