首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Struts2的魂——Interceptor

2012-08-31 
Struts2的灵魂——Interceptor转自:http://www.iteye.com/topic/11213961.什么是拦截器:?拦截器是动态拦截Ac

Struts2的灵魂——Interceptor

转自:http://www.iteye.com/topic/1121396

1.什么是拦截器:?
拦截器是动态拦截Action调用的对象。它提供了一种机制使得开发者可以定义action执行之前或之后执行的代码,也可以在一个action执行前阻止其执行。?

2.AOP:?
提到拦截器,我们不得不提到AOP.?
AOP(Aspect-Oriented Programming)译为:“面向切面编程”或者“面向方面编程”。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。拦截器的就是实现AOP的一种策略。?
拦截器的工作原理简略图:?Struts2的魂——Interceptor?


3.拦截器的作用:?
? 我们可以用Interceptor在Action的方法执行之前或者之后做一些处理,struts的核心功能正是由拦截器来实现的,比如捕获异常、数据校验、安全审查等等。?

4.拦截器的工作原理:?
Interceptor Stack(拦截器堆)中有顺序的存储着多个Interceptor,他们联接成链状,然后按照添加的顺序,依次调用。这里用到了递归调用,我认为这是设计者的聪明之处。?
DefaultActionInvocation类持有拦截器链的引用,以及action的引用,是控制递归调用的重要类。?
关于递归更深入的探讨,请猛击:http://candy-code.iteye.com/blog/1443427?
下面我们就来模拟一下Interceptor的工作原理?
5.Interceptor模拟:?

Invocation.java?



return????
  • ???

    相信看到输出结果之后,不用过多的解释,你也会对Interceptor的工作原理有更具体的了解了。?

    补充:本文中之所以只谈递归,不谈模式,是为了让读者更深刻更具象的了解底层原理。

  • 热点排行