Struts原理简介

原创 2005年04月29日 10:45:00

[标题]
Struts原理简介

内容提要:
Struts原理简介
正文:

Struts是作为Apache Jakarta项目的组成部分。该项目的目标是为建立Java web 应用程序而提供的一个开源框架,目前大家一般使用的版本为1.1,但也出现了1.2。通过使用struts 框架可以改进和提高Java Server Pages (JSPs)、Servlet、标签库以及面向对象的技术在web应用程序中的应用。应用Struts框架可以减少应用MVC(Model- View -Controller)设计模式的开发时间,从而提高开发效率。

项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages (JSPs)、Servlet、标签库以及面向对象的技术水准(可以到http://jakata.apache.org/Struts下载)。

Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助你减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,将Struts应用于J2EE客户端,应该是一个不错的选择。

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

谈到Struts,就不得不提到MVC设计模式。MVC即Model-View-Controller的缩写,它是web应用当中的常用的设计模式。MVC减弱了业务逻辑接口和数据接口之间的耦合,同时让视图层更富于变化。Struts是MVC的一种实现,它很好的结合了Jsp,Java Servlet,Java Bean,Taglib等技术。

1.控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action Form(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类访问核心商业逻辑,即访问Java Bean或调用EJB。最后动作类把控制权传给后续的JSP文件,由JSP文件生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。
2.视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
3.模型:模型以一个或多个Java Bean的形式存在;在Struts中,主要存在三种Bean,分别是:Action,ActionForm,EJB或者Java Bean。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。

了解了Struts的各个部分的职责,其工作流程就清晰可见了。在Struts中,用户的请求一般以*.do(这个后缀是可以自由配置的)作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。

因此Struts可以为Web应用的开发和维护带来诸多的好处,其优点表现在以下几个方面:

  • 利用Struts提供的taglib可以大大节约开发时间;
  • 表现与逻辑分离;
  • 维护扩展比较方便;
  • 便于团队开发;
  • 通过使用Struts框架,可以提高系统的可维护性和可重用性。
其缺点是大量的使用标签,对于初学者难度较大。


参考资料:

1、 《Struts-documentation》
2、 《当前流行的J2EE WEB应用架构分析》 龚永生 IBM开发者网站
3、 《Struts,MVC 的一种开放源码实现用这种Servlet和JSP框架管理复杂的大型网站》Malcolm G. Davis IBM开发者网站
4、 《Jakarta Struts Book Review Project》 Chuck Cavaness Theserverside连载

【Struts】——简介 & 原理

truts是对JSPModel2设计标准的一种实现,下面分别从模型(Model)、视图(view)和控制器3个部分介绍Struts的体系结构和工作原理。...
  • u010164936
  • u010164936
  • 2016年01月11日 15:58
  • 925

Struts旅程(一)Struts简介和原理

struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/...
  • lovesummerforever
  • lovesummerforever
  • 2014年02月10日 07:55
  • 92864

struts2上传文件,原理,方式等总结.

struts2文件上传底层用的还是commons-fileupload
  • yjsuge
  • yjsuge
  • 2011年08月04日 23:25
  • 2774

Struts原理简介

Struts是作为Apache Jakarta项目的组成部分。该项目的目标是为建立Java web 应用程序而提供的一个开源框架,目前大家一般使用的版本为1.1,但也出现了1.2。通过使用struts...
  • xxyakoo
  • xxyakoo
  • 2008年10月12日 19:03
  • 342

Struts简介和原理

struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet...
  • BobChao0730
  • BobChao0730
  • 2014年09月13日 11:43
  • 285

Struts原理简介

 Struts原理简介Struts是作为Apache Jakarta项目的组成部分。该项目的目标是为建立Java web 应用程序而提供的一个开源框架,目前大家一般使用的版本为1.1,但也出现了1.2...
  • xxyakoo
  • xxyakoo
  • 2008年10月18日 10:59
  • 380

Struts2(一)——总体介绍

这篇博客开始将总结一下有关框架的知识,在开发中合适的利用框架会使我们的开发效率大大提高。当今比较流行的开源框架: 关注数据流程的MVC框架 (Struts1/2, WebWork, Sprin...
  • liujiahan629629
  • liujiahan629629
  • 2014年03月05日 19:44
  • 18719

struts 属性驱动

struts的数据封装的实现原理:使用了拦截器.进行数据的封装. 这个拦截器的执行流程: (1)用户访问login.jsp填写表单username和password,提交到user_login...
  • u014010769
  • u014010769
  • 2015年07月25日 17:29
  • 720

Struts2工作原理

Struts2工作原理 Struts2请求响应流程:   在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller、ActionProxy、Ac...
  • wuwenxiang91322
  • wuwenxiang91322
  • 2013年09月04日 16:18
  • 90900

Struts 2的property标签的原理

Struts2中的property标签 是用于取得OgnlContext上下文中的属性值,也称为数据标签 特点是取request/session/application/attr/paramete...
  • comeandgo201205
  • comeandgo201205
  • 2012年10月07日 11:22
  • 1830
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts原理简介
举报原因:
原因补充:

(最多只允许输入30个字)