学习笔记——拦截器与过滤器的区别;拦截器概述;拦截器中三个方法
2023-01-21
一、拦截器与过滤器的区别
1、过滤器(Filter)属于web服务器组件
(1)过滤器主要作用:过滤Servlet请求
(2)执行时机:两处执行时机(Servlet前、Servlet后)
2、拦截器(Interceptor)属于框架(springMVC)
(1)拦截器主要作用:拦截Controller请求
(2)执行时机:三处执行时机
①执行DispatcherServlet之后,Controller之前
②执行Controller之后,DispatcherServlet之前
③执行DispatcherServlet之后
二、拦截器概述
1、SpringMVC可以使用拦截器实现拦截Controller请求,用户可以自定义拦截器来实现特定功能
2、实现拦截器两种方式
(1)实现接口:HandlerInterceptor
(2)继承适配器类:HandlerInterceptorAdapter
3、拦截器中三个方法
(1)preHandler():这个方法在业务处理器处理请求之前被调用,可以在此方法中做一些权限的校验。如果程序员决定该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回true;如果程序员决定不需要再调用其他组件去处理请求,则返回false.
(2)postHandler():这个方法在业务处理器处理请求之后,渲染视图之前调用。在此方法中可以对ModelAndView中的模型和视图进行处理。
(3)afterCompletion():这个方法在DispatcherServlet完全处理完请求后被调用,可以在该方法中进行一些资源清理的操作。
三、实现拦截器步骤
1、实现接口:HandlerInterceptor
2、重写三个方法
@Component public class MyInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println(" MyInterceptor==>preHandle " ); return true; } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { System.out.println(" MyInterceptor==>postHandle " ); } public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { System.out.println(" MyInterceptor==>afterCompletion " ); } }
3、在springmvc.xml配置文件中,装配拦截器
<!-- 装配拦截器--> <mvc:interceptors> <ref bean="myInterceptor"></ref> </mvc:interceptors>
相关文章
- 一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解
- 一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解
- 空中换引擎 博时基金数字化转型经验谈
- 如何高效地学习编程语言
- 作为一名阿里巴巴数据分析大牛,送给学弟学妹的经验积分
- 为什么要学习R语言
- Hadoop大数据分析平台的介绍性讨论
- 最全面的Spring学习笔记
- 16个用于数据科学和机器学习的顶级平台
- 给有抱负的数据科学家的六条建议
- 如何做一枚合格的数据产品经理
- 除Kaggle外,还有哪些顶级数据科学竞赛平台
- 一个鲜为人知却可以保护隐私的训练方法:联合学习
- 干货 :送你12个关于数据科学学习的关键提示(附链接)
- 大数据行业有多少种工作岗位,各自的技能需求是什么?
- 中国移动研究院常耀斌:商用大数据平台的研发之路
- 这些数据科学家必备的技能,你拥有哪些?
- 自学成才的开发者有何优势和劣势?
- Gartner报告:正处于数据科学与机器学习工具 “大爆炸”的时代
- Ready Computing借助InterSystems IRIS医疗版为医疗机构提供具有高度互操作性和可扩展性的解决方案