1、实现Interceptor
很常见的执行前,执行后,最后执行的三个方法。preHandle返回true表示放行。
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle执行了");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle执行了");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion执行了");
}
}
2、编写测试代码
@RequestMapping("/testMyInterceptor")
public String testMyInterceptor(){
System.out.println("test执行了");
return "success";
}
3、注册拦截器
需要注意的是,springmvc的拦截器只能拦截Controller里的方法,不想Filter可以拦截所有资源。
<mvc:interceptors>
<mvc:interceptor>
<!--配置拦截什么方法 可以用/**等方式-->
<mvc:mapping path="/testMyInterceptor"/>
<!--注册拦截器-->
<bean class="com.hhh.t2.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
4、请求链接
<a href="testMyInterceptor">请求控制器</a>
5、结果演示
preHandle执行了
test执行了
postHandle执行了
afterCompletion执行了