当前位置:   article > 正文

SSM之SpringMVC拦截器/SpringMVC拦截器怎么实现?拦截器作用是什么?_在spring mvc中,可以将多个拦截器组合成一个拦截链的作用是什么

在spring mvc中,可以将多个拦截器组合成一个拦截链的作用是什么

写在前面
记录自己的SpringMVC学习之旅,若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库ssm-learning克隆下载学习使用!

2.5 SpringMVC拦截器

2.5.1 Spring MVC拦截器的作用

拦截器(Interceptor)类似于Servlet中的过滤器Filter,用于对处理器进行预处理和后处理。
将拦截器按一定顺序连接成一条链,这条链称为拦截器链(Interceptor Chain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用,这也是AOP思想的体现。

2.5.2 拦截器与过滤器的区别

区别 使用范围 配置 拦截范围
过滤器Filter 是Servlet规范一种,可在任何Java Web项目使用 在web.xml文件中的url-pattern中配置/* 只有在配置后才对所有访问资源拦截
拦截器Interceptor 属于SpringMVC独有的,只可在使用其框架时使用 在SpringMVC.xml文件中配置mvc:mapping path=" "/> 在配置之后才可对所有资源进行拦截,但可通过<mvc:exculde-mapping path=""/>标签排除不需要拦截部分

2.5.3 拦截器方法

拦截器都是自定义的,但都要实现接口HandlerInterceptor,一般需要重写三个方法,即:

  • preHandle().目标方法执行前执行它,返回值为布尔类型,为false则不执行后面所有方法,一般用于判断访问时是否拥有许可证,防止恶意访问
  • postHandle().目标方法执行后执行,DispatcherServlet进行视图处理前执行,可对视图对象进行修改操作并返回
  • afterCompletion().整个拦截方法执行后执行,也就是DispatcherServlet进行视图处理后执行

注意:这三个方法都是AOP原理的具体体现,目标方法为切点,controller中方法为切面
执行流程:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/972858
推荐阅读
相关标签
  

闽ICP备14008679号