码迷,mamicode.com
首页 > 其他好文 > 详细

拦截器底层原理

时间:2017-08-14 23:39:49      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:执行   核心   color   查看   请求   使用   alt   logs   UI   

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

拦截器底层原理

标签:执行   核心   color   查看   请求   使用   alt   logs   UI   

原文地址:http://www.cnblogs.com/siwuxie095/p/7360496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!