[总结]过滤器(Filter)和拦截器(Interceptor)的区别

 

拦截器

过滤器

实现

java反射

函数回调

规范

spring框架

servlet规范

依赖

不依赖servlet容器

,依赖于web框架(比如springMVC)

依赖servlet容器

作用范围

action请求,spring中是contgroller

几乎所有请求起作用(除了web程序,也可以用于Application,Swing)

使用spring资源(访问上下文,值栈里的对象,获取IOC容器中的各个bean)

可以

不可以

在action的生命周期中,调用次数

可以多次

只能在容器初始化时调用一次(注意:有时候我们的项目看起来可能调用一次请求,但实际过滤多次,是因为非动、静态资源分离的项目,请求又附带的静态资源,导致过滤器触发多次)

触发时机

请求进入servlet后,但请求进入controller之前。

请求结束返回,是在controller处理完后,返回给servlet之前。

请求进入容器后,但请求进入servlet之前。

请求结束返回,是在servlet处理完后,返回给前端之前。

传参

HttpServletRequest/Response

ServletRequest/Response

 

 

 

 

 

 

参考文章:

拦截器和过滤器的区别 - THISISPAN - 博客园 https://www.cnblogs.com/panxuejun/p/7715917.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章