拦截器底层原理

-------------------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】

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值