(计算机应用技术专业论文)集成javaee框架构建mis系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)集成javaee框架构建mis系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)集成javaee框架构建mis系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)集成javaee框架构建mis系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)集成javaee框架构建mis系统的研究与实现.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机应用技术专业论文)集成javaee框架构建mis系统的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 j a v a e e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理相关的复杂 问题的体系结构。基于j a v a e e 的w e b 项目开发具有开发过程规范化,开发架构模块化、 跨平台、易于扩充等特性。j a v a e e 提供的分层模型将应用层和业务逻辑层明确区分出来, 使系统中所有部分各司其职,为系统开发提供良好规范。 在对j a v a e e 体系结构进行深入研究的基础上,开发了一个基于轻量级j a v a e e 框架 的毕业设计管理信息系统c a m i s 。系统引入广泛应用的、成熟的j a v a e e 体系结构, 结合m v c 模式,运用s t r u t s 、h i b e r n a t e 、a j a x 应用框架,实现了一个典型的基于j a v a e e 的分布式管理信息系统。 同时,对c a m i s 系统中涉及到的基本的j a v a e e 设计模式及框架技术进行研究,包 括s t r u t s 、h i b e r n a t e 及a j a x ,对相关概念和体系结构进行阐述,以实例说明其开发流 程,然后对各框架的优缺点加以分析,提出相应的解决方案,将其应用于c a m i s 系统 开发。 通过提出一个完整的毕业设计管理解决方案,为整个毕业设计过程提供了自动化的 管理方式,发挥网络资源共享、分布式系统不受时间空间限制等优势。实验证明,系统 具有j a v a e e 平台可伸缩性、灵活性、易维护性等优势,克服了传统管理模式的不足, 提高了工作效率,具有较高的可信度。 关键词:j a v a e e ,m v c ,s t r u t s ,h i b e r n a t e ,a l a x ,管理信息系统 a b s t r a c t j a v a e ei sa na r c h i t e c t u r ew h i c h s i m p l i f i e s t h e d e v e l o p m e n t ,d e p l o y m e n t a n d m a n a g e m e n to fe n t e r p r i s es o l u t i o nw i t hj a v a2p l a t f o r m w e ba p p l i c a t i o nd e v e l o p m e n tw i t h j a v a e eh a st h ea d v a n t a g e so fs t a n d a r d i z e dd e v e l o p m e n t ,m o d u l a ra r c h i t e c t u r e ,p l a t f o r m i n d e p e n d e n c ea n ds c a l a b i l i t y t h el a y e r e dm o d e lo fj a v a e ed i v i d e sa p p l i c a t i o nl a y e rf r o m b u s i n e s sl o g i cl a y e r , w h i c he n a b l e se v e r ys i n g l ep a r to ft h es y s t e mr e s p o n s i b l ef o ri t so w n b u s i n e s s t h a tp r o v i d e sg r e a ts p e c i f i c a t i o nf o rt h ew h o l es y s t e md e v e l o p m e n t w i t ht h ei n d e p t hs t u d yo nt h ej a v a e ea r c h i t e c t u r e ,ad i p l o m ap r o j e c tm a n a g e m e n t s y s t e m 一- c a m i si sp r o p o s e db a s e do nt h el i g h t w e i g h t e dj a v a e ea r c h i t e c t u r e w e l la p p l i e d j a v a e es t r u c t u r ei se n c l o s e di nc a m i s ,a sw e l la sm v cd e s i g np a t t e r na n do t h e rf r a m e w o r k s l i k es t r u t s h i b e r n a t ea n da j a x a l s o ,t h ed e s i g np a t t e r n sa n df r a m e w o r kt e c h n i q u e si n v o l v e dw i t hc a m i s a r ed i s c u s s e d t h ec o n c e p t sa n da r c h i t e c t u r e so fs t r u t s ,h i b e r n a t ea n da j a xa r ei n t r o d u c e d t h ew h o l e d e v e l o p m e n tp r o c e s si ss h o w e di nd e t a i lw i t he x a m p l e s s t r e n g t ha n dw e a k n e s sa r ee n c l o s e d t h es o l u t i o n sa r ep r o p o s e da n da p p l i e dt oc a m i s w i t ht h ec o m p l e t ed i p l o m ap r o j e c tm a n a g e m e n ts o l u t i o n ,a u t o m a t i o no ft h ew h o l e p r o c e d u r ei sa c h i e v e d t h ea d v a n t a g e so fn e t w o r kr e s o u r c e sa n dd i s t r i b u t i o na r ew e l lu s e d a s p r o v e d ,c a m i sa c q u i r e st h ei n h e r e n ts c a l a b i l i t y , f l e x i b i l i t ya n de a s et om a i n t a i no fj a v a e e i t a l s oo u t p e r f o r m st r a d i t i o n a lm i si nm a n yw a y s ,s u c ha sh i g he f f i c i e n c ya n dc r e d e n c e k e yw o r d s :j a v a e e ,m v c ,s t r u t s ,h i b e r n a t e ,a j a x ,m i s 论文独创性声明 本人声明:本人所呈交的学位论文是在导师的指导下,独立进行研究工 作所取得的成果。除论文中已经注明引用的内容外,对论文的研究做出重 要贡献的个人和集体,均己在文中以明确方式标明。本论文中不包含任何 未加明确注明的其他个人或集体己经公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:德碍 必年,月沙日 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属学 校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权 利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成 果时,署名单位仍然为长安大学。 ( 保密的论文在解密后应遵守此规定) d 影年r 月够日 d 扩年厂月 长安人学顺i j 学位论文 1 1 研究背景和意义 第一章绪论 随着因特网技术的迅猛发展,新软件和新技术的层出不穷,多种开发平台的软件系 统大量应用在不同的领域,w e b 应用体系变得同益庞大和复杂。 以高校的信息化建设为例,各高校在教学管理方面,例如学生学籍管理、成绩管理 等工作上普遍采用了网络化的管理技术。各种教务系统、选课系统、考试系统、作业系 统等常常是采用不同软件平台、不同架构的单独系统,在功能和数据上存在一定的重复, 不利于数据的维护和管理,各系统之间也很难进行信息共享,形成所谓的“信息孤岛”。 同时,随着每年高校毕业生人数不断增加,院校规模扩大带来的异地教学管理工作难度 越来越大。 教育部办公厅关于加强普通高等学校毕业设计( 论文) 工作的通知中指出:“毕 业设计( 论文) 是实现培养目标的重要教学环节,同时毕业设计( 论文) 的质量也是衡 量教学水平,学生毕业与学位资格认证的重要依据。各类普通高等学校要进一步强化和 完善毕业设计( 论文) 的规范化要求与管理,围绕选题、指导、中期检查、评阅、答辩 等环节,制定明确的规范和标准。 而毕业设计管理这一重要环节,例如毕业设计选题、毕业设计过程管理、毕业设计 结果的统计分析等工作在很多院校还没有被纳入校园管理系统当中。采用传统的原始手 工报送方式暴露出了很多缺点和不足:学生在选导师、选论文题目等方面缺乏较好的公 开性、公平性;在成绩评定方面存在着片面性及人为因素;在整理和归档时重复劳动量 大、效率低等。目前已有的网上毕业设计管理信息系统由于不同学校、不同学院对毕业 设计题目管理方法不同,通用性不高,很多系统是基于c s 架构的,需要客户端安装专 门的应用程序才可以使用,存在很大局限性。 针对毕业设计管理过程中人员分散、进度要求严格、管理灵活性强等特点,需要开 发一套跨平台性良好、扩充整合方便、易于维护的毕业设计管理信息系统。为了开发这 样一个松散耦合的分布式系统,首先需要选择一个合适的开发平台。 j a v a e e 是一个开放的、基于标准的平台,可以开发、部署和管理n 层结构的、面向 w e b 的、以服务器为中心的企业级应用,它是利用j a v a 平台来简化与多级企业解决方 案的开发、部署和管理相关的诸多复杂问题的应用体系结构。j a v a e e 是s u n 公司与诸 第一章绪论 如i b m 等活跃在企业软件舞台的领先公司合作培育的丰硕果实,他们共同定义了这一 灵活稳定的平台,该平台可在企业系统上实现,并支持能够帮助i t 组织保持竞争优势 的应用程序。近年来j a v a e e 迅速风靡了许多大型企业和中小型企业,大多数在财富 排行榜中占有一席之地的公司都投入资源和资金来实现基于j a v a e e 框架的企业解决方 案。同时,学术圈也在不同等级积极推进j a 、,a 和相关技术,几乎所有大学和研究所都 将j a v a 编程语言纳入课程提纲。 j a v a e e 定义了整个标准的应用开发体系结构和一个部署环境,基于e j b 的框架一 度成为人们开发j a v a 企业应用的首选。随着j a v a 开源项目阵营的发展壮大,一些基于 p o j o s ( p l a no l dj a v ao b i e c t s ) 的开源框架被越来越广泛地引入到j a v a 企业应用的开发中 来。根据复杂程度人们习惯把前者称为重量级框架,把后者称为轻量级框架。后者由于 其便捷的组件性,强大的可扩充性和良好的解耦性成为主流。解耦性是指应用系统的各 个功能是否能够彻底脱离,是否不相互依赖。只有这样才能体现可维护性、可拓展性的 软件设计目标。为了达到这个目的,诞生了各种框架。而以j s p 技术为基础,整合s t r u t s 、 h i b e r n a t e 与a j a x 等框架开发j a v aw e b 应用已成为主流的j a v aw e b 开发技术体系。 本文讨论了如何利用现今流行的j a v a e e 平台技术和面向对象等更极优势的软件开 发方法构建一个跨平台性良好、扩充整合方便、易于维护、松散耦合的分布式毕业设计 信息管理系统系统,并达到使其复用度高、扩充性好并尽可能利用已有资源的目的。 1 2 课题来源 本文的研究内容来源于长安大学信息工程学院毕业设计管理信息系统( c a m i s ) 项 1 3 论文结构 论文组织结构如下: 第一章,绪论。本章阐述了课题的研究背景,课题来源和项目背景,文章组织结构 及研究目标等内容,作为本文的立题背景和基础。 第二章,j a v a e e 相关技术。本章对c a m i s 系统中涉及到的基本的j a v a e e 设计模 式及框架技术进行研究,重点阐述系统采用的s t r u t s ,h i b e r n a t e 及脚a x 框架技术。 第三章,c a m i s 系统建模。本章对毕业设计信息管理系统进行需求分析和功能模 块划分,完成系统建模,结合各框架技术阐述系统开发流程,对各框架作出优缺点分析 2 长安人学硕j :学位论文 并针对本系统提出解决方案。 第四章,c a m i s 系统设计与实现。本章介绍了毕业设计信息管理系统的平台功能 的具体实现,并给出了开发实例。 第五章,系统关键问题研究。本章对系统性能和开发中的关键问题进行了研究,作 出开发过程中的经验总结。 最后对本文工作进行了总结,指出了系统存在的问题和需要改进的地方,提出今后 的研究发展方向。 1 4 本章小结 作为本文的立题背景和基础,本章结合毕业设计信息管理系统课题的研究背景,分 析了国内外研究现状和发展趋势,阐述了课题来源和论文的组织结构。 3 第三章c a m i s 系统建模 2 1j a v a e e 概述 第二章j a v a e e 相关技术 j a v a 是使用j a v a 技术开发企业级应用的一种事实上的工业标准。依照应用领域的 不同,共分为三大版本,分别是企业版j a v a e e ( j a v a2p l a t f o r m ,e n t e r p r i s ee d i t i o n ) 、标 准版j 2 s e ( j a v a2p l a t f o r m ,s t a n d a r de d i t i o n ) 、微型版j 2 m e ( j a v a2p l a t f o r m ,m i c r o e d i t i o n ) 等。 j a v a 以及其企业级应用j a v a e e 具有一个最吸引人特点,那就是商业产品和开源产 品层出不穷,潮流不断。相比于其他领域,例如n e t ,j a v a 更是体现了这句话:条条大 路通罗马。s u n 推出j a v a e e 的目的是为了克服传统c l i e n t s e r v e r 模式的弊病,迎合 b s ( b r o w s e r s e r v e r ) 架构的潮流,承袭j a v a 语言“编写一次、随处运行”的特性,为应 用j a v a 技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基 于标准的企业级平台,从而简化企业应用的开发、管理和部署。 j a v a e e 的核心是由一整套服务( s e r v i c e s ) 、应用程序接e i ( a p i s ) 和协议构成的,对开 发企业的多层应用提供了全面的功能支持。主要包含以下技术规范:j d b c 、j n d i 、e j b 、 r m i 、j s p 、j a v as e r v l e t 、j m s 、j a v am a i l 等。其中所包含的各类组件、服务架构及技术 层次,均有共通的标准及规格,让各种依循j a v a e e 架构的不同平台之间存在良好的兼 容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以 互通的窘境。在j a v a e e 架构下,开发人员可依循规范基础,进而开发企业级应用。采 用j a v a e e 架构的应用系统,可部署在不同的应用服务器之上,无需或者只须要进行少 量的代码修改,即能大幅提高应用系统的可移植性。 综上所述,j a v a e e 即j a v a 应用平台企业版,是一套开发标准,或者说一种规范, 而不是一个现成的产品。要搭建一个成功的系统,还需要在j a v a e e 平台上选取最合适 的技术来规划自己的系统。本系统就是基于j a v a e e 平台的一种轻量级实现方案。 2 2j a v a e e 架构 j a v a e e 的整体架构如图2 1 所示: 4 长安人学硕j j 学位论义 j 2 e e 应用程序l 广 ;应用程序客j ! - 端7 i,。一 j 2 e e 应用程序2 业务层一盎要塞 邯层 徽 图2 1j a v a e e 架构图 j a v a e e 平台使用了一个多层的分布式的应用程序模型。应用程序的逻辑根据其实 现的不同功能被封装到组件中,组成j a v a e e 应用程序的大量应用程序组件根据在其所 属的多层的j a v a e e 的环境中所处的层被安装到不同的机器中。图2 1 表示j a v a e e 应用 程序根据下面的描述被分为不同的层,分别是: 1 运行在客户端机器的客户层组件。 2 运行在j a v a e e 服务器中的w e b 层组件。 3 运行在j a v a e e 服务器中的业务层组件。 4 运行在e i s 服务器中的企业信息系统( e i s ) 层组件。 尽管从图中可以看到j a v a e e 应用程序既可以是三层结构,也可以是四层结构,但是 通常将j a v a e e 应用程序的多层结构考虑为三层结构。这是因为它们分布在三个不同的 位置:客户端机器、j a v a e e 服务器机器和在后端的传统的机器。三层结构的应用程序可 以理解为在标准的两层结构的客户端n 务器模式的客户端应用程序和后端存储资源中 间增加了一个多线程的应用程序服务器。 2 3 设计模式的概念 如前所述,j a v a e e 是一个优秀的应用开发平台,但是要实现的一套成功的应用系统, 仪仅拥有了优秀的开发标准并不够,还需要一套成熟的方法论用来加以实现,这就是设 计模式。 5 器 机端客 _ 层客 第三章c a m i s 系统建模 人们对设计模式有很多定义,其中最为经典的是c h r i s t o p h e r a l e x a n d e r 提出的定义: 每一个设计模式是一个三方的规则,它表达了一个上下文环境( c o n t e x t ) ,一个问题和 一个解决方案。模式其实就是解决某一类问题的方法论,当你把解决某类问题的方法总 结归纳到理论高度,那就是设计模式i 。模式是一种指导,在一个良好的指导下,有助 于你完成任务,作出一个优良的设计方案,达到事半功倍的效果,得到解决问题的最佳 办法。 j a v a e e 模式是对j a v a e e 关键技术的最佳经验、设计策略、解决方案的总结。用于 j a v a e e 的设计模式通常划分为表现层( p r e s e n t a t i o nt i e r ) 、业务逻辑层( b u s i n e s sl o g i c t i e r ) 和集成层( i n t e g r a t i o nt i e r ) 。这种分组方式可以使描述所有设计模式共享的公共 细节更加轻松,或者使设计模式的分类和发现更加轻松。g o f 在设计模式可复用面 向对象软件的基础一书中提到了2 3 种主要的模式【2 j ,包括:抽象工厂、适配器、外观 模式等超过1 0 0 种的设计模式。以下就最流行的m v c 模式加以介绍。 2 4m v c 模式 最原始的j a v aw e b 程序全部使用j s p 实现,j s p 页面既包含h t m l 标签,又包含j a v a 业务逻辑代码,一股脑搅在一起,使得整个j s p 页面既臃肿又难于维护。业界为了规范 j a v aw e b 应用的开发,引入了被称为m v c 的分层设计模式的概念。 2 4 1m v c 模式简介 m v c ( m o d e l v i e w c o n t r o l l e r ) 模式,是一种软件架构设计模式。m v c 是1 9 9 6 年 由b u s c h m a n n 提出的,最初是被用在s m a l l t a l k 8 0 中来构建用户界面的【3 1 。m v c 的主要 思想是把应用程序划分为三部分,其中m 代表模型m o d e l ,v 代表视图v i e w ,c 代表 控制器c o n t r o l l e r 。 m v c 设计模式由三部分组成。 1 模型( m o d e l ) :封装数据和所有基于对这些数据的操作。也就是业务流程状态的处 理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受 视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是m v c 最主要 的核心。 2 视图( v i e w ) :封装对数据的显示,即用户界面。m v c 设计模式对于视图的处理仅 限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的 6 长安人学硕卜学位论文 处理。业务流程的处理交予模型( m o d e l ) 处理。 3 控制器( c o n t r o l l e r ) :封装外界作用于模型的操作和对数据流向的控制等。划分控 制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型、 选择什么样的视图、可以完成什么样的用户请求。控制层并不做任何的数据处理。 一个模型可能对应多个视图,一个视图也可能对应多个模型。 三者关系如图2 2 : 方向调用 事件 图2 2m v c 组件关系图 对m v c 关系图的理解可以参考表2 1 : 表2 1m v c 的分工与协作 模犁m 视图v控制器c 抽像系统应用的功 抽象数据表达 抽象用户和系统的事件的语 能 表示针对用户的数据意映射 分 封装系统的状态 维护与m o d e l 数据的一致 把用户输入翻译为系统事件 工 提供使用系统功能性 根据用户的输入和上下文情 的方法和路径况选择合适的显示数据 管理数据的存储和 一致性 当数据发生变化时 通知相关部分 当改变系统数据时 把m o d e l 表示给刚户 把用户输入转成对m o d e l 的 通知v i e w 当数据被相关m o d e l 改变系统行为 协 能够被v i e w 检索数时更新表示的数据 根据用户输入和m o d e l 的动 作 据 把用户输入提交给作结果选择合适的v i e w 提供对c o n t r o l l e r 的c o n t r o l l e r 操作途径 7 第三章c a m i s 系统建模 由上表可知,模型、视图与控制器的分离,可以使得一个模型可以具有多个显示视 图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视 图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知 视图,导致显示的更新。这实际上是一种模型的变化传播机制【4 1 。分层的目的是增加代 码的重用率、减少数据表达、数据描述和应用操作的耦合度,同时也使得软件的可维护 性、可修复性、可扩展性、灵活性及封装性大大提高。 2 4 2m v c 的优缺点及解决方案 采用m v c 模式构架的优势主要有: 1 具有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方 式访问应用的要求。例如,课题模型可能有学生的课题,也有教师或管理员的课题, 但对浏览课题的处理是一致的。按m v c 设计模式,一个课题模型以及多个视图即 可解决问题。 2 应用被分离为三层,改变其中的一层就能满足应用的改变。例如,一个应用的业务 流程或者业务规则的改变只需改动m v c 的模型层。 3 有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同 的特征,有利于通过工程化、工具化产生管理程序代码。 m v c 的不足体现在以下几个方面: 1 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循m v c ,使模型、视图 与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 2 视图与控制器问的耦合过于紧密。视图与控制器是相互分离却联系紧密的部件,视 图如果没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独 立重用。 3 视图对模型数据的低效率访问。依据模型操作接口的不同,一个视图可能需要多次 调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作 性能。 针对以上问题,提出解决方案如下: 1 灵活应用m v c 模式,在具有大量重复的,类似的实现逻辑的情况下推荐使用m v c 进行代码重构,而在各个页面的处理逻辑都不相同,无法抽象的情况下则避免使用, 避免造成“过度设计”的问题。 8 k 安人学硕:j 二学位论文 2 将m v c 的控制更侧重于应用在视图上的用户的i 0 处理。这是因为与软件所处理 问题的内在模型相比较,用户界面是需要经常发生变化的,而m v c 是专门处理交 互界面的,各个部件之f n j 的关联更密切一些。采用m v c 设计模式可以在满足对界 面要求的同时,使软件的计算模型独立于界面的构成。而在其它层面采用别的模式, 共同构建相互协作但松散耦合的系统。 3 在不需要与服务器交互或者不需要同步交互的时候,采用异步技术,例如下文将会 提到的a j a x 技术,实现局部数据刷新,提高操作性能和用户体验。 经过分析,对于c a m i s 这种基于j a v a e e 的分布式w e b 应用,可重用、易扩展、 通用性是其重要的设计目标,因而适合采用m v c 的模式架构来构建w e b 层。 2 5 框架技术简介 2 5 1 框架的定义 所谓的框架( f r a m e w o r k ) 是指软件的架构方式。框架的体系提供了一套明确机制, 从而让开发人员很容易的扩展和控制整个应用的结构1 5 1 0 我们可以将框架简单地定义如 下:框架是可以进行扩展的软件系统或子系统的半成品【6 1 。 首先,框架是半成品,这是它和其他所有软件组件的本质区别。这涉及到“软件重 用 的一对内在矛盾:“重用儿率”大小和“重用所带来的价值量”大小之间的矛盾用。 简言之,软件单元的粒度越大,则重用所带来的价值量越大,但重用几率越小;反之, 粒度小的软件单元被重用的几率越大,则重用所带来的价值量就越小【引。框架的智慧就 在于此:为了追求重用所带来的价值量最大化,将容易变化的部分封装成扩展点,并辅 以回调机制将它们纳入框架的控制范围之内,从而在兼顾定制开销的同时使被重用的设 计成果最多。 2 5 2s t r u t s 框架简介 如前所述,m v c 设计模式很早就出现了,但在w e b 应用的歼发中引入m v c 一直 难以实现。早期的j a v aw e b 丌发应用中,j s p 文件负责业务逻辑、控制网页流程并创建 h t m l ,这给w e b 开发带末了强耦合、调试困难、程序处理逻辑复杂等问题| 9 1 0 开发 人员一直致力于寻找一种适合于多层的软件开发项目,可重用,易扩展的,而且是经过 良好测试的软件框架,此时s t r u t s 应运而生。 s t r u t s 这个名字来源于在建筑和旧式飞机中使用的支持金属架【1 们。它是a p a c h e 基金 9 第三章c a m i s 系统建模 会j a k a r t a 项目组的一个丌源框架,最早于2 0 0 0 年5 月作为j a k a r t a 项目的组成部分问世。 它的目的是为了减少在运用m v c 设计模型来开发w e b 应用的时间。s t r u t s 采用m v c 模式,是m v c 的一种实现,将s e r v l e t 和j s p 标记( 属于j a v a e e 规范) 用作实现的 一部分。s t r u t s 继承了m v c 的各项特性,并根据j a v a e e 的特点,做了相应的变化与扩 展,能够很好地帮助j a v a 开发者利用j a v a e e 开发w e b 应用。近几年来,主流的企业 级j a v a 开发工具都推出了对s t r u t s 的支持,在国外已经大量地应用了s t r u t s 框架。在产 业方面,有不少软件公司已经在j b u i l d e r 、w s a d 等开发工具上使用s t r u t s 框架了。很 容易理解,s t r u t s 就是在j a v a e e 的基础实现了m v c 设计模式的w e bf r a m e w o r k 。 那么,在系统中采用s t r u t s 的优势是什么呢? 正如上一节中提到,m v c 设计模式最 吸引人之处在于它迫使用户必须抽象自己的代码,把项目分解为表示、逻辑和控制三部 分,各部分间的关联较小1 1 1 】。而s t r u t s 是m v c 模式的体现,基于m v c 的s t r u t s 框架 允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,将m v c 模式“分 离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。 s t r u t s 由一组相互协作的类、s e r l v e t 以及丰富的标记库( j s pt a gl i b ) 年l 独立于该框架工 作的实用程序类( v a l i d a t o r ) 组成。整个s t r u t s 大约有1 5 个包,近2 0 0 个类【1 6 】。s t r u t s 框 架的核心是一个弹性的控制层,基于如j a v as e r v l e t s ,j a v a b e a n s ,r e s o u r c e b u n d l e s 与 x m l 等标准技术,以及j a k a r t ac o m m o n s 的一些类库。作为一个实现良好的m v c 框架, s t r u t s 对模型、视图、控制都提供了对应的实现组件。下面从分别从模型、视图、控制 来看看s t r u t s 的体系结构和工作原理i l 引。 图3 3s t r u t s 体系结构图 控制器:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后 把响应结果送回到客户端。在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 m a p p i n g 对象构成:核心是一个s e r v l e t 类型的对象a c t i o n s e r v l e t ,它用来接受客户端的请求。 1 0 k 安人学硕l 学位论义 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 m a p p i n g 对象实现 了一个请求到一个具体的模型部分中a c t i o n 处理器对象之间的映射。 模型:m v c 系统中的模型部分从概念上可以分为两类系统的内部状态,和改变 系统状态的动作。s t r u t s 为模型部分提供了a c t i o n 和a c t i o n f o r m 对象:所有的a c t i o n 处理器对象都是开发者从s t r u t s 的a c t i o n 类派生的子类。a c t i o n 处理器对象封装了具体 的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的模型组件以产生响应。s t r u t s 提供的a c t i o n f o r m 组件对象,它可以通过定义属性描述客户端表单数据。开发者可以 从它派生子类对象,利用它和s t r u t s 提供的自定义标记库结合可以实现对客户端的表单 数据的良好封装和支持,a c t i o n 处理器对象可以直接对它进行读写,而不再需要和 r e q u e s t 、r e s p o n s e 对象进行数据交互。通过a c t i o n f o r m 组件对象实现了对视图和模型之 间交互的支持。s t r u t s 通常建议使用一组j a v a b e a n 表示系统的内部状态,根据系统的复 杂度也可以使用像e n t i t ye j b 和s e s s i o ne j b 等组件来实现系统状念。s t r u t s 建议在实 现时把“做什么( a c t i o n ) 和“如何做 ( 业务逻辑) 分离。这样可以实现业务逻辑 的重用。 视图:s t r u t s 应用中的视图部分是通过j s p 技术实现的。s t r u t s 提供了自定义的标记 库可以使用,通过这些自定义标记可以非常好地和系统的模型部分交互,通过使用这些 自定义标记创建的j s p 表单,可以实现和模型部分中的a c t i o n f o r m 的映射,完成对用 户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。 s t r u t s 框架的处理流程清楚的体现了m v c 系统的特点【1 4 1 。s t r u t sc o n t r o l l e r 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 f o r m 中的数据,处理和响应客户请求, 它还调用后台的b e a n 组件,这些组件封装了具体的业务逻辑。a c t i o n 处理器对象根据 处理结果通知c o n t r o l l e r ,c o n t r o l l e r 进行下一步的处理。 s t r u t s 工作原理如下1 1 5 j : 视图部分:首先, s t r u t s 提供了j a v a 类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 f o r m ,j a v a 开发者将该类细分来创建表单b e a n 。在运行时,该b e a n 有两种用法:当j s p 准备相关 的h t m l 、表单以进行显示时,j s p 将访问该b e a n ( 它保存要放入表单中的值) 。那些值 是从业务逻辑或者是从先前的用户输入来提供的,当从w e b 浏览器中返回用户输入 时,该b e a n 将验证并保存该输入以供业务逻辑或( 如果验证失败的话) 后续重新显 示使用。其次,s t r u t s 提供了许多定制j s p 标记,它们的使用简单,但是它们在隐藏信 第三章c a m l s 系统建模 息方面功能强大。例如,除了b e a n 名称和给定b e a n 中每个段的名称之外,页面设计者 不需要知道有关表单b e a n 的更多信息。 模型部分:s t r u t s 不直接有助于模型丌发。系统模型的状态主要由a c t i o m f o r mb e a n 和值对象体现。 控制器部分:在s t r u t sf r a m e w o r k 中,c o n t r o l l e r 主要是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 m a p p i n g 、a c t i o n f o r w a r d 这几个组件协调完成。 其中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 f o r w a r d 则指 定了不同业务逻辑或流程的运行方向。 2 5 3h i b e r n a t e 框架简介 目前主流应用采用面向对象的丌发方法,而内存中的对象数据不能永久存在,如果 想借用关系数据库来永久保存这些数据的话,无疑就存在一个对象到关系的映射过程。 在这种情形下,诞生了许多的解决对象持久化的中间件。其中开源的h i b e r n a t e 由于其 功能与性能的卓越而倍受j a v a 程序员青睐。 h i b e r n a t e 是一个目前流行的开放源代码的对象关系映射框架,它对j d b c 进行了 轻量级的对象封装,使j a v a 程序员可以随心所欲的使用对象编程思维来操纵数据库。 它不仅提供了从j a v a 类到数据表之间的映射,也提供了数据查询和恢复机制【1 6 】。相对 于使用j d b c 和s q l 来手工操作数据库,h i b e r n a t e 可以大大减少操作数据库的工作 量。另外h i b e r n a t e 可以利用代理模式来简化载入类的过程,这将大大减少利用h q l 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本。h i b e r n a t e 本质上是 一个提供数据库服务的中间件,可以和多种w e b 服务器或者应用服务器良好集成,如 今已经支持几乎所有的流行的数据库服务器【1 7 1 。h i b e r n a t e 框架架构如图3 3 所示: 厂 应用层 i 一i 三丁一 l 二二二一。 h i b e r n a t e i 配置文件 。i x m lm a p p i n g i ?j i 。 j : 广一 数据库 红一。么。 图3 3h i b e r n a t e 架构 上图显示了h i b e r n a t e 的工作原理,h i b e r n a t e 与数据库的连接配置信息均封装到 1 2 k 安人学硕j j 学位论文 h i b e r n a t e p r o p e r t i e s 和h i b e r n a t e c f g x m l 文件当中,对象一关系映射工作依靠o r m 映 射文件进行,最终完成对象与关系的平滑映射。 在洲i s 中h i b e r n a t e 主要完成了从类到数据表的映射。可以采用的映射策略主要 分为以下三种:一个类层次( 父类和子类) 对应一个数据表;一个实体类( 只有子类) 对应 一个数据表:一个类对应一个数据表【1 8 1 。h i b e r n a t e 中采用一个类对应一个数据表的数 据机制。 通过前面两节的介绍可以看到,m v c 模式实现了表现层( v i e w ) 和数据处理层 ( m o d e l ) 的分离,而持久化设计则实现了数据处理层的业务逻辑和数据逻辑的分离。 这也是我们将s t r u t s 与h i b e r n a t e 结合应用于c a m i s 的原因。然而,在这两种框架当中 存在同一个问题,就是分层架构带来的客户端与服务端的数据传递问题。针对于此,下 面介绍一种近年来在j a v a e e 体系中异常火爆的异步通信技术a j a x 。 2 5 4a j a x 技术简介 这两年网络上比较火热的话题当属w e b 2 0 的应用。其中a j a x 是w e b 2 0 的核心技 术之一。 a x 是a s y n c h r o n o u sj a v a s c r i p ta n dx m l 的简称,是一种运用j a v a s c r i p t 和可扩展 标记语言( x m l ) ,在网络浏览器和服务器之间传送或接受数据的技术。a a x 是一种不 需依靠服务器软件而独立运做的浏览器技术1 1 9 】。在浏览器和服务器之间,a j a x 使用异 步数据进行转换,并允许网页向服务器索取少量信息而非整个网页。这项技术标志着阿 络应用程序的微小化、迅捷化以及便捷化。 a j a x 其实并非一种新的技术,而是一道包括j a v a s c r i p t 、x h t m l 、c s s 、d o m i 、 x m l 、x s t l 、x m l h t t p r e q u e s t 在内的大杂烩。 作为削a x 的组成部分,这些技术已 经存在很久了,直至g o o g l e 推出g o o s em a p 、g m a i l 和g o o g l es u g g e s t 后,a j a x j 风 行起来,以致于很多人误认为a j a x 是g o o g l e 发明的新技术。a j a x 使用x h t m l 与 c s s 进行标准化表现;使用d o m ( d o c u m e n to b j e c tm o d e l ) 进行动态显示与交互; 使用 x m la n dx s l t 进行数据交换与操作;使用x m l h t t p r e q u e s t 进行异步数据传输;最 后使用j a v a s c r i p t 将所有这些数据绑定起来并进行处理f 2 0 1 。 传统的w e b 应用模型是这样工作的:界面中大部分的户行为触发一次返回w e b 服务 器的h ”叩请求。服务器进行一些处理,然后返回一个h t m l 页面给客户端,采用的 是同步交互过程。服务器在处理请求的时候,用户多数时间处于等待的状态,屏幕内容 1 3 第三章c a m i s 系统矬模 也是一片空白。当加载一个界面时,用户交互每次都要停下来,以等待服务器响应应用 请求,这是一种不连贯的用户体验。 a j a x 就是针对这个问题提出的最佳解决方案。在a j a x 应用中,浏

温馨提示

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

最新文档

评论

0/150

提交评论