首页 > 代码库 > web.xml中的多个filter的运行顺序(转)

web.xml中的多个filter的运行顺序(转)

原文出处:http://blog.csdn.net/weizhi/article/details/1895014

web.xml中的多个filter的运行顺序
walker(walker_cn@163.com)  2007-11-20
环境:tomcat 6.x 

多个筛选器的运行顺序取决于下列规则:

1.将 filter-mapping 元素包含与请求匹配的 url-pattern的筛选器按其在 web.xml 部署描述符中出现的顺序添加到链中。

2.将 filter-mapping 元素包含与请求匹配的 servlet-name 的筛选器添加在链中与 URL 模式匹配的筛选器之后

3.链上先进先出的,链中最后的项目往往是最初请求的资源。

也就是说:

1.以url-pattern方式配置的filter运行时肯定先于以servlet-name方式配置的filter
2.以url-partern方式配置的filter中,如果有多个与当前请求匹配,则按web.xml中filter-mapping出现的顺序来运行
3.对于以servlet-name方式配置的filter,如果有多个与当前请求匹配,也是按web.xml中filter-mapping出现的顺序来运行