拦截器和过滤器的区别

拦截器和过滤器两者都是使用AOP的思想,都可以实现权限、日志的验证
一、使用范围不同
1拦截器
可以使用在容器当中,Application中,可以用在web容器中
2过滤器
只能用在web容器中
二、规范不通
1拦截器是Spring中支持的
2过滤器是servlet中定义的
三、使用资源不通
拦截器在Spring中管理配置,可以使用Spring的资源信息,比如service,数据源,事务,注入到容器中就可以了。
四、过滤数据范围
拦截器只能拦截action层面的请求
过滤器对所有请求都可以起作用
五、其他
拦截器可以访问上下文中的对象,过滤器不能
拦截器在action中的整个生命周期中可以被多次调用,但是过滤器只有容器初始化的时候被调用一次
拦截器可以使用IOC容器当中的bean,过滤器不行
拦截器可以注入一个service,可以调用业务逻辑

范围
Tomcat容器—》过滤器 —》Servlet—》拦截器—》controller

拦截器:
handlerInterceptor
preHandler
postHandler
afterCompletion

过滤器
init
doFilter
destroy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
拦截器过滤器是在开发中常用的两种设计模式,用于在请求处理的不同阶段对请求进行处理和拦截。它们的区别主要体现在使用场景和功能上。 拦截器(Interceptor)是一种在请求处理的不同阶段进行拦截并插入自定义逻辑的机制。它通常用于对请求进行预处理或后处理,例如记录日志、验证权限、设置上下文环境等。拦截器可以在请求的开始、结束或异常抛出等时机进行拦截,并且可以被链式调用,即一个拦截器可以调用多个其他拦截器拦截器通常与框架或中间件紧密结合,在请求的处理过程中按照一定的顺序依次执行。 过滤器(Filter)是一种在请求到达目标处理程序之前或之后对请求进行过滤和处理的机制。它通常用于对请求进行预处理、过滤或修改,例如字符编码转换、参数校验、防止跨站点脚本攻击等。过滤器可以在请求被处理前进行处理(前置过滤器),也可以在请求被处理后进行处理(后置过滤器)。过滤器通常与Web容器(如Servlet容器)紧密结合,在请求的处理过程中按照一定的顺序依次执行。 总结来说,拦截器过滤器的主要区别在于使用场景和功能。拦截器更适合进行请求的预处理和后处理,而过滤器更适合对请求进行过滤和修改。拦截器一般与框架紧密结合,可以链式调用,而过滤器一般与Web容器紧密结合,按照一定的顺序依次执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值