web.xml执行顺序
引言:启动Java Web程序的时候,Java web会读取配置文件web.xml;读取<listener>和<context-param>两个结点,随后创建servletContext(servlet上下文),并且web中是所有部分共享这个上下文;容器将<context-param>转换为键值对,并交给servletContext,
web.xml 的加载顺序是:ServletContext-> context-param ->listener -> filter -> servlet,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。
相应配置
一、<display-name>TomcatExample</display-name>
二、上下文参数
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- classpath:spring-mvc.xml
- classpath:applicationContext.xml
- </param-value>
- </context-param>
三、Web 应用描述:给出于此相关的说明性文本
- <disciption>Tomcat Example servletsand JSPpages.</disciption>
- <span style="font-family: Arial; font-size: 14px; line-height: 26px;"><display-name></display-name>定义站台的名称</span>
四、过滤器配置:将一个名字与一个实现javaxs.servlet.Filter接口的类相关联
- <filter>
- <filter-name>encodingFilter</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>
- </filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <listener>
- <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
- </listener>
六、Servlet配置
- 基本配置
- <servlet>
- <servlet-name>snoop</servlet-name>
- <servlet-class>SnoopServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>snoop</servlet-name>
- <url-pattern>/snoop</url-pattern>
- </servlet-mapping>
- 高级配置
- <servlet>
- <servlet-name>snoop</servlet-name>
- <servlet-class>SnoopServlet</servlet-class>
- <init-param>
- <param-name>foo</param-name>
- <param-value>bar</param-value>
- </init-param>
- <run-as>
- <description>Security role foranonymousaccess</description>
- <role-name>tomcat</role-name>
- </run-as>
- </servlet>
- <servlet-mapping>
- <servlet-name>snoop</servlet-name>
- <url-pattern>/snoop</url-pattern>
- </servlet-mapping>
- 元素说明
- <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。在servlet类中通过getInitParamenter(Stringname)方法访问初始化参数
- <load-on-startup></load-on-startup>指定当Web应用启动时,装载Servlet的次序。
- 当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet.
- 当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它
- <servlet-mapping></servlet-mapping>用来定义servlet所对应的URL,包含两个子元素
- <servlet-name></servlet-name>指定servlet的名称
- <url-pattern></url-pattern>指定servlet所对应的URL
七、
会话超时配置(单位为分钟)
- <session-config>
- <session-timeout>120</session-timeout>
- </session-config>
八、指定欢迎文件页配置
- <welcome-file-list>
- <welcome-file>/index/index.action</welcome-file>
- </welcome-file-list>
九、错误界面配置
- <error-page>
- <error-code>404</error-code>
- <location>/404.jsp</location>
- </error-page>
十、
通过异常的类型配置error-page
- <error-page>
- <exception-type>java.lang.NullException</exception-type>
- <location>/error.jsp</location>
- </error-page>
十一、