struts1.2和struts2.0的区别?

如题所述

struts1和struts2的区别其实并不是太大,两者的区别:
Action ç±»:
◆Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
◆Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
线程模式:
◆Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
◆Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
Servlet 依赖:
◆Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。
◆Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。
可测性:
◆测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)。
◆Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。
捕获输入:
◆Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存在的JavaBean(仍然会导致有冗余的javabean)。
◆ Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种ModelDriven 特性简化了taglib对POJO输入对象的引用。
表达式语言:
◆Struts1 整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。
◆Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--"Object Graph Notation Language" (OGNL).
绑定值到页面(view):
◆ Struts 1使用标准JSP机制把对象绑定到页面中来访问。
◆Struts 2 使用 "ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。
类型转换:
◆Struts 1 ActionForm 属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。
◆Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。
校验:
◆Struts 1支持在ActionForm的validate方法中手动校验,或者通过Commons Validator的扩展来校验。同一个类可以有不同的校验内容,但不能校验子对象。
◆Struts2支持通过validate方法和XWork校验框架来进行校验。XWork校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性
Action执行的控制:
◆Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。
◆Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-14
我这里说个简单点!单例和多线程的区别!望采纳 谢谢
第2个回答  2012-05-20
两者区别很大,没什么联系的。他们是两种不同的组织完成的。
第3个回答  2012-05-13
struts1和struts2技术上没有关系,struts2是有webwork升级来的,因为struts名气大,所以两个和一起了,名字叫struts。但是技术是webwork。

struts1.2和struts2.0的区别?
struts1和struts2的区别其实并不是太大,两者的区别:Action 类:◆Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。◆Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。

struts1.2和struts2.0有什么区别?都有什么优缺点?
在Action的实现方面:Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。 线程模型方面:Struts1的Action工作在单例模式,一个Action的实例处理所有的请求。Struts2的Action是一个请求对应一个实例。没有线程安全方面的问题。Servlet依赖方面:Struts1的Action依赖于Servlet API,比如Action...

Struts2.0与Struts1.2的区别?
struts1.x之间差别不大,你具体提到struts1.2似乎没什么意义~所以你提的问题其实就是struts1和struts2的差别。先大致介绍下struts1和struts2 struts:过去最流行的web MVC组件,apache项目组的一个开源项目 struts2:现在非常流行的web MVC组件,是apache用struts1和webwork组合出来的产品 两者都是web MV...

struts1.20和struts2有什么区别?
2 struts1的老牌框架,应用很广泛,有很好的群众基础,使用它开发风险很小,成本更低!struts2虽然基于这个框架,但是应用群众并多,相对不成熟,未知的风险和变化很多,开发人员相对不好招,使用它开发项目的风险系数更大,用人成本更高!3.struts2毕竟是站在前辈的基础设计出来,它会改善和完善struts1中...

请问学了Struts2.0还要学Struts1.2吗?
恩,struts2.0的核心已经变了,不再是原来的struts了,而是webwork了。但是web框架的原理基本上是不变的,只要把原理先搞清楚了,熟悉一个框架是很快的。需要的时候再学也不会玩的

struts都有哪些版本版本
先说我知道的,struts 1.0 1.1 1.2 struts1 一般就这三个版本 struts 2.16 2.18 2.21 现在struts2 最新的是2.21的版本 servlet3都已经出了,估计struts3也快出来了。

Struts1 与 Struts2 差别很大么?
起初要把webwork更名为strutsTi,后来正式的名字就是struts2,源码我看过,就是webwork改了部分包名而已,剩下的都是webwork技术。webwork从诞生那天起我就一直在关注和使用,也提交了几个bug的修正版,(*^__^*) 嘻嘻……我也有贡献哦。struts1和目前的struts2没有任何关系,也没有必要先学习1在...

struts1.* 怎么最快的升级struts2
Struts2和Struts1相差还是有点大的,建议先学习Struts2.在Struts2中Action的方法不一定要是execute,但是不许符合以下规范:public String method(){},其中的返回值必须为String 类型,只想跳转的页面的name;在Struts2中的配置文件你可以写多个,到时候在struts.xml中你直接include进去就行了。当然配置文件...

spring的新旧版本之间的区别是什么?
Spring变化比较大的版本主要分为1.2之前、2.0、2.5和3.0\\x0d\\x0a\\x0d\\x0aSpring跟Struts不同,就算是一些老的设定方法,在新版本上也可以用。\\x0d\\x0a\\x0d\\x0aSpring版本升级的主要趋向如下:\\x0d\\x0a1.兼容新的Java标准\\x0d\\x0a2.支持更高的Java版本\\x0d\\x0a3.支持更多...

学习struts2 的所有技术 和 struts2 SSH在整合需要多长时间呢?1月足 ...
我前一个月学习struts2 ssh框架整合,之前有过struts1.2的基础,学起来比较轻松,但是1.2和2.0还有较大区别,苦学一个月,可以学会,想学精,还需时间。

相似回答
大家正在搜