web中filter、interceptor、aspect

11 篇文章 0 订阅

对于filter、interceptor、aspect 有相似也有区别

filter

过滤器可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response),并对请求响应做出过滤操作,过滤器依赖于servlet容器,一个过滤器实例只能在容器初始化时调用一次,在容器结束时销毁。

  1. filter里面是能够获取到请求的参数和响应的数据
  2. filter 不能获取到访问的handler(出去配置指定的handler 的过滤器);
  3. web应用启动的顺序是:listener->filter->servlet,所以导致filter 不能引用spring 中注入的bean;

Interceptor

过滤器可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response),并对请求响应做出过滤操作,过滤器依赖于servlet容器,一个过滤器实例只能在容器初始化时调用一次,在容器结束时销毁。

  1. 拦截器中可以获取到Controller对象
  2. 拦截器的三个方法,区别preHandle是handler前执行,postHandler,afterCompletion在方法后执行,postHandler有异常是不会执行的,afterCompletion不管是否有异常都会执行;并且在参数中有Exception ex 参数 可以捕获异常对象。
  3. web应用启动的顺序是:listener->filter->servlet,所以导致filter 不能引用spring 中注入的bean;

Aspect

  1. 常见使用日志,事务,请求参数安全验证,通过获取到的参数
  2. 但是取不到(ServletRequest request, ServletResponse response)。

以上是简单的描述,具体的使用可以借鉴网上的文章或者查看源码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值