zoukankan      html  css  js  c++  java
  • 拦截器底层原理

    -------------------siwuxie095

       

       

       

       

       

       

       

    拦截器底层原理

       

       

    拦截器的底层主要使用了两个原理:

       

    1AOP 思想

       

    2责任链模式

       

       

       

       

       

    AOP 思想

       

       

    AOP 是面向切面(方面)编程,若要在基本功能之上进行扩展,AOP 可以

    通过修改源代码的方式来扩展功能

       

       

       

       

       

    责任链模式

       

       

    1、在 Java 中有 23 种设计模式,责任链模式是其中的一种

       

       

       

    2、责任链模式和过滤器链很相似

       

    1)过滤器链

       

    一个请求可以有多个过滤器进行过滤,每个过滤器只有做放行操作

    才能到下一个过滤器

       

       

    2)责任链模式

       

    要执行多个操作,如:添加、修改、删除三个操作

       

    首先执行添加操作,添加操作执行之后,做类似于放行操作;

    然后执行修改操作,修改操作执行之后,做类似于放行操作;

    最后执行删除操作,删除操作执行之后,做类似于放行操作

       

       

       

       

       

    拦截器底层原理的具体应用

       

       

    1、拦截器的执行

       

    Action 对象创建之后,在 Action 方法执行之前

       

       

       

    2、在 Action 方法执行之前,执行默认拦截器,执行过程使用 AOP

    思想。注意:在 Action 中没有直接调用拦截器的方法,而是通过

    置文件的方式中进行操作

       

       

       

    3、在执行拦截器时,执行很多的拦截器,这个过程使用责任链模式

       

    「注意:默认拦截器中也有很多拦截器」

       

       

    假如要执行三个拦截器:

       

    首先执行拦截器 1,拦截器 1 执行之后,放行;

    然后执行拦截器 2,拦截器 2 执行之后,放行;

    最后执行拦截器 3,拦截器 3 执行之后,放行;

       

    三个拦截器执行完毕后,执行 Action 方法

       

       

       

       

    4、查看源代码

       

    核心过滤器 doFilter() 方法进入

       

    1)执行 Action

       

       

       

    2)继续执行

       

       

       

    3)使用动态代理的方式创建 Action 对象

       

       

       

    4)执行 Action 方法

       

       

       

    5)类似于放行操作

       

       

       

    6)执行拦截器

       

       

       

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    Oracle SQL 函数
    j2me MIDP2.0 下实现split函数
    Linux Oracle 增量恢复时错误 ORA19573: 无法获得 exclusive 入队 (数据文件 5 的)
    Linux Oracle10 建立归档模式的详细过程
    j2me MIDP2.0 下实现的图片缩放函数
    linux下oracle10g建立归档模式 接连出现错误:ORA19905 ORA01078 LRM00109
    j2me下 触摸屏的开发 NetBeans 模拟器支持触摸屏
    高级程序员:你不可不知的20条编程经验(转载)
    生成规定大小的图片(缩略图生成)
    asp.net简单实现用button做按钮图片
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/7360496.html
Copyright © 2011-2022 走看看