注解方式@WebFilter控制做个 filter的执行顺序

之前我们控制多个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 的属性
在这里插入图片描述
通过实践发现如果想要控制filer的执行顺序可以 通过控制filter的文件名 来控制

比如:

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

Filter0_UserLogin.java

Filter1_ApiLog.java

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

原文链接:https://blog.csdn.net/LiMing_0820/article/details/53332070

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章