使用单例模式,ssh框架,多用户提交保存数据,同时进入action,值栈的值被覆盖保存了最后一次提交的数据

需要改变设计模式?还是修改逻辑,新手求高人指点... 需要改变设计模式 ?还是修改逻辑,新手求高人指点 展开
 我来答
lufei_200x
2013-08-02 · TA获得超过2733个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:310万
展开全部
如果你说的是struts1的话,本身struts1的控制器action就是单例模式,每个action只有一个实例,
同时处理多用户请求,因此存在线程安全问题。
但是如果不在action层定义记忆性质的变量,即要求不同用户对应不同值的成员变量,就不会存在线程安全问题,如action层里面定义service单例就可以,而用户提交的数据,则是使用actionform以参数形式传入action层处理,因此不存在线程安全问题。
建议把需要保存的数据,使用actionform传入就可以了,而不是定义在action层,这是不被允许的,不符合struts1的设计初衷。
更多追问追答
追问
谢谢 struts2呢
追答
struts2当然就可以了,它的action层就是prototype模式也就是相对于单例模式的初始化模式,应对每个客户请求初始化一个action,然后将需要保存的数据变量,作为action层的成员变量就可以了,这也就是struts2中常用的属性驱动,这样就不会出现线程安全问题了。
susoft2008
2013-08-03
知道答主
回答量:19
采纳率:0%
帮助的人:15.2万
展开全部
Struts2中已经支持:把Action的实例设置为多例,即在spring配置文件中设置scope为prototype
追问
知道这属性干什么用的了  问题解决了 谢谢了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式