今天想到Filter,Filter是有过滤链的概念的,之前所认识的过滤链是多个filter配置相同的映射Url,这时会按照web.xml配置的顺序执行多个filter,但是我又想到如果多个Filter不同的映射url,会怎样执行??
于是,配置做个了实验
<filter> <filter-name>Filter1</filter-name> <filter-class>com.jadyer.filter.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>Filter1</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>Filter2</filter-name> <filter-class>com.jadyer.filter.MyFilter2</filter-class> </filter> <filter-mapping> <filter-name>Filter2</filter-name> <url-pattern>/aa/*</url-pattern> </filter-mapping>
从上面的结果看,还是形成了过滤链,是否可以这样理解?所有跟filter的url匹配都会执行??
<filter> <filter-name>Filter1</filter-name> <filter-class>com.jadyer.filter.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>Filter1</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>Filter2</filter-name> <filter-class>com.jadyer.filter.MyFilter2</filter-class> </filter> <filter-mapping> <filter-name>Filter2</filter-name> <url-pattern>/aa/*</url-pattern> </filter-mapping> <filter> <filter-name>Filter3</filter-name> <filter-class>com.jadyer.filter.MyFilter3</filter-class> </filter> <filter-mapping> <filter-name>Filter3</filter-name> <url-pattern>/aa/bb/*</url-pattern> </filter-mapping> 结果:
结果说明,只要filter的url匹配就会被执行
