struts单例和多例?
来源:互联网 发布:网络版权侵权 编辑:程序博客网 时间:2024/06/05 18:14
struts 2的Action是多实例的并非单例,也就是每次请求产生一个Action的对象。原因是:struts 2的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面。如果Action是单实例的话,这些数据在多线程的环境下就会相互影响,例如造成别人填写的数据被你看到了。
而struts 1的Action是单实例的,因为它的数据保存在Form类中,多线程环境下,Action只负责处理一些逻辑,并没有数据,也就是大家把它当做一个工具使用。同样servlet也是单实例的。
而struts 1的Action是单实例的,因为它的数据保存在Form类中,多线程环境下,Action只负责处理一些逻辑,并没有数据,也就是大家把它当做一个工具使用。同样servlet也是单实例的。
- 追问:
(struts 2的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面。)
这个怎么测试出效果,这样说有点不太懂呢。
(struts 1的Action是单实例的,因为它的数据保存在Form类中)
如果我不用Form保存数据的话,是不是就不是单例了。
- 回答:
- Struts 2中例如登陆系统要填写username和password,那么在Action类中一定会有private String username和private Sting password并且有get set方法,这就是我所说的数据。
struts 1的Action中不允许保存数据。必须放在Form中。
- 追问:
- 那我就不明白了,
struts 1 的Form和Struts2的 get set有什么不同,只是struts1把属性写在一个Form对象里面而已,如果
Struts2把属性也写到一个对象里面,那不也 是一样吗。
- 回答:
- struts 1的数据不允许写在Action中。所有可以单实例。。而Form要多实例
Struts 2的数据一般写在Action中。所以多实例。。。
就像一个宿舍的可以共用一个扫帚、垃圾桶,但不能共用、银行卡。因为银行卡中有数据。
- 追问:
- Struts2 怎么才能改成单例模式呢,是不是把你所说的get set封装到一个对象里面就可以了。
- 回答:
- Struts2好像没办法改成单例模式,Struts2的Action都是一次请求一个对象,就是这么设定的。据我所知好像servlet可以通过一个配置改成多实例的,至于Action好像没办法改这种模式。
0 0
- struts单例和多例?
- 如何理解Struts和Spring单例和多例,以及Action请求的问题
- struts中的action是多例还是单例?
- struts单例模式,和spring代理模式与非单例模式@Scope("prototype")
- 单例和多例
- 单例和多例
- Struts+Hibernate模板开发笔记---设计模式:单例
- struts/spring 单例是否线程安全的
- 单例和factory
- 通知和单例
- 单例和多线程
- swift单例和oc单例
- 单例模式和多例模式
- 单例模式和多例模式
- Struts2单例和多例
- struts2单例和多例
- 框架中的单例和多例
- 单例和多例的区别
- poj 2488 A Knight's Journey
- Hashmap的isEmpty使用
- lecture5:高阶函数
- ASP.NET中直接用C# 动态修改CSS样式
- 448 寻找最大数 (贪心)
- struts单例和多例?
- Linux--编程--进程之IPC
- CSemaphore的使用
- Spring 学习-------WebApplication (web 容器)启动
- java 面试题
- 在VMware虚拟环境下安装ubuntu10.04
- Java和JVM运行原理
- Visual Studio 2013 与 14
- jquery中closet,parent,parents