SpringMVC拦截器详解
SpringMVC之拦截器
拦截器概述
1.1什么是拦截器(HandleUbterceper)
拦截器可以在目标方法执行之前进行一些拦截工作,或者在目标方法执行过后进行一些操作.在javaWeb的学习当中我们就学过了拦截器,当然在SpringMVC也为我们提供了新的拦截器,在本篇文章中我们就来研究SpringMVC中的拦截器.
1.2拦截器的定义
1.编写类实现HandlerInterceptor
接口
2.继承HandlerInterceptor
接口的实现类(如HandlerInterceptorAdapter
)来定义。
3.通过实现WebRequestInterceptor
接口
4.继承WebRequestInterceptor
接口的实现类来定义。
栗子
下面我们以实现HandleInterceptor接口来举个栗子
public class SpringFilterTest implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("1....preHandle...执行了"); return true;//当它为true时放行 }
@Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("1....postHandle.....执行了"); }
@Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("1....afterCompletion.....执行了"); }}
方法
preHandle()方法
preHande()
方法会在控制器方法前进行调用,其返回值决定是否中断后续操作.返回值为true表示继续执行,返回值false表示中断后续操作(包括下一个拦截器或者控制器的方法执行)
postHandle()方法
postHandle()
方法在目标方法执行后执行,且在视图解析器前执行,我们可以在此中对视图进行修改.
afterCompletion()方法
afterCompletion()
方法在整个请求执行完毕后执行,既视图渲染完成后执行.我们可以记录一些日志,缓存清理等.
配置
在编写了自定义的拦截器后,拦截器并不能工作,现在的我们需要对拦截器进行配置
<mvc:interceptors> <!--会拦截所有Controller类的所有方法--> <bean class="net.Arenly.utils.FilterTest"></bean> <mvc:interceptor> <!--配置单方法拦截--> <mvc:mapping path="/test01"/> <bean class="net.Arleny.service.DownloadT"/> </mvc:interceptor> <mvc:interceptor> <!--拦截所有请求,排除拦截 /test01 请求--> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/test01"/> <bean class="net.Arleny.service.DownloadT"/> </mvc:interceptor></mvc:interceptors>
运行结果
1....preHandle...执行了test执行了1....postHandle.....执行了页面执行了1....afterCompletion.....执行了
通过控制台打印的数据我们可以看出来 preHandle放在在目标方法执行之前,postHandle在页面渲染之前,afterCompltion方法在页面渲染完成之后。
吾生也有涯,而知也无涯。——庄子
微信号 : Arenly-bilibili : 爱无理取闹的猪
SpringMVC拦截器详解相关推荐
- 第五章 处理器拦截器详解——跟着开涛学SpringMVC
5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. ...
- springMVC教程--拦截器详解
3 拦截器 3.1 定义 Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理. 3.2 拦截器定义 实现HandlerInte ...
- 第五章 处理器拦截器详解
5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器) 类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. ...
- structs2拦截器详解
Struts2(XWork)提供的拦截器的功能说明: 拦截器 名字 说明 Alias Interceptor alias 在不同请求之间将请求参数在不同名字件转换,请求内容不变 Chaining In ...
- 一文贯通→过滤器与拦截器详解
一.过滤器Filter 过滤器英文叫 Filter,是 JavaEE 的标准,依赖于 Servlet 容器,可以按照指定顺序配置多个.常用来配置请求编码以及过滤一些非法参数,垃圾信息或者是网站登录验证 ...
- java参数action_Struts2之Action接收请求参数和拦截器详解
技术分析之在Struts2框架中使用Servlet的API 1. 在Action类中也可以获取到Servlet一些常用的API 需求:提供JSP的表单页面的数据,在Action中使用Servlet的A ...
- struts2 18拦截器详解(五)
I18nInterceptor 该拦截器处理defaultStack第四的位置,是用来方便国际化的,如果说我们的一个Web项目要支持国际化的话,通常的做法是给定一个下拉框列出所支持的语言,当用户选择了 ...
- AspectCore动态代理中的拦截器详解(一)
前言 在上一篇文章使用AspectCore动态代理中,简单说明了AspectCore.DynamicProxy的使用方式,由于介绍的比较浅显,也有不少同学留言询问拦截器的配置,那么在这篇文章中,我们来 ...
- 过滤器和拦截器详解
过滤器 和 拦截器的 6个区别,别再傻傻分不清了_程序员小富的博客-CSDN博客_过滤器和拦截器 若依登陆过程及过滤器拦截器的使用: 用户登陆接口:1.把用户信息通过uuid即token作为key,存 ...
最新文章
- linux shell sed 删除文件 前几行
- 【CodeForces】576 C. Points on Plane
- sql注入-error、boolean、time-based and 宽字节
- 帮助你高效开发Ajax应用的超酷jQuery插件 - AjaxML
- 点击按钮显示div并向div中传递参数
- [USACO10DEC] Treasure Chest
- matlab频响优化,MATLAB中关于频响图函数最优化的程序问题
- 给页面中的所有链接新窗口中打开
- (三)Appium-desktop 打包
- python unpack_python中struct.pack()函数和struct.unpack()函数
- 分享一个NHibernate的博客链接
- pytorch---之cudnn.benchmark和cudnn.deterministic
- TensorFlow学习笔记——循环神经网络
- 地震时,它可以救你一命!
- centos8 挂载ntfs_Centos 挂载Ntfs分区
- MMKV_MMKV使用教程
- hyper-v虚拟机驱动_如何在Hyper-V虚拟机中访问本地和USB硬盘驱动器
- 嵌入式软件工程师笔试面试指南目录
- LM75 --温度采集(时序及代码)
- ABP文档 - Mvc 控制器
热门文章
- 北航非全日制研究生计算机分数线,2019年北京航空航天大学在职研究生的录取分数线会不会高于2018年...
- topcoder开发
- 计算机视觉-opencv银行卡识别
- Unexpected lexical declaration in case block.
- FFmpeg从入门到牛掰(一):解复用(demux)讲解
- 写一个rtrim()函数消除字符串后面的空格字符。编main函数调用测试它。
- BootStrap #响应式布局 #组件
- c#4.0捷径教程委托、匿名方法和事件笔记
- 面向网络转型的编排管理系统和ONAP自研产品介绍
- linux 触摸屏测试源码_Linux和android下测试键盘和触摸屏