拦截器和过滤器之间的区别

拦截器和过滤器之间的区别

Spring内部就有一个拦截器,比如事物拦截器、日志的拦截器,实现的原理就是就是使用AOP的切面,进行配置切点,在配置拦截器中有配置前置通知、后置通知、异常通知和环绕通知。
只需要写一个拦截器的类,内部配置方法

Spring的拦截器其实和servlet内的过滤器filter的作用其实差不多,两者其实没有什么可比性,两者不属于同一个技术体系内部的,若真的有区别,就是一个执行时机的区别,只是在项目中,请求先经过servlet的过滤器,才会进入到Spring,进入Spring项目内部,才会执行拦截器的功能。

理解

  1. 过滤器(filter)

    filter是javaweb的servlet体系内,依赖servlet容器,一般用于对请求request和响应response的信息进行过滤,比如:过滤参数、字符编码、敏感字符等

  2. 拦截器(Interceptor)
    interceptor是SpringMVC体系内,依赖Spring容器,基于AOP动态代理实现的,一般常用于对业务层的业务方法进行处理,比如实现系统日志、事务机制、权限检查、性能监控等,通过拦截器就比较好实现。虽然过滤器也是可以实现日志记录、权限检查等效果,但是过滤器只能在servlet前后执行,而拦截器则可以深入到方法执行前后、异常抛出前后执行,所以在Spring体系内,推荐使用拦截器进行日志和事务的实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值