过滤器使用场景

​ 过滤器(Filter),拦截器(Interceptor),和切面编程(AOP,Aspect-Oriented Programming)是在软件开发中用于实现横切关注点(cross-cutting concerns)的不同技术。

img

过滤器(Filter):

过滤器是在 Java Web 应用中使用的一种机制,通常与 Servlet 技术一起使用。
过滤器用于在请求被发送到 Servlet 之前或响应被发送到客户端之前执行特定的任务。
主要用于处理与 HTTP 请求和响应相关的内容,如编码转换、身份验证、日志记录等。
过滤器是 Java EE 规范的一部分,可以配置在 web.xml 文件中。

过滤器使用场景

  • 统⼀设置编码
  • 过滤敏感字符
  • 登录校验
  • URL级别的访问权限控制
  • 数据压缩

拦截器(Interceptor):

拦截器是在 Spring 框架中用于处理请求的一种机制。
与过滤器类似,拦截器可以在请求被处理前或者响应被发送前执行一些操作。
与过滤器相比,拦截器更加灵活,能够直接访问 Spring 的上下文(ApplicationContext)和被调用的控制器。
拦截器通常用于处理业务逻辑,例如权限验证、日志记录等。

拦截器使用场景

  • ⽇志记录
  • 权限校验
  • 登录校验
  • 性能检测[检测⽅法的执⾏时间]
  • 其实拦截器和过滤器很像,有些使⽤场景。⽆论选⽤谁都能实现。需要注意的使他们彼此的使⽤范围,触发机制。

切面编程(AOP):

切面编程是一种编程范式,它通过将横切关注点从核心业务逻辑中分离出来,以模块化的方式进行开发。
AOP 通过在不同的层次上,如方法调用、对象实例化等,注入横切关注点。
在 Spring 中,AOP 可以通过切面(Aspect)实现。切面定义了横切关注点的逻辑,而连接点(Join Point)表示在应用程序执行过程中插入切面的点。
切面可以用于处理一系列相关的横切关注点,例如事务管理、性能监控等。

总结差异:

过滤器和拦截器主要用于处理请求和响应,而 AOP 更广泛地涉及到对方法调用和对象实例化等横切关注点的处理。
过滤器通常与 Servlet 相关联,拦截器通常与 Spring MVC 相关联,而 AOP 是一种更为通用的编程范式,可以用于各种应用场景。
过滤器和拦截器是基于面向对象的编程思想,而 AOP 是一种更高层次的编程范式,强调横切关注点的模块化。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot过滤器使用场景可以是以下几个方面: 1. 权限控制:可以在过滤器中进行用户身份验证和权限验证,以确保只有具有特定权限的用户才能访问某些资源。例如,可以使用过滤器来拦截需要登录的请求,并检查用户是否已登录,如果未登录,则重定向到登录页面。 2. 请求日志记录:过滤器可以用于记录请求的详细信息,如请求的URL、请求的参数、请求的方法等。这对于分析和排查问题非常有用。可以在过滤器中将这些信息写入日志文件或发送到监控系统。 3. 请求头处理:过滤器可以对请求头进行处理,例如添加或删除某些请求头。这在需要在请求中添加特定的头信息或删除某些敏感信息时非常有用。 4. 请求/响应数据处理:过滤器可以对请求和响应的数据进行处理。例如,可以在过滤器中对请求的参数进行解密或加密,对响应的数据进行压缩或加密。 5. 异常处理:过滤器可以用于捕获和处理请求处理过程中发生的异常。可以在过滤器中对异常进行记录、处理或返回自定义的错误信息。 总的来说,SpringBoot过滤器可以在请求到达目标资源之前或之后进行一些处理操作,如权限验证、请求日志记录、请求头处理、数据处理和异常处理等。这使得过滤器在Web应用程序中具有广泛的使用场景,可以帮助我们实现一些通用的功能和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值