- Filter的实现依赖于servlet,interceptor依赖于java反射机制;
- Filter可以对几乎所有请求起作用;
-
filter的过滤范围比interceptor大;可以对几乎所有请求起作用,除了过滤请求外,可以通过“通配符”保护页面、图片、文件等;而interceptor只能过滤请求,只对action请求起作用,在action开始之前开始,在action结束后结束;
- interceptor可以访问action上下文、值栈里的对象,而filter不能;
-
Interceptor只能在初始化时被调用一次,而filter可以多次被调用;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------


<a href="${domainHotel}/?site=hotel&clear=true" class="ld-gobuy">
请求有多种多样,看上图列举的请求,有“form标签里action属性的请求”,有ajax请求,有href请求... ...形式挺多样;
而“form标签里action属性的请求”叫action请求,而interceptor只能对Action请求起作用;Filter却可以对几乎所有请求起作用;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

本文对比了Filter与Interceptor这两种中间件的不同之处,包括它们的工作原理、适用范围及调用时机等。Filter依赖于servlet,作用范围更广,能拦截几乎所有类型的HTTP请求;而Interceptor则依赖于Java反射机制,主要用于拦截Action请求,且可以访问到Action上下文。
487

被折叠的 条评论
为什么被折叠?



