`
tntxia
  • 浏览: 1510363 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts的起源

阅读更多

Struts是一个技术框架,最先由Craig R McClanahan编写,并在2000年捐献给ASF,目前已经有很多个人和组织参与了Struts的开发,使得Struts在几年内高速的成长。使其成为WEB应用MVC模式中VC的事实标准。

 

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。

  Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。

  Struts最早是作为Apache Jakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages、Servlet、标签库以及面向对象的技术水准。

  Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。

  Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。

  除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

  关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

  MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理,如图所示:



 

  • 大小: 16.7 KB
分享到:
评论

相关推荐

    Struts详解---Struts的起源 Struts的流程 Struts框架 Struts2

    Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准 Struts2和Struts1的不同

    Struts2简介与入门

    Struts2框架的起源可以追溯到两个经典框架:传统的Struts1和WebWork。Struts1框架在2000年左右流行起来,但它随着时间的推移逐渐显示出设计上的不足。WebWork框架则被认为是设计更为先进的框架,引入了拦截器机制和...

    Struts2 框架概述

    #### 一、Struts2的历史背景与起源 Struts2作为一款备受关注的企业级Web开发框架,在Java Web开发领域占据着举足轻重的地位。尽管Struts2声称自身是一个全新的框架,但从其发展历程来看,这种说法仅仅是从与前一代...

    struts2课件

    - **起源与发展:**Struts2起源于2005年底,当时WebWork与StrutsTi宣布合并,后者随后更名为StrutsActionFramework2.0,标志着Struts2正式成为Struts系列框架的继承者和发展方向。 - **设计理念:**Struts2的设计...

    struts2速成

    Struts2是一个基于MVC设计模式的Web应用框架,它起源于WebWork2,并在其基础上进行了一系列改进。WebWork的核心是XWork框架,它采用命令模式,帮助开发者专注于业务逻辑而不是繁琐的Servlet编程。Struts2保留了...

    struts2教程我在培训时用的

    **1.2 起源与背景** - **Struts1存在的不足** - **强耦合**:Struts1中的Action类不仅负责业务逻辑,还负责视图展示,导致代码结构不够清晰。 - **不灵活**:Struts1的配置较为繁琐,扩展性和灵活性较差。 - **...

    Struts2.0基础知识培训

    — Web应用的发展 — Model 1和Model 2 — MVC思想 — MVC模式的优势 — 常用MVC框架及其特征 ...— Struts 2的起源 — Struts 2的框架架构 — Struts 2的标签库 — Struts 2的控制器组件 — Struts 1和Struts 2的对比

    Struts2权威指南

     1.2 Struts 2的起源和背景8  1.2.1 Struts 1简介及存在的问题9  1.2.2 WebWork简介12  1.2.3 Struts 2起源15  1.3 Struts 2体系介绍16  1.3.1 Struts 2框架架构16  1.3.2 Struts 2的配置文件17  1.3.3 ...

    struts2培训PPT[F]

    1. **1 入门.swf** - 这个文件可能涵盖了Struts2的基础知识,包括Struts2的起源、为什么要使用Struts2,以及它的核心架构。它可能会介绍Action、Dispatcher Servlet、拦截器(Interceptors)等基本概念,这些都是...

    struts1.x入门

    #### 一、Struts 概念与起源 Struts 是一款基于 Java 的开源 MVC(Model-View-Controller)框架,最初由 Apache Jakarta 项目开发。其目的是简化 Web 应用程序的开发过程,并提供一种结构化的解决方案来管理复杂的...

    struts2.0(高清晰)

    — Web应用的发展 — Model 1和Model 2 — MVC思想 — MVC模式的优势 ...— Struts 2的起源 — Struts 2的框架架构 — Struts 2的标签库 — Struts 2的控制器组件 — Struts 1和Struts 2的对比

    Struts2权威指南完整版

    1. **Struts2框架概述**:首先,书中会介绍Struts2框架的基本概念,包括它的起源、发展和主要特点,以及与前一代Struts1的区别。 2. **安装与配置**:介绍如何在开发环境中安装Struts2框架,包括依赖库的添加、web....

    Struts2(一)

    #### Struts2 概述与来历 - **Struts2**是由Apache组织维护的一款开源MVC框架,主要应用于Java Web开发领域。其定位仅作为表现层(MVC)框架,专注于处理前端用户交互逻辑。 - **Struts1**是Struts2的前身,同样是...

    struts2介绍

    Struts2的起源与目标** Struts2的诞生是为了应对Struts1在处理复杂应用时的局限性,如表现层控制过于集中、扩展性不足等问题。Struts2的目标是简化MVC框架的使用,提供更加灵活的控制器和视图机制,以及更强大的...

    Struts2入门教程.pdf

    - **Struts2起源**:Struts2并非一个全新的Web框架,而是建立在WebWork框架设计理念之上,融合了Struts1的优点而形成的一个框架。可以说,它是Struts1与WebWork框架的结合体。 - **Struts2的吸引力**:由于其优秀的...

    struts2教程.pdf

    - **起源与背景**:Struts 2框架在设计之初就旨在克服Struts 1的一些局限性,比如灵活性不足、扩展性有限等问题。 - **技术基础**:它继承了WebWork的许多优点,如拦截器机制、灵活的配置方式等,这些特性使得Struts...

    struts2学习笔记.doc

    - **Struts2的起源**:Struts2最初由WebWork和Struts1的核心开发者联合创建,其目的是为了弥补这两个框架的不足之处。 **1.2 开发环境配置** - **IDE选择**:Eclipse 3.2 + MyEclipse 5.5。 - **Servlet Container*...

Global site tag (gtag.js) - Google Analytics