一、概述
SpringMVC拦截器可以通过两种方式:
1、实现HandlerInterceptor接口或继承HandlerInterceptor接口的实现类。
2、实现WebRequestInterceptor接口或继承WebRequestInterceptor接口的实现类。
1、实现HandlerInterceptor接口的拦截器
执行流程
创建拦截器类
实现HandlerInterceptor接口,重写以下方法。
preHandle方法:在控制器的处理请求方法前执行。返回值true继续向下,fasle中断后续操作。postHandle方法:在控制器的处理请求方法后,解析视图前执行。可对请求域中的模式或视图作修改。
afterCompletion方法:在控制器的处理请求方法完成后执行,即渲染结束之后执行。可实现资源清理、记录日志等信息。
拦截器的配置
/**代表所有路径
/index代表所有以index结尾的路径
多个拦截器,preHandle按配置文件的顺序执行。postHandle和afterCompletion按照配置文件的反序执行
<mvc:interceptors>
<!-- 配置一个全局拦截器,拦截所有请求 -->
<bean class=""/>
<!-- <mvc:interceptor>的子元素必须按照<mvc:mapping/>、<mvc:exclude-mapping/>、<bean/>的顺序配置 -->
<mvc:interceptor>
<!-- 配置拦截器作用的路径 -->
<mvc:mapping path=""/>
<!-- 配置不需要拦截作用的路径 -->
<mvc:exclude-mapping path=""/>
<!-- 匹配指定路径的请求才进行拦截 -->
<bean class=""/>
</mvc:interceptor>
</mvc:interceptors>