(5)配置web.xml

来源:互联网 发布:程序员三宝github 编辑:程序博客网 时间:2024/06/05 11:22

web.xml加载顺序:

  • 不同配置之间的加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。
    加载顺序:context-param -> listener -> filter -> servlet
  • 同种配置加顺序按mapping节点配置的先后顺序:
    eg:配置多个拦截器filter时, filter-mapping配置节出现的顺序来依次调用 doFilter() 方法的。servlet类似.

web.xml配置例子

<?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" 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>yves</display-name>    <!-- 全局配置 : 也就是配置在上下文中servletContext,也就整个工程application,在Servlet中用ServletContext()的对象获取initParameter -->    <context-param><!-- 配置文件上传的路径 -->        <description>Location to store uploaded file</description>        <param-name>file-upload</param-name>        <param-value>            D:\git\yves\WebRoot\files\uploadFile\         </param-value>    </context-param>    <context-param> <!-- 测试servletContextTestServlet获得ServletContext -->        <param-name>servletContextTestParameter</param-name>        <param-value>Test success!</param-value>    </context-param>    <context-param>    <!-- 测试JSP object9中config.getInitParameter和servletContext.getInitParameter -->        <param-name>initPrarameter</param-name>        <param-value>initPrarameter value!</param-value>    </context-param>    <!-- 配置过滤器: 配置多个filter时先配置先dofilter,顺序是根据filter-mapping的配置顺序 -->    <filter>        <filter-name>FilterAll</filter-name>        <filter-class>cn.com.yves.filter.FilterAll</filter-class>        <init-param><!-- 配置该filter的初始化参数 -->            <param-name>filterParameter</param-name>            <param-value>this filter's value</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>FilterAll</filter-name>        <url-pattern>/*</url-pattern>        <dispatcher>REQUEST</dispatcher><!-- 配置哪些请求要进过滤器;不配置dispatcher标签默认是request请求进过滤. -->        <dispatcher>FORWARD</dispatcher><!-- 这个例子里面配了两个dispatcher,也就是这两种请求会进过滤器:浏览器的的请求和通过request的forward转发的请求会进过滤器 -->    </filter-mapping>    <filter>        <filter-name>FilterAll2</filter-name>        <filter-class>cn.com.yves.filter.FilterAll2</filter-class>        <init-param><!-- 配置该filter的初始化参数 -->            <param-name>requestEncoding</param-name>            <param-value>UTF-8</param-value>        </init-param>        <init-param><!-- 配置该filter的初始化参数 -->            <param-name>responseEncoding</param-name>            <param-value>text/html;charset=UTF-8</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>FilterAll2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <!-- 配置标签库: (如果项目中使用到标签库就要配置,也可以配置所有的tld,taglib-location为tld文件所在的本地位置): -->    <jsp-config>        <taglib>            <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>            <taglib-location>/WEB-INF/tlds/fmt.tld</taglib-location>        </taglib>        <taglib>            <taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>            <taglib-location>/WEB-INF/tlds/fmt-rt.tld</taglib-location>        </taglib>        <taglib>            <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>            <taglib-location>/WEB-INF/tlds/c.tld</taglib-location>        </taglib>        <taglib>            <taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>            <taglib-location>/WEB-INF/tlds/c-rt.tld</taglib-location>        </taglib>        <taglib>            <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>            <taglib-location>/WEB-INF/tlds/sql.tld</taglib-location>        </taglib>        <taglib>            <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>            <taglib-location>/WEB-INF/tlds/sql-rt.tld</taglib-location>        </taglib>        <taglib>            <taglib-uri>http://java.sun.com/jstl/x</taglib-uri>            <taglib-location>/WEB-INF/tlds/x.tld</taglib-location>        </taglib>        <taglib>            <taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>            <taglib-location>/WEB-INF/tlds/x-rt.tld</taglib-location>        </taglib>    </jsp-config>    <!-- 配置Servlet: 在spring mvc 中可以只配置一个springmvc的Servlet,其他的交给spring mvc 来处理 -->    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>LoginServlet</servlet-name>        <servlet-class>cn.com.yves.servlet.LoginServlet</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>ReadXML</servlet-name>        <servlet-class>cn.com.yves.servlet.ReadXML</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>ReadJson</servlet-name>        <servlet-class>cn.com.yves.servlet.ReadJson</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>ShowUserServlet</servlet-name>        <servlet-class>cn.com.yves.servlet.ShowUserServlet</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>FormServlet</servlet-name>        <servlet-class>cn.com.yves.servlet.FormServlet</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>Forward</servlet-name>        <servlet-class>cn.com.yves.servlet.Forward</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>ForWard2</servlet-name>        <servlet-class>cn.com.yves.servlet.ForWard2</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UploadingFile</servlet-name>        <servlet-class>cn.com.yves.servlet.UploadingFile</servlet-class>    </servlet>    <servlet><!-- 文件下载的Servlet -->        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>DownloadFile</servlet-name>        <servlet-class>cn.com.yves.servlet.DownloadFile</servlet-class>        <init-param><!-- 当Servlet加载的时候init-param用来初始化参数 -->            <param-name>contentType</param-name>            <param-value>application/x-msdownload</param-value>        </init-param>        <init-param>            <param-name>downPath</param-name>            <param-value>D:\git\yves\WebRoot\files\DownloadFile\</param-value>        </init-param>        <init-param>            <param-name>encoding</param-name>            <param-value>UTF-8</param-value>        </init-param>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>PageRedirect</servlet-name>        <servlet-class>cn.com.yves.servlet.PageRedirect</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>HttpServletResponseMethodTest</servlet-name>        <servlet-class>cn.com.yves.servlet.HttpServletResponseMethodTest</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>HttpServletRequestMethodTest</servlet-name>        <servlet-class>cn.com.yves.servlet.HttpServletRequestMethodTest</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>SessionTrack</servlet-name>        <servlet-class>cn.com.yves.servlet.SessionTrack</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>SessionTrack2</servlet-name>        <servlet-class>cn.com.yves.servlet.SessionTrack2</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>CookieConfig</servlet-name>        <servlet-class>cn.com.yves.servlet.CookieConfig</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>AutoRefresh</servlet-name>        <servlet-class>cn.com.yves.servlet.AutoRefresh</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserDelete</servlet-name>        <servlet-class>cn.com.yves.servlet.user.UserDelete</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserAdd</servlet-name>        <servlet-class>cn.com.yves.servlet.user.UserAdd</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserQuery</servlet-name>        <servlet-class>cn.com.yves.servlet.user.UserQuery</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserUpdate</servlet-name>        <servlet-class>cn.com.yves.servlet.user.UserUpdate</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserLogin</servlet-name>        <servlet-class>cn.com.yves.servlet.user.UserLogin</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserExit</servlet-name>        <servlet-class>cn.com.yves.servlet.user.UserExit</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserList</servlet-name>        <servlet-class>cn.com.yves.servlet.user.UserList</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>ServletContextTest</servlet-name>        <servlet-class>cn.com.yves.servlet.ServletContextTest</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserLoginValidate</servlet-name>        <servlet-class>cn.com.yves.servlet.user2.UserLoginValidate</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserAdd2</servlet-name>        <servlet-class>cn.com.yves.servlet.user2.UserAdd2</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserUpdate2</servlet-name>        <servlet-class>cn.com.yves.servlet.user2.UserUpdate2</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserList2</servlet-name>        <servlet-class>cn.com.yves.servlet.user2.UserList2</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserDelete2</servlet-name>        <servlet-class>cn.com.yves.servlet.user2.UserDelete2</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserExit2</servlet-name>        <servlet-class>cn.com.yves.servlet.user2.UserExit2</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserQuery2</servlet-name>        <servlet-class>cn.com.yves.servlet.user2.UserQuery2</servlet-class>    </servlet>    <servlet>        <description>This is the description of my J2EE component</description>        <display-name>This is the display name of my J2EE component</display-name>        <servlet-name>UserControl</servlet-name>        <servlet-class>cn.com.yves.servlet.user4.UserControl</servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>LoginServlet</servlet-name>        <url-pattern>/loginServlet</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>ReadXML</servlet-name>        <url-pattern>/readXML</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>ReadJson</servlet-name>        <url-pattern>/readJson</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>ShowUserServlet</servlet-name>        <url-pattern>/showUserServlet</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>FormServlet</servlet-name>        <url-pattern>/formServlet</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>Forward</servlet-name>        <url-pattern>/forward</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>ForWard2</servlet-name>        <url-pattern>/forWard2</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UploadingFile</servlet-name>        <url-pattern>/uploadingFile</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>DownloadFile</servlet-name>        <url-pattern>/downloadFile</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>PageRedirect</servlet-name>        <url-pattern>/pageRedirect</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>HttpServletResponseMethodTest</servlet-name>        <url-pattern>/httpServletResponseMethodTest</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>HttpServletRequestMethodTest</servlet-name>        <url-pattern>/httpServletRequestMethodTest</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>SessionTrack</servlet-name>        <url-pattern>/sessionTrack</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>SessionTrack2</servlet-name>        <url-pattern>/sessionTrack2</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>CookieConfig</servlet-name>        <url-pattern>/cookieConfig</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>AutoRefresh</servlet-name>        <url-pattern>/autoRefresh</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserDelete</servlet-name>        <url-pattern>/userDelete</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserAdd</servlet-name>        <url-pattern>/userAdd</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserQuery</servlet-name>        <url-pattern>/userQuery</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserUpdate</servlet-name>        <url-pattern>/userUpdate</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserLogin</servlet-name>        <url-pattern>/userLogin</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserExit</servlet-name>        <url-pattern>/userExit</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserList</servlet-name>        <url-pattern>/userList</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>ServletContextTest</servlet-name>        <url-pattern>/servletContextTest</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserLoginValidate</servlet-name>        <url-pattern>/userLoginValidate</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserAdd2</servlet-name>        <url-pattern>/userAdd2</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserUpdate2</servlet-name>        <url-pattern>/userUpdate2</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserList2</servlet-name>        <url-pattern>/userList2</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserDelete2</servlet-name>        <url-pattern>/userDelete2</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserExit2</servlet-name>        <url-pattern>/userExit2</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserQuery2</servlet-name>        <url-pattern>/userQuery2</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>UserControl</servlet-name>        <url-pattern>/userControl</url-pattern>    </servlet-mapping>    <!-- 配置监听器: HttpSessionBindingListener该类不需要在web.xml中配置 -->    <listener><!-- 配置监听类,然后虚拟机通过反射的方式 回调该类的方法 -->        <listener-class>cn.com.yves.listen.session.SessionListen</listener-class>    </listener>    <listener>        <listener-class>cn.com.yves.listen.session.SessionAttributeListen</listener-class>    </listener>    <listener>        <listener-class>cn.com.yves.listen.session.SessionBindingListener</listener-class>    </listener>    <listener>        <listener-class>cn.com.yves.listen.session.SessionActivationListener</listener-class>    </listener>    <!-- 配置session失效时间: 单位是分钟 -->    <session-config>        <session-timeout>30</session-timeout>    </session-config>    <!-- 配置欢迎页面 -->    <welcome-file-list> <!-- 从list里面一个一个找,找到就跳过下面的welcome-file ,不一定是页面,业可以是action;list里面的绝对路径和相对路径都是从webRoot起 -->        <welcome-file>/welcome.jsp</welcome-file>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list>    <!-- 配置errorPage 注意: 斜杠'/' 一定要,不要回报错 -->    <error-page><!-- 只要访问服务器时候出现属于Throwable的异常就会显示error.jsp -->        <exception-type>java.lang.Throwable</exception-type>        <location>/pages/errorPage/error.jsp</location>    </error-page>    <error-page>        <error-code>404</error-code><!-- 只要访问服务器不存在的请求,状态也就为404:就会显示404.jsp -->        <location>/pages/errorPage/404.jsp</location>    </error-page>    <error-page>        <error-code>500</error-code><!-- 只要访问服务器返回的状态码为500 就会显示500.jsp -->        <location>/pages/errorPage/500.jsp</location>    </error-page>    <!-- 配置mime-mapping : 浏览器会根据配置的类型自动调用相应的程序打开 ,比如用word打开doc文件 -->    <mime-mapping>        <extension>doc</extension>        <mime-type>application/vnd.ms-word</mime-type>    </mime-mapping>    <mime-mapping>        <extension>gif</extension>        <mime-type>image/gif</mime-type>    </mime-mapping>    <mime-mapping>        <extension>htm</extension>        <mime-type>text/html</mime-type>    </mime-mapping>    <mime-mapping>        <extension>html</extension>        <mime-type>text/html</mime-type>    </mime-mapping>    <mime-mapping>        <extension>jnlp</extension>        <mime-type>application/x-java-jnlp-file</mime-type>    </mime-mapping>    <mime-mapping>        <extension>jpeg</extension>        <mime-type>image/jpeg</mime-type>    </mime-mapping>    <mime-mapping>        <extension>jpg</extension>        <mime-type>image/jpeg</mime-type>    </mime-mapping>    <mime-mapping>        <extension>js</extension>        <mime-type>application/x-javascript</mime-type>    </mime-mapping>    <mime-mapping>        <extension>pdf</extension>        <mime-type>application/pdf</mime-type>    </mime-mapping>    <mime-mapping>        <extension>png</extension>        <mime-type>image/png</mime-type>    </mime-mapping>    <mime-mapping>        <extension>rar</extension>        <mime-type>application/x-rar-compressed</mime-type>    </mime-mapping>    <mime-mapping>        <extension>txt</extension>        <mime-type>text/plain</mime-type>    </mime-mapping>    <mime-mapping>        <extension>xls</extension>        <mime-type>application/vnd.ms-excel</mime-type>    </mime-mapping>    <mime-mapping>        <extension>xml</extension>        <mime-type>text/xml</mime-type>    </mime-mapping>    <mime-mapping>        <extension>xul</extension>        <mime-type>application/vnd.mozilla.xul-xml</mime-type>    </mime-mapping>    <mime-mapping>        <extension>zhtml</extension>        <mime-type>text/html</mime-type>    </mime-mapping>    <mime-mapping>        <extension>zip</extension>        <mime-type>application/x-zip</mime-type>    </mime-mapping>    <mime-mapping>        <extension>zul</extension>        <mime-type>text/html</mime-type>    </mime-mapping></web-app>
1 0