过滤器与拦截器的区别

本文对比了Filter和Interceptor在实现方式、工作原理及应用场景上的不同。Filter实现的是Servlet规范中的Filter接口,而Interceptor则是Spring框架特有的组件。两者在权限拦截、日志记录等方面有所差异,并且在访问业务逻辑和服务层的能力上也存在区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、过滤器实现的是一个Filter 接口,该接口是位于 javax.servlet包之下的,而 拦截器实现的是一个 HandlerInterceptor接口,       该接口位于springframework里面。

2、Filter中 需要实现 其 doFilter 方法完成系统的权限拦截,日志处理等工作,放行的方法是 doFilter方法,拦截器中实现   HandlerInterceptor接口,实现  preHandle 方法,preHandler中 return true表示通过放行代码,而 return false 表示不通过   代码。

3、使用的资源不同,因为 Interceptor拦截器是spring体系下的,所以可以在拦截器中注入 业务逻辑的 service 层,从而访问

    业务逻辑,但是Filter就没有这个特权,在spring作为架构的项目当中,最好的是优先使用拦截器

4、拦截器 可以访问值栈 valueStack里面的值,而 过滤器却不能访问。

        欢迎补充。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值