分享
 
 
 

Struts框架技术在J2EE中的研究和应用

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

摘 要 简要介绍了J2EE技术及其应用程序架构的发展,论述了Struts框架的基本设计思想,分析了Struts框架开发系统的优点,并结合具体项目实现了Struts框架技术的应用。

要害词 J2EE;MVC;Struts;框架

J2EE简介

J2EE是一个开放的、基于标准的平台,可以开发、部署和治理N层结构的、面向Web的、以服务器为中心的企业级应用,它是利用java 2 平台来简化与多级企业解决方案的开发、部署和治理相关的诸多复杂问题的应用体系结构。

J2EE平台采用一个多层次分布式的应用模式。这意味着应用逻辑根据功能被划分成组件,组成J2EE应用的不同应用组件安装在不同的服务器上,这种划分是根据应用组件属于多层次J2EE环境中的哪一个层次来决定的。如图1所示,J2EE应用可以由三或四个层次组成,J2EE多层次应用一般被认为是三层应用,因为它们是被分布在三个不同的地点:客户端机器、J2EE服务器和数据库或后端的传统系统服务器。三层架构应用是对标准的客户端/服务器应用架构的一种扩展, 即在客户端应用和后台存储之间增加一个多线程应用服务器。

J2EE体系包括jsp、Servlet、EJB、WEB SERVICE等多项技术。这些技术的出现给电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来,形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。

一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是流行的基于J2EE的架构方案之一,其他常用的基于J2EE的架构方案还有Turbine、RealMothods等。本文主要探讨Struts框架技术的应用。

J2EE应用程序架构的发展

在J2EE应用程序架构的发展路程中,主要经历了两个大的阶段:

1、Model 1

在JSP页面中结合业务逻辑、服务器端处理程序和Html,在JSP页面中同时实现显示、业务逻辑和流程控制,从而快速的完成Web应用开发。这种模型的不足之处:1)不利于应用扩展和更新。2)业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离,不利于应用系统业务的重用和改动。

2、Model 2

表示的是基于MVC模式的框架。根据Model 2,servlet 处理数据存取和导航流, JSP处理表现。Model 2 使Java 工程师和HTML设计者分别工作于它们所擅长和负责的部分。Model 2应用的一部分发生改变并不强求其他部分也跟着发生改变。HTML 开发人员可以改变程序的外观和感觉,并不需要改变后端servlet的工作方式。把应用逻辑、处理过程和显示逻辑分成不同的组件实现。弥补了Model1的不足。

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 也是通过同样的方法选取的。每个Action都必须以HTTP 响应进行应答。 通常, Struts Action 并不自行加工响应信息,而是将请求转发到其他资源,比如JSP 页面。Struts 提供一个ActionForward 类,用来将一个页面的路径存储为逻辑名称。当完成业务逻辑后,Action 选择并向Servlet返回一个ActionForward。Servlet 然后使用存储在ActionForward 对象中的路径来调用页面完成响应。

Struts 将这些细节都绑定在一个ActionMapping 对象中。每个ActionMapping 相对于一个特定的路径。当某个路径被请求时,Servlet 就查询ActionMapping 对象。ActionMapping对象告诉servlet哪个Actions、 ActionForms 和 ActionForwards 将被使用。

所有这些细节,关于Action, ActionForm, ActionForward, ActionMapping,以及其他一些东西,都在struts-config.xml 文件中定义。 ActionServlet 在启动时读取这个配置文件,并创建一个配置对象数据库。在运行时,Struts 应用根据的是文件创建的配置对象,而不是文件本身。

基于Struts框架的应用设计实例

本文以“面向铸造行业的网络化制造asp平台开发”项目中的软件租用模块为例,来说明如何设计基于Struts框架的Web应用。在该模块中,用户合法登陆网站后,可以根据需要选择所要租用的软件类型及软件中的功能模块,确认信息提交服务器后,用户将收到系统给予的登陆密码,用户即可登陆网站,在线使用租用软件,实行业务托管。

根据项目需求分析,确定该系统必须具备的性能有:1)良好的交互性:工作内容中有相当大的部分是人机交流,这就要求系统的交互性要强。2)较好的可扩展性:工作的内容和形式具有多变性,要求系统具有良好的可扩展性。3)良好的可维护性:系统投入使用后,主要是由治理员承担系统维护的工作,维护人员不定期变动,这就要求系统的可维护性强。4)具有较好的跨平台性:用户可能使用各种不同的操作系统,而且为了适应今后可能的变化,系统应具有较好的跨平台性。基于以上四点,在开发软件租用模块时,采用J2EE编程环境,并相应采用了专为J2EE定制的Struts框架。

做基于Struts框架的项目开发,要害是要有一个好的整体模型,计划好系统中包括哪几个模块,每个模块各需要什么样的FormBean、JavaBean,各种处理结果都通过哪些JSP页面来展现,同时配置好struts-config.xml文件。本系统的设计模型如图3所示。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有