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

相关文章
相关标签/搜索