文档章节

HandlerInterceptorAdapter的简介

刘太刚
 刘太刚
发布于 2017/09/08 20:07
字数 335
阅读 32
收藏 1

        HandlerInterceptorAdapter中有三个方法:方别是preHandle,postHandle, afteCompletion。当我们需要使用的HandlerInterceptorAdapter实现相应的功能的时候(配置一个拦截器),就需要继承HandlerInterceptorAdapter,并实现其中相应的方法。现在就来介绍一下HandlerInterceptorAdapter三方法。

一、三个方法的执行顺序

        请看下图:

当执行以上代码时候,会看到,三个方法的执行顺序为:preHandle-->postHanle-->afterCompletion。如下图:

具体来说,preHandle会在请求到达控制器前被调用;postHandle会在请求完成后,在视图被渲染前被调用;afterCompletion在视图被渲染后被调用。

        值得注意的是,当preHandle中的返回值为false时(默认情况下为true),将不会调用postHandle和afterCompletion。

二、三个方法中的参数

        1、三个方法中三个共同的参数

HttpServletRequest request, HttpServletResponse response, Object handler

HttpServletRequest request——包含所有请求的内容;

HttpServletResponse response——包含所有响应的内容;

Object handler——表示被拦截的请求的目标对象。

        2、postHandle中的特殊参数

ModelAndView modelAndView

可以通过ModelAndView的参数来修改显示的视图,或修改发往视图的方法。

        3、afterCompletion中的特殊参数

Exception ex

当ex!=null时,表示在请求的过程中发生了错误,ex会携带错误相关的信息。

 

 

 

 

 

 

        

© 著作权归作者所有

共有 人打赏支持
刘太刚
粉丝 7
博文 37
码字总数 27804
作品 0
贵阳
程序员
SpringBoot之Interceptor拦截器

前言:之前跨域有用过,拦截器是拦截通过SpringMvc的请求,中间进行一些逻辑校验,比如权限控制。类似于Servlet的Filter 自定义拦截器的话 可以通过实现HandlerInterceptor 或者继承Handler...

王念博客
2016/10/14
989
0
springmvc 拦截器中ModelAndView为null

首先在controller方法是这样的: public void methodName(ModelMap model, ...............){ model.put(XXX,XXX); } 有两种情况: 1.controller方法参数中带HttpServletResponse response时,......

Liebert
2015/09/06
3.4K
2
spring中HttpServletRequestWrapper装饰者模式是如何理解的?

import java.awt.Font;import java.util.HashMap;import java.util.Map; interface FontProvider { } class DefaultFontProvider implements FontProvider { } class BufferedFontProvider i......

superchris
2015/12/10
2K
5
springmvc 实现注解式权限验证

对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现。但借助于Spring MVC中的act...

岸芷汀兰
2015/05/22
0
0
spring 事务 ,hibernate 缓存问题?

我有两个实体A,B, A实体在action里面改变了属性的值,没有update , 然后用spring 的拦截器HandlerInterceptorAdapter 下面的afterCompletion()方法 保存了B实体,但是最后程序也更新了A实体...

ENZO_zhao
2013/08/15
361
3

没有更多内容

加载失败,请刷新页面

加载更多

python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
0
1
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
9
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
1
0
我为什么用GO语言来做区块链?

Go语言现在常常被用来做去中心化系统(decentralised system)。其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。 我们在决定做Karachain的时候,考量(b...

HiBlock
昨天
1
0
大数据学习脑图以及入门教程!

近些年,大数据的火热可谓是技术人都知道啊,很多人呢,也想学习大数据相关,所以,这里分享几个大数据脑图,希望可以让你清楚明白从哪里入门大数据,知道该学习以及掌握哪些知识点; 大数据...

董黎明
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部