实验代码
https://github.com/yangsuperxiaolong/TestInterceptor
###SpringMVC组件流程###
在Spring MVC的框架流程中,有一个拦截器组件,拦截器组件可以在SpringMVC流程处理中的三个流程点插入拦截器进行处理。拦截器插入的流程点如上图所示,拦截器可以在业务控制器Controller执行之前拦截,也可以在Controller执行之后拦截,还可以在视图组件解析之后拦截。
拦截器的作用
拦截器的作用从总体上来说就是在特定的位置插入逻辑处理和逻辑调用,具体作用可用于日志处理、编码转换、权限检查等功能的实现。
###拦截器规范###
- 编写规范
必须实现HandlerInterceptor接口
提供preHandle,postHandle,afterCompletion3个方法 - 配置规范
<!-- 添加拦截器组件 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="拦截器拦截的请求"/>
<mvc:execlude-mapping path="拦截器不拦截的请求"/>
<bean class="...拦截器组件"/>
</mvc:interceptor>
</mvc:interceptors>
拦截器的使用
- 编写一个拦截器组件,实现HandlerInterceptor接口
package com.hnust.springmvc.interceptor;
import java.awt.print.Printable;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.