Struts1 和 Struts2 有何区别,为什么大家现在都去用Struts2?

如题所述

通过上面对Struts2体系结构的了解,我们发现Struts2对Struts1进行了巨大的改进。主要表现在如下几个方面:
  在Action的实现方面:Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。
  线程模型方面:Struts1的Action工作在单例模式,一个Action的实例处理所有的请求。Struts2的Action是一个请求对应一个实例。没有线程安全方面的问题。
  Servlet依赖方面:Struts1的Action依赖于Servlet API,比如Action的execute方法的参数就包括request和response对象。这使程序难于测试。Struts2中的Action不再依赖于Servlet API,有利于测试,并且实现TDD。
  封装请求参数:Struts1中强制使用ActionForm对象封装请求的参数。Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。
  表达式语言方面:Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(Object Graph NavigationLanguage)。
  绑定值到视图技术:Struts1使用标准的JSP,Struts2使用“ValueStack”技术。
  类型转换:Struts1中的ActionForm基本使用String类型的属性。Struts2中使用OGNL进行转换,可以更方便的使用。
  数据校验:Struts1中支持覆盖validate方法或者使用Validator框架。Struts2支持重写validate方法或者使用XWork的验证框架。
  Action执行控制的对比:Struts1支持每一个模块对应一个请求处理,但是模块中的所有Action必须共享相同的生命周期。Struts2支持通过拦截器堆栈为每一个Action创建不同的生命周期。

参考资料:http://baike.baidu.com/view/1381528.htm

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-18
你可以先学习struts1,然后学struts2就好学了,现在比较流行的是struts2
第2个回答  2011-11-17
更智能更方便,

Struts1和Struts2的区别和对比
Struts1要求Action类继承一个抽象基类;Struts1的一个具体问题是使用抽象类编程 而不是接口。Struts2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制服务成为可能。Struts2 提供一个ActionSupport基类 去实现常用的接口。即使Action接口不是必须实现的,只有一个包含 execute方法的POJO类都...

Struts1和struts2及servlet的区别?
struts1和struts2都是基于MVC的开源框架,不过从配置都实现都是完全不同的两个框架。struts1是在01年左右发布的,一出来就很受欢迎,经过很长时间的发展,有很好的稳定性,现在企业中都还有很多企业在用;缺点就是它实在是太老了,对后来发展的其他框架比如spring,freemarker的支持都不太好。struts2则是...

struts1 和 struts2的区别
struts1和struts2 是2个完全不同的框架,其实struts2核心就是 webwork框架 struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts 1框架有3个重要组成部分:Action、ActionForm和ActionForward对象。ActionForm必须实现ActionForm的基类,设计上并不是真正的POJO。struts2核心控制器...

struts1和struts2的区别??
一、主体不同 1、struts1:是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。2、struts2:Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。二、框架不同 1、struts1:通过采...

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

java中Struts1和Struts2有什么区别 ?
Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。简单来说二者的区别是:一个是Stuts1 ,一个是Stuts2,这是最大的区别,技术方面,Stuts1有个核心控制器,但是只提供了一个接口,也就是execute,...

struts1和struts2的区别
1、配置文件格式不同 2、struts1有from类和action类,属性封装from类里,在struts2里只有action类,属性封装action类里 3、页面调用是struts1 是*.do struts2 是*.action 我认为struts2要比struts1,简单、方便、快捷。就是用着比struts1好 以上是我开发的体会,下面是我找的资料 主要表现在如下几...

struts1和struts2的区别?
1.struts1是单实例多线程编程模式,有安全问题;struts2是多实例单线程。2.struts1是侵入式的即依赖框架,使用了框架大量的API,struts2是非侵入式的。3.struts1的action类必须直接或间接继承Action接口,struts2的action类可以是普通的JavaBean。4.struts1中使用actionForm不能直接传递给DaO层,必须进行相应...

使用Struts2的原因是什么?
1、Struts 2是Struts的下一代产品,是在WebWork的技术基础上开发了全新MVC框架。虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。Struts2与Struts1相比,确实有很多革命性的改进。2、Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet...

struts1和struts2的区别,面试题!!!
只讲区别:1,struts2是在webwork2的基础上发展而来的 2,struts2的耦合度很小 ,不依赖servletAPI 属于无侵入式设计

相似回答