java框架struts1和struts2

struts1是我以前用过的时间比较久了。请问struts1和struts2,哪种是单例的?(我记得struts2是多例的)struts框架对于单例和多例使用上或者说原理... struts1是我以前用过的 时间比较久了。请问struts1和struts2,哪种是单例的?(我记得struts2是多例的) struts框架对于单例和多例 使用上或者说原理上有什么不同呢? 展开
 我来答
backyard_liu
2014-03-21
知道答主
回答量:17
采纳率:0%
帮助的人:11.3万
展开全部
struts1是单例的,struts2不是单例,但可以在配置中配置为单例。
struts2会将表单内容直接封装或转型为Action属性,所以除特殊情况外不能用单例。
追问
struts2会表单内容直接封装或转型Action属性  这句话怎么理解?
追答
struts2的表单内容会对应的封装到Action属性中,属性是临界资源,多线程共享,所以不能使用单例。
如:UserAction 有属性name

这样的输入框会直接封装到UserAction的那么属性中。

struts1是通过ActionForm封装,ActionForm每个线程生成一个实例,并且会作为Action方法的局部变量使用,所以多线程没有问题。
sport修
2014-03-21
知道答主
回答量:3
采纳率:0%
帮助的人:4122
展开全部
struts1是基于servlet实现的,所以是单例的,
struts2是基于基于webwork发展而来的,是多实例的,
单例的strut1会造成线程安全问题,想看他俩的区别网上很多,很详细
追问
struts1是单例的,假如几个人同时在页面点击一个按钮,那么这几个人会同时进入到同一个Action内去找对应的方法是吗?那谁先谁后执行呢
追答
是的,所以不加控制会有线程安全问题(尽量不要使用实例变量,用synchronize或者局部变量是保证线程安全的方式),先后就是看谁先访问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式