HandlerInterceptorAdapter是什么?
HandlerInterceptorAdapter是Spring框架提供的一个适配器,通过继承它可以很方便的实现一个拦截器;
HandlerInterceptorAdapter怎么用?
它有三个方法:
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {
return true;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception {
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {
}
preHandle:在进入Controller层之前调用;
postHandle:在Controller调用之后,DispatcherServlet进行视图的渲染之前执行,也就是说在这个方法中你可以对ModelAndView进行操作。
afterCompletion:在所有请求完成之后
上面是如何自定义拦截器,如要使得拦截器生效,则需对Spring进行配置;如,创建一个配置类继承WebMvcConfigurationSupport ,并在方法中把刚才自定义的拦截器添加进去。
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new VerifyHandlerInterceptor());
}
}