首页 > 技术文章 > 过滤器执行顺序和拦截方式

wangqianming12138 2021-03-17 22:20 原文

多过滤器执行顺序

FilterChain#doFilter()方法:

  执行目标资源或者执行下一过滤器

  如果没有下一个过滤器,则执行目标资源。如果有下一个过滤器,则执行下一个过滤器

  所有的过滤器都要依次执行!

 

过滤器的链上,过滤器排行顺序是按照web.xml中配置的顺序进行过滤的


过滤器的四种拦截方式

1.请求

2.转发

3.包含

4.错误

想要设置一个过滤器拦截的东西,只需要在web.xml中的filter-mapping进行配置即可

 1     <filter>
 2         <filter-name>BFilter</filter-name>
 3         <filter-class>FilterPackage.BFilter</filter-class>
 4     </filter>
 5     <filter-mapping>
 6         <filter-name>BFilter</filter-name>
 7         <url-pattern>/AServlet</url-pattern>
 8         <dispatcher>REQUEST</dispatcher>
 9         <dispatcher>FORWARD</dispatcher>
10         <dispatcher>ERROR</dispatcher>
11         <dispatcher>INCLUDE</dispatcher>
12     </filter-mapping>

多个过滤器的执行顺序如何控制

<filter-mapping>中的配置顺序决定的filter的执行顺序

 

推荐阅读