拦截器是指通过统一拦截从浏览器发往服务器的请求来完成功能的增强
使用场景:解决请求的共性问题(乱码问题、权限验证问题)

拦截器的基本工作原理
1.SpringMVC可以通过配置过滤器来解决乱码问题
2.拦截器的工作原理和过滤非常相似

拦截器的实现
1.编写拦截器类实现HandlerInterceptor接口
三个必须实现的方法
preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) 
(第一步:在请求被处理之前进行调用 是否需要将当前的请求拦截下来,如果返回false,请求将会终止,返回true,请求将会继续Object arg2表示拦截的控制器的目标方法实例)

postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2,ModelAndView arg3) 
(第二步:在请求被处理之后进行调用ModelAndView arg3是指将被呈现在网页上的对象,可以通过修改这个对象实现不同角色跳向不同的网页或不同的消息提示)

afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2,Exception arg3) 
(第三步:在请求结束之后调用 一般用于关闭流、资源连接等 比较少用)

2.将拦截器注册进SpringMVC框架中
<mvc:interceptors>
<bean class="xxx"></bean>
</mvc:interceptors>

3.配置拦截器的拦截规则
配置部分路径请求
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/xxx" /> <!-- 只拦截匹配的路径 -->
<bean class="xxx"></bean>
</mvc:interceptor>
</mvc:interceptors>

拦截器和过滤器比较
①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑

springMVC拦截器使用场景,使用步骤(摘录整理)相关推荐

  1. SpringMVC拦截器与Filter过滤器

    SpringMVC拦截器与Filter过滤器 SpringMVC拦截器与Filter过滤器 Spring MVC拦截器的定义 SpringMVC拦截器的配置 SpringMVC拦截器HandlerIn ...

  2. SpringMVC→拦截器、SpringMVC拦截器实现、多个拦截器工作原理、拦截器使用场景、拦截器Interceptor与过滤器Filter区别

    拦截器 拦截器实现 多个拦截器工作原理 拦截器使用场景 请求编码设置及请求登录Session校验 使用时间段设置 拦截器Interceptor与过滤器Filter区别

  3. springMVC 拦截器

    为什么80%的码农都做不了架构师?>>>    实现springMVC 拦截器步骤: 1.定义拦截器类××××HandlerInterceptor  继承HandlerInterce ...

  4. Spring+SpringMVC+MyBatis深入学习及搭建(十七)——SpringMVC拦截器

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7098753.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十六)--S ...

  5. SpringMVC拦截器HandlerInterceptor原理及使用

    在使用SpringMVC拦截器的时候,我们接触的最多的便是HandlerInterceptor接口,因为我们所有的自定义拦截器都必须要实现HandlerInterceptor接口,那么就先从Handl ...

  6. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

  7. 在拦截器里放入参数 controller_干货|SpringMVC拦截器的使用详解

    一.拦截器简介 Spring MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. 常见应用场景 1.日志记录:记录请求信息的日志,以便进行信息监控.信 ...

  8. 跨域请求/SpringMVC拦截器

    <!-- 开启允许跨域 --> <mvc:cors> <mvc:mapping path="/**"/> </mvc:cors> S ...

  9. springmvc 拦截器、国际化、验证

    2019独角兽企业重金招聘Python工程师标准>>> springmvc 拦截器 继承了HandlerIntercepter的类可以作为拦截器类: package com.yawn ...

最新文章

  1. 淘宝服务端高并发分布式架构演进之路
  2. CNN模型 INT8 量化实现方式(一)
  3. C语言中%c与%s的区别与划分
  4. Android NDK调试定位错误
  5. 一起学习C语言:C语言循环结构(二)
  6. python之设计模式的装饰器9步学习
  7. Windows系统创建符号链接文件
  8. 正则表达式就这么简单!
  9. vim中编辑了代码 但是提示can not write的解决办法和代码对齐办法
  10. 读计算机专业买什么笔记本电脑好?你算问对人了
  11. 计算机网络设计校园网实验报告,计算机网络综合设计性实验报告-校园网网络构建方案设计和实现..doc...
  12. 贯穿时域与频域的方法——傅立叶分析(直观理解+Matlab实现)
  13. 汇编c语言环境搭建原理,什么是一个精简的C语言环境 怎么搭建?
  14. python两张图片无缝合成一张,Python实现拼接多张图片的方法
  15. 使用java,计算一段文本中出现英语单词次数最多的单词
  16. 李政道:只有重视基础研究,才能保持创新能力
  17. Android实现在线播放音乐
  18. java 获取微信头像和昵称 生成图片
  19. (智力题)一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这3盏灯相连。确定每个开关具体管哪盏灯?
  20. 三菱Q系列PLC ,QD77MS16走总线控制伺服项目,实际应用的

热门文章

  1. led灯实现跑马灯效果,达到设定时间(2秒)两LED灯全部亮起,持续时间1秒,而后重新恢复跑马灯效果;
  2. 基于htk工具包的语音识别
  3. 1157 最高分和最低分
  4. 聊天机器人的产品打造和商业变现(根据辣妈帮-王安静博士-演讲整理)
  5. 如何在ubuntu14.04上安装轻量级的Budgie桌面(v8)
  6. 利用实际数据对期权希腊字母绘图_20200525_
  7. 合理使用计算机教学反思,语文信息技术教学反思
  8. 解决Android修改APP图标无效的问题
  9. Invoke-Obfuscation混淆免杀过360和火绒
  10. 【恒生公司2016研发工程师笔试卷选择题分析】