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

SpringMVC拦截器执行流程的更多相关文章

  1. SpringMVC自定义多个拦截器执行顺序

    一.正常流程下的拦截器(全部放行) 1.springMVC中拦截器实现这个接口HandlerInterceptor 第一个拦截器 HandlerInterceptor1   public class ...

  2. SpringMVC拦截器与异常处理

    点击查看上一章 在我们SpringMVC中也可以使用拦截器对用户的请求进行拦截,用户可以自定义拦截器来实现特定的功能.自定义拦截器必须要实现HandlerInterceptor接口 package c ...

  3. SpringMVC拦截器及多拦截器时的执行顺序

    本文链接:https://blog.csdn.net/itcats_cn/article/details/80371639拦截器的配置步骤 springmvc.xml中配置多个拦截器配置自定义拦截器并 ...

  4. springmvc拦截器入门及其执行顺序源码分析

    springmvc拦截器是偶尔会用到的一个功能,本案例来演示一个较简单的springmvc拦截器的使用,并通过源码来分析拦截器的执行顺序的控制.具体操作步骤为:1.maven项目引入spring依赖2 ...

  5. SpringMVC拦截器Interceptor

    SpringMVC拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似与servlet中的Filter. SpringMVC 中的Interceptor 拦截请求是通过Ha ...

  6. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

  7. SpringMVC之八:基于SpringMVC拦截器和注解实现controller中访问权限控制

    SpringMVC的拦截器HandlerInterceptorAdapter对应提供了三个preHandle,postHandle,afterCompletion方法. preHandle在业务处理器 ...

  8. Springboot中SpringMvc拦截器配置与应用(实战)

    一.什么是拦截器,及其作用 拦截器(Interceptor): 用于在某个方法被访问之前进行拦截,然后在方法执行之前或之后加入某些操作,其实就是AOP的一种实现策略.它通过动态拦截Action调用的对 ...

  9. SpringMVC拦截器的配置与使用详解

         一.SpringMVC拦截器简介      Spring MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.在springmvc中,定义拦截 ...

随机推荐

  1. linux(10)uwsgi???

    [uwsgi] Django-related settings the base directory (full path) #指定项目的绝对路径的第一层路径!!!!!!!!!!!!!!!!!!!!! ...

  2. C++使用OpenCV打印运行时间

    代码 int64 tall = cv::getTickCount(); std::cout<< "time:" << (cv::getTickCount() ...

  3. 每天一道Rust-LeetCode(2019-06-14)

    每天一道Rust-LeetCode(2019-06-14) 常数时间插入.删除和获取随机元素 坚持每天一道题,刷题学习Rust. 题目描述 https://leetcode-cn.com/proble ...

  4. 论文阅读笔记六十六:Wide Activation for Efficient and Accurate Image Super-Resolution(CVPR2018)

    论文原址:https://arxiv.org/abs/1808.08718 代码:https://github.com/JiahuiYu/wdsr_ntire2018 摘要 本文证明在SISR中在Re ...

  5. web控制树莓派摄像头

    首先测试摄像头保证能顺利拍照 raspistill -o a.jpg 安装flask sudo pip install flask 确认无误之后向下进行. 文件夹结构: CapPic ----stat ...

  6. 遵循PEP8风格

    遵循PEP8风格 在编写python代码的时候我们应该采用统一的风格来编写代码,可以使代码更加容易读懂.采用和其他程序员统一的编码风格来写代码,也可以使项目更利于多人协作开发.即便代码只有你自己能看懂 ...

  7. spring cloud gateway 全局过滤器

    全局过滤器作用于所有的路由,不需要单独配置,我们可以用它来实现很多统一化处理的业务需求,比如权限认证,IP访问限制等等. 接口定义类:org.springframework.cloud.gateway ...

  8. 第09组 Beta冲刺(2/5)

    队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 接下来的计划 完成短租车,页面美化 还剩下哪些任务 ...

  9. 100教程-100jc.cn

    个人编程笔记网站(持续更新) http://100jc.cn

  10. 前端与算法 leetcode 387. 字符串中的第一个唯一字符

    目录 # 前端与算法 leetcode 387. 字符串中的第一个唯一字符 题目描述 概要 提示 解析 解法一:双循环 解法二:Set法单循环 算法 传入测试用例的运行结果 执行结果 GitHub仓库 ...