|
减小字体 增大字体
摘 要 简要介绍了J2EE技术及其时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来,形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。 一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是流行的基于J2EE的架构方案之一,其他常用的基于J2EE的架构方案还有Turbine、RealMothods等。本文主要探讨Struts框架技术的应用。 2 J2EE应用程序架构的发展 在J2EE应用程序架构的发展路程中,主要经历了两个大的阶段: 2.1 Model 1 在JSP页面中结合业务逻辑、服务器端处理程序和HTML,在JSP页面中同时实现显示、业务逻辑和流程控制,从而快速的完成Web应用开发。这种模型的不足之处:1)不利于应用扩展和更新。2)业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离,不利于应用系统业务的重用和改动。 2、2 Model 2 表示的是基于MVC模式的框架。根据Model 2,servlet 处理数据存取和导航流, JSP处理表现。Model 2 使Java 工程师和HTML设计者分别工作于它们所擅长和负责的部分。Model 2应用的一部分发生改变并不强求其他部分也跟着发生改变。HTML 开发人员可以改变程序的外观和感觉,并不需要改变后端servlet的工作方式。把应用逻辑、处理过程和显示逻辑分成不同的组件实现。弥补了Model1的不足。 3 Struts框架技术 Struts 框架就是基于Model 2 的架构,也就是基于MVC模式的框架技术。它是一个免费的开源的WEB层的应用框架,具有很高的可配置性,和有一个不断增长的特性列表。一个前端控制组件,一系列动作类,动作映射,处理XML的实用工具类,服务器端java bean 的自动填充,支持验证的WEB 表单,国际化支持,生成HTML,实现表现逻辑和模板组成了struts的灵魂。图2显示了Struts组件是如何一起工作的。 
Struts 的ActionServlet 控制导航流。其他Struts 类,比如Action, 用来访问业务逻辑类。当 ActionServlet 从容器接收到一个请求,它使用URI (或者路径“path”) 来决定哪个Action 将用来处理请求。一个 Action可以校验输入,并且访问业务层以从数据库或其他数据服务中检索信息。 为校验输入或者使用输入来更新数据库, Action 需要知道什么被提交上来。并不是强制每个Action 从请求中抓取这些值,而是由 ActionServlet 将输入绑定到JavaBean中。输入 bean是Struts ActionForm c类的子类。ActionServlet 通过查找请求的路径可以决定使用哪个ActionForm,Action 也是通过同样的内容中有相当大的部分是人机交流,这就要求系统的交互性要强。2)较好的可扩展性:工作的内容和形式具有多变性,要求系统具有良好的可扩展性。3)良好的可维护性:系统投入使用后,主要是由管理员承担系统维护的工作,维护人员不定期变动,这就要求系统的可维护性强。4)具有较好的跨平台性:用户可能使用各种不同的操作系统,而且为了适应今后可能的变化,系统应具有较好的跨平台性。基于以上四点,在开发软件租用模块时,采用J2EE编程环境,并相应采用了专为J2EE定制的Struts框架。 做基于Struts框架的项目开发,关键是要有一个好的整体模型,计划好系统中包括哪几个模块,每个模块各需要什么样的FormBean、JavaBean,各种处理结果都通过哪些JSP页面来展现,同时配置好struts-config.xml文件。本系统的设计模型如图3所示。 
ActionServlet接受所有的HTTP请求,然后根据配置文件的内容,决定将请求映射到哪一个Action对象,本系统中有两个Action对象,分别对应着登陆远程软件(LogonAction)和系统反馈密码(MailAction)。 LogonAction首先会验证用户是否已经登录,如果没有登录则重定向到登录页面(Logon.jsp),验证通过后根据请求参数决定下一步的处理,如果用户还没有选择租用软件,则转到软件介绍租用界面(Query.jsp),选择需要租用的软件或软件的某些模块,提交信息后,MailAction使服务器向用户提交密码,用户接收到密码后,登陆运行软件。 如果用户登陆软件成功,则通过配置文件struts-config.xml中的ActionForward,通过GetInfo对象把该用户租用的软件信息读取道FormBean中,然后调用JSP页面显示Bean里的数据。如果是保存数据信息,则调SaveInfo对象将FormBean里保持的信息存入数据库;如果是修改信息,则调ModifyInfo对象将FormBean里保持的修改后的信息存入数据库;如果是删除数据信息,则调用DeleteInfo对象将FormBean里保持的信息从数据库中删除。 经过这样设计的系统,用户界面和数据处理已经完全分离,再加上在JSP页面中使用了自定义标记,使页面中没有了Java的脚本代码,这样Web界面的设计和后端程序的编写就有了清晰的界线,便于开发团队的分工,并且维护起来也很方便。 5 结束语 Struts是一种非常优秀的基于J2EE的MVC应用框架,虽然从正式发布到现在也只有两年多的时间,但它已经越来越多地运用于企业平台之上,许多大型网站已成功地应用了Struts框架。本文在总结了Struts框架技术及其工作原理的基础上,结合“面向铸造行业的网络化制造ASP平台开发”项目,提出了在线租用模块的设计思路,这为今后更好的应用采用Struts框架提供了参考。 参考文献: [1] 孙卫琴.基于MVC的JAVA WEB.设计与开发.电子工业出版社,2005,(6):274-275. [2] 寇 毅,吴力文.基于MVC设计模式的Struts框架的应用 方法[J].计算机应用,2003,(11):91-93. [3] Ted Husteel, Cedric Dumoulin, David Wiwerfeldt,等.《Struts in Action》[M]. manning Publication co.2001 转贴于 范文论文吧 http://www.fwlw8.com
|