web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序 研究分类:?J2EE?spring2011-10-14 15:22
web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序 研究
分类:?J2EE?spring2011-10-14 15:22?34人阅读?评论(0)?收藏?举报????????<listener-class>

????????????org.springframework.web.context.ContextLoaderListener

????????</listener-class>

????</listener>
?搞定!
?
?
?
?关于他们的内部执行顺序,也需要注意,如下面文章中遇到的问题
web.xml的filter执行顺序导致的乱码,切记!2008-05-02 01:38
?
发现引起bug的原因是web.xml的下面几行:
??? <filter-mapping>
??????? <filter-name>SecurityFilter</filter-name>
??????? <url-pattern>*.do</url-pattern>
??? </filter-mapping>
??? <filter-mapping>
??????? <filter-name>CharacterEncoding</filter-name>
??????? <url-pattern>*.do</url-pattern>
??? </filter-mapping>
??? <filter-mapping>
??????? <filter-name>CharacterEncoding</filter-name>
??????? <url-pattern>*.jsp</url-pattern>
??? </filter-mapping>
根据servlet2.3规范filter执行是按照web.xml配置的filter-mapping先后顺序进行执行,所以上面的配置会导致遇见*.do的url请求,先进行SecurityFilter的过滤器处理,这时候没有做编码处理,已经是乱码,到下面的filter处理时已经时乱码,再做编码处理已经没有用处。
修正方式,调整filter-mapping顺序,如下:
??? <filter-mapping>
??????? <filter-name>CharacterEncoding</filter-name>
??????? <url-pattern>*.do</url-pattern>
??? </filter-mapping>
??? <filter-mapping>
??????? <filter-name>CharacterEncoding</filter-name>
??????? <url-pattern>*.jsp</url-pattern>
??? </filter-mapping>
??? <filter-mapping>
??????? <filter-name>SecurityFilter</filter-name>
??????? <url-pattern>*.do</url-pattern>
??? </filter-mapping>
?