过滤器和拦截器的区别?
拦截器 | 过滤器 |
---|---|
基于Java反射机制 | 基于函数回调 |
不依赖Servlet容器 | 依赖Servlet容器 |
只能对action起作用 | 几乎对所有请求起作用 |
可以访问action上下文,值栈里的对象 | 可以访问action上下文,值栈里的对象 |
在Action生命周期中,拦截器可以多次被调用 | 过滤器只能在容器初始化时被调用一次 |
拦截器不能修改request | 过滤器可以修改request |
拦截器可以调用IOC容器中的各种依赖 | 过滤器不能调用IOC容器中的各种依赖 |
拦截器可以详细到每个方法 | 过滤器只能在请求的前后使用 |
过滤器主要是过滤出要的东西,如requeset中的信息;拦截器在做安全方面用的比较多,比如终止一些流程