Spring多过滤器和拦截器执行顺序流程图+测试

多个Filter Interceptor 执行顺序:

在这里插入图片描述

测试

  1. Interceptor1被拦截,对应虚线①,返回第二个过滤器的后处理的内容。
2021-04-29 00:03:38.478  INFO 16036 --- [nio-8080-exec-1] indi.huishi.admin.servlet.MyFilter       : filter1工作前
2021-04-29 00:03:38.478  INFO 16036 --- [nio-8080-exec-1] indi.huishi.admin.servlet.MyFilter2      : filter2工作前
2021-04-29 00:03:38.494  INFO 16036 --- [nio-8080-exec-1] i.h.admin.interceptor.LoginInterceptor   : 1preHandle: /form/uploadFile.html
未登录
2021-04-29 00:03:38.822  INFO 16036 --- [nio-8080-exec-1] indi.huishi.admin.servlet.MyFilter2      : filter2工作后
2021-04-29 00:03:38.822  INFO 16036 --- [nio-8080-exec-1] indi.huishi.admin.servlet.MyFilter       : filter1工作后
  1. Interceptor2被拦截,对应虚线②,返回执行第1个拦截器的AfterCompletion方法.
2021-04-29 00:12:38.864  INFO 16036 --- [nio-8080-exec-1] indi.huishi.admin.servlet.MyFilter       : filter1工作前
2021-04-29 00:12:38.864  INFO 16036 --- [nio-8080-exec-1] indi.huishi.admin.servlet.MyFilter2      : filter2工作前
2021-04-29 00:12:38.864  INFO 16036 --- [nio-8080-exec-1] i.h.admin.interceptor.LoginInterceptor   : 1preHandle: /form/uploadFile.html
2021-04-29 00:12:38.864  INFO 16036 --- [nio-8080-exec-1] i.h.admin.interceptor.TestInterceptor2   : 2preHandle: /form/uploadFile.html
未登录
2021-04-29 00:12:38.890  INFO 16036 --- [nio-8080-exec-1] i.h.admin.interceptor.LoginInterceptor   : 1afterCompletion: /form/uploadFile.html
2021-04-29 00:12:38.890  INFO 16036 --- [nio-8080-exec-1] indi.huishi.admin.servlet.MyFilter2      : filter2工作后
2021-04-29 00:12:38.890  INFO 16036 --- [nio-8080-exec-1] indi.huishi.admin.servlet.MyFilter       : filter1工作后
  1. filter1被拦截,对应虚线③:因为第一个过滤器就被return,肯定不会执行后面的内容
2021-04-29 00:19:40.021  INFO 16036 --- [nio-8080-exec-3] indi.huishi.admin.servlet.MyFilter       : filter1工作前
  1. filter2被拦截,对应虚线④:过第二个过滤器被return,返回第1个过滤器的后处理的内容。不会执行后面拦截器。
2021-04-29 00:24:56.380  INFO 16036 --- [nio-8080-exec-5] indi.huishi.admin.servlet.MyFilter       : filter1工作前
2021-04-29 00:24:56.380  INFO 16036 --- [nio-8080-exec-5] indi.huishi.admin.servlet.MyFilter2      : filter2工作前
2021-04-29 00:24:56.380  INFO 16036 --- [nio-8080-exec-5] indi.huishi.admin.servlet.MyFilter       : filter1工作后
  1. 都没有被拦截,对应实线⑤ 的顺序。
2021-04-29 00:32:00.819  INFO 16036 --- [nio-8080-exec-8] indi.huishi.admin.servlet.MyFilter       : filter1工作前
2021-04-29 00:32:00.820  INFO 16036 --- [nio-8080-exec-8] indi.huishi.admin.servlet.MyFilter2      : filter2工作前
2021-04-29 00:32:00.820  INFO 16036 --- [nio-8080-exec-8] i.h.admin.interceptor.LoginInterceptor   : 1preHandle: /form/uploadFile.html
2021-04-29 00:32:00.820  INFO 16036 --- [nio-8080-exec-8] i.h.admin.interceptor.TestInterceptor2   : 2preHandle: /form/uploadFile.html
2021-04-29 00:32:00.820  INFO 16036 --- [nio-8080-exec-8] i.h.admin.controller.IndexController     : controller方法
2021-04-29 00:32:00.820  INFO 16036 --- [nio-8080-exec-8] i.h.admin.interceptor.TestInterceptor2   : 2postHandle: /form/uploadFile.html
2021-04-29 00:32:00.820  INFO 16036 --- [nio-8080-exec-8] i.h.admin.interceptor.LoginInterceptor   : 1postHandle: /form/uploadFile.html
2021-04-29 00:32:00.823  INFO 16036 --- [nio-8080-exec-8] i.h.admin.interceptor.TestInterceptor2   : 2afterCompletion: /form/uploadFile.html
2021-04-29 00:32:00.823  INFO 16036 --- [nio-8080-exec-8] i.h.admin.interceptor.LoginInterceptor   : 1afterCompletion: /form/uploadFile.html
2021-04-29 00:32:00.823  INFO 16036 --- [nio-8080-exec-8] indi.huishi.admin.servlet.MyFilter2      : filter2工作后
2021-04-29 00:32:00.823  INFO 16036 --- [nio-8080-exec-8] indi.huishi.admin.servlet.MyFilter       : filter1工作后

Guess you like

Origin blog.csdn.net/qq_36937684/article/details/116246108