SpringMVC多个拦截器流程简图
当SpringMVC中一个目标方法里有多个拦截器时,例如有A和B拦截器,将执行图中流程。
如果在A拦截器中,preHandle()方法中返回了false,那么流程图将会变化:
如果在B拦截器中,preHandle()方法中返回false,那么流程图将是这样:
相关代码:
@Component
public class MyInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("A preHandle");return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("A postHandle");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("A afterCompletion");}
}
@Component
public class BInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("B preHandle");return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("B postHandle");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("B afterCompletion");}
}
相关知识(废话)↓
Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。
要使用Spring MVC中的拦截器,就需要对拦截器类进行定义和配置。通常拦截器类可以通过两种方式来定义。
1.通过实现HandlerInterceptor接口,或继承HandlerInterceptor接口的实现类(如HandlerInterceptorAdapter)来定义。
2.通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。
preHandle() 方法:该方法会在控制器方法前执行,其返回值表示是否中断后续操作。当其返回值为true时,表示继续向下执行;
当其返回值为false时,会中断后续的所有操作(包括调用下一个拦截器和控制器类中的方法执行等)。postHandle()方法:该方法会在控制器方法调用之后,且解析视图之前执行。可以通过此方法对请求域中的模型和视图做出进一步的修改。
afterCompletion()方法:该方法会在整个请求完成,即视图渲染结束之后执行。可以通过此方法实现一些资源清理、记录日志信息等工作。
相关知识(废话)↑
如有错误欢迎指出。
---内容仅供记载
---2022-08-02
SpringMVC多个拦截器流程简图相关推荐
- (转)SpringMVC学习(十二)——SpringMVC中的拦截器
http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...
- java day62【 响应数据和结果视图 、 SpringMVC 实现文件上传 、 SpringMVC 中的异常处理 、 SpringMVC 中的拦截器 】...
第1章 响应数据和结果视图 1.1返回值分类 1.1.1 字符串 1.1.2 void 1.1.3 ModelAndView 1.2转发和重定向 1.2.1 forward 转发 1.2.2 Redi ...
- SpringMVC (注解、拦截器、json、Ajax)
SpringMVC 1.回顾MVC 1.1 什么是mvc MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. 是将业务逻辑.数据.显示分离的方法来 ...
- SpringMVC中的拦截器
SpringMVC中的拦截器 拦截器的作用 Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理. 用户可以自己定义一些拦截器来实现 ...
- Springmvc中的拦截器interceptor及与过滤器filter的区别
一.Springmvc中的拦截器概述及与过滤器filter的区别 1).Springmvc中的拦截器interceptor用于对控制器controller进行预处理和后处理的技术; 2).可以定义拦截 ...
- SpringMVC中的拦截器、过滤器的区别、处理异常
SpringMVC中的拦截器.过滤器的区别.处理异常 参考文章: (1)SpringMVC中的拦截器.过滤器的区别.处理异常 (2)https://www.cnblogs.com/ahaijava/p ...
- 在SpringMVC中使用拦截器(interceptor)拦截CSRF***
关于什么是CSRF我这里就不多说了,以前转载的一篇文章(PS:https://www.zifangsky.cn/358.html)已经说得很清楚了.这里只是简单介绍如何在SpringMVC中使用拦截器 ...
- 【SpringMVC笔记】拦截器 + 文件上传下载
拦截器 + 文件上传下载 拦截器(interceptor) 自定义拦截器 验证用户是否登录 (认证用户) 没有拦截器 配置拦截器 文件的上传 文件输出流进行文件上传 file.Transto 进行文件 ...
- 【SpringMVC学习11】SpringMVC中的拦截器
Springmvc的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下springmvc中拦截器是如何定义的,以及测试拦截器的执行情况和使用 ...
最新文章
- 华为合作oppovivo小米鸿蒙,华为鸿蒙成功的关键:要让小米、OPPO、VIVO都用上鸿蒙...
- 99. 恢复二叉搜索树
- 我是一个内向的人,也是一个不善交际的人
- 【洛谷P3106】[USACO14OPEN]GPS的决斗Dueling GPS's
- 数据访问函数库 for ado.net2.0
- Redis源码分析(一)--Redis结构解析
- 洛谷P2709 小B的询问
- java向hdfs提交命令_Java语言操作HDFS常用命令测试代码
- 花店橱窗布置问题(FLOWER)
- 我的世界f服务器自定义皮肤,我的世界服务器皮肤指令
- 靠天收粮江西 国稻种芯·中国水稻节:锐变高标准农田示范省
- quot 云计算 quot 是计算机,云计算是什么意思?
- 怎么把浏览器改成开发者模式_小米手表怎么玩?Wear OS初体验
- 计算机开机界面用户如何删除,电脑开机用户去掉登录界面方法
- DNS分类与区别-权威DNS、递归DNS、转发DNS
- 小程序源码:笑话段子手-多玩法安装简单
- 程序员做笔记的利器:MarkDown软件
- 保险费率软件测试题目,软件测试保险等价类法测试用例
- Qt中的unicode转换
- MT6169 RF System Datasheet资料介绍