过滤器,拦截器,aop之间差异

过滤器,拦截器,aop之间差异

springmvc的流程:

image-20231129195722601

过滤器

过滤器拦截的是URL,用于处理HTTP请求和响应

  • 位置: 主要应用于Web开发中,在Servlet容器中使用。

  • 范围: 作用范围覆盖整个请求的生命周期,包括请求前的预处理和响应后的处理。

  • 调用时机: 在请求进入目标资源之前执行预处理,离开目标资源之后执行后处理。

  • 主要功能: 用于处理HTTP请求和响应,可以进行字符编码转换、身份验证、日志记录等。

  • 配置: 通过在web.xml中配置过滤器来指定过滤器的生命周期和作用范围。

拦截器

拦截器拦截的是URL,用于处理HTTP请求和响应

  • 位置: 主要应用于Web框架(如Spring MVC)中,也可用于其他应用层面。

  • 范围: 主要作用于方法调用的层面,可以针对Controller中的方法进行拦截。

  • 调用时机: 在请求进入目标方法之前和离开目标方法之后执行。

  • 主要功能: 通常用于处理方法级别的拦截,例如权限验证、日志记录、性能监控等。

  • 配置: 通过配置拦截器链或使用注解来指定拦截器的应用范围和顺序。

AOP

面向切面拦截的是类的元数据(包、类、方法名、参数等)

AOP(面向切面编程)

  • 位置: 可以应用于多个层次,不仅限于Web开发。

  • 范围: 主要用于解决横切关注点的问题,将与业务逻辑无关的横切关注点从业务逻辑中分离出来。

  • 调用时机: 在方法调用的各个阶段,如方法前、方法后、方法异常等,通过切面进行插入。

  • 主要功能: 通过定义切面,可以实现横切关注点的功能,例如事务管理、日志记录、安全性检查等。

  • 配置: 通过配置切面和通知(Advice)来指定横切关注点和切入点,可以通过XML配置、注解或者AspectJ等方式实现。

综上所述,过滤器主要用于整个请求的生命周期,处理HTTP请求和响应;拦截器主要用于方法调用的层面,实现方法级别的拦截;AOP则是一种更广泛的编程范式,用于解决横切关注点的问题,提高代码的模块化。

image-20231129200113253

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值