当前位置: 首页 > article >正文

SpringMVC SpringMVC拦截器 拦截器基础知识

1.什么是拦截器

SpringMVC提供了Intercepter拦截器机制,类似于Servlet当中的Filter过滤器,用于拦截用户的请求并作出相应的处理,比如通过拦截器来进行用户权限验证或者用来判断用户是否登录。SpringMVC拦截器是可插拔式的设计,需要某一功能拦截器,就需要在配置文件中应用拦截器即可;如果不需要这个功能拦截器,只需要在配置文件中取消该拦截器即可

2.拦截器和过滤器有哪些区别

1.过滤器依赖于servlet,而拦截器技术属于SpringMVC

2.过滤器可对所有请求起作用,拦截器只对访问controller层的请求起作用。

3.过滤器会比拦截器先执行。拦截器(Interceptor)是在Servlet和Controller控制器之间执行;而过滤器(Filter)是在请求进入Tomcat容器之后 但是在请求进入Servlet之前执行。

3.拦截器方法

想要自定义拦截器,需要实现HandlerInterceptor接口。
我们可以看到 HandlerInterceptor接口有三个方法,分别是preHandle、postHandle、afterCompletion,关于这三个方法
  • preHandle 方法:该方法在执行器方法之前执行。返回值为Boolean类型,如果返回false,表示拦截,不再向下执行;如果返回true,表示放行,程序向下执行(如果后边没有其他Interceptor,就会执行Controller方法)。所以,此方法可对方法进行判断,决定程序是否继续执行,或者进行一些初始化操作及对请求进行预处理。
  • postHandle方法该方法在执行控制器方法调用之后,且在返回ModelAndView之前执行。由于该方法会在DispatcherServlet进行返回视图渲染之前被调用,所以此方法多被用于处理返回的视图,可通过此方法多被用于处理返回的视图,可通过此方法对请求域中的模型和视图做进一步的修改。
  • afterCompletion方法:该方法在执行完控制器之后执行。由于是在Controller方法执行完毕之后执行该方法,所以该方法适合进行一些资源清理、记录日志信息等处理操作。


http://www.kler.cn/a/539209.html

相关文章:

  • 2025影视泛目录站群程序设计_源码二次开发新版本无缓存刷新不变实现原理
  • 4G核心网的演变与创新:从传统到虚拟化的跨越
  • 字符串高频算法:无重复字符的最长子串
  • Ollama + AnythingLLM + Deepseek r1 实现本地知识库
  • 蓝桥杯备赛——进制转化相关问题
  • ESP32开发学习记录---》GPIO
  • 【服务器知识】linux环境下安装docker
  • kubernetes 集群搭建(kubeadm方式)
  • BUUCTF_[RoarCTF 2019]Easy Calc(RCE/waf绕过/PHP字符串解析特性/代码审计)
  • webpack配置之---入口
  • 基于深度学习的视觉检测小项目(十八) 图像标注界面的初步规划
  • 深入浅出:机器学习的全面解析
  • 离散型变量的 PSI-群体稳定性指标计算
  • C# 创建 Windows 应用程序教程
  • 辛格迪客户案例 | 安领生物医药(苏州)有限公司电子合约系统(eSign)项目
  • 洛谷P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值
  • 李飞飞团队 S1 与 DeepSeek R1 技术对比
  • 基于Python实现的完整解决方案,用于对包含四个类别的1500张图像数据集进行分割、训练模型,并提供简易前端和可视化结果
  • Java 网络原理 ⑤-DNS || 以太网
  • 【RocketMQ 存储】- 异步刷盘服务 FlushRealTimeService
  • Python 报错分析:IndexError: list index out of range
  • Node.js 中模块化
  • 什么是Prompt工程?
  • 蓝耘智算平台与DeepSeek R1模型:推动深度学习发展
  • 企业如何利用DeepSeek提升网络安全管理水平
  • 【JAVAFX】textarea插入数据后滚动条自动到底部