SpringMVC源码解析-HandlerExecutionChain
发布日期:2021-06-30 12:25:42
浏览次数:2
分类:技术文章
本文共 950 字,大约阅读时间需要 3 分钟。
最终会调用HandlerInterceptor的
preHandle
调用所有的HandlerInterceptor拦截器并调用其preHandler方法。
applyPostHandle
获取所有的拦截器并调用其postHandle方法。
triggerAfterCompletion
触发afterCompletion执回调的映射HandlerInterceptors。 只会调用afterCompletion执行对于其preHandle调用已成功完成并返回true的拦截器
void triggerAfterCompletion(HttpServletRequest request, HttpServletResponse response, Exception ex) throws Exception { HandlerInterceptor[] interceptors = getInterceptors(); if (!ObjectUtils.isEmpty(interceptors)) { for (int i = this.interceptorIndex; i >= 0; i--) { HandlerInterceptor interceptor = interceptors[i]; try { interceptor.afterCompletion(request, response, this.handler, ex); } catch (Throwable ex2) { logger.error("HandlerInterceptor.afterCompletion threw exception", ex2); } } } }
HandlerInterceptor拦截器的最终调用实现是在DispatcherServlet的doDispatch方法中
因此,SpringMVC提供了HandlerExecutionChain来帮助我们执行所有配置的HandlerInterceptor拦截器,并分别调用HandlerInterceptor所提供的方法。转载地址:https://javaedge.blog.csdn.net/article/details/106565459 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月08日 00时18分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
tomcat日志不够详情,增加logging.properties进行问题排查
2019-04-30
oracle创建用户使用表空间限额,修改,查询
2019-04-30
oracle数据导入导出笔记
2019-04-30
oracle创建临时表
2019-04-30
oracle找出当前用户模式下,哪些表的哪些列的数据类型是日期型
2019-04-30
java.lang.UnsatisfiedLinkError: /db/app/oracle/product/11.2.0/lib/libnjni11.so: libclntsh.so.11.1
2019-04-30
oracle计算一个表的大小
2019-04-30
ssh 和 scp 命令访问非默认22端口。
2019-04-30
linux定时清理备份加日志记录
2019-04-30
nginx切割日志定时脚本
2019-04-30
oracle删除表,让整个表从数据库中彻底消失
2019-04-30
oracle往表插入特殊字符&
2019-04-30
oracle中的merge命令
2019-04-30
docker安装mysql
2019-04-30
jfinal排查过滤拦截相关请求
2019-04-30
java文件管道拷贝工具类
2019-04-30
mysql连接信息jdbcUrl的常用写法
2019-04-30
HTML页面meta标签内容详解
2019-04-30
oracle之decode
2019-04-30