文章目录
- 定义与作用范围
-
- 过滤器(Filter)
- 拦截器(Interceptor)
- 过滤器实例
- 拦截器实例
- 总结
有小伙伴使用spring boot开发多年,但是对于过滤器和拦截器的主要区别依然傻傻分不清。今天就对这两个概念做一个全面的盘点。
定义与作用范围
过滤器(Filter)
过滤器是一种可以动态地拦截、处理和响应HTTP请求和响应的对象。它基于Servlet规范,可以拦截所有到达Web应用的请求,包括静态资源(如HTML、CSS、JavaScript文件等)和动态资源(如Servlet、JSP页面等)。过滤器主要用于请求的预处理和响应的后处理,如字符编码处理、URL访问记录等。
拦截器(Interceptor)
拦截器是Spring MVC框架中的一部分,它基于Spring框架的AOP(面向切面编程)思想。它主要拦截Controller层的方法调用,不会拦截对静态资源的请求。拦截器主要用于在请求处理的不同阶段(如请求进入控制器方法之前或之后)执行额外的逻辑操作,如权限检查、接口日志记录、异常处理等。
过滤器实例
定义过滤器
:实现javax.servlet.Filter接口,并重写doFilter方法。
注册过滤器
:通过@WebFilter注解自动注册,或者使用FilterRegistrationBean在Spring配置类中注册。
import