写了一年多项目了,今天来整理一下web.xml中的一些配置
首先要了解wel.xml包含了哪里东西,简单的项目来说 就是spring的配置,springMvc(servlet)的一些配置,现在很多的项目都是ssm开发,所以servlet一般都是springMvc框架,然后就是一些listener监听器,拦截器filter,
还有一些其他的包括欢迎页面,session时间,error-page页面等
首先我们先要知道web.xml里面的一些加载顺序
1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取
2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
3、容器将
4、容器创建
加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:ServletContext -> listener -> filter -> servlet
首先要讲一下load-on-startup这个标签
Load-on-startup 元素在web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。如果它的值是一个负整数或是这个元素不存在,那么容器会在该servlet被调用的时候,加载这个servlet 。如果值是正整数或零,容器在配置的时候就加载并初始化这个servlet,容器必须保证值小的先被加载。如果值相等,容器可以自动选择先加载谁。
org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:spring/applicationContext.xml
看上面代码就知道了跟标签的顺序是没有关联的
这里我们将sping放到listener标签中,让它更优先加载,因为spring其实是最后加载的是排在在servlet之后的,如果那样的话,有一些filter 是需要调用配置一些bean的,这样的话那些bean就会bean实体就变成null了
接下来就是日志
org.springframework.web.util.Log4jConfigListener log4jConfigLocation classpath:log4j.properties
下面要的filter是一个重点
因为在平时的项目中乱码一直都是经常存在并且让很多人很头疼的一些问题
现在的这个编码filter就可以解决post提交的一些乱码
CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter eccoding utf-8 forceEncoding true CharacterEncodingFilter /*
在springMvc请求的时候,有时候我们会用到ResquestMethod=PUT或者是DELETE等方法,但浏览器一些只识别get,post请求,所以我们配置一个filter就ok
HiddenHttpMethodFilter org.springframework.web.filter.HiddenHttpMethodFilter HiddenHttpMethodFilter /
接下俩是springMvc servlet的配置
springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc/springmvc.xml 1
springmvc /
最后加载servlet
最后就是一些Session 跟一些欢迎,或者跳转的页面
index.jsp 30
错误页面
<error-page> 2 <error-code>404error-code> 3 <location>/error404.jsplocation> 4 error-page> 5 <error-page> 6 <exception-type>java.lang.Exceptionexception-type> 7 <location>/exception.jsplocation> 8 error-page>