(计算机软件与理论专业论文)基于mvc模式的struts技术在web应用中的研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于mvc模式的struts技术在web应用中的研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于mvc模式的struts技术在web应用中的研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于mvc模式的struts技术在web应用中的研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于mvc模式的struts技术在web应用中的研究与实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着网络技术的迅速发展和j 2 e e 平台的广泛应用,基于b s 的多层w e b 体系结 构正在不断的发展完善,并逐渐成为w e b 应用开发的主流。如何设计和构建一个强 健的,具有伸缩性的、可重用的w e b 应用体系架构是我们所面临的挑战。 基于上述问题,本文主要进行了以下的研究和设计工作:首先对课题的研究目的、 意义及国内外发展现状进行了介绍,其次深入研究了m v c 设计思想、优点及其在 j 2 e e 平台上的实现,接着重点讨论了基于m v c 模式的s t r u t s 框架,对其整体结构、 开发流程及优缺点进行了分析,然后详细阐述了该框架在w e b 开发中的应用,并通 过引入a j a x 的异步传输技术对s t r u t s 框架进行改进,最后结合一个基于s t r u t s 框架的 电子政务管理系统,对s t r u t s 框架的实际应用进行了分析,验证了实现方法的可行性。 关键词:j 2 e em v cs t r u t s a j a x a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fn e t w o r kt e c h n o l o g ya n dt h ew i d eu s eo fj 2 e e p l a t f o r m ,t h em u l t i l a y e rw e bs t r u c t u r eb a s eo nb sh a sd e v e l o p e dg r a d u a l l y , a n db e c o m e t h em a i n s t r e a mo ft h ew e ba p p l i c a t i o nd e v e l o p m e n t h o wt od e s i g na n db u i l da s t o r n g ,f l e x i b l e ,a n dr e u s a b l ew e bf r a m e w o r k i st h ec h a l l e n g ew eh a v et of a c e b a s e do nt h ea b o v ei s s u e s ,t h em a i nw o r ko ft h i st h e s i si sf o l l o w i n g :t h ef i r s tp a r to f t h i st h e s i si n t r o d u c e st h er e s e a r c hp u r p o s e s ,s i g n i f i c a n c e ,t h ed e v e l o p m e n to ft h es t a t u sq u o i na n da b r o a d ,t h e nr e s e a r c ht h et h o u g h to ft h em v cd e s i g np a t t e n rd e e p l ya n dt h e a d v a n t a g ea n dt h ea c h i e v e m e n ti n t h ej 2 e ep l a t f o r m ,t h e nf o c u s e do nt h em v cm o d e l b a s e do nt h es t r u t sf r a m e w o r k ,a n a l y z et h eo v e r a l ls t r u c t u r e ,d e v e l o p m e n tp r o c e s sa n dt h e s t r e n g t h sa n dw e a k n e s s e s ,a n de l a b o r a t et h ef r a m e w o r k i nw e b d e v e l o p m e n t a tt h es a m e t i m e ,i no r d e rt oe n h a n c et h eu s e re x p e r i e n c e ,t h i sp a p e ro p t i m i z e ds t r u t sb yi n t r o d u c t i o no f a j a x sa s y n c h r o n o u st r a n s f e rt e c h n o l o g y f i n a laa d m i n i s t r a t i v em a n a g e m e n ts y s t e mb a s e d o ns t r u t sf r a m ew o r kw a sp r e s e n t e da n da n a l y z e d a n dv a l i d a t ei t sf e a s i b i l i t y k e yw o e d s :j 2 e e m v cs t r u t sa j a x 长春理工大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,基于m v c 模式的s t r u t s 技术在w e b 应用中的研究与实现是本人在指导教师的指导下,独立进行研究工作所取得的成果。 除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过 的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 本人完全意识到本声明的法律结果由本人承担。 作者签名:盘叁型年互月旦日 长春理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“长春理工大学硕士、博士学位论文版权使 用规定 ,同意长春理工大学保留并向中国科学信息研究所、中国优秀博硕士学位论 文全文数据库和c n 系列数据库及其它国家有关部门或机构送交学位论文的复印件 和电子版,允许论文被查阅和借阅。本人授权长春理工大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和 汇编学位论文。 作者签名:辽坠2 翌2年互月监日 指导导师签名: 年一月一日 5 3 第一章绪论 1 1 课题研究的目的及意义 人类社会正在进入知识经济时代,信息与知识是企业占主导地位的资源。信 息时代的到来,以互联网为代表的全球信息化浪潮正以迅猛的态势冲击着各行各 业。随着网络技术的发展,越来越多的设计者选择基于w e b 的应用系统开发,w e b 应用不再仅仅是具有静态信息发布的简单功能,而且被要求具有实时动态处理交互 信息的能力,因此,如何才能方便、快捷地开发具有高效性、灵活性和易扩展性的 w e b 应用系统也就越来越成为一个倍受人们关注的课题。 为了达到提高w e b 系统的开发效率、执行效率、可重用性、可扩展性、可维 护性、降低构建和维护的成本的目的,考虑到应用系统的灵活性、安全性、实用性 等,就需要有一种好的设计模式。 利用m v c 设计模式开发w e b 应用,可以将表现逻辑和业务逻辑分离,构建可 复用的软件系统框架,同时可以简化软件开发,大大减少开发时间,缩短维护周期, 提高软件的性能和可维护性,提高软件质量,成为基于w e b 的应用和服务的首选。 s t r u t s 是一个基于j 2 e e 平台、实现m v c 设计模式的框架。s t r u t s 规定了应用 的体系结构,为应用系统提供了一个良好的软件构架,可以解决由于应用的复杂性 而在软件开发过程中所带来种种问题,并对实现在应用系统建设初期所制定的软件 功能、开发投入、开发周期、项目的组织和管理上的目标,都有极大的帮助。 基于上述分析,研究如何实现s t r u t s 框架的各个组件,如何利用s t r u t s 框架解 决现在w e b 应用程序开发过程中存在的一系列问题,从而达到提高程序的开发速 度,提高软件的性能、可复用性和可维护性。 1 2 国内外的发展现状 j 2 e e 是s u n 公司推出的一种全新概念的模型,与传统的互联网应用程序模型相 比有着不可比拟的优势。j 2 e e 可以理解为个企业级的中间件体系或平台,它把多 种分散到网络上的资源和应用连接起来,为构造和管理、运行可伸缩的企业级业务 应用提供了一系列的应用组件和一个运行环境。从物理上看,j 2 e e 环境可分布驻留 到一个以上的服务器,单一的业务应用能够以一组分布式组件的形式部署到网络上 的一个或多个服务器。 当今许多企业都需要扩展他们的业务范围,降低自身经营成本,缩短他们和客 户之间的响应时间,这就需要存在一种简捷,快速的服务于企业,合作伙伴雇员之 间的应用软件。典型的说,提供这些服务的应用软件必须同企业信息系统( e i s ) 相结 合,并提供新的能向更为广阔的用户提供的服务。这些服务要具备以下的特点: 1 高可用性:满足现在的全球商业环境。 2 安全性:保护用户的隐私和企业数据的安全。 3 可依赖性和可扩展性:保证商业交易的正确和迅捷。 通常这些服务是由分布的应用程序组成的,包括前端数据端和后端数据源以及 它们之间的一层或几层,这些中间层提供了把商业功能和数据与e i s 相结合的功能。 这些中间层把客户端从复杂的商业逻辑中分离出来,利用成熟的矾t e r n e t 技术使 用户在管理上所花费的时问最小化。 j 2 e e 正是降低了开发这种中间层服务的成本和复杂程度,因而使得服务可以被 快速的展开,并能够更轻松的面对竞争中的压力乜1 。j 2 e e 经过多年的实践证明是一 种可以信赖的企业级软件开发技术,受到许多l t 业大厂商的支持,具有十分广阔的 前景。 s t r u t s 框架是基于m v c 模式的一种实现。s t r u t s 最早是作为a p a c h e j a k a r t a 项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高 j a v a s e r v e r p a g e s 、s e r v l e t 、标签以及面向对象的技术水准。开始的代码基础从2 0 0 0 年5 月开始开发,一直到2 0 0 1 年6 月,1 0 版本发布。有3 0 多个开发者参与进来, 并有数千人参与到讨论组中。s t r u t s 代码基础由一个志愿的c o m m n i t t e r 团队来管理。 到2 0 0 2 年,s t r u t s 小组共有9 个志愿c o m m n i t t e r 口3 。 近年来,随着j 2 e e 的成熟,m v c 正在成为j 2 e e 平台上推荐的一种设计模式。 随着网络w e b 应用的快速增加,m v c 在系统框架设计中大量采用,如s t r u t s 。m v c 模式是w e b 应用框架设计中广泛采用的一种非常先进的思想,它为理解分析应用 模型时提供最基本的分析方法,为构造产品提供清晰的设计框架,为软件工程提 供规范的依据h 1 。 如今在基于w e b 的应用中,基于m v c 的s t r u t s 框架得到越来越广泛的应用。 在产业方面,不少软件公司在j b u i l d e r 、w s a d 、e e l i p s e 等开发工具上使用s t r u t s 框 架。国内许多中小型w e b 项目都是基于s t r u t s 开发的;甚至一些大型项目所使用的 框架也是在s t r u t s 基础上进行二次开发。 1 3 论文的研究内容及结构 本文主要是在m v c 模式下对s t r u t s 框架进行的研究,并通过目前比较流行的 a j a x 技术对该框架进行了改进,并在改进的框架的基础上开发了电子政务管理系 统,突出体现了使用s t r u t s 开发的优越性及加入a j a x 的异步刷新功能后高用户体验 效果。其主要研究内容有; 第一、介绍了本论文研究的目的、意义以及国内外研究进展状况。 第二、介绍了基于m v c 模式的实现了j s p m o d e l 2 规范的w e b 应用开发框架 s t r u t s 。在介绍了s t r u t s 如何实现m v c 机制及工作流程后,详细介绍了s t m s t 的体 系结构及配置文件。 第三、通过视图、模型、控制器组件的具体实现详细介绍了s t r u t s 框架在w e b 2 开发中的应用,并提出了本文中各层的实现技术,最后用a j a x 的异步传输技术对 s t r u t s 框架进行了改进,从根本上解决了传统的网络交互过程中处理一等待一处理一等 待的缺点,以达到缩短用户等待时间提高用户体验效果的目的。 第三、首先介绍了政务管理系统的醒目背景以及其功能模块的分析及设计。阐 述了系统功能模块及系统架构的分析与设计,详细介绍了系统总体用例分析。 第四、详细描述了s t r u t s 框架在电子政务管理系统中的运用,从s t r u t s 框架的 体系结构出发,详细阐述了系统的配置文件、视图、模型和控制器的实现过程,以 及系统实现过程中的一些关键技术的实现。 论文的组织结构如下t 第一章绪论。主要对论文研究的目的及意义、国内外发展现状及论文的主要 内容及结构进行了综述。 第二章基于m v c 的s t r u t s 框架研究。对该框架的整体结构及处理流程进行深 入的分析及研究,对s t r u t s 框架的体系结构及配置做了阐述,最后阐述了该框架进 行开发的优缺点。 第三章s t r u t s 框架在w e b 开发中的应用。阐述了利用五层b s 架构技术,基 于s t u r t s 框架搭建w e b 应用程序框架的方法。讲述了视图、模型和控制器的实现方 法,总结了目前较为常用的几种方法,提出了本文的实现技术。为了构建响应更加 灵敏的w e b 程序,采用了a j a x 技术对s t r u t s 的改进。首先对a j a x 技术进行了介绍, 并针对项目中出现的用户等待时间过长的问题,提出了把a j a x 的异步传输技术运 用到项目中,达到缩短用户等待时间,增强用户体验的效果。 第四章电子政务管理系统的总体设计。本章首先从总体上介绍了整个系统的功 能需求。然后就其功能需求进行了分析,并给出了系统中主要业务的流程分析。最后 根据需求分析建立了系统三层模型和系统开发软件体系架构等。 第五章基于s t r u t s 框架的电子政务管理系统的实现。介绍了系统的详细设计 和具体实现,并对系统中用到的关键技术进行了说明,体现了改进后框架的优秀用 户体检效果。 3 第二章基于m v c 的s t r u t s 框架研究 2 1m v c 模式的结构 m v c 是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。m v c 把应用程序分成三个核心模块:模型、视图、控制器,它们分别担负不同的任务。图 2 1 显示了这几个模块各自功能以及它们的相互关系阳1 。 叶方法调用 事件 图2 1m v c 设计模式结构图 1 - 模型( m o d e l ) 模型包含了应用程序的核心,它封装了应用程序的数据结构和事物逻辑,集中体 现了应用程序的状态。换言之,模型就是业务流程状态的处理以及业务规则的制定。 业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最 终的处理结果。m v c 并没有提供模型的设计方法,而只告诉你应该组织管理这些模型, 以便于模型的重构和提高重用性n 1 。 在m v c 的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的, 就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型 的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性,提高了系统设 计的可重用性。 2 视图( v i e w ) 视图通过显示的形式把信息转达给用户,是应用程序的外在表现。在视图中其实 没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲, 它只是作为一种输出数据并允许用户操纵的方式。它可以访问模型的数据,却不了解 4 模型的情况,同时也不了解控制器的情况。当模型发生改变时,视图会得到通知,它 可以访问模型的数据,但不能改变这些数据阳3 。一个模型可以由多个视图,而一个视 图理论上也可以与不同的模型关联起来。 3 控制器( c o n t r o l l e r ) 控制器通过时间触发的方式接受用户的输入。可以理解为从用户接收请求,将模 型与视图匹配在一起,共同完成用户的请求。控制器的作用很明显,它就是一个分发 器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层不 做任何的数据处理,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求 的视图返回给用户口1 。因此,一个模型可能对应多个视图,一个视图可能对应多个模 型。 2 2s t r u t s 概述 s t r u t 这个名字来源于在建筑和旧式飞机中使用的支持金属架,它的目的是为了减 少在运用m v c 设计模型来开发w e b 应用的时间。s t r u t s 继承了m v c 的各项特性,并 根据j e e e 的特点,做了相应的变化与扩展。s t r u t s 有如下的主要功能: 1 包含一个c o n t r o l l e rs e r v l e t ,能将用户的请求发送到相应的a c t i o n 对象。 2 j s p 自由标签库,并且在c o n t r o l l e rs e r v l e t 中提供关联支持,帮助开发人员创建 交互式表单应用。 3 提供了一系列实用对象:x m l 处理、通过j a v ar e f l e o i o n a p i s 自动处理j a v a b e a n s 属性、国际化的提示和消息。 s t r u t s 提供了它自身的控制器组件,并整合了其他技术,以提供模型和视图。对 于模型,同大多数的第三方软件包一样,如h i b e r n a t e 或o b j e c tr e l a t i o n a lb r i d g e ,s t r u t s 能够和标准数据连接技术相结合,如用j d b c 和e b j 。对于视图,s t r u t s 与j a v as e r v e r p a g e s 协同工作,包含j s t l 和j s f 。 2 2 1s t r u t s 实现m v c 的机制 s t r u t s 实质上是在j s pm o d e l 2 的基础上实现的一个m v c 框架。它将这些概念映 射到w e b 应用程序的组件和概念中。在s t r u t s 框架中,控制器由a c t i o n s e r v l e t 和一组 a c t i o n 以及s t r u t s c o n f i g x m l 配置文件实现,模型由j a v a b e a n 或者e j b 组成,视图由 j s p 文件实现。s t r u t s 实现的m v c 如图3 1 所示 5 s e r v l e t j s p 容器h s t r u t s c o n f i g x m l 一一一_ 、 ti 尺竺:) 舭t 。n s 三t e f 磊、 l j a v a b e a n 斗 e j b l 浏览器卜w e b 服务器 ;7 i := 1 j s p 图3 1s t r u t s 实现的m v c 1 视图:在s t r u t s 中视图就是一组j s p 文件以及a c t i o n f o r m b e a n ,在j s p 文件中, 没有业务逻辑,只有标签,用于把结果呈现给用户。a c t i o n f o r m b e a n 本质上是一种 j a v a b c a n ,它用于在视图与控制器之间传递数据。用户输入的信息可以保存在 a c t i o n f o r m b e a n 中,然后传递给控制器,控制器可以对这些信息进行修改,修改后的 信息再传递给视图组件,重新设置h t m l 表单。如图3 2 所示。 a c t i o n f o r m b e a n ( 用户输入数据) a c t i o n f o r m b e a n ( 控制器修改后数据) 图3 2a c t i o n f o r m b e a n 的作用 2 模型:在s t r u t s 框架中,模型由j a v a b e a n 或e j b 组成。用于实现应用程序的状 态和业务逻辑鲫。 3 控制器:控制器是s t r u t s 的核心组件,主要包括a c t i o n s e r v l e t 、a c t i o n 以及 s t r u t s c o n f i g x m l 文件。a e t i o n s e r v l e t 继承了j a v a x s c r v l e t h t t p h t t p s e r v l e t 类,主要负 责接收客户请求信息,然后根据s t r u t s c o n f i g x m l 文件决定把请求转发给哪个a c t i o n 。 a c t i o n 一般用于控制程序的流程,并负责调用模型的方法,更新模型的状态。对 于小型简单的应用,a c t i o n 类本身也可以完成些实际的业务逻辑。对于大型的应用, a c t i o n 主要作为用户层与业务逻辑层之间的适配器( a d a p t o r ) ,其功能就是把用户请求 与业务逻辑分开,a c t i o n 根据用户请求调用相关的业务逻辑组件。业务逻辑由j a v a b e a n 或f _ j b 来完成,a c t i o n 类侧重于控制应用程序的流程,而不是实现应用程序的 6 逻辑。通过将业务逻辑放在单独的j a v a 包或e j b 中,可以提高业务逻辑的灵活性和 重用性。 当a c t i o n s e r v l e t 接收到用户请求后,把请求转发到一个相应的a c t i o n 实例。如 果这个实例不存在,a c t i o n s e r v l e t 会首先创建它,然后调用这个a c t i o n 实例的e x e c u t e 0 方法。a c t i o n 的e x e c u t e o 方法返回a c t i o n f o r w a r d 对象,它封装了把用户请求再转发 给其他w e b 组件的信息。用户定义自己的a c t i o n 类,即a c t i o n 基类时,必须覆盖 e x e c u t e 0 方法。在a c t i o n 基类中该方法返回n u l l 。 4 s t r u t s 的配置文件s t r u t s c o n f i g x m l :上面讲到一个用户请求是通过 a c t i o n s e r v l e t 来处理和转发的。那么,a c t i o n s e r v l e t 如何决定把用户请求转发给哪个 a c t i o n 对象呢? 这就需要一些描述用户请求路径和a c t i o n 映射关系的配置信息了。在 s t r u t s 中,这些配置映射信息都存储在特定的x m l 文件s t r u t s c o n f i g x m l 中。在该配 置文件中,每一个a c t i o n 的映射信息都通过一个 元素来配置。 这些配置信息在系统启动的时候被读入内存,供s t r u t s 在运行期间使用,在内存 中,每一个 元素都对应一个o r g a p a c h e s t r u t s a c t i o n a c t i o n m a p p i n g 类的实例。 2 2 2s t r u t s 的工作流程 对于采用s t r u t s 框架的w e b 应用,在w e b 应用启动时就会加载并初始化 a c t i o n s e r v l e t ,a c t i o n s e r v l e t 从s t r u t s c o n f i g x m i 文件中读取配置信息,把它们存放到各种 配置对象中,例如a c t i o n 的映射信息存放在a c t i o n m a p p i n g 对象中。当a c t i o n s e r v l e t 接收 到客户请求时,将执行如下流程瞳: 1 检索和用户请求匹配的a c t i o n m a p p i n g 实例,如果不存在,就返回用户请求路径 无效的信息。 2 如果a c t i o n f o r m 实例不存在,就创建一个a c t i o n f o r m 对象,把客户提交的表单数 据保存至l j a c t i o n f o r m 对象中。 3 根据配置信息决定是否需要表单验证。如果需要验证,就调用a c t i o n f o r m 的 v a l i d a t e 0 方法。 4 如果a c t i o n f o r m 的v a l i d a t e 0 方法返回n u l l 或返回一个不包含a c t i o n m e s s a g e 的 a c t i o n e r r o r s 对象,就表示表单验证成功。 5 a c t i o n s e r v l e t 根据a c t i o n m a p p i n g 实例包含的映射信息决定将请求转发给哪个 a c t i o n 。如果相应的a c t i o n 实例不存在,就先创建这个实例,然后调用a c t i o n 的e x e c u t e 0 方法。 6 a c t i o n 的e x e c u t e 0 方法返回一个a c t i o n f o r w a r d 对象,a c t i o n s e r v l e t 再把客户请求 转发给a c t i o n f o r w a r d 对象指向的j s p 组件。 7 a c t i o n f o r w a r d 对象指向的j s p 组件生成动态网页,返回给客户。 流程4 中,如果a c t i o n f o r m 的v a l i d a t e 0 方法返回一个包含一个或多个 a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,就表示表单验证失败,此时a c t i o n s e r v l e t 将直接把 7 请求转发给包含用户提交表单的j s p 组件。在这种情况下,不会在创建a c t i o n 对象并调 用a c t i o n 的e x e c u t e 0 方法。 s t r u t s 的工作流程图如图3 3 所示 控s v j 器( a c t i o n s e r v l e t ) 业务逻辑 f 请求剑达 r i l 人m i o n m a 咖驴 。 i 找到 没找到 创建a c t i o n f o r m f 返回错误】 。人效:据。 l 否 l 是 创建a c t i o n e x e c u t e o 执行业务逻辑 上 寥知曲n f o r w a r d 】_ 返回a c t i o n f o r w a r d 是 元素中的 子元素必须和 元;素中的 子元素匹配。以上代码的 属性为“木d o ”,表明a c t i o n s e r v l e t 负责处理所有的以“d o 扩展名结尾的u r l 子元素用语声n s e r v l e t 初始化 参数,其格式以“参数名参数值”的形式成对出现。上面代码为a c t i o n s e r v l e t 酉? , 置了 初始化参数。c o n f i g ,c o n f i g 参数是配置s t r u t s 的a c t i o n s e r v l e t 专有的,它用来设置s t r u t s 配置文件的相对路径。 此外,要在j s p 文件中使用s t r u t s 自定义标签,还应该在w e b x m l 声明其标签库,配 1 0 置片断如下: ,、砸b i n f s t r u t s - b e a n t l d w e b n 删s t r u t s - b e a n t l d w e b - i n f s t r u t s h t m l t l d w e b i n f s t r u t s h t m l t l d 胱e b i n f s t r u t s l o g i c t l d w e b - i n f s t r u t s - l o g i c t l d w e b - i 删s t r u t s t e m p l a t e t l d :元素有两个子元素: 和( t a g l i b - l o c a t i o n 。前者指定标签库的相对 或者绝对u r i 地址,w e b 应用将根据这- - u r i 来访问标签库:后者指定标签库描述文件在 文件资源系统中的物理位置。 2 s t u r t s c o n f i g x m l s t r u t s c o n f i g x m l 配置文件用于协调各组件之间相互交流,完成业务流程,是核心 的配置文件。 主要包含如下几个部分: ( 1 ) f o r m b e a n :a c t i o n s e r v l e t 使用a c t i o n f o r mb e a n 来保存请求的参数,这些b e a n 的属 性名称与h t t p 请求的参数中的名称相对应,控制器将请求参数传递至l j a c t i o n f o r mb e a n 的实例中,然后传递蛰 a c t i o n 类中。 ( 2 ) g l o b a l f o r w a r d s :全局转发,一般用在多个逻辑过程统一转向的情况下,例如出 错,统一导向到出错页面,非法用户统一导向到登陆页面等。 ( 3 ) a c t i o n m a p p i n g :a c t i o n m a p p i n g 对象帮助进行框架内部的流程控制,是联系 a c t i o n 类与a c t i o n f o r m 类,以及处理结果转向之间的纽带。 ( 4 ) d a t a s o u r c e :数据库连接的配置,可以用s t r u t s 自带的数据库连接池等。 s t u r t s c o n f i g x m l 是用于建立c o n t r o l l e r 和m o d e l 之间关系的配置文件,是s t r u t s 框架的部署描述符。它用来载入和配置s t r u t s 框架使用的各种组件。它描述了c o n t r o l l e r 中用户请求与业务处理逻辑的对应法则,同时它还描述了客户提供的数据与 a c t i o n f o r m 组件的对应映射关系。从效率的角度出发,s t r u t s 配置文件中的信息在系 来对应用进行控制。 s t r u t s 配置中的每个组件都是j a v a 对象。a c t i o n f o r m 对象包含表单字段数据和表 单操作类型( 例如:增加、修改、删除、查询) 。a c t i o n f o r w a r d 对象包含处理结果如何 转发的信息。a c t i o n m a p p i n g 对象包含特定事件如何映射到特定a c t i o n 的信息。按这 种方式部署预配置j a v a 对象具有强大的功能。通过描述框架组件问如何交互,s t r u t s 配置文件成为了一个管理应用变更的非常有效的工具妇别。 2 4s t r u t s 的开发流程 s t r u t s 已经为开发者提供了一个非常优秀的外壳,我们只需要遵循它的规则,就 可以大大加快开发效率,对于一般的开发,可借鉴以下过程: 1 收集和定义应用需求: 2 定义视图,视图上的数据显示以及视图之间的流程: 3 定义a c t i o n m a p p i n g s ,建立业务逻辑之间的关系: 4 根据每个用户视图需要的模型数据创建a c t i o n f o r m : 5 开发业务逻辑处理组件: 6 编写a c t i o n 对象,完成请求到业务逻辑处理的桥( a c t i o n 类中也可以编写业务 逻辑处理代码,但是这样不利于程序的维护、扩展) ; 7 建立配置文件s t u r t s c o n f i g x m l ,w e b x m l 等: 8 开发测试部署。 2 5 小结 s t r u t s 是一个基于m v c 模式的通用的j a v a w e b 应用开发框架。s t r u t s 在j s p m o d e l 2 的基础上实现了一个用于w e b 应用开发的m v c 框架。它强制性的把软件分为三个层 次,并在每个层次上为软件设计者提供了多种组件。在s t r u t s 框架中,控制器由 a c t i o n s e r v l e t 来实现,视图由一组j s p 文件构成,模型由实现业务逻辑的j a v a b e a n 或 e j b 构成。s t r u t s 框架的应用极大的提高了软件的复用与软件开发的效率与质量。 本章就s t r u t s 的工作原理、体系结构、配置文件、开发流程以及s t r u t s 开发的优 缺点进行了一个比较深入的讨论,为后续章节研究如何将s t u r t s 框架应用到w e b 开发 中作好技术理论准备。 第三章s t r u t s 框架在w e b 开发中的应用 本章将主要阐述s t r u t s 框架在w e b 开发中的应用。通过对所做过的几个项目的总 结,以及自己的切身体会,具体说明如何利用s t r u t s 框架开发s t r u t s 应用程序,以达 到提高程序开发速度、提高程序的可重用性,简化开发过程的目的。 3 1b s 架构技术 b s 结构很好的克服了传统c s 两层结构在设计开发、用户操作等方面存在的局 限性,不仅使用简单,而且降低了系统维护的工作量,提高了系统的开放性。尤其是 以中间件为基础的b s 多层结构,其核心概念是利用中间件技术将应用的业务逻辑、 表示逻辑和数据分为多个不同的处理层,不但具备了系统稳定、安全和处理能力高等 特性,同时拥有开放式系统成本低、可扩展性强、开发周期短等优点。i n t e r n e t 时代 下企业信息系统基本架构将以b s 架构为主流幽1 。 1 四层彤s 架构技术 逻辑上b s 架构常常被分为四层:客户端、w e b 层、业务逻辑层、数据库层,如 图4 1 。客户端主要负责人机交互,w e b 层主要负责对客户端应用程序的集中管理, 对请求做出响应。业务逻辑层主要负责应用逻辑的集中管理,即事务处理、数据库则 主要负责数据的存储和组织、数据库的分布式管理、数据库的备份和同步等。 b s 的分层设计为在i n t e r n e t i n t r a n e t 上搭建w e b 应用提供了原型。而由微软 创建的d n a 架构和s u n 的企业j a v a 平台j 2 e e 为实现多层体系结构提供了具体的技 术规范。本文讨论的b s 架构的应用就是建立在j 2 e e 平台上。 客户端 业 务 逻 辑 层 图4 1b s 四层结构 2 五层b s 架构的分析 目前应用j 2 e e 技术构建信息系统的需求越来越复杂,开发周期越来越紧迫,同 时对系统的稳定性、扩展性和可维护性要求越来越高。四层b s 架构已不能很准确的 指导开发,因为在业务逻辑层与数据库交互的过程中往往需要对数据库调用接口做进 一步的封装,而且许多公司使用的是关系性数据库。关系型数据库中存放的是关系型 数据,它是非面向对象的。把业务对象映射到非面向对象的数据库中,存在着阻抗不 匹配( i m p d e n a e e m s i m a t h c ) 乜副,因为对象由状态和行为组成,而关系型数据库则由表 1 3 组成,对象之间的各种关系和关系型数据库中表之间的关系并不一一对应,不能明确 地映射要实现的许多面向对象的机制,因此需要加入新的一层,就是数据持久层。数 据持久层位于数据库之上,隐藏数据读取和操作中的所有数据库访问代码,完全抽象 开发小组在建立应用程序时所使用数据的来源。五层b s 架构如图4 2 所示。 圄一 w e b 层 声善詈晕氐 客户端 业 务 逻 辑 层 数 据 持 久 层 图4 2b s 五层结构 增加数据持久层有以下几个方面的优点: ( 1 ) 将数据持久逻辑和业务逻辑分离,使业务逻辑层通过数据持久层与数据库交 互,而不用j d b c 之类的数据访问a p i 访问数据源,使得各层功能简洁、专一。 ( 2 ) 对业务逻辑层隐藏了数据库平台。将所有数据连接逻辑包装到数据持久层中, 业务逻辑的开发人员不需知道连接的数据库平台类型,连接数据库所需要的任何安全 信息( 用户i d 与口令) 等。 ( 3 ) 抽象数据库中存储数据的物理细节和数据实体之间存在的关系。建立在上述 体系结构布局之上的应用程序不必直接对数据库发出s q l 查询,不必知道数据的物 理结构,而用数值对象访问数据库。 ( 4 ) 简化开发过程,隐藏打开数据库连接、发出数据读取与操纵命令和事务管理 的细节。 本文所要研究的w e b 应用程序开发框架就是基于五层b s 结构。在后面的章节 中,将详细介绍如何基于s t r u t s 框架实现w e b 层、业务逻辑层及数据持久层。 3 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论