springMvc整合中web.xml常用总结及问题
2017-03-16 00:00
489 查看
1.亲测可用的一个模板
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>web-mybatis-01-demo</display-name>
<!--编码filter配置[spring提供的]开始-->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<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>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--编码filter配置[spring提供的]结束-->
<!--spring配置文件开始-->
<!--spring监听器开始-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--spring监听器结束-->
<!--springMvc配置开始-->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--springMvc配置结束-->
<!--spring配置文件结束-->
</web-app>
2.常见配置说明
原文出自:http://blog.csdn.net/outsanding/article/details/53571711 感谢博主
2.1XML一些小知识
所有部署描述符文件的顶层(根)元素为web-app。请注意,XML元素不像HTML,他们是大小写敏感的。因此,web-App和WEB-APP都是不合法的,web-app必须用小写。XML元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。举个例子,servlet元素必须出现在所有servlet-mapping元素之前。请注意,所有这些元素都是可选的。因此,可以省略掉某一元素,但不能把它放于不正确的位置。
2.2 解决POST乱码问题的过滤器
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
7fe0
<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>
2.3 加载spring容器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:**/applicationContext.xml</param-value>
</context-param>
2.3.1、classpath:到指定的class路径中查找文件。
2.3.2、classpath*:既包含class路径,也包括jar文件中class路径。
2.3.3、**/ :根目录。
2.3.4、* : 一般指文件。
2.3.5、还可以这样子写:<param-value>classpath*:**/applicationContext-*.xml</param-value>,其中*可以代替很多,比如shiro、quartz、data、jms等。
2.3.6、<param-value>classpath*:**/applicationContext.xml</param-value>,如果还有其它要与spring集成的组件,则可以在applicationContext.xml中使用<importresource="applicationContext-shiro.xml"/>
2.4 配置前端控制器(SpringMVC)
<servlet>
<servlet-name>manager</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>manager</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
2.4.1、一般情况下,在<servlet>中会使用<init-param>这个标签。
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/manager-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
2.4.2、这里并没有使用<init-param>,为什么可以不使用呢?(因为可以使用<listener>这个标签)
2.5 对<listener>的理解
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2.5.1、只要在web.xml中配置<listener>,那么放在WEB-INF目录下的配置文件可以在启动web时,自动装配配置信息。
2.5.2、一般情况下,都会使用<context-param>这个标签,因为我们有多个组件与spring集成,所以得分类管理。
2.5.3、假如只有一个前端控制器的配置文件,命名为manager-servlet.xml并直接放在WEB-INF目录下,在web.xml中配置了<listener>这个标签,则无需在配置<init-param>这个标签。
2.6 session的配置
<session-config>
<session-timeout>20</session-timeout>
</session-config>
2.6.1、对整个web的session进行设置。单位是分钟。如果是零或者负数则会话将不会超时。
2.6.2、setMaxInactiveInterval是设置当前会话的失效时间。单位是秒。如果是零或者负数则会话将不会超时。
2.7 <jsp-config>标签
<jsp-config>
<taglib>
<taglib-uri>http://shiro.apache.org/tags</taglib-uri>
<taglib-location>/WEB-INF/shiro.tld</taglib-location>
</taglib>
</jsp-config>
3.其他说明
3.1 spring listener配置参数问题
如果不对这个<context-param></context-param>标签进行配置spring会默认查找
/WEB-INF/applicationContext.xml 此目录下的此文件,如果不存在则抛
java.io.FileNotFoundException异常,并且<context-param>标签中的<param-name>标签的值必须是
contextConfigLocation[原因请查阅源码]<param-value>可以使用classpath方式来进行查找
3.2 springMvc DispatcherServlet配置参数问题
如果不对这个<servlet></servlet>标签添加
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>子标签进行配置spring会默认查找
/WEB-INF/<servlet-name>标签值- servlet.xml 此目录下的此文件,如果不存在则抛
java.io.FileNotFoundException异常并且<init-param>标签中的<param-name>标签的值必须是
contextConfigLocation[原因请查阅源码]<param-value>可以使用classpath方式来进行查找
简单集成项目地址:https://git.oschina.net/manonggeyuqi/web-mybatis-01-demo
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>web-mybatis-01-demo</display-name>
<!--编码filter配置[spring提供的]开始-->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<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>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--编码filter配置[spring提供的]结束-->
<!--spring配置文件开始-->
<!--spring监听器开始-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--spring监听器结束-->
<!--springMvc配置开始-->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--springMvc配置结束-->
<!--spring配置文件结束-->
</web-app>
2.常见配置说明
原文出自:http://blog.csdn.net/outsanding/article/details/53571711 感谢博主
2.1XML一些小知识
所有部署描述符文件的顶层(根)元素为web-app。请注意,XML元素不像HTML,他们是大小写敏感的。因此,web-App和WEB-APP都是不合法的,web-app必须用小写。XML元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。举个例子,servlet元素必须出现在所有servlet-mapping元素之前。请注意,所有这些元素都是可选的。因此,可以省略掉某一元素,但不能把它放于不正确的位置。
2.2 解决POST乱码问题的过滤器
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
7fe0
<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>
2.3 加载spring容器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:**/applicationContext.xml</param-value>
</context-param>
2.3.1、classpath:到指定的class路径中查找文件。
2.3.2、classpath*:既包含class路径,也包括jar文件中class路径。
2.3.3、**/ :根目录。
2.3.4、* : 一般指文件。
2.3.5、还可以这样子写:<param-value>classpath*:**/applicationContext-*.xml</param-value>,其中*可以代替很多,比如shiro、quartz、data、jms等。
2.3.6、<param-value>classpath*:**/applicationContext.xml</param-value>,如果还有其它要与spring集成的组件,则可以在applicationContext.xml中使用<importresource="applicationContext-shiro.xml"/>
2.4 配置前端控制器(SpringMVC)
<servlet>
<servlet-name>manager</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>manager</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
2.4.1、一般情况下,在<servlet>中会使用<init-param>这个标签。
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/manager-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
2.4.2、这里并没有使用<init-param>,为什么可以不使用呢?(因为可以使用<listener>这个标签)
2.5 对<listener>的理解
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2.5.1、只要在web.xml中配置<listener>,那么放在WEB-INF目录下的配置文件可以在启动web时,自动装配配置信息。
2.5.2、一般情况下,都会使用<context-param>这个标签,因为我们有多个组件与spring集成,所以得分类管理。
2.5.3、假如只有一个前端控制器的配置文件,命名为manager-servlet.xml并直接放在WEB-INF目录下,在web.xml中配置了<listener>这个标签,则无需在配置<init-param>这个标签。
2.6 session的配置
<session-config>
<session-timeout>20</session-timeout>
</session-config>
2.6.1、对整个web的session进行设置。单位是分钟。如果是零或者负数则会话将不会超时。
2.6.2、setMaxInactiveInterval是设置当前会话的失效时间。单位是秒。如果是零或者负数则会话将不会超时。
2.7 <jsp-config>标签
<jsp-config>
<taglib>
<taglib-uri>http://shiro.apache.org/tags</taglib-uri>
<taglib-location>/WEB-INF/shiro.tld</taglib-location>
</taglib>
</jsp-config>
3.其他说明
3.1 spring listener配置参数问题
如果不对这个<context-param></context-param>标签进行配置spring会默认查找
/WEB-INF/applicationContext.xml 此目录下的此文件,如果不存在则抛
java.io.FileNotFoundException异常,并且<context-param>标签中的<param-name>标签的值必须是
contextConfigLocation[原因请查阅源码]<param-value>可以使用classpath方式来进行查找
3.2 springMvc DispatcherServlet配置参数问题
如果不对这个<servlet></servlet>标签添加
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>子标签进行配置spring会默认查找
/WEB-INF/<servlet-name>标签值- servlet.xml 此目录下的此文件,如果不存在则抛
java.io.FileNotFoundException异常并且<init-param>标签中的<param-name>标签的值必须是
contextConfigLocation[原因请查阅源码]<param-value>可以使用classpath方式来进行查找
简单集成项目地址:https://git.oschina.net/manonggeyuqi/web-mybatis-01-demo
相关文章推荐
- Java Web开发中Sping的总结整合dao.xml,service.xml,action.xml
- 配置文件web.xml中整合SpringMVC
- web.xml 整合 SpringMVC
- SpringMVC配置web.xml文件详解(列举常用的配置)
- springmvc配置文件web.xml详解各方总结。
- SpringMVC项目中web.xml中的节点加载顺序问题
- springmvc配置文件web.xml详解各方总结。
- SSM(spring-springmvc-mybatis)整合开发xml配置文件内容springmvc-config.xml,application.xml,web.xml
- springmvc 和 spring 整合的 web.xml 配置(包括监听器,乱码解决等)
- SpringMVC配置web.xml文件详解(列举常用的配置)
- springmvc+mybatis整合问题总结
- springMVC学习笔记,SpringMV与web项目的整合(xml方式)
- 开发AP通过snmp获取CPE配置信息并保存到xml显示到web,遇到的问题总结
- SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】
- 项目总结SpringMVC+hibernate框架 web.xml 分析(2)
- SSH三大框架整合问题--Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
- springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置
- springmvc web.xml 配置默认的controller访问问题
- 解决问题:在使用springmvc的web.xml配置乱码拦截器之后接收的get或者post请求中文还是乱码
- springmvc-web.xml无法映射的问题解惑