SpringMVC - 13 - 自定义拦截器HandlerInterceptor 、多个拦截器下的执行顺序
发布日期:2021-06-30 17:02:51 浏览次数:2 分类:技术文章

本文共 625 字,大约阅读时间需要 2 分钟。

  • 文章目录

# 如何自定义

HandlerInterceptor

实现接口

在这里插入图片描述

mvc:interceptors

配置 bean

在这里插入图片描述

## mvc:interceptor

配置 bean

这种配置,可以指定(或者排除) 路径
在这里插入图片描述


## 总结

  • preHandle - 可以考虑做权限,日志,事务
  • postHandle - 可以对请求域中的属性或视图作出修改
  • afterCompletion - 释放资源

在这里插入图片描述

在这里插入图片描述

## debugger 看 流程
perHandle

下图可知,perHandle 的 调用 是在 调用目标方法之前

在这里插入图片描述
如果,某一个拦截器的 preHandle 方法返回 false ,后面拦截器也就不继续执行了 , 之前的 (上面) DispatcherServlet doDispacher 也直接 返回
在这里插入图片描述

postHandle

下图可知,postHandle 的调用时在:目标方法之后,渲染视图之前

在这里插入图片描述

afterCompletion

在 processDispatchResult 中调用

在这里插入图片描述

render 方法(渲染视图) 之后调用

在这里插入图片描述
在这里插入图片描述


文章目录

# 多个拦截器下的执行顺序

## 执行结果分析

在这里插入图片描述

在这里插入图片描述

## 代码角度分析

preHandle

顺序

在这里插入图片描述

postHandle

倒序

在这里插入图片描述

afterCompletion

从 interceptorIndex 开始(之前执行的最后一个拦截器),倒序

在这里插入图片描述

interceptorIndex 在哪里定义?

preHandle()方法 - 里面定义
在这里插入图片描述

转载地址:https://lawsssscat.blog.csdn.net/article/details/104348613 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SpringMVC - 14 - 异常处理 Handler(或ResponseStatus或DefaultHandler或SimpleMapping)ExecptionResolver、设置全局异常
下一篇:SpringBoot - 文件上传 - FormData、ajax、以及MultipartFile接收

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月06日 10时17分58秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【NLP学习笔记】One-hot encoding:独热编码 2019-04-30
【工具使用】CSDN编辑器markdown字体、颜色与字号的设置 2019-04-30
【NLP学习笔记】词共现矩阵 2019-04-30
【NLP学习笔记】NLP基础知识框架图 2019-04-30
【深度学习笔记】卷积的输入输出的通道、维度或尺寸变化过程 2019-04-30
【NLP学习笔记】训练集、验证集和测试集的概念及划分 2019-04-30
【NLP学习笔记】conda换源 2019-04-30
【深度学习笔记】常见的图像增强方法:scaling、rotating、flipping、random cropping 2019-04-30
【深度学习笔记】标准卷积 2019-04-30
【深度学习笔记】组卷积 2019-04-30
【深度学习笔记】循环神经网络和递归神经网络区别 2019-04-30
【学习笔记】英文科技论文常见英语句式积累 2019-04-30
【深度学习笔记】PixelShuffle 2019-04-30
【python3学习笔记】斜杠和双斜杠运算符的区别 2019-04-30
【深度学习笔记】torch.nn.Sequential(* args) 与 torch.nn.Module 2019-04-30
【深度学习笔记】用torch.nn.Sequential()搭建神经网络模型 2019-04-30
【深度学习笔记】用torch.nn.ModuleList搭建神经网络 2019-04-30
【解决错误】AttributeError: module ‘scipy.misc‘ has no attribute ‘imread‘ 2019-04-30
【解决错误】复现RCAN的时候遇到了ImportError: cannot import name ‘_update_worker_pids’ from ‘torch._C’ 2019-04-30
【解决错误】ModuleNotFoundError: No module named ‘skimage‘ 2019-04-30