SpringMVC学习-7
拦截器的概述
- SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。
- 可以定义拦截器链(栈),连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。
- 拦截器和过滤器的功能比较类似,有区别
- 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。
- 拦截器是SpringMVC框架独有的。
- 过滤器配置了/*,可以拦截任何资源。
- 拦截器只会对控制器中的方法进行拦截。
- 拦截器也是AOP思想的一种实现方式
- 发送请求时被拦截器拦截,在控制器的前后添加额外功能.
- 跟 AOP 区分开.AOP 在特定方法前后扩充(对 ServiceImpl)
- 拦截器,请求的拦截.针对点是控制器方法.(对 Controller)
- 想要自定义拦截器,需要实现HandlerInterceptor接口。
实现自定义拦截器的步骤
新建controller并实现HandlerInterceptor重写方法
HandlerInterceptor接口中的方法
方法名 执行顺序 页面跳转 返回值 preHandle controller方法执行前执行拦截的方法 request请求转发.response重定向 true:放行. false:不放行 postHandle controller方法执行后执行的方法,在JSP视图执行前 request请求转发.response重定向 无返回值 postHandle 在JSP之后执行 request,response不能在跳转页面 无返回值 配置SpringMVC.xml文件
实现自定义拦截器栈
前两步一样,配置SpringMVC.xml文件
其两个拦截器方法的依次实现顺序遵循,先进后出.即在控制器之前执行的方法,先进的先执行。在控制器后执行的方法,后进的先执行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kylin!
评论