Struts vs Struts2
Struts(也被称为Apache Struts或Struts 1)是一个用Java编写的跨平台开源框架,用于开发Java EE web应用程序。它是最初的Java EE web应用框架之一。但是几年后,Struts2(或Struts版本2)出现了,它是一个完全不同的、高度改进的web应用程序框架。它几乎没有解决最初版本中被认为有缺陷的问题。现在,Struts2被广泛用于开发Java EE应用程序。
Struts是什么?
Struts (Struts 1)框架是开发Java EE web应用程序的最初的web应用程序框架之一。Struts框架鼓励使用MVC(模型-视图-控制器)架构。它是Java Servlet API的扩展。Craig McClanahan是Struts的最初创造者。最初它被称为Jakaratha Struts,由Apache软件基金会的Jakarta项目维护。它是在Apache License 2.0下发布的。Struts框架被称为基于请求的框架,它由三个主要组件组成:请求处理程序、响应处理程序和标记库。标准URI(统一资源标识符)映射到请求处理程序。响应处理器负责传递控制。要创建具有表单的交互式应用程序,可以利用标记库提供的特性。 Struts support REST applications and various technologies like SOAP, AJAX, etc.
Struts2是什么?
当时的Java EE开发人员认为Struts框架包含某些限制(主要是表示层、请求处理层和模型之间缺乏分离),因此几年后Struts2出现了。实际上,Struts2与Struts完全不同。事实上,它们甚至没有共享相同的代码库,因为Struts2只是WebWork 2.2框架重命名的结果(也就是说,分开工作了一段时间的WebWork和Struts社区最终联合起来提出了Struts2)。它目前的稳定版本是2011年5月发布的2.2.3版本。
Struts和Struts2的区别是什么?
Struts框架的众多问题之一是编程时需要抽象类而不是接口。Struts2框架解决了这个问题。例如,Struts框架要求从抽象基类中扩展Action类,但是Struts2 Actions可以实现Action接口。由于两个版本在线程模型上的差异,Struts框架中出现的关于Action对象的线程安全问题在Struts2框架中不会出现。原因是Struts2的Action对象是为每个请求实例化的,而Struts框架中的Action只有一个实例来处理该Action的所有请求。与Struts框架中的Actions不同,Struts2 Actions不依赖于Servlet API。
Struts2框架的可测试性比Struts框架要高。您可以简单地按照以下三个步骤测试Struts2 Actions:实例化、设置属性和调用方法。在Struts2框架中获取输入更容易,因为Action属性被用作输入属性,而不必保留第二个输入对象。除了支持JSTL集成(在Struts中)之外,Struts2框架还可以使用更强大、更有表现力的OGNL(对象图表示法语言)。对于类型转换,struts和Strut2分别使用Commons-Beanutils和OGNL。由于这些改进,Struts2框架被认为是一个高度成熟的框架,在Java EE程序员中非常受欢迎。另一方面,Struts框架现在被认为过时了。
留下一个回复