1、基于

filter基于filter接口中的doFilter回调函数;

interceptor则基于Java本身的反射机制;

2、与servlet关系

filter是依赖于servlet容器的,没有servlet容器就无法回调doFilter方法,而interceptor与servlet无关;

3、过滤范围

filter的过滤范围比interceptor大,filter除了过滤请求外通过通配符可以保护页面、图片、文件等;

interceptor只能过滤请求,只对action起作用,在action之前开始,在action完成后结束(如被拦截,不执行action);

4、声明

filter的过滤一般在加载的时候在init方法声明;

interceptor可以通过在xml声明是guest请求还是user请求来辨别是否过滤;

5、访问范围

interceptor可以访问action上下文、值栈里的对象,而filter不能;

6、调用次数

在action的生命周期中,拦截器可以被多次调用;

过滤器只能在容器初始化时被调用一次。

interceptor&filter的更多相关文章

  1. spring mvc DispatcherServlet详解之interceptor和filter的区别

    首先我们看一下spring mvc Interceptor的功能及实现: http://wenku.baidu.com/link?url=Mw3GaUhCRMhUFjU8iIDhObQpDcbmmRy ...

  2. springboot的Interceptor、Filter、Listener及注册

    springboot拦截器: public class Interceptor implements HandlerInterceptor{ private Logger logger = Logge ...

  3. SpringMVC中Interceptor和Filter区别

    Interceptor 主要作用:拦截用户请求,进行处理,比如判断用户登录情况,权限验证,主要针对Action请求进行处理.是通过HandlerInterceptor 实现的. 配置如下: <m ...

  4. struts2的拦截器(Interceptor)与过滤器(Filter)

    一.拦截器与过滤器的区别: 1.filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于Java本身的反射机制,这是两者最本质的区别. ...

  5. 过滤器(Filter)和拦截器(Interceptor)

    过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序.它依赖于servlet容器,在实现上,基于函数回调,它可以对几乎所有请求 ...

  6. 过滤器(Filter)与拦截器(Interceptor )区别

    目录 过滤器(Filter) 拦截器(Interceptor) 拦截器(Interceptor)和过滤器(Filter)的区别 拦截器(Interceptor)和过滤器(Filter)的执行顺序 拦截 ...

  7. SpringMVC中的Interceptor拦截器及与Filter区别

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

  8. java中过滤器(Filter)与拦截器(Interceptor )区别

    过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集.控制权限.控制转向.做一些业务逻辑判断等.其工作 ...

  9. SpringMVC 中的Interceptor 拦截器

    1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors>  <!-- 日志拦截器 -->  <mvc:interceptor> ...

随机推荐

  1. javascript 区分对象类型

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组. ...

  2. 咏南中间件修正了一处BUG,调用中间件插件会报:非法访问

    咏南中间件修正了一处BUG,调用中间件插件会报:非法访问将以下方法修改成如下的代码即可function TServerMethods1.GetSvrData(const accountNo, defi ...

  3. onenote无法更新,提示无法流式传输、无法登陆等问题解答

    onenote无法更新,提示无法流式传输 修改DNS 4.2.2.1 和 4.2.2.2 onenote反复提示登录 升级到IE11

  4. JAVA下查看进程中线程占用CPU较高的代码

    执行以下代码获得进程的线程.并找到CPU占用较高的线程ID ps -mp 16935 -o THREAD,tid,time   执行以下代码,通过线程ID获得16进制的线程标识 printf &quo ...

  5. php数组转成php编程代码

    将php数组转成可以在php上面运行的编程代码,支持一维及多维数组 <?php //一维数组 $test1 = array(1,2,3); //二维数组 $test2[0] = array( ' ...

  6. backbone.js 学习笔记

    Backbone.Model 模型.相当于表定义,定义一个表当中有的列 defaults:设置属性的默认值 initialize():初始化函数 get(key):获取属性值 set(data):设置 ...

  7. 更改JupyterNotebook默认文件路径 行之有效!

    在安装了Anaconda以后浏览器默认打开的是C盘用户目录,平时不想把一些文件.代码放在C盘尤其是用户目录下,所以考虑将默认路径改掉,尝试了网上的几种方法,终于找到了一种可行有效的. 1.找到jupy ...

  8. shell相关文件

    站在用户登录的角度来说,SHELL的类型: 登录式shell: 正常通常某终端登录 su - USERNAME  su -l USERNAME 非登录式shell: su USERNAME 图形终端下 ...

  9. stack和stack frame

    首先,我们先来了解下栈帧和栈的基本知识: 栈帧也常被称为“活动记录”(activation record),是编译器用来实现过程/函数调用的一种数据结构. 从逻辑上讲,栈帧就是一个函数执行的环境,包含 ...

  10. let、const和var的区别

    1.let是块级作用域,函数内部使用let定义后,对函数外部无影响. <!DOCTYPE html> <html lang="en"> <head&g ...