web.xml中各元素的加載順序及其詳解( 經常使用)

<p>1、元素加載數序</p> <p>web.xml文件的加載順序與元素的前後順序是無關的。加載數序爲:</p> <p>context-param -&gt; listener -&gt; filter –&gt; servlet</p> <p>在配置servlet時,有這個標籤&lt;load-on-startup&gt;正整數(大於等於0)&lt;/load-on-startup&gt;,表示在容器啓動的時候就加載這個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;">&lt;filter&gt; &lt;filter-name&gt;characterEncoding&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;encoding&lt;/param-name&gt; &lt;param-value&gt;UTF-8&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;forceEncoding&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;characterEncoding&lt;/filter-name&gt; &lt;servlet-name&gt;webview&lt;/servlet-name&gt; &lt;/filter-mapping&gt;</pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div>java

<p>例如上面的&lt;filter-mapping&gt;&lt;/filter-mapping&gt;必定得在&lt;filter&gt;&lt;/filter&gt;的下面,不然解析到&lt;filter-mapping&gt;&lt;/filter-mapping&gt;的時候,它所對應的 filter-name 還未定義。web 容器啓動時初始化每一個 filter 時,是按照 filter 配置節出現的順序來初始化的,當請求資源匹配多個 filter-mapping 時,filter 攔截資源是按照 filter-mapping 配置節出現的順序來依次調用 doFilter() 方法的。</p>web

<p>&#160;</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;">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;!--首先是要包含它的schema --&gt; &lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot; xmlns:web=&quot;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot; version=&quot;2.5&quot;&gt; &lt;display-name&gt;reserves&lt;/display-name&gt;&lt;!-- 定義項目的名稱 --&gt; &lt;description&gt;&lt;/description&gt;&lt;!-- 是對項目的描述 --&gt; &lt;distributable/&gt;&lt;!--是指定該項目是否可分佈式處理 --&gt;session

&lt;!--   
 	context-param用來設定web項目的環境參數,包含兩個子元素
		&lt;param-name&gt;&lt;/param-name&gt; 用來指定參數的名稱
		&lt;param-value&gt;&lt;/param-value&gt; 用來設定參數值 
--&gt;
&lt;context-param&gt;
	&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
	&lt;param-value&gt;/WEB-INF/init-context.xml&lt;/param-value&gt;
&lt;/context-param&gt;
&lt;!-- 在此設定的參數,能夠在servlet中用 getServletContext().getInitParameter(&quot;my_param&quot;) 來取得 --&gt;
&lt;context-param&gt;
	&lt;param-name&gt;m_parameter&lt;/param-name&gt;
	&lt;param-value&gt;helloworld&lt;/param-value&gt;
&lt;/context-param&gt;


&lt;!-- 
	&lt;filter&gt;&lt;/filter&gt; 是用來聲明filter的相關設定,包含如下子元素 
		&lt;filter-name&gt;&lt;/filter-name&gt; 指定filter的名字
		&lt;filter-class&gt;&lt;/filter-class&gt; 定義filter的類的名稱
		&lt;init-param&gt;&lt;/init-param&gt; 用來定義參數,它有兩個子元素:
    		&lt;param-name&gt;&lt;/param-name&gt; 指定參數的名稱
    		&lt;param-value&gt;&lt;/param-value&gt; 設定參數值
--&gt;
&lt;filter&gt;
	&lt;filter-name&gt;characterEncoding&lt;/filter-name&gt;
	&lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;encoding&lt;/param-name&gt;
		&lt;param-value&gt;UTF-8&lt;/param-value&gt;
	&lt;/init-param&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;forceEncoding&lt;/param-name&gt;
		&lt;param-value&gt;true&lt;/param-value&gt;
	&lt;/init-param&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
	&lt;filter-name&gt;characterEncoding&lt;/filter-name&gt;
	&lt;servlet-name&gt;webview&lt;/servlet-name&gt;
&lt;/filter-mapping&gt;
&lt;!-- 
	&lt;filter-mapping&gt;&lt;/filter-mapping&gt;(與&lt;filter&gt;&lt;/filter&gt;同時使用) 用來定義filter所對應的URL,它有兩個子元素:
	&lt;filter-name&gt;&lt;/filter-name&gt; 指定filter的名字
	&lt;url-pattern&gt;&lt;/url-pattern&gt; 指定filter所對應的URL
	&lt;servlet-name&gt;&lt;/servlet-name&gt; 定義servlet的名稱
	全部filter-mapping元素中必須提供url-pattern或servlet-name。
	但不能對單個filter-mapping元素提供多個url-pattern元素項。若是但願過濾器適用於多個模式,可重複整個filter-mapping元素。
	不能給單個filter-mapping元素提供多個servlet-name元素項。若是但願過濾器適合於多個servlet名,可重複這個filter-mapping元素。
 --&gt;
 &lt;filter&gt;
	&lt;filter-name&gt;struts2&lt;/filter-name&gt;
	&lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
	&lt;filter-name&gt;struts2&lt;/filter-name&gt;
	&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;


&lt;!-- 
	&lt;listener&gt;&lt;/listener&gt; 用來設定Listener接口,它的主要子元素爲
    &lt;listener-class&gt;&lt;/listener-class&gt; 定義Listener的類名稱
 --&gt;
&lt;listener&gt;
	&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
&lt;/listener&gt;


&lt;!--
	&lt;servlet&gt;&lt;/servlet&gt; 用來聲明一個servlet的數據,主要有如下子元素:
		&lt;servlet-name&gt;&lt;/servlet-name&gt; 指定servlet的名稱
		&lt;servlet-class&gt;&lt;/servlet-class&gt; 指定servlet的類名稱
		&lt;jsp-file&gt;&lt;/jsp-file&gt; 指定web站臺中的某個JSP網頁的完整路徑
		&lt;init-param&gt;&lt;/init-param&gt; 用來定義參數,和前面的&lt;init-param&gt;差很少
		&lt;load-on-startup&gt;0&lt;/load-on-startup&gt; 設置啓動級別
--&gt;
&lt;servlet&gt;
	&lt;servlet-name&gt;webview&lt;/servlet-name&gt;
	&lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
		&lt;param-value&gt;
            /WEB-INF/init-servlet.xml
        &lt;/param-value&gt;
	&lt;/init-param&gt;
	&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;
&lt;/servlet&gt;
&lt;!-- 
	與&lt;servlet&gt;&lt;/servlet&gt;一塊兒使用的是&lt;servlet-mapping&gt;&lt;/servlet-mapping&gt; 用來定義servlet所對應的URL,包含兩個子元素:
    &lt;servlet-name&gt;&lt;/servlet-name&gt; 指定servlet的名稱
    &lt;url-pattern&gt;&lt;/url-pattern&gt; 指定servlet所對應的URL 
--&gt;
&lt;servlet-mapping&gt;
	&lt;servlet-name&gt;webview&lt;/servlet-name&gt;
	&lt;url-pattern&gt;*.do&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;


&lt;!--  
	&lt;session-config&gt;&lt;/session-config&gt; 用來定義session參數,包含一個子元素:
		&lt;session-timeout&gt;&lt;/session-timeout&gt; 用來定義這個web站臺全部session的有效期限,單位爲分鐘
--&gt;
&lt;session-config&gt;
	&lt;session-timeout&gt;30&lt;/session-timeout&gt;
&lt;/session-config&gt;


&lt;!--  
	&lt;welcome-file-list&gt;&lt;/welcom-file-list&gt; 用來定義首頁的列單,包含一個子元素:
		&lt;welcome-file&gt;&lt;/welcome-file&gt; 指定首頁的文件名稱
--&gt;
&lt;welcome-file-list&gt;
	&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;


&lt;!-- 
	&lt;error-page&gt;&lt;/error-page&gt; 用來處理錯誤代碼或異常的頁面,有三個子元素:
	&lt;error-code&gt;&lt;/error-code&gt; 指定錯誤代碼
	&lt;exception-type&gt;&lt;/exception-type&gt; 指定一個JAVA異常類型
	&lt;location&gt;&lt;/location&gt; 指定在web站臺內的相關資源路徑
--&gt;
&lt;error-page&gt;
	&lt;error-code&gt;404&lt;/error-code&gt;
	&lt;location&gt;/error.jsp&lt;/location&gt;
&lt;/error-page&gt;
&lt;error-page&gt;
	&lt;exception-type&gt;java.lang.Exception&lt;/exception-type&gt;
	&lt;location&gt;/exception.jsp&lt;/location&gt;
&lt;/error-page&gt;

</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

相關文章
相關標籤/搜索