您的位置:首页 > 其它

拦截器与过滤器的区别

2016-04-07 11:28 369 查看
1 拦截器是基于java的反射机制的,而过滤器是基于函数回调。

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>

拦截器定义:

 

<interceptors>

  <interceptor name="testInterceptor" class="com.xxxx.TestInterceptor" />

  <interceptor-stack name="filterIPStack">

    <interceptor-ref name="testInterceptor" />

  </interceptor-stack>

</interceptors>

6.拦截器可以获取IOC容器中的各个bean,过滤器不行,在拦截器里注入一个service可以调用业务逻辑
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: