支柱与支柱2
Struts(也称为apachestruts或struts1)是一个用Java编写的跨平台开源框架,旨在开发javaeeweb应用程序。它是Java EE最初的应用程序之一。但几年后,Struts2(或StrutsVersion2)问世了,它是一个完全不同的、高度改进的web应用程序框架。它处理了一些在最初版本中被视为不足的问题。现在,Struts2在世界上被大量用于开发javaee应用程序。
什么是Struts?
Struts(struts1)框架是开发javaeeweb应用程序的最初的web应用程序框架之一。Struts框架鼓励使用MVC(Model-View-Controller)架构。它是JavaServletAPI的扩展。Craig McClanahan是Struts的最初创建者。最初它被称为jakarathastruts,是在Apache软件基金会的Jakarta项目下维护的。它是在Apache许可证2.0下发布的。Struts框架被称为基于请求的框架,它由三个主要组件组成:请求处理程序、响应处理程序和标记库。标准URI(统一资源标识符)映射到请求处理程序。响应处理程序负责传输控制。要使用表单创建交互式应用程序,可以利用标记库提供的功能。Struts支持REST应用程序和各种技术,如SOAP、AJAX等。
什么是Struts2?
当时,javaee开发人员认为Struts框架包含一定的局限性(主要是表示层、请求处理层和模型之间缺乏分离),因此,几年后Struts2出现了。实际上,Struts2与Struts2完全不同。事实上,他们甚至没有共享相同的代码库,因为Struts2仅仅是重新命名WebWork2.2框架的结果(即WebWork和Struts社区分别工作了一段时间,最终携手推出了Struts2)。它目前的稳定版本是2011年5月发布的2.2.3版本。
Struts2和Struts2有什么区别?
Struts框架的许多问题之一是需要对抽象类而不是接口进行编程。这个框架解决了结构2。例如,Struts框架要求从抽象基类扩展动作类,但是Struts2动作可以实现动作接口。由于两个版本之间线程模型的差异,Struts2框架中没有出现Struts2框架中出现的关于动作对象的线程安全问题。原因是Struts2 Action对象是为每个请求实例化的,而Struts框架中的一个Action只有一个实例来处理该操作的所有请求。与Struts框架中的操作不同,Struts2操作不依赖于ServletAPI。