Struts1和Struts2的Action异同

来源:互联网 发布:星际争霸2 for mac 编辑:程序博客网 时间:2024/06/07 20:33

 关于STRUTS1和STRUTS2中的ACTION,我想说的是:

 

 1:就作用来说,在框架里都充当里控制器的角色,用于处理客户端请求,并生成响应。

 

 2:STRUTS1的ACTION与SERVLET API和框架自身耦合,不利于测试和代码重用。STRUTS2的ACTION就是一个简单POJO ,既不依赖与SERVLET,也不依赖框架。

 

 2:就范围来讲,STRUTS1中的ACTION是APPLICATION范围内的,也就是对于单个ACTION而言,它只会被实例化一   次,被所有的客户请求所共用。这其实就是一种单例模式。STRUTS2中的ACTION则完全不同,对于每个用户REQUEST,STRUTS2都会产生一个新的ACTION实例用于处理本次REQUEST。struts2.x是线程安全的,每一个请求对象产生一个实例,避免了线程安全问题;而struts1.x的action被所有的线程所共享。