- 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却可以对几乎所有请求起作用;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------