为啥struts2的action要设置成“prototype”

为什么struts2的action要设置成“prototype”

在SSH应用中,action相关的bean往往设置成“prototype”(多例模式)。

1. 为什么要设置成多例模式?不设置成多例模式有什么问题?

答:这是由struts2的特性决定的。struts2的action集成了MVC中的M(model)和C(control)两层,它的变量可以直接从

页面获得数据,但这些变量都不是线程安全的变量 。如果不设置成多例模式,这个action就是线程不安全的,在多线程请求

时,就有可能出现一些不可预知的错误。

首先要搞清楚的是线程的共享资源,共享资源是多线程中每个线程都要访问的类变量或实例变量,共享资源可以是单个

类变量或实例变量,也可以是一组类变量或实例变量。多线程程序可以有多个共享资源

from: http://www.blogjava.net/feelyou/archive/2009/07/12/20165.html