创建名为spring_mvc_interceptor的新module,过程参考9.1节和9.5节12.1.1、页面请求示例
与自定义的过滤器一样,自定义的拦截器也要配置后才能生效;
过滤器是服务器中的组件,所以配置到 web.xml 中;
拦截器是 springmvc 中的组件,因此要配置到 springmvc 的配置文件中。
因为在配置拦截器时,没有指定要拦截的路径,所以访问任何DispatcherServlet处理的资源时,拦截器都会执行。
除了使用 bean 标签通过全限定类名来配置拦截器,还可以通过 ref 标签引用已存在的 bean 组件来配置拦截器12.3.1、将拦截器标识为bean组件
因为拦截器不属于持久层、业务层和控制层,所以应该用 @Component 注解将其标识为一个 bean 组件
通过上述的方式来配置拦截器,会对 DispatcherServlet 所处理的所有请求都进行拦截;
在实际情况中,可能只需要拦截部分请求,或排除部分请求的拦截。12.4.1、精确的拦截配置
如上图所示,拦截了一级路径的请求
如上图所示,拦截了二级路径的请求
如上图所示,没有拦截/abc的请求
注意:为实现演示效果,本例已在springmvc配置文件中设置了关于/abc请求的视图控制器
注意:此时 AAAInterceptor 和 BBBInterceptor 拦截器的 preHandle() 方法返回值都是 true12.5.4、情况二
注意:此时 AAAInterceptor 拦截器的 preHandle() 方法返回值为true,而 BBBInterceptor 拦截器的为 false12.5.5、执行顺序流程图
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |