springboot过滤器和拦截器

2024-10-22 17:02:23 手机知识百科

spring过滤器和拦截器 

Spring的过滤器和拦截器有以下区别:

1. 触发时机:过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的,而拦截器则是在servlet处理完后,返回给前端之前进行处理。

2. 使用范围:过滤器是基于回调函数的,属于Servlet规范的一部分,需要依赖servlet api,而拦截器是基于反射的,可以在任何情况下使用。

3. 依赖关系:拦截器可以获取IOC容器中的各个bean,而过滤器则不能,因为拦截器是spring提供并管理的,可以调用业务逻辑,而过滤器是JavaEE标准,只需依赖servlet api,不需要依赖spring。

4. 执行方式:过滤器的执行由servlet容器回调完成,而拦截器通常通过动态代理(反射)的方式来执行。

5. 生命周期:过滤器的生命周期由servlet容器管理,而拦截器则可以通过IoC容器来管理,因此可以通过注入等方式来获取其他Bean的实例,因此使用会更方便。

6. 应用场景:过滤器可以修改request,而拦截器不能,拦截器在做安全方面用的比较多,比如终止一些流程。

总的来说,过滤器主要用于筛选出你要的东西,比如request中你要的那部分,而拦截器主要用于做安全方面,比如终止一些流程。

版权说明: 本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。