简单来说s1和s2是2个完全不同的东西,你不能这样子做比较的
[Quote = 引用LZ:]
struts1是对于同一请求使用相同的action,
而
struts2是对于每一个请求都实例化一个新的对象进行处理。
[/Quote]
你觉得什么框架会改动这么大?
根本没得比s2是基于webwork的基础上加入了s1的元素而来的就像别人问你c和java哪个好,你答得上来么?问题太抽象了,也只能讨论下了
[Quote = 引用LZ:]
struts1是对于同一请求使用相同的action,
而
struts2是对于每一个请求都实例化一个新的对象进行处理。
[/Quote]
你觉得什么框架会改动这么大?
根本没得比s2是基于webwork的基础上加入了s1的元素而来的就像别人问你c和java哪个好,你答得上来么?问题太抽象了,也只能讨论下了
实际上我是想问类似s1和s2这两种线程模型,
在处理web请求的时候哪种的效率比较好。
貌似s1和s2也就是个示例,
主要内容是想问java的效率问题。换种说法吧...
比如我们把s1的实现修改了,
也让它来一个请求就new一个action。这样的话哪种效率会好一些呢?学习ing...谢谢
访问次数一般的时候:两者差不多。还有一点,他们两者之间应该只是编译时的效率相差比较大,在处理用户请求时,效率应该相同的。
而
struts2是对于每一个请求都实例化一个新的对象进行处理。
对于每一个请求,难道struts1就不需要实例化一个新的对象吗?不会在那一个对象中,同时处理几千个用户请求吧?那样好像就乱成一锅粥了
因为所有的内容都是在那个execute方法中以型参的方式传入,
所以每个请求的处理都是在这个execute的作用域中完成的。
每个线程拥有自己的空间运行这个execute。所以不会有问题。
(要是有问题也不会这样设计了)当然如果使用了类一级别的全局变量,就会乱成一锅...八宝粥。而且servlet在运行的时候已经编译成class在执行了,
应该不存在编译时如何如何的问题,问题的重点应该是
java虚拟机在实例化多个对象
和
多个线程使用同一个对象的同样方法的问题。继续学习ing...