拦截器与过滤器的区别
2016-04-07 11:28
369 查看
1 拦截器是基于java的反射机制的,而过滤器是基于函数回调。
2 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
3 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
5 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
过滤器定义:
拦截器定义:
<interceptors>
<interceptor name="testInterceptor" class="com.xxxx.TestInterceptor" />
<interceptor-stack name="filterIPStack">
<interceptor-ref name="testInterceptor" />
</interceptor-stack>
</interceptors>
6.拦截器可以获取IOC容器中的各个bean,过滤器不行,在拦截器里注入一个service可以调用业务逻辑
2 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
3 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
5 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
过滤器定义:
|
<filter> <filter-name>TestFilter</filter-name> <filter-class>com.filter.TestFilter</filter-class> </filter> <filter-mapping> <filter-name>TestFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
|
<interceptor name="testInterceptor" class="com.xxxx.TestInterceptor" />
<interceptor-stack name="filterIPStack">
<interceptor-ref name="testInterceptor" />
</interceptor-stack>
</interceptors>
6.拦截器可以获取IOC容器中的各个bean,过滤器不行,在拦截器里注入一个service可以调用业务逻辑
相关文章推荐
- 实现jquery的grid插件
- POJ 2446 Chessboard(二分图匹配)
- 为什么我们创建ListView的ViewHolder要使用static去声明
- java中volatile关键字的含义
- javaScript中字符串与整型,浮点型之间的转换
- Android Bitmap理解
- Serializable
- 虚拟存储器--虚拟地址与物理地址
- solr4.5部署到tomcat
- Java枚举类
- FFI Library (lua 调用 c)
- xcode7中KSImageNamed-Xcode-master插件无法使用问题的解决
- c++第二次上机作业
- 系统出错信息设计
- Citrix Presentation server can not contact the license server
- The Definitive Guide to Linux System Calls
- display:inline、block、inline-block的区别
- iOS-获取当前网页的 url 和 title 和 html
- 微信支付开发流程
- c++第3次上机作业