最近作项目遇到一个Filter须要配置多个url-pattern,上网查了下资料,经测试,现总结下 web
filter-mapping元素位于web.xml文件中filter元素以后serlvet元素以前。它包含以下三个可能的子元素。filter-name 这个必需的元素必须与用filter元素声明时给予过滤器的名称相匹配。url-pattern 此元素声明一个以斜杠(/)开始的模式,它指定过滤器应用的URL。全部filter-mapping元素中必须提供url-pattern或 servlet-name。但不能对单个filter-mapping元素提供多个url-pattern元素项。若是但愿过滤器适用于多个模式,可重复整个filter-mapping元素。app
1、彻底错误的方式 测试
<filter> <filter-name>authority</filter-name> <filter-class>com.util.AuthorityFilter</filter-class> </filter> <filter-mapping> <filter-name>authority</filter-name> <url-pattern>/pages/cmm/*;/pages/genbill/*</url-pattern> </filter-mapping>
2、有必定做用,但不能实现须要的效果,只会过滤最下面配置的url-pattern。 url
<filter> <filter-name>authority</filter-name> <filter-class>com.util.AuthorityFilter</filter-class> </filter> <filter-mapping> <filter-name>authority</filter-name> <url-pattern>/pages/cmm/*</url-pattern> <url-pattern>/pages/genbill/*</url-pattern> </filter-mapping>
3、如今给出正确的配置方式 spa
<filter> <filter-name>authority</filter-name> <filter-class>com.util.AuthorityFilter</filter-class> </filter> <filter-mapping> <filter-name>authority</filter-name> <url-pattern>/pages/genbill/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>authority</filter-name> <url-pattern>/pages/cmm/*</url-pattern> </filter-mapping>