SpringMVC拦截器执行流程
1:MyInterceptor1、MyInterceptor2这2个拦截器都放行
MyInterceptor1......preHandle
MyInterceptor2......preHandle
MyInterceptor2......postHandle
MyInterceptor1......postHandle
MyInterceptor2......afterCompletion
MyInterceptor1......afterCompletion
preHandle执行顺序和拦截器放置顺序一致;postHandle、afterCompletion执行顺序和拦截器放置顺序相反
2:MyInterceptor1放行、MyInterceptor2不放行
MyInterceptor1......preHandle
MyInterceptor2......preHandle
MyInterceptor1......afterCompletion
MyInterceptor2不放行,MyInterceptor2的postHandle、afterCompletion方法不会执行
只要有一个拦截器不放行,postHandle方法不会执行
3:MyInterceptor1、MyInterceptor2这2个拦截器都不放行
MyInterceptor1......preHandle
MyInterceptor1不放行,MyInterceptor1的postHandle、afterCompletion方法不会执行
MyInterceptor1不放行,MyInterceptor2不会执行
若系统中有统一日志记录处理,应该将日志处理的拦截器放在第一个位置,并且必须放行,这样才能保证afterCompletion方法会执行
(若其它拦截器不放行,会导致postHandle方法不执行)
若系统中有登录校验拦截器、权限校验拦截器
应该把登录校验拦截器放在权限校验拦截器的前面,因为只有登录通过了,才会进行权限校验
单个拦截器执行流程:
不放行
preHandle------>返回
放行
preHandle------>handler中方法------>postHandle------>handler中方法返回ModelAndView------>afterCompletion
最新文章
- JAVA Thread线程异常监控
- NOIP2000进制转换
- .Net开源项目之开源论坛
- 109. Convert Sorted List to Binary Search Tree
- BufferedInputSream和BufferedOutputSream,,,
- SQL Server性能优化(2)获取基本信息
- jQuery选择器之基本过滤选择器Demo
- 直接调用系统Camera
- ios Object Encoding and Decoding with NSSecureCoding Protocol
- linux之无名管道
- js 抓取屏幕宽度设置字体大小 rem
- 论文笔记(6):Weakly-and Semi-Supervised Learning of a Deep Convolutional Network for Semantic Image Segmentation
- Vue 部署IIS 单页面刷新报404问题
- 逻辑卷管理(linux)
- CentOS7.2卸载完CDH5.12后重装CDH
- django配置发送邮箱
- python多进程apply与apply_async的区别
- synchronized锁住的是代码还是对象
- 【题解】Luogu P2787 语文1(chin1)- 理理思维
- Convert DataFrame string complex i to j python // “Cloning” row or column vectors