来源:linux宝库作者:linux宝库 发布时间:2007-09-30 00:00:00


Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库连同面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是个解释Struts在研发Web应用程式中所扮演的角色的出色描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。他的目的是为了帮助我们减少在运用MVC设计模型来研发Web应用的时间。我们仍然需要学习和应用该架构,但是他将能够完成其中一些繁重的工作。假如想混合使用Servlets和JSP的长处来建立可扩展的应用,Struts是个不错的选择。
早期Smalltalk 程式语言便采用了MVC(Model-View -Controller) 模式( Patterns ) 以增加程式代码弹性,MVC模式将程式代码整理切割为三部份,Model 部分是业务和应用领域( Business domain) 相关逻辑、管理状态之对象,Controller 部分接收来自View 所输入的资料并和Model 部分互动,是业务流程控制( Flow Control) 之处,View 部分则负责展现资料、接收使用者输入资料。在Java 应用中,JFC/Swing、AWT、JSP 皆是可用作View 之技术规格,而JavaBean 和Enterprise JavaBean 规格则可用于Model 程式代码,一旦应用程式以MVC 模式加以适当之分割,Model 部分程式代码可在不同使用者接口外观之应用程式中重复使用。
随着JSP 和Servlet 技术大量应用于以Web 为基础之应用程式,Java 研发人员群体认为应以较佳之模式以提升Web 应用程式之可维护性和重复使用性。早期JSP 规格书中曾列举两种可行之JSP 应用架构,分别为Model1 和Model 2。
在Model 1 架构中,JSP 直接处理Web 浏览器送来之请求( Request ),并辅以JavaBean 处理应用相关逻辑。Model 1 架构单纯编写比较容易,但在Model 1 中JSP 可能同时肩负View 和Controller 角色,两类程式代码有可能混杂而不易维护。而Model 2 中将Servlet 纳入架构中扮演前端Controller 角色,将Web 浏览器送出之请求集中送至Servlet ,Servlet 可集中管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应之JSP 处理。Model 2 中采用了较佳之MVC 模式,但增加了编写复杂度。
Struts是Apache软件基金下Jakarta项目的一部分。除Struts之外,更有其他成功的开源产品,包括Tomcat, Ant 和Velocity。2000 年Craig R. McClanahan 先生贡献了他编写的JSP Model 2 架构之Application Framework 原始程式代码给Apache 基金会,成为Apache Jakarta 计划Struts Framework 前身。
开始的代码基础从2000年5月开始研发,直到2001年6月,1.0版本发布。有30 多个研发者参和进来,并有数千人参和到讨论组中。Struts 代码基础由一个志愿的Commnitter团队来管理。到2002年,Struts 小组共有9个志愿Commnitter。
Struts框架的主要架构设计和研发者是Craig R.McClanahan。Craig 也是Tomcat 4的主要架构师,连同Java Web Services Developer Pack的主要架构师和实现者。他现在是Sun的JavaServer Faces (JSR-127) 连同J2EE平台的Web层架构的规范领导。Craig R. McClanahan 先生是JCP ExpertGroup 成员之一,曾参和JSP 规格定制和Tomcat 4 之编写,因此Struts Framework 广受Java 研发人员群体所重视。Borland 自2002 年底开始于研发工具JBuilder 中支持Struts Framework。
|
还没有关于此文章的相关评论!