过滤器(Filter) | 拦截器(Interceptor) | |
来源 | ①来源于javax.servlet.Filter接口 (JavaEE8、Springboot 2.x、Tomcat 9) ②Springboot3后来源于jakarta.Filter接口 (JavaEE9+、Springboot 3.x、Tomcat 10+) | 来源于Spring,实现了org.springframework.web.servlet接口 |
适用范围 | 依赖于Tomcat等容器,只能作用于web应用 | 由Spring容器管理,并不依赖Tomcat等容器,可以在web应用、非web应用如(Application)等应用 |
实现原理 | 基于过滤器链ApplicationFilterChain实现 | 基于反射 |
使用场景 | 字符编码设置、响应数据压缩(通用功能) | 登陆判断、权限验证、日志等(偏向业务功能) |