zoukankan      html  css  js  c++  java
  • Java Web 拦截器和过滤器的区别

    一、AOP:面向切面编程,Java Web中有两个常用的技术:拦截器、过滤器

    二、拦截器

      1、定义:在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作

      2、原理:大部分时候,拦截器方法都是通过代理的方式来调用的。Struts 2的拦截器实现相对简单。当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器。Struts2拦截器是可插拔的,拦截器是AOP的一种实现。Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,Struts2拦截器链中的拦截器就会按其之前定义的顺序被调用。

      3、方法:intercept

    三、过滤器

      1、作用:在请求传递的过程中进行一些过滤操作,对一些非法字符等进行处理等。

      2、方法:doFilter

    四、拦截器、过滤器的区别

      1、拦截器是基于java的反射机制的,而过滤器是基于函数回调

      2、拦截器不依赖与servlet容器,过滤器依赖与servlet容器

      3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用

      4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问

      5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

    五、执行顺序:过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后

  • 相关阅读:
    第二阶段冲刺站立会议报告
    09软件工程读后感之三
    08软件工程读后感之二
    07软件工程读后感之一
    一个整数数组中最大字数组二
    返回一个二维数组最大联通子数组的和
    项目阶段总结
    大道至简阅读笔记之三
    大道至简阅读笔记二
    课堂设计
  • 原文地址:https://www.cnblogs.com/zxguan/p/7822667.html
Copyright © 2011-2022 走看看