读书人

《研磨struts2》第七章 值栈跟OGNL 之

发布时间: 2012-08-16 12:02:16 作者: rapoo

《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext

7.4??ActionContext和ServletActionContext

7.4.1??再探ActionContext

前面已经了解到ActionContext是Action执行时的上下文,里面存放着Action在执行时需要用到的对象,我们也称之为广义值栈。

?????? Struts2在每次执行Action之前都会创建新的ActionContext,在同一个线程里ActionContext里面的属性是唯一的,这样Action就可以在多线程中使用。

1:ActionContext的线程安全性

?????? 那么Struts2是如何保证ActionContext的线程安全性呢?

?????? 看看ActionContext对象的代码,示例如下:

?

图7.7 使用ServletRequestAware的结果页面

?????? 当然,你也可以以同样的方式去使用ServletResponseAware,这里就不去赘述了。

7.4.3?ActionContext和ServletActionContext

根据前面的讲述,你会发现,ActionContext和ServletActionContext有着一些重复的功能,都能够获取到Web对象的数据,但是又有些不同。

?????? 通常情况下,可以这么认为:ActionContext主要负责值的操作;ServletActionContext主要负责获取Servlet对象。

那么在Action中,该如何去抉择呢?建议的原则是:

读书人网 >软件架构设计

热点推荐