http://www.cn-java.com/target/news.php?news_id=2207

Struts原理、开发及项目实施
Holen 2002-9-12

1、 摘要
2、 关键词
3、 Framework
4、 Struts的起源
5、 Struts工作原理
6、 Struts安装
7、 一个实例
8、 Struts优缺点
9、 Struts项目实施经验
10、 总结
11、 参考文献

1、 摘要
本文主要讲述了Struts(以Struts1.0.2为例)的工作原理,安装以及配置方面的问题。然后结合一个实例,详细讨论了Struts在实际开发过程中的应用,最后提供一些在开发过程中积累的经验,供大家参考。

2、关键词
Struts、MVC、J2EE、Tiles、Framework

3、Framework
Framework即架构(框架),这里指软件的架构方式,为什么要提Framework呢?请允许我从J2EE讲起。
J2EE体系包括JSP、Servlet、EJB、WEB SERVICE等多项技术。这些技术的出现给电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来,形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。
此步骤一般主要由架构设计师完成,设计师将根据项目需求,对J2EE体系中的各处技术进行筛选取舍,并考虑到开发过程中的角色分工、后期的运行维护,以及系统扩展性等诸多因素,建立系统的架构。
一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是其中之一,Struts是流行的基于J2EE的架构方案,其他常用的基于J2EE的架构方案还有Turbine、RealMothods等。

4、Struts的起源
Struts最早是作为Apache Jakarta项目的组成部分问世运做。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages (JSPs)、Servlet、标签库以及面向对象的技术水准。当前最高发行版本为Struts1.0.2,可以到http://jakata.apache.org/Struts下载。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助你减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。

5、Struts工作原理
MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图1所示:

Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理,如下图2所示:

控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。
视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。
流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。

核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。这在后面还会详细讨论。

转载于:https://www.cnblogs.com/day/archive/2007/03/12/671809.html

Struts原理、开发及项目实施相关推荐

  1. [vue-cli]在使用vue-cli开发vue项目时,自动刷新页面的原理你了解吗?

    [vue-cli]在使用vue-cli开发vue项目时,自动刷新页面的原理你了解吗? 自动刷新页面并不是vue-cli的功能,而是webpack的hot-module-replacement-plug ...

  2. ai项目实施步骤_停止AI产品开发中道德责任的6个步骤

    ai项目实施步骤 这是官方的:人工智能(AI)并不是我们想要成为的公正的天才. Google的母公司Alphabet(Alphabet)使用其最新的年度报告来警告称,对其产品的道德顾虑可能会损害未来的 ...

  3. 面向金融行业项目实施及开发。

    项目开发工程师 一.职位描述: 1. 具有独立思考能力,编程基础扎实. 2. 能够理解整理客户需求,完成模块设计: 3. 能够独立完成相关模块的编码工作. 4. 热爱编程. 二.任职能力: 1. 工科 ...

  4. 基于5G技术的智能导航机器人及AR巡逻应用开发项目实施方案(上)

    目录 1 项目总体概述 1.1 项目背景 1.2 建设内容 1.3 建设目标 2 项目需求理解 2.1 业务需求 2.2 功能需求 3 项目技术方案 3.1 建设方案 3.1.1 设计思路 3.1.2 ...

  5. 一个讨论:SAP项目实施的顾问,需要花时间去调试代码了解技术细节吗

    最近Jerry把自己写的深入学习SAP UI5系列的几篇文章,发送到自己组建的SAP技术讨论群: Jerry刚学SAP UI5时,对官网上的一些文档理解得不深,后来调试了框架实现,才彻底搞清楚. 有朋 ...

  6. 代码 纪录 软件_「软件资料」-「资讯动态」-软件开发类项目关键文档内容要求...

    1 软件开发计划 2 需求规格说明书 3 软件概要设计说明 4 数据库设计说明 5 软件详细设计说明 6 可执行程序生成说明 7 软件测试计划 8 软件测试说明 9 软件测试报告 10 安装部署手册 ...

  7. ASWEET项目实施日志

    写在前面 在写之前我们确实也在各大网站及平台上进行过搜索,也的确有很多项目总结或者是阶段性的项目记录,但没有日志型项目记录.更不用说是关于NetSuite这种SaaS ERP类型的实施日志了. 为什么 ...

  8. Struts原理与实践(文摘)

    Struts原理与实践 摘自walle的blog word文档下载:http://www.chq.name/component/option,com_docman/task,doc_download/ ...

  9. Struts原理与实践

    [@more@] Struts原理与实践 (第1部分) 一. 什么是Struts 框架(Framework)是可重用的,半完成的应用程序,可以用来产生专门的定制程序. 您只要细心地研究真实的应用程序, ...

  10. ai项目实施_公司在实施AI时必须避免的6个最大陷阱

    ai项目实施 The age of AI is upon us and many companies begin to start their AI journey and reap the full ...

最新文章

  1. 【408预推免复习】计算机组成原理之计算机的运算方法
  2. 【机器视觉】 dev_unmap_prog算子
  3. jQuery Mobile移动网站
  4. 【转】教你何时开启水果机上的HDR拍照
  5. python常见错误及基本技巧
  6. SharePoint 2010--为WebPart创建自定义属性
  7. 如何封装带有不变参数的函数
  8. CSS中clear:both用法及事例
  9. 系统检测到您正在使用网页抓取工具访问_网站如何检测被爬虫?
  10. 计算机网络中什么是令牌,一个动画看懂网络原理之令牌环网的工作原理
  11. Windows 使用 CMD 命令行下载文件
  12. python数据清洗
  13. 一文快速告诉你软件测试和软件调试有什么区别?
  14. html div 怎么排版,请html大神解决一个div排版的问题
  15. scala异常处理、提取器(Extractor)、文件IO
  16. 基于不确定性量化的非精确概率可靠性理论
  17. linux命令下载电影,linux命令行---用wget下载电影
  18. 企业升级改造项目中的电力监控系统的研究与应用
  19. 什么是存款准备金以及存款准备金率
  20. 致诸位使用和支持火鸟字幕合并器的朋友

热门文章

  1. putty秘钥转换成xhell支持的格式
  2. @Html.DisplayFor 和 @mode.Display
  3. iOS 容器 addChildViewController
  4. Hibernate 主键策略
  5. linux入门基础命令详解
  6. 【翻译】Geometric Features-Based Parking Slot Detection
  7. Advances in adversarial attacks and defenses in computer vision: A survey论文解读
  8. Pytorch中DataLoader相关操作
  9. vim编辑器使用详解
  10. 使scp不用输入密码