实现HandlerInterceptor接口
创建一个普通类SameUrlDataInterceptor,自定义实现类实现 HandlerInterceptor接口,需加上@Controller注解
boolean preHandle()该方法在目标方法之前被调用,返回true则继续执行,返回false则不会继续后边的拦截器以及目标方法;可以考虑做权限,日志或者事务等。
void postHandle()调用目标方法之后,但渲染视图之前被调用;对请求域中的属性或者视图做出修改!
void afterCompletion()渲染视图之后被调用;可以在该方法中进行一些资源清理的操作
继承HandlerInterceptorAdapter类
创建一个类SameUrlDataInterceptor,继承HandlerInterceptorAdapter类,不需要添加注解。
添加拦截器配置
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*.html" />
<mvc:mapping path="/*.do" />
<bean class="com.wpao.shop.util.SameUrlDataInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
执行顺序
preHandle() ----> HandlerAdapter ----> postHandle() ----> DispatcherServlet ----> afterCompletion()