文档章节

Spring MVC 拦截器(1)-HandlerInterceptor

博为峰教研组
 博为峰教研组
发布于 2016/12/18 17:32
字数 475
阅读 55
收藏 1

拦截器的用途是非常广的,它主要的作用是拦截用户请求,处理数据,判定请求是否合理,决定是否放行。通常把拦截器用来验证权限、判断用登陆状态等。

springMVC中对拦截器有良好的支持。一般可通过两种方式,其一实现Spring 的HandlerInterceptor 接口或继承该接口的实现类;其二实现Spring的WebRequestInterceptor接口货继承该接口的实现类。

今天小博老师先给大家介绍SpringMVC中第一种拦截器的实现方式。我们先来看一下HandlerInterceptor接口的源码结构:

HandlerInterceptor 接口中定义了三个方法:

1. preHandle 方法。该方法会在请求处理之前进行调用。返回值是布尔值Boolean 类型的,当返回false时请求结束,后续拦截器 和Controller 都不会被执行;当返回true 时继续调用下个拦截器 的preHandle 方法,如果已经是最后一个拦截器,则调用当前请求的Controller 方法。

2. postHandle 方法。该方法在请求处理之后,即Controller 方法调用之后执行。但是将会DispatcherServlet 进行视图渲染之前被调用,因此可以对Controller 处理之后的ModelAndView 对象进行操作,以便于在视图渲染时使用。

3. afterCompletion方法。该方法在整个请求结束之后,即DispatcherServlet 渲染对应的视图之后才被执行。这个方法的主要作用是进行对象清理、资源释放。

拦截器在spring中的配置方式如下:

<mvc:interceptors>  

    <!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 -->  

    <bean class="com.bwf.interceptor.BwfInterceptor"/>  

    <mvc:interceptor>  

        <mvc:mapping path="/bwf/company"/>  

        <!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 -->  

        <bean class="com.bwf.interceptor.LoginInterceptor"/>  

    </mvc:interceptor>  

</mvc:interceptors>  

© 著作权归作者所有

博为峰教研组
粉丝 50
博文 1224
码字总数 479077
作品 0
黄浦
程序员
私信 提问
SpringMVC中使用Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判...

凯文加内特
2015/05/29
587
0
详解SpringMVC中使用Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判...

微wx笑
2018/05/11
0
0
SpringMVC使用Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判...

Rickxue
2016/01/18
164
0
springmvc 实现注解式权限验证

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

岸芷汀兰
2015/05/22
573
0
仿照源码,手写一个自定义 Spring MVC 框架

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/GitChat/article/details/97947618 前言 上节课我们学习了 Spring M...

GitChat技术杂谈
07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot全家桶,集成shiro,rabbitmq,redis, mybatis,druid,swagger

搭建了一个SpringBoot的模板,下载即可作为单体应用的服务后台模板 项目地址:https://gitee.com/devilscode/springboot_template 项目集成框架 springboot 作为基础框架 shiro 权限管理 ra...

devils_os
17分钟前
2
0
云服务器的优势有哪些?

与传统的服务器相比,云服务器有多种显著的优势,因此近年来云服务器租用一直都很受消费者的欢迎。 那么云服务器都有哪些优势呢? 云服务器的稳定性很好 虚拟主机是很多用户建站的首选方案,这...

云漫网络Ruan
18分钟前
2
0
好程序员web前端学习路线分享CSS浮动-清除浮动篇

好程序员web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动   这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响。那么到底会有什么影响呢? 1.高度塌陷   ...

好程序员官方
29分钟前
1
0
我有酒,你有故事吗?

记录学习的每一秒,巨杉技术社区有奖征文全新启动! 如果, 你热爱数据技术,乐于尝(zhe)试(teng), 又喜欢写点什么~ 那么, 无论你是架构大佬,还是DBA大神, 只要你愿意通过文字分享你...

巨杉数据库
32分钟前
2
0
【Git】ignore文件不生效

简介 使用git的过程中, 某些文件可能不希望上传到服务器,例如日志、本地化配置等信息。这时候,我们可以通过配置.gitignore文件忽略这些文件的提交。 配置.gitignore 常见的配置如下: HELP...

Areya
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部