当请求来到DispatcherServlet时,它会根据 HandlerMapping的机制找到处理器,这样就会返回一个HandlerExecutionChain对象,这个对象包含处理器和拦截器。
1 拦截器的设计
public interface HandlerInterceptor {
// 处理器执行前方法
default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return true;
}
// 处理器处理后
default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
}
// 处理完成后方法
default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
}
}
当我们自定义方法时,只需要实现HandlerInterceptor,覆盖其对应的方法即可。
2 自定义简单拦截器
import org.springframework.web