springmvc二十九:拦截器
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二十九:拦截器相关推荐
- 2021年大数据Hadoop(二十九):关于YARN常用参数设置
全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 关于yarn常用参数设置 设置container分配最小内 ...
- SprimgMVC学习笔记(十)—— 拦截器
一. 什么是拦截器? Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录 ...
- SpringMVC中使用Interceptor拦截器
2019独角兽企业重金招聘Python工程师标准>>> SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理. ...
- SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- FreeSql (二十九)Lambda 表达式
FreeSql 支持功能丰富的表达式函数解析,方便程序员在不了解数据库函数的情况下编写代码.这是 FreeSql 非常特色的功能之一,深入细化函数解析尽量做到满意,所支持的类型基本都可以使用对应的表达 ...
- Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四
Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四 MetricsHttpAgent的httpGet ServerHttpAgent的httpGet HttpSimple ...
- SSM之SpringMVC 04 —— Ajax、拦截器、文件上传和下载
系列文章 SSM之SpringMVC 01 -- SpringMVC原理及概念.Hello SpringMVC 注解版和配置版 SSM之SpringMVC 02 -- Controller和RestF ...
- 微信小程序从入坑到放弃二十九:一个小场景搞懂冒泡事件bindtap和catchtap的区别
摘要: 在微信小程序中,bindtap事件会产生冒泡,若不加以拦截,会一直冒泡到顶端.在某些情况下,一次点击会触发若干点击事件.为了防止冒泡,使用catchtap即可解决问题.在有全屏半透明背景的弹出 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十九:LCD模块
实验二十九:LCD模块 据说Alinx 301支持 7"TFT,好奇的朋友一定疑惑道,它们3.2"TFT以及7"TFT等两者之间究竟有何区别呢?答案很简单,前者自带控制器 ...
最新文章
- 深入WPF中的图像画刷(ImageBrush)之1——ImageBrush使用举例
- C++ Primer 5th笔记(7)chapter7 类:类的静态成员
- 【Qt】Qt工程管理
- oracle 10g/11g 命令对照,日志文件夹对照
- 前端vue的get和post请求
- 通过纯css实现图片居中的多种实现方式
- IT 实力较量:决战超级数据中心之巅
- ajax定时器怎么写,js定时器怎么写?就是在特定时间执行某段程序
- JAVA垃圾收集机制剖析
- python调用ping命令_python调用系统命令ping
- C#之Application.DoEvents()
- thinkphp5引入调用外部类
- GMbox批量正版音乐下载
- 2021数据安全与个人信息保护技术白皮书
- 什么叫特立独行,其实不过是活在自己的节奏里
- 数学分析习题解答(四:第一部分)
- 关于IOPS指标对性能的影响
- android进制之间的转换器,一个Android平台的16进制转换器
- Python——迷宫生成和迷宫破解算法
- 组播——IGMP Snooping
热门文章
- 祝各位节日快乐!20151111
- mysql,int(5)、int(10)啥区别联系
- linux内核之accept实现
- poj1321 DFS
- IIS 7.0的ASP.NET应用程序生命周期概述
- stl_vector.h
- 安装oracle11g时,Enterprise Manager配置成功,出现以下警告……
- “2016智能终端峰会新闻发布会暨移动信息化可信选型认证结果发布会” —— 在京成功召开...
- JavaScript ES6箭头函数指南
- 百度2016/2017秋招部分题目解析