首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

web.xml资料中配置(servlet, spring, filter, listenr)的加载顺序 研究

2012-07-19 
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>
web.xml资料中配置(servlet, spring, filter, listenr)的加载顺序 研究????????????org.springframework.web.context.ContextLoaderListener
web.xml资料中配置(servlet, spring, filter, listenr)的加载顺序 研究????????</listener-class>
web.xml资料中配置(servlet, spring, filter, listenr)的加载顺序 研究????</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>

?

热点排行