过滤器和拦截器

1.过滤器和拦截器简述过滤器Filter和拦截器Interceptor,在功能方面很类似,但在具体实现方面差距还是比较大的。


2.过滤器的配置
2.1 自定义过滤器,实现Filter接口(SpringBoot 3开始,jakarta.servlet.Filter)2.2重写doFilter,实现过滤逻辑,酌情放行
2.3创建注解,实现过滤的范围配置


3.拦戳器的配置
3.1 自定义拦截器,实现HandlerInterceptor接口3.2 实现接口中的拦截方法(preHandle-请求执行前、postHandler-请求执行后、aftercompletion-视图演染后)3.3 创建配置类,实现WebMvcConfigurer接口,重写addInterceptors方法


4.总结
4.1 Filter依赖于Servlet容器,属于Servlet规范的一部分,而Interceptor依赖于springMVC框架;

4.2 Filter的生命周期由servlet容器管理,而Interceptor通过I0C容器来管理,可通过注入等方式来获取其Bean的实例:

4.3 Filter可拦截所有web资源(包括Jsp,Servlet,静态资源),而Interceptor则只拦截controller。

你可能感兴趣的:(java)