文档章节

HandlerInterceptorAdapter的简介

刘太刚
 刘太刚
发布于 2017/09/08 20:07
字数 335
阅读 27
收藏 1
点赞 0
评论 0

        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 Interceptor实现URL访问校验

本文中介绍我在简单的实际应用中,针对登录用户的访问权限问题的具体实现,整体设计如下图: 图中请求进入Spring容器后会对用户的有效性、权限进行验证,只有验证都通过之后才能进入实际业务...

Laughing_Vzr
2016/10/19
231
0
spring 事务 ,hibernate 缓存问题?

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

ENZO_zhao
2013/08/15
361
3
spring的拦截器

方式: 1、实现接口:org.springframework.web.servlet.HandlerInterceptor 2、继承抽象类:org.springframework.web.servlet.handler.HandlerInterceptorAdapter spring配置文件: mvc:inte......

菜蚜
2016/01/16
89
0
Spring 拦截器配置

让普通Bean实现HandlerInterceptor接口或继承HandlerInterceptorAdapter类来实现自定义拦截器。 通过重写WebMvcConfigurerAdapter的addInterceptors方法来注册自定义拦截器。 自定义拦截器 ...

Kevin-air
2016/07/04
40
0
spring-boot 加入拦截器Interceptor

1.spring boot拦截器默认有 HandlerInterceptorAdapter AbstractHandlerMapping UserRoleAuthorizationInterceptor LocaleChangeInterceptor ThemeChangeInterceptor 2.配置spring mvc的拦截......

凯文加内特
2015/07/27
0
0
SpringMVC拦截器(资源和权限管理)

1.DispatcherServlet SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServlet。 2.静态资源不拦截 如果只配置拦截类似于*.do格式的url,则对静态资源的访问是没有问题...

不想做海贼的路飞
2016/02/24
378
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring-@RequestBody

@RequestMapping("/login")    public void login(@RequestBody String userName,@RequestBody String pwd){      System.out.println(userName+" :"+pwd);    }    ......

说回答
7分钟前
0
0
Redis安装

大家可以通过该链接获取安装详情(这是一个Word文档,支持下载): http://note.youdao.com/noteshare?id=7a327ed6c58fb2037ba537e58ecf7510&sub=480DB8EF349747C3983B73AE94D45BB1 其他参考...

一梦心草
7分钟前
0
0
MySQL按天,按周,按月,按时间段统计【转载】

https://blog.csdn.net/qq_28056641/article/details/78306870 select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(creat......

李道福
9分钟前
0
0
浅谈parallelStream

parallelStream是什么,它是一个集合的并发处理流.其作用是把一个集合中的数据分片,进行一个多线程的处理,增快运行速度. 比如说这样一段代码 private Set<SysRole> sysRoles;private Set<St...

算法之名
11分钟前
3
0
器者,道之所载

形而上者谓之道,形而下者谓之器,化而裁之谓之变;推而行之谓之通,举而措之天下之民,谓之事业。—— 《道德经》

了凡川
12分钟前
0
0
C#命名规范中文版/C#编码规范中文版

最新文档地址https://github.com/hiramtan/CSharpNamingGuidelines_Chinese C#命名规范中文版/C#编码规范中文版 示例 /*****************************************************************......

海贝Hibey
14分钟前
0
0
刚从eclipse转到Intellij IDEA,分享一些配置经验

刚从eclipse转到Intellij IDEA,分享一些配置经验,IntelliJ IDEA作为最好的Java开发工具,在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等...

舒文joven
15分钟前
1
0
lombok 引入后,测试类始终找不到get,set方法。

开发环境为idea,jdk1.7,maven3.5. 网上直接搜出来的方法有: 1、在setting里安装lombok的plugins; 2、如下图,勾选enable annocation processing选项 3、升级maven plugins插件 我尝试了以...

Kidult
21分钟前
0
0
Duang,HUAWEI DevEco IDE全面升级啦

想感受全新UI带来的视觉及交互体验、 HiKey970开发板调测、 HiAI API推荐和收藏、 深度AI模型分析等新功能, 体验高清晰度和流畅度的远程AI真机调测吗? 全新的UI设计 采用最优秀的视觉及交互...

华为终端开放实验室
29分钟前
1
0
阻止事件冒泡,阻止默认事件

1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event....

闫亚亚
32分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部