一,配置项清单
- context-param
- listener
- filter
- servlet
- session-config
- error-page
二,配置项详解
1,context-param
样例:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-config.xml</param-value>
</context-param>
说明: 在web应用容器(Tomcat)中,web应用启动时,
处理顺序:加载web.xml文件-->创建 ServletContext-->解析context-param为 key-value方式,放入ServletContext中
供后续listener、filter、servlet等使用(通过 value = getServletContext().getInitParameter("key") 方式获取 )
2,listener
样例:
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
说明:IntrospectorCleanupListener 防止内存泄露使用 ContextLoaderListener spring-web环境下,spring容器创建工作在此类中完成,同时负责springMVC核心servlet父上下文创建;
3,filter
<filter>
<filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
<servlet-name>mvcServlet</servlet-name>
</filter-mapping>
说明:主要负责 request,response的 servlet处理前,处理后的 增强过滤处理;
过滤条件,根据filter-mapping定义
可以按照 servlet-name:指定servletName的方式过滤,此时等价于使用servlet对应的url-pattern
url-pattern:指定url匹配方式过滤
dispatcher:可以有多个,取值有4个REQUEST,FORWARD,INCLUDE和ERROR,表示4类从客户端过滤的request请求
如:request-从客户端直接过来的request, forward-从客户端forward过来的request, include-从客户端include过来的request
error-通过<error-page>从客户端过来的request
4, servlet
样例:
<servlet>
<servlet-name>mvcServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc/config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvcServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
说明:主要负责处理匹配的request;
5,session-config
样例:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
说明:单位分钟
6,error-page
样例:
<error-page>
<error-code>404</error-code>
<location>/error/404.html</location>
</error-page>
说明:根据错误码<error-code>,或者错误异常类型<exception-type> 跳转到指定错误页