文档章节

Spring MVC 拦截器

博为峰教研组
 博为峰教研组
发布于 2017/04/06 11:17
字数 473
阅读 12
收藏 0

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
黄浦
程序员

暂无文章

js 操作cookie

var cookie = {// 设置cookie方法set:function(key, val, time){// 获取当前时间var date = new Date();// 将date设置为n天以后的时间var expiresDays = time;//...

小丶二
11分钟前
0
0
限制root远程登录 su和sudo命令

9月21日任务 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录 对于Linux而言,权限的重要性毋庸置疑!对于普通用户而言无法执行那些只有root用户才能有效的命令,导致工作无法有效进行; 系统...

robertt15
12分钟前
0
0
MQTT协议的初浅认识之通讯级别和持久会话

背景 这是我最近了解MQTT协议的最后一部分内容了,MQTT协议里面的QOS和Keep Alive是两个比较重要的内容。QOS的设置,直接影响了订阅客户端与中间件之间的消息交互行为。而Keep Alive直接影响...

亚林瓜子
14分钟前
1
0
calc

width: calc(100% - 30px); 特别注意:减号左右空格,均不能去掉。 width: calc(100% - 30px);

柴高八斗之父
23分钟前
0
0
Spring Cloud Gateway全局过滤器GlobalFilter:返回消息和重定向

Spring Cloud Gateway的全局过滤器GlobalFilter,顾名思义,声明后会对所有的请求生效,可以用来做权限控制,这里简单记录一下拦截到非法请求后如何返回自定义信息和将请求重定向到指定URL。...

夜雨寄北09
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部