一、拦截器是什么?
当请求来到DispatchServlet时,会根据HandlerMapping的机制找到处理器,返回HandlerExecutionChain对象。这个对象包含处理器和拦截器。拦截器用来增强处理器的功能。
- 处理器映射---【返回HandlerExecutionChain】处理器handler
- HandlerExecutionChain=处理器+拦截器
二、拦截器接口
public interface Handlerlnterceptor {
//处理器执行前方法 boolean preHandle(request,response,handler)
//处理器处理后方法 void postHandle(request,response,handler,ModelAndView)
//处理器完成后方法 void afterCornpletion(request,response,handler,Exception)
}
+---------------+
| preHandle |
+-------+-------+
|
+-------+-------+ +--------------+
| 处理器 +-----------> | postHandle | +------------+
+---------------+ +--------------+ |
|
+----------------+ +--------------+ |
|afterCornpletion+<------------+ 视图处理 | <-----------+
+----------------+ +--------------+
三、注册拦截器
在配置文件中实现WebMvcConfigurer接口,最后覆盖其addlntereptors方法进行注册拦截器
// 注册拦截器到Spring MVC机制,然后它会返回一个拦截器注册
InterceptorRegistration ir = registry.addInterceptor(new Interceptor1());
// 指定拦截匹配模式,限制拦截器拦截请求
ir.addPathPatterns("/interceptor/*");
四、拦截器顺序
责任链方式的顺序。按照注册时的顺序来。
博客介绍了拦截器相关知识。请求到DispatchServlet时,HandlerMapping会返回含处理器和拦截器的HandlerExecutionChain对象,拦截器可增强处理器功能。还提及拦截器接口、注册方法,其顺序按注册时的责任链方式排列。
1395

被折叠的 条评论
为什么被折叠?



