1.自定义一个拦截器类首先要实现HandlerInterceptor接口,然后在实现该接口中的三个方法
public class LoginHandlerInterceptor implements HandlerInterceptor {
@Override
public boolean (HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
2.preHandle()使用在 Controller方法处理之前,当定义了多个拦截器类时,Intercepter按照声明的顺序进行执行,如果返回值为true,则继续执行,false中断执行。
3.postHandle()使用在Controller方法处理完之后,DispatcherServlet进行视图的渲染之前,也就是说在这个方法是对ModelAndView进行操作, preHandle返回true才可以调用该方法。
4.afterCompletion()使用在DispatcherServlet进行视图的渲染之后,preHandle返回true才可以调用该方法。