一、自定义类
1.1: 继承HandlerInterceptorAdapter这个抽象类
MyInterceptor extends HandlerInterceptorAdapter
1.2:实现HandlerInterceptor这个接口
MyInterceptor implements HandlerInterceptor
1.3:不管你使用的是上面的哪种方式,必须重写三个方法
afterCompletion():当跳转完页面之后执行,也就是请求已经通过view跳转到了前台页面
postHandle():当请求已经进入了控制层,但是还没有跳转页面,这个时候会执行
preHandle():当请求进入控制层之前会执行
当该方法返回true的时候,继续执行;返回false的时候,直接请求结束
二、配置文件
在spring-mvc的配置文件中加入这一段配置
<!-- 配置自定义拦截器 -->
<mvc:interceptors>
<!--配置拦截器, 多个拦截器,顺序执行 -->
<mvc:interceptor>
<!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller,所有的path路径必须以斜线(/)开头,否则拦不住 -->
<!-- <mvc:mapping path="/" />
<mvc:mapping path="/user/**" />
<mvc:mapping path="/test/**" /> -->
<mvc:mapping path="/*.do" />
<!-- 加载的是自定义拦截器的包名、类名 -->
<bean class="common.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
<!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 -->
</mvc:interceptors>