Loading

HandlerInterceptor 拦截器

1.prehandle()
boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler):
用来在request移交给处理方法之前拦截它。
如果返回true则继续执行关于这个请求的其它拦截器,若没有更多的拦截器则将它移交给方法。
如果返回false则说明请求被拦截器拦截。

2.postHandle()
void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView):
这个方法在HandlerAdapter调用了处理程序但是DispatcherServlet未呈现视图view时调用,可以添加属性到ModelAndView给视图层使用。

3.afterCompletion()
void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex):
这是一个 HandlerInterceptor 的回调方法,一旦执行处理程序并呈现视图,就会调用该方法。

执行顺序
如果配置了多个 Spring 拦截器,preHandle ()方法按配置顺序执行,而 postHandle ()和 after Completion ()方法按相反的顺序调用。

posted @ 2022-06-10 14:52  瑞莫蒂  阅读(53)  评论(0)    收藏  举报