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