struts-基本概述
STRUTS
当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
早期Smalltalk程序语言便采用了MVC(Model-View-Controller)模式(Patterns)以增加程序代码弹性,MVC模式将程序代码整理切割为三部份,Model部分是业务与应用领域(Businessdomain)相关逻辑、管理状态之对象,Controller部分接收来自View所输入的资料并与Model部分互动,是业务流程控制(FlowControl)之处,View部分则负责展现资料、接收使用者输入资料。在Java应用中,JFC/Swing、AWT、JSP皆是可用作View之技术规格,而JavaBean与EnterpriseJavaBean规格则可用于Model程序代码,一旦应用程序以MVC模式加以适当之分割,Model部分程序代码可在不同使用者接口外观之应用程序中重复使用。
随着JSP与Servlet技术大量应用于以Web为基础之应用程序,Java开发人员群体认为应以较佳之模式以提升Web应用程序之可维护性与重复使用性。早期JSP规格书中曾列举两种可行之JSP应用架构,分别为Model1与Model2。
struts-构架开发
STRUTS
在Model1架构中,JSP直接处理Web浏览器送来之请求(Request),并辅以JavaBean处理应用相关逻辑。Model1架构单纯编写比较容易,但在Model1中JSP可能同时肩负View与Controller角色,两类程序代码有可能混杂而不易维护。而Model2中将Servlet纳入架构中扮演前端Controller角色,将Web浏览器送出之请求集中送至Servlet,Servlet可集中管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应之JSP处理。Model2中采用了较佳之MVC模式,但增加了编写复杂度。
Struts是Apache软件基金下Jakarta项目的一部分。除Struts之外,还有其他成功的开源产品,包括Tomcat,Ant和Velocity。2000年CraigR.McClanahan先生贡献了他编写的JSPModel2架构之ApplicationFramework原始程序代码给Apache基金会,成为ApacheJakarta计划StrutsFramework前身。
开始的代码基础从2000年5月开始开发,直到2001年6月,1.0版本发布。有30多个开发者参与进来,并有数千人参与到讨论组中。Struts代码基础由一个志愿的Commnitter团队来管理。到2002年,Struts小组共有9个志愿Commnitter。
Struts框架的主要架构设计和开发者是CraigR.McClanahan。Craig也是Tomcat4的主要架构师,以及JavaWebServicesDeveloperPack的主要架构师和实现者。他现在是Sun的JavaServerFaces(JSR-127)以及J2EE平台的Web层架构的规范领导。CraigR.McClanahan先生是JCPExpertGroup成员之一,曾参与JSP规格制定与Tomcat4之编写,因此Struts Framework广受Java开发人员群体所重视。Borland自2002年底开始于开发工具JBuilder中支持StrutsFramework。
struts-集成模式
STRUTS
Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它采用MVC模式,能够很好地帮助java开发者利用J2EE开发Web应用。和其他的java架构一样,Struts也是面向对象设计,将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。Structs框架的核心是一个弹性的控制层,基于如JavaServlets,JavaBeans,ResourceBundles与XML等标准技术,以及JakartaCommons的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsptaglib组成。基于struts构架的web应用程序基本上符合JSPModel2的设计标准,可以说是一个传统MVC设计模式的一种变化类型。
Struts最早是作为ApacheJakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、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-操作流程
STRUTS
服务器启动后,根据web.xml加载Action Servlet读取struts-config.xml文件内容到内存。以登陆为例:第一次进login.jsp会先实例化Form、把默认值赋给表单元素。
输入用户名密码提交表单、提交到action属性的login.do,通过ActionServlet读struts-config.xml文件找到action下的path属性找到.do,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面。验证通过会实例化Action,执行Action的excute方法。
struts-体系结构
STRUTS
框架中三个部分:模型,视窗和控制器。
在struts框架中,模型分为两个部分:
系统的内部状态
可以改变状态的操作(事务逻辑)
内部状态通常由一组ActinFormJavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。
小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。
视窗:由JSP建立,struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。
控制器:struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由Action Mapping类进行描述)进行定义。
分享到:
相关推荐
Struts文章系统是一款基于Java平台,使用Struts框架开发的Web应用程序,主要用于构建内容管理系统或者博客平台。在本文中,我们将深入探讨Struts框架以及它如何与JSP结合实现一个功能丰富的文章系统。 **1. Struts...
struts2文章收集对你学习一定会有帮助的
本文将深入探讨Struts文章系统相关的知识点,以及如何通过Struts来实现一个高效、可维护的文章管理系统。 1. **MVC设计模式**:MVC模式是软件工程中的一种设计模式,将应用程序分为三个核心组件——模型(Model)、...
Struts文章系统是一个基于Apache Struts框架开发的Web应用程序,用于构建新闻或文章发布平台。Struts是一个开源的MVC(Model-View-Controller)框架,它为Java开发者提供了构建可维护、可扩展且结构清晰的Web应用的...
这个"Struts文章系统 - 源码.zip"压缩包包含了一个基于Struts实现的文章管理系统的所有源代码,这对于学习Struts框架以及Web开发有着极大的帮助。 在深入探讨源码之前,我们首先来理解一下Struts框架的基础知识。...
3. **配置文件**:在Struts应用中,`struts-config.xml`是核心配置文件,它定义了Action及其对应的ActionForm(用于收集和验证用户输入),以及Action与JSP页面之间的映射关系。 4. **ActionForm**:ActionForm对象...
这个“0积分:Struts精采文章合集.rar”压缩包显然包含了一系列关于Struts框架的精彩文章,对于想要深入理解和学习Struts的开发者来说是一份宝贵的资源。以下是这些文章可能涵盖的一些关键知识点: 1. **MVC设计模式...
Struts1 ActionForm可以收集表单数据,Action类处理这些数据,可能包括验证、转换和业务逻辑处理,最后通过DAO将数据存储到数据库中。 4. **文章的删除**:删除操作通常需要用户确认,一旦确认,Action类会根据传入...
本篇文章将详细介绍如何在Struts2中进行输入校验,包括两种主要实现方式:使用Action中的`validate()`方法和使用XML文件。 1. 使用Action中的`validate()`方法: 在Struts2中,每个Action类都可以包含一个名为`...
Struts是一个开源的MVC(Model-View-Controller)框架,由Malcolm Davis在IBM Systems Journal的文章中介绍。这个框架利用了Servlets和JavaServer Pages(JSP)技术,旨在帮助开发者管理和控制Web项目的变更,同时...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
`checkboxlist`在Struts2中通常与一个Action类中的属性关联,用于收集用户的多选数据。在HTML中,复选框默认是按行显示的,但为了优化用户界面,我们可能希望将它们分成多列显示,这就涉及到了换行。 `...
本篇文章将深入探讨Struts框架的核心概念、工作原理及其在实际开发中的应用。 一、Struts框架概述 Struts作为一个开源的MVC框架,它为开发者提供了构建可维护、结构清晰的Web应用程序的工具和结构。通过分离业务...
在Struts中,ActionForm Bean通常用于收集和验证表单数据。 7. **国际化与本地化**:此系统可能包含资源包(properties文件),用于支持多语言环境,展示了如何在Java Web应用中实现国际化的最佳实践。 8. **异常...
在本篇文章中,我们将深入探讨Struts1.x的主要工作流程,帮助你理解其核心概念和原理。 首先,我们来了解一下MVC模式。MVC是一种设计模式,将应用程序分为三个主要部分:模型(Model)负责业务逻辑,视图(View)...
【新闻文章】Struts新闻管理系统学习修正版_newsmanager.rar 是一个基于JSP、Java和SQL技术构建的应用程序,主要用于教学和实践目的,适用于毕业设计或课程设计项目。这个压缩包包含了一个已经修正过的Struts框架下...
本篇文章将深入探讨Struts API的核心概念、主要组件以及如何在实际项目中应用。 一、Struts MVC框架概述 Struts框架是基于MVC设计模式的,这种模式将应用程序分为三个核心部分:模型(Model)、视图(View)和控制...
本篇文章将围绕Struts的相关知识点进行深入探讨。 1. **MVC设计模式**: MVC模式是一种将业务逻辑、数据和用户界面分离的设计模式。在Struts框架中,Model代表业务逻辑,通常由JavaBeans或ActionForm对象实现;...
本篇文章将深入探讨Struts框架的组成部分、优势以及核心组件的功能。 **Struts框架的组成部分** 1. **struts-config.xml**: 这是Struts框架的核心配置文件,用于定义应用中的各个组件,包括ActionServlet的配置、...