Springmvc提供了拦截器机制; 允许运行目标方法之前进行一些拦截工作,或者目标方法运行之后进行一些其他处理。

Filter(过滤器)是javaweb定义的。

拦截器是springmvc定义的。

preHandle: 在目标方法运行之前调用; 返回boolean;

postHandle: 在目标方法运行之后调用

afterCompletion:在请求整个完成之后; 来到目标页面之后;资源相应之后;

1). 拦截器是一个接口

2). 实现HandlerInterceptor接口

3). 配置拦截器

<!-- 配置拦截器 -->
<mvc:interceptors><!--  默认拦截所有请求 --><bean class="com.atchina.MyFirstInterceptor"></bean>
</mvc:interceptors>

4). 拦截器的运行流程

正常运行流程

拦截器的preHandle------目标方法------拦截器的postHandle------页面---------拦截器的afterCompletion

其他流程

1. 只要preHandle不放行就没有以后的流程。

2. 只要放行了, afterCompletion都会执行。

多个拦截器

正常流程

.MyFirstInterceptor..preHandle...
  .MySecondInterceptor..preHandle...
  ....test01..目标方法...
  .MySecondInterceptor..postHandle...
  .MyFirstInterceptor..postHandle...
  ....success...jsp...
  .MySecondInterceptor..afterCompletion...
  .MyFirstInterceptor..afterCompletion...

拦截器的preHandle: 是按照顺序执行。

拦截器的postHandle: 是按照逆序执行。

拦截器的afterCompletion: 是按照逆序执行。

异常流程:

1.不放行

1). 哪一块不放行,从此以后的流程不会执行

MySecondInterceptor不放行,但是他前面已经放行了的拦截器的afterCompletion还是会执行。

.MyFirstInterceptor..preHandle...
        .MySecondInterceptor..preHandle...
        .MyFirstInterceptor..afterCompletion...

拦截器与过滤器

什么时候用拦截器? 什么时候用过滤器?

如果某些功能,需要其他组件配合完成,我们就使用拦截器;其他情况可以使用过滤器filter。

springmvc二十九:拦截器相关推荐

  1. 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 关于yarn常用参数设置 设置container分配最小内 ...

  2. SprimgMVC学习笔记(十)—— 拦截器

    一. 什么是拦截器? Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录 ...

  3. SpringMVC中使用Interceptor拦截器

    2019独角兽企业重金招聘Python工程师标准>>> SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理. ...

  4. SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  5. FreeSql (二十九)Lambda 表达式

    FreeSql 支持功能丰富的表达式函数解析,方便程序员在不了解数据库函数的情况下编写代码.这是 FreeSql 非常特色的功能之一,深入细化函数解析尽量做到满意,所支持的类型基本都可以使用对应的表达 ...

  6. Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四

    Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四 MetricsHttpAgent的httpGet ServerHttpAgent的httpGet HttpSimple ...

  7. SSM之SpringMVC 04 —— Ajax、拦截器、文件上传和下载

    系列文章 SSM之SpringMVC 01 -- SpringMVC原理及概念.Hello SpringMVC 注解版和配置版 SSM之SpringMVC 02 -- Controller和RestF ...

  8. 微信小程序从入坑到放弃二十九:一个小场景搞懂冒泡事件bindtap和catchtap的区别

    摘要: 在微信小程序中,bindtap事件会产生冒泡,若不加以拦截,会一直冒泡到顶端.在某些情况下,一次点击会触发若干点击事件.为了防止冒泡,使用catchtap即可解决问题.在有全屏半透明背景的弹出 ...

  9. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十九:LCD模块

    实验二十九:LCD模块 据说Alinx 301支持 7"TFT,好奇的朋友一定疑惑道,它们3.2"TFT以及7"TFT等两者之间究竟有何区别呢?答案很简单,前者自带控制器 ...

最新文章

  1. 深入WPF中的图像画刷(ImageBrush)之1——ImageBrush使用举例
  2. C++ Primer 5th笔记(7)chapter7 类:类的静态成员
  3. 【Qt】Qt工程管理
  4. oracle 10g/11g 命令对照,日志文件夹对照
  5. 前端vue的get和post请求
  6. 通过纯css实现图片居中的多种实现方式
  7. IT 实力较量:决战超级数据中心之巅
  8. ajax定时器怎么写,js定时器怎么写?就是在特定时间执行某段程序
  9. JAVA垃圾收集机制剖析
  10. python调用ping命令_python调用系统命令ping
  11. C#之Application.DoEvents()
  12. thinkphp5引入调用外部类
  13. GMbox批量正版音乐下载
  14. 2021数据安全与个人信息保护技术白皮书
  15. 什么叫特立独行,其实不过是活在自己的节奏里
  16. 数学分析习题解答(四:第一部分)
  17. 关于IOPS指标对性能的影响
  18. android进制之间的转换器,一个Android平台的16进制转换器
  19. Python——迷宫生成和迷宫破解算法
  20. 组播——IGMP Snooping

热门文章

  1. 祝各位节日快乐!20151111
  2. mysql,int(5)、int(10)啥区别联系
  3. linux内核之accept实现
  4. poj1321 DFS
  5. IIS 7.0的ASP.NET应用程序生命周期概述
  6. stl_vector.h
  7. 安装oracle11g时,Enterprise Manager配置成功,出现以下警告……
  8. “2016智能终端峰会新闻发布会暨移动信息化可信选型认证结果发布会” —— 在京成功召开...
  9. JavaScript ES6箭头函数指南
  10. 百度2016/2017秋招部分题目解析