全站搜索
首页/天辰娱乐登录/注册平台
首页/天辰娱乐登录/注册平台
  • 天辰娱乐注册
  • 天辰娱乐登录
  • 天辰娱乐招商QQ
  • Springboot过滤器和拦截器详解及使用场景
    作者:admin 发布于:2023-11-04 22:09 文字:【】【】【

      ,spring的功能可以被拦截器使用,在拦截器里注入一个service,可以调用业务逻辑。而过滤器是JavaEE标准,只需依赖servlet api ,不需要依赖spring。

      4、Filter是依赖于Servlet容器,属于Servlet规范的一部分,而拦截器则是独立存在的,可以在任何情况下使用。

      5、Filter的执行由Servlet容器回调完成,而拦截器通常通过动态代理(反射)的方式来执行。

      6、Filter的生命周期由Servlet容器管理,而拦截器则可以通过IoC容器来管理,因此可以通过注入等方式来获取其他Bean的实例,因此使用会更方便。

      过滤器和拦截器非常相似,但是它们有很大的区别最简单明了的区别就是过滤器可以修改request,而拦截器不能过滤器需要在servlet容器中实现,拦截器可以适用于javaEE,javaSE等各种环境拦截器可以调用IOC容器中的各种依赖,而过滤器不能过滤器只能在请求的前后使用,而拦截器可以详细到每个方法区别很多,大家可以去查下

      总的来说过滤器就是筛选出你要的东西,比如requeset中你要的那部分拦截器在做安全方面用的比较多,比如终止一些流程网上有一张图片很不错,这里拷过来给大家看一下

      过滤器(Filter) :可以拿到原始的http请求,但是拿不到你请求的控制器和请求控制器中的方法的信息。

      拦截器(Interceptor):可以拿到你请求的控制器和方法,却拿不到请求方法的参数。

      切片(Aspect): 可以拿到方法的参数,但是却拿不到http请求和响应的对象

      这里直接用@WebFilter就可以进行配置,同样,可以设置url匹配模式,过滤器名称等。这里需要注意一点的是@WebFilter这个注解是Servlet3.0的规范,并不是Spring boot提供的。除了这个注解以外,我们还需在启动类中加另外一个注解:@ServletComponetScan,指定扫描的包。

      我们还需要实现HandlerInterceptor这个接口,这个接口包括三个方法,preHandle是请求执行前执行的,postHandler是请求结束执行的,但只有preHandle方法返回true的时候才会执行,afterCompletion是视图渲染完成后才执行,同样需要preHandle返回true,该方法通常用于清理资源等工作。除了实现上面的接口外,我们还需对其进行配置:

      这里我们继承了WebMVCConfigurerAdapter,这里我们重写了addInterceptors这个方法,进行拦截器的配置,主要配置项就两个,一个是指定拦截器,第二个是指定拦截的URL。

      坑坑坑:拦截器不生效常见问题:1)是否有加@Configuration2)拦截路径是否有问题 ** 和 *3)拦截器最后路径一定要 “/*”, 如果是目录的话则是 //

      拦截器本质上是面向切面编程(AOP),符合横切关注点的功能都可以放在拦截器中来实现,主要的应用场景包括:

      1)过滤敏感词汇(防止sql注入)2)设置字符编码3)URL级别的权限访问控制4)压缩响应信息

    相关推荐
  • 新风净化机
  • Springboot过滤器和拦截器详解及使用场景
  • 医疗行业过滤器市场调研报告-主要企业、市场规模、份额及发展趋势
  • 过滤器 和 拦截器的 6个区别(别再傻傻分不清了)
  • 519网络文学读书日书旗小说用免费精品作品邀读者徜徉书海
  • 空气过滤系统的使用与维护
  • 凤凰文昌阁小学三年级学生制作空气净化器
  • 过滤技术
  • 秋日国漫周更表| 一周国漫追番表快来看看有没有你喜欢的
  • CPF-180250 池塘生化压力过滤器
  • 脚注信息
    Copyright © 2026 首页/天辰娱乐登录/注册平台 TXT地图 HTML地图 XML地图