struts2 action是单例的吗
2个回答
展开全部
struts2中action是多例的,即一个session产生一码胡个action。struts
2的action是多实例的并发单例,也迟察拦就是每次请求产生一个action的对象。原因是:struts
2的action中包含数据,例如你在页面填写的数据就会包含在action的成员变量里面。如果action是单实例的话,这些数没孙据在多线程的环境下就会相互影响,例如造成别人填写的数据被你看到了。所以struts2的action是多例模式的。
2的action是多实例的并发单例,也迟察拦就是每次请求产生一个action的对象。原因是:struts
2的action中包含数据,例如你在页面填写的数据就会包含在action的成员变量里面。如果action是单实例的话,这些数没孙据在多线程的环境下就会相互影响,例如造成别人填写的数据被你看到了。所以struts2的action是多例模式的。
2016-10-23
展开全部
struts2 action是多例。
struts2中action是多例的,即一个session产生一个action
如果是单例的话,若出现两个用户都修改一个对象的属性值,则会因为用户修改时间不同,两个用户访问得到的属性不一样,操作得出的结果不一样.
举个例子:有一块布长度300cm,能做一件上衣(用掉100cm)和清陵一件裤子(用掉200cm);甲和乙同时访问得到的长度都是300cm,
甲想做上衣和裤子,他先截取100cm去做上衣,等上衣做完再去做裤子,而乙这时正好也拿100cm去做上衣,那好,等甲做完上衣再做裤子的时候发现剩下的布(100cm)已经不够做裤子了.....这就是影响系统的性斗猜能,解决的办法就是给甲和乙一人一块300cm的布,就不会出现布被别人偷用的事情,也是就单实例和多实例的区别
如果设置成单例,那么多个线程会共享一个ActionContext和答销戚ValueStack,这样并发访问的时候就会出现问题了
struts2中action是多例的,即一个session产生一个action
如果是单例的话,若出现两个用户都修改一个对象的属性值,则会因为用户修改时间不同,两个用户访问得到的属性不一样,操作得出的结果不一样.
举个例子:有一块布长度300cm,能做一件上衣(用掉100cm)和清陵一件裤子(用掉200cm);甲和乙同时访问得到的长度都是300cm,
甲想做上衣和裤子,他先截取100cm去做上衣,等上衣做完再去做裤子,而乙这时正好也拿100cm去做上衣,那好,等甲做完上衣再做裤子的时候发现剩下的布(100cm)已经不够做裤子了.....这就是影响系统的性斗猜能,解决的办法就是给甲和乙一人一块300cm的布,就不会出现布被别人偷用的事情,也是就单实例和多实例的区别
如果设置成单例,那么多个线程会共享一个ActionContext和答销戚ValueStack,这样并发访问的时候就会出现问题了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询