智讯网 智能科技与电子数码

filter和拦截器的区别

filter和拦截器的区别 

Filter和拦截器的主要区别如下:

1. 基于的机制不同:Filter是基于函数的回调机制,而拦截器是基于Java的反射机制。

2. 应用场景不同:Filter主要针对访问请求的过滤,可以做到每个请求只有一次的过滤要求;而拦截器主要侧重于拦截Controller的对象,做一些参数填充等工作。

3. 执行时间点不同:Filter只在容器初始化时被调用一次;而拦截器有三个执行时间点,分别对应三个方法:preHandle(),postHandle(),afterCompletion()。

4. 拦截范围不同:Filter可以处理jsp,js,html等请求;而拦截器只拦截action请求,不拦截静态资源请求。

5. 访问范围不同:过滤器不能访问action上下文及值栈里的对象,而拦截器可以。

6. 依赖性不同:Filter需要依赖Servlet容器,而拦截器是在spring容器中,不依赖servlet容器。

7. 调用次数不同:拦截器在action的生命周期内可以多次调用,而过滤器只在容器初始化时被调用一次。

8. 获取容器内的对象:拦截器可以获取spring容器里的对象,而过滤器是不行的。

版权说明:文章均为账号作者发布,不代表本网站观点与立场,如有侵权请联系我们删除