zoukankan      html  css  js  c++  java
  • @WebFilter怎么控制多个filter的执行顺序

    转自:http://blog.csdn.net/liming_0820/article/details/53332070

    之前我们控制多个filter的执行顺序是通过web.xml中控制filter的位置来控制的,放在上面的会比放在下面的先执行,如下“用户登录检查过滤器”会比“接口日志过滤器”先执行

    	<!-- 用户登录检测过滤器 -->
    	<filter>
    	 <filter-name>UserLoginFilter</filter-name>
    		 <filter-class>net.tfgzs.demo.filter.UserLoginFilter</filter-class>
    	</filter>
    	<filter-mapping>
    		 <filter-name>UserLoginFilter</filter-name>
    		 <url-pattern>/*</url-pattern>
    	</filter-mapping>
    	<!--接口日志过滤器-->
    <filter>
    	<filter-name>ApiLog</filter-name>
    	<filter-class>net.tfgzs.demo.filter.ApiLog</filter-class>
    </filter>
    <filter-mapping>
    	<filter-name>ApiLog</filter-name>
    	<url-pattern>/*</url-pattern>
    </filter-mapping>
    

    但是当我们使用@WebFilter注解的时候发现注解里面没有提供可以控制执行顺序的参数

    @WebFilter 的属性

    属性名类型描述
    filterName String 指定过滤器的 name 属性,等价于 <filter-name>
    value String[] 该属性等价于 urlPatterns 属性。但是两者不应该同时使用。
    urlPatterns String[] 指定一组过滤器的 URL 匹配模式。等价于 <url-pattern> 标签。
    servletNames String[] 指定过滤器将应用于哪些 Servlet。取值是 @WebServlet 中的 name 属性的取值,或者是 web.xml 中 <servlet-name> 的取值。
    dispatcherTypes DispatcherType 指定过滤器的转发模式。具体取值包括: ASYNC、ERROR、FORWARD、INCLUDE、REQUEST。
    initParams WebInitParam[] 指定一组过滤器初始化参数,等价于 <init-param> 标签。
    asyncSupported boolean 声明过滤器是否支持异步操作模式,等价于 <async-supported> 标签。
    description String 该过滤器的描述信息,等价于 <description> 标签。
    displayName String 该过滤器的显示名,通常配合工具使用,等价于 <display-name> 标签。

    通过实践发现如果想要控制filer的执行顺序可以 通过控制filter的文件名 来控制

    比如:

    UserLoginFilter.java 和 ApiLog.java 这两个文件里面分别是“用户登录检查过滤器”和“接口日志过滤器”,因为这两个文件的 首字母A排U之前 ,导致每次执行的时候都是先执行“接口日志过滤器”再执行“用户登录检查过滤器”,所以我们现在修改两个文件的名称分别为

    Filter0_UserLogin.java

    Filter1_ApiLog.java

    这样就能先执行“用户登录检查过滤器”再执行“接口日志过滤器”

  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    108. Convert Sorted Array to Binary Search Tree
    111. Minimum Depth of Binary Tree
    49. Group Anagrams
    使用MALTAB标定实践记录
    442. Find All Duplicates in an Array
    522. Longest Uncommon Subsequence II
    354. Russian Doll Envelopes
    opencv 小任务3 灰度直方图
    opencv 小任务2 灰度
  • 原文地址:https://www.cnblogs.com/wcxcc/p/10680422.html
Copyright © 2011-2022 走看看