已阅读5页,还剩71页未读, 继续免费阅读
(计算机应用技术专业论文)j2ee轻量级框架在预算管理系统中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要 伴随着软件开发的发展,在多层的软件开发项目中,可重用、易扩展,而且 是经过良好测试的软件组件,越来越为人们所青睐。工业化的软件复用已经从通 用类库进化到了面向领域的应用框架。框架是一组协同工作的类,它们为特定类 型的软件构筑了一个可重用的设计;框架一般是成熟、稳健的,使用框架可以降 低开发成本、缩短开发周期、提高软件的开发效率,使用框架开发的应用比较容 易理解和维护。因而如何设计并构建一个强健而稳定的框架一直是软件开发者关 注的课题,也是众多软件专家致力研究的目标。 s t r u t s 、s p r i n g 、h i b e r n a t e 是当前三种主流框架,每种框架都有自身的优缺点, 为了取其精华,本论文提出了一种框架整合的思想,充分发挥了三种框架的优势, 同时为了使整合后的框架更加完善,能够实现页面部分刷新、提高系统的安全性、 提高代码的可重用性以及可维护性又加入了a j a x 、a c e # 、t i l e s 、v a l i d a t o r 框架。 本课题首先介绍了j 2 e e 多层架构及各种框架的理论知识并深入分析了其各自 的优缺点,然后针对他们各自的特点,将这几种框架整合成一个s s h m f 多层框架, 通过整合充分发挥了框架各自的优势,降低了各层间的耦合度,解决了w e b 应用 系统开发过程中由于系统结构复杂而带来的一些问题。同时详细介绍了如何将 s s h m f 框架运用在预算管理系统中。该整合框架对大部分应用开发都具有普遍的 指导作用。 关键词:s t r u t s ;s p r i n g ;h i b e r n a t e ;v a l i d a t o r ;a c e # ;t i l e s ;a j a x 英文摘要 一、 a p p l i c a t i o na n dr e s e a r c ho fj 2 e el i g h t w e i g h tf r a m e i nb u d g e t 一 m a n a g e m e n ts y s t e m f f a b s t r a c t w i t ht h ed e v e l o p m e n to fs o f t w a r e ,s o f t w a r em o d u l e sw h i c ha r er e p e a t e d l yu s e d , e a s yt oe x p e n da n dt h r o u g ht e s ta r ef a v o u r e db ym a n yp e o p l e si nt h em u l t i l a y e r e d s o f t w a r ed e v e l o p m e n tp r o i e c t i n d u s t r i a l i z e ds o f t w a r eh a sa l r e a d yb e e ne v o l v e df r o m t h eg e n e r a ld a s sl i b r a r i e st od o m a mo r i e n t e da p p l i c a t i o nf a m e t h ef r a m ei sa g r o u po f c o o p e r a t i o nd a s s t h ef l a m eg e n e r a l l yi sm a t o r ea n ds t e a d y ,i tm a yr e d u c et h e d e v e l o p m e n tc o s t ,s h o r t e nt h ed e v e l o p m e n tc y c l e ,i m p r o v et h ed e v e l o p m e n te f f i c i e n c y o fs o f t w a r e ,e a s yt ou n d e r s t a n da n dm a i n t e n a n c e t h u s ,h o wt od e s i g na n dc o n s t r u c ta s t r o n ga n ds t a b l ef r a m ei sa d v e r t e db ys o f t w a r ed e v e l o p e r m e a n w h i l e ,i sag o a lw h i c h t h em u l t i t u d i n o u ss o f t w a r ee x p e r t sd e v o t et os t u d y s t r u t s ,s p r i n ga n dh i b e r n a t ea r e t h ec u r r e n tm a i n s t r e a mf r a m e s ,e a c hk i n do ff r a m e h a sa d v a n t a g e sa n dd i s a d v a n t a g e s i no r d e rt oa s s i m i l a t et h e i rd i s t i l l a t e ,t h et h e s i s p r o p o s e sf a m ec o n f o r m i t yt h o u g h tw h i c hh a sf u l l ye x e r t e dt h r e el 【i n do ff r a m e s s u p e r i o r i t y s i m u l t a n e o u s l y ,i no r d e rt oa c h i e v ep e r f e c t ,t h ec o n f o r m i t yf a m eh a sj o i n e d a j a x ,a c e g i ,t i l e sa n dv a l i d a t o rt or e a l i z et h ep a g et ob er e f r e s h e dp a r t i a l l y ,e n h a n c e t h es y s t e ms e c u r i t y ,i m p r o v et h ec o d er e p r o d u c i b i l i t ya n dm a i n t a i n a b i l i t y f i r s tt h et h e s i si n t r o d u c e st h ef d a t e dt h e o r c t i c s k n o w l e d g ea n dr e s p e c t i v e a d v a n t a g e sa n dd i s a d v a n t a g e sa b o u tj 2 e ea n da l lk i n d so ff r a m e s ,t h e na i m sa tt h e i r r e s p e c t i v ec h a r a c t e r i s t i c st oa s s e m b l eas s h m fm u l t i l a y e rf r a m e s s h m fh a sf u l l y e x e r t e dt h e i rr e s p e c t i v es u p e r i o r i t i e s ,r e d u c e dc o u p l i n gd e g r e eo fa l ll a y e r sa n ds o l v e d s o m eq u e s t i o n sw h i c ha r eb r o u g h tb yc o m p l e x s y s t e ms t r u c t u r ei nt h ew e ba p p l i c a t i o n s y s t e md e v e l o p m e n t a tt h e s a n l et i m e ,i n t r o d u c e sh o wt o a p p l y i tt ob u d g e t m a n a g e m e n ts y s t e m t h i sf a m eh a st h eu n i v e r s a li n s t r u c t i o nf u n c t i o nt om a j o r i t y a p p l i c a t i o nd e v e l o p m e n t k e yw o r d s :s t r u t s ;s p r i n g sh i b e r n a t e ;v a l i d a t o r :a c e g i :t i l e s ;a j a x 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文 :2 星星鳌量缝挺苤垄亟篡笪堡丕蕴虫数廛旦婴塞:。除论 文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在 文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经 公开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:车硅支卅年月鲜日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版。允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。 不保密( 请在以上方框内打“”) 论文作者签名:聋送支导师签名:劾b 日期:卿年弓月鲜日 7 j 2 e e 轻量级框架在预算管理系统中的应用研究 第1 章绪论 1 1 选题背景 随着时代的进步与科技的发展,人类进入一个高度信息化的社会,人们越来 越意识到:在这个社会中,谁掌握了信息,谁就拥有了成功。因此,各个企业和 部门越来越重视自身信息化的建设。以前,国内的大多数中小企业一般都采用简 单的客户、服务器( c s ) 两层结构的信息管理及发布系统,但该系统存在开放程 度低、兼容性差等局限性;如今,随着网络技术的迅速发展和j 2 e e 平台的广泛采 用,基于b s 的多层w e b 体系结构正在不断的发展完善,并逐渐成为w e b 应用开 发的主流。但是,即使利用最先进的软件平台j 2 e e 开发这样的应用仍然存在诸多 问题。在多层w e b 体系结构的设计中普遍存在着程序可重用程度低、维护工作繁 琐、应变能力较弱等不足。 随着软件规模和复杂度的日渐升级,在软件工程的实践中,人们越来越深刻 的认识到,良好的软件体系结构对保证系统成功至关重要。系统总体结构设计和 规格说明的重要性已远远超过特定算法和数据结构的选择【l 】o 因此如何组织应用程 序以实现简单高效的应用程序编写、升级、维护和扩展,是当前i n t e r n e t 技术发展 的热点之一。 1 2 本课题研究的主要内容 本课题通过对j 2 e e 平台体系结构、m v c 设计模式及当前几种主流技术框架 的深入学习及研究,并结合自己的实际开发经验,着重阐述了如何将s t r u t s 、s p r i n g 、 h i b e r n a t e 三者有效的结合起来,同时,又加入了t i l e s 、v a l i d a t o r 、a j a x 、a c e # 框 架来对整合后的框架做进一步的完善。为了达到课题的研究目的,本文主要进行 了以下的研究和设计工作:深入研究了j 2 e e 平台体系结构及m v c 设计模式的思 想并分析了使用它的优势与不足;对s t r u t s 、s p r i n g 、h i b e r n a t e 框架技术进行了整 体结构分析;针对s t r u t s 和s p r i n g 框架对用户安全认证和授权方面的不足,提出 自己的解决方案,加入a c e # 框架;针对s t r u t s 在页面部分刷新方面的不足,引入 第1 章绪论 了a j a x 框架:为了提高视图层程序代码的可重用性、可扩展性和可维护性,加入 了t i l e s 框架:为了改善校验过程中重用性、统一控管的缺失加入了v a l i d a t o r 框架; 通过对上述几种框架的分析整合出一种s s h m f 框架,并将这种框架运用在预算管 理系统中,最终总结出五层b s 架构的技术实现方案。 1 3 论文结构 本论文共分为八章: 第一章:介绍课题的选题背景、本课题研究的主要内容。 第二章:对j 2 e e 平台体系结构进行了分析,得出其存在的弊端。 第三章:对当前流行的三种开源框架s t r u t s 、s p r i n g 、h i b e r n a t e 进行深入研究 分析,总结出其各自的优缺点。 第四章:针对预算管理系统的特殊需求以及对上述三种框架的完善,对a c e g i 、 a j a g 、t i l e s 、v a l i d a t o r 框架进行分析研究。 第五章:介绍如何将几种框架进行整合得到s s h m f 框架。 第六章:介绍基于s s h m f 框架开发的预算管理系统的总体方案以及业务对象 的设计。 第七章:介绍s s h m f 框架在预算管理系统中的运用以及运行效果。 第八章:结论。 j 2 e e 轻最级框架在预算管理系统中的应用研究 第2 章j 2 e e 平台体系结构 2 1j 2 e e 技术 随着i m e m e t 和i n t r a n e t 的普及应用,h ,丌p 、h t m l 和j a v a 平台逐渐演变成 为针对客户机计算的标准,使企业在应用程序的开发方面逐渐有了规范。但是随 着当今激烈的市场竞争、电子商务日益普及和广泛的应用,企业应用开发正面临 着严峻的挑战。特别是由于服务器、c g i 、n s a p i ( n c t s c a p es e r v e ra e l ) 和 i s a p i ( i n t e m e ts e r v e ra p t ) 等多种编程和连通性模型日趋流行,极大地增加了编程 和维护地工作量。 为了快速设计和开发企业级的应用程序,s u n 公司推出了一种全新的概念模 型一j a 吼2p l a t f o r me n t e r p r i s ee d i t i o n ( j 2 e e ) ,它成功的解决了上述问题,使得企 业的软件开发重新获得了新的生命力。 j 2 e e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理相关的 复杂问题的体系结构。j 2 e e 不仅巩固了标准版中的许多优点,例如“编写一次、 到处运行” 2 1 的特性、方便存取数据库的j d b ca p i 、c o r b a 技术以及能够在 i n t e m e t 应用中保护数据的安全模式等等,同时还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、j a v as e r v l e t s a p i 、j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支持。j 2 e e 平台提供的多层分布式应用模型、组件重用、一致化的安全模型以及灵活的事务 控制,加快了企业应用的设计与开发,可以快速容易的建立融合了i n t e r a c t 技术, 尤其是w e b 技术的n 层( n t i e r s ) 结构的企业应用,也较好地解决了c s 结构所固 有地可扩充性不足、可维护性不足、安全性不足、部署麻烦等弊端,其最终目的 就是成为一个能够使企业开发者大幅缩短应用投放市场时间的体系结构。 2 2j 2 e e 框架 j 2 e e 平台使用了一个多层的分布式应用程序模型。应用程序的逻辑依据其实 现的不同功能被划分成组件,并且可以在同一个服务器或不同的服务器上安装这 些组成j 2 e e 应用的不同组件。一个应用组件应被安装在什么地方,取决于该应用 第2 章j 2 e e 平台体系结构 组件属于多层的j 2 e e 环境中的哪层。一个多层化应用能够为不同的每种服务提 供一个独立的层,j 2 e e 典型的四层结构如图2 1 所示f 2 j 。 客户层 w e b 层业务逻辑层e i s 层 厂、 厂、厂、 , 浏览器w e b 服务器 e j b 容器,、 f 纯h t m l1 , l 【 j j s p目b 数 l - l_ 据 j a v a r 叫卜1 库 j a p p l e t,r1 k, j s pe i b 、l 桌面系统 l ( j a v a 翩】j : _ 厂 、 1f s e t v l e t “j f e j b ,、 i n_ r 【, 其它设备、 “_ 数 n1 据 卜 _ fj 2 e e 平台1fj 2 e e 平台1 库 fj 2 e e 客户稿 卜叫 【 j 【 j 一j 【。l 图2 1j 2 e e 体系结构 f i g 2 1j 2 e es y s t e ms t r u c t u r e 从图2 1 中可以看到,一个分布式j 2 e e 应用程序,可以分为四个不同的层: 运行在客户端机器的客户层组件 运行在j 2 e e 服务器中的w e b 层组件 运行在j 2 e e 服务器中的业务逻辑层组件 运行在e i s 服务器中的企业信息系统( e i s ) 层软件 2 2 1 客户层 客户层用来与用户交互,并把来自系统的信息显示给用户。j 2 e e 应用可以是 j 2 e e 轻量级框架在预算管理系统中的应用研究 基于w e b 的,也可以是基于传统方式的。在一个基于w e b 的j 2 e e 应用中,用户 的浏览器在客户层中运行,并从w e b 服务器上下载w e b 层中的静态h t m l 页面 或由s e r v l e t 或j s p 生成的动态h t m l 页面。 2 2 2w e b 层 j 2 e ew e b 层组件可以是j s p 页面或s e r v l e t s 。按照j 2 e e 规范,静态的h t m l 页面和a p p l e t s 不算是w e b 层组件。w e b 层可以包含一个j a v a b e a n 来管理用户输 入,并将输入发送给运行在业务层上e j b 来进行处理。w e b 容器主要支持多层结 构的表示层。它的功能是在h t r p 协议上对w e b 请求进行响应。这些所谓的响应 其实就是动态生成的网页。用户每在浏览器上点击一个链接或图标,实际上是通 过w e b 向服务器发出请求。j 2 e e 平台的w e b 组件对这些请求进行处理后回复给 客户相应的h t m l 或x m l 文件。 2 2 3 业务层 业务层也叫e j b 层或应用层,它由e j b 服务器和e j b 组件组成。e j b 层用来 实现企业级信息系统的业务逻辑,是企业级应用的核心,一般某个特定业务领域 ( 比如银行、零售、金融业) 需要的逻辑业务代码都由运行在业务层的e j b 来进 行处理。一个e j b 从客户程序处接受数据,对数据进行处理,然后将数据发送到 企业信息系统层存储;同样,一个e j b 也可以从企业信息系统中取出数据,并将 数据送回客户程序。业务层中的e j b 要运行在容器中,容器解决了底层的问题, 如事务处理、生命周期、状态管理、多线程安全管理、资源池等。业务层和w e b 层一起构成了j 2 e e 应用的中间层。 2 2 4 企业信息系统层 企业信息系统层运行企业信息系统软件,包括企业基础设施系统,例如企业 资源计划( e r p ) 、大型机事务处理、数据库系统和其它遗留信息系统。j 2 e e 应用 组件可能为了数据库连接需要访问企业信息系统。 第2 章j 2 e e 平台体系结构 2 3j 2 e e 的发展及问题的提出 j 2 e e 平台提供了一个基于组件的方法来设计、开放、装配及部署企业应用程 序。e j b 就是其中一个重要的组件,它是用于开发和部署多层结构的、分布式的、 面向对象的j a v a 应用系统的跨平台的构件体系结构。采用e j b 可以使得开发商业 应用系统变得容易,应用系统可以在一个支持e j b 的环境中开发,开发完之后部 署在其它的环境中,随着需求的改变,应用系统可以不加修改地迁移到其它功能 更强、更复杂的服务器上。但是e j b 也存在着很多先天的缺陷。首先,础b 属于 重量级组件,对w e b 服务器要求较高,必须有专门的e j b 服务器,用以提供f _ j b 容器,支持e j b 的运行;其次,对服务器硬件要求较高,而且f i b 定义了较为复 杂的e j b a p i ,如果使用不当,可能导致不恰当的应用系统设计,结构使得应用系 统的总体性能下降。 基于j 2 e e 的上述缺陷以及本项目的特点,本论文提出了一种框架整合的思想, 用一些轻量级的、灵活的j 2 e e 框架来代替传统的使用e j b 的j 2 e e 框架。整合后 的框架即满足本项目的需求,又提供了统一的应用架构方式,以及大量的中问层 功能模块,能够大大简化j 2 e e 的开发,并且比传统的开发方式更加灵活。 j 2 e e 轻晕级框架在预算管理系统中的应用研究 第3 章j 2 e e 应用程序框架介绍 3 1 应用程序框架介绍 随着软件系统的复杂程度增加,软件系统的架构( a r c h i t e c t u r e ,也称体系结构) 设计显得越来越重要。在多层的软件开发项目中,可重用、易扩展的,而且是经 过良好测试的软件组件,越来越为人们所青睐。工业化的软件复用已经从通用类 库进化到了面向领域的应用框架【3 l ,这意味着人们可以将充裕的时间用来分析、构 建业务逻辑的应用上,而非繁杂的代码工程。g a r t n e rg r o u p 认为:“到2 0 0 3 年, 至少7 0 的新应用将主要建立在如软机构件和应用框架这类构造块之上:应 用开发的未来就在于提供一开放体系结构,以方便构件的选择、组装和集成”【4 1 。 框架的重用已成为软件生产中最有效的重用方式之一。 3 1 1 框架的概念 在设计模式中,g a m m a 等人为框架给出了一个定义【5 】:“框架就是一组协同工 作的类,它们为特定类型的软件构筑了一个可重用的设计。”框架,即f r a m e w o r k , 其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。它是 一种特殊的软件,为软件开发带来了高度的重用性,另外,框架一般是成熟的, 不断升级的软件。 从用户使用的角度:用户通过定制框架形成满足他们具体需要的软件,这个 过程是简单的,复杂的内部结构必须对用户隐藏。从设计复用的角度:框架完整 地描述了一个领域内的设计概念,可以适合该领域内用户不同的需求。从实现复 用的角度:可以通过继承或者代理的方法来使用框架中的抽象类达到实现复用。 框架通常有一组紧密关联的模块或者类,强调彼此的配合以完成某种可以重 复运用的设计概念。这些类或模块之间以特定的方式合作,彼此不可缺少。可以 说,一个框架是一个可复用的设计组件,它规定了应用的体系结构,阐明了整个 设计、协作组件之间的依赖关系、责任分配和控制流程,表现为一组抽象类及其 实例之间协作的方法,它为组件复用提供了上下文关系。基于j 2 e e 平台的w e b 应用程序框架就是利用j 2 e e 平台的技术,为w e b 应用开发提供一种可重用的体系 第3 章j 2 e e 应用程序框架介绍 结构。 3 1 2 框架的优点 软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识、 内容、问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一 些基础工作,你只需要集中精力完成系统的业务逻辑设计。框架一般是成熟、稳 健的,使用框架可以降低开发成本、缩短开发周期、可以处理系统很多细节问题, 比如,事务处理、安全性、数据流控制等问题。而且框架一般都经过很多人使用, 所以结构很好,扩展性也很好,并且它是不断升级的,你可以直接享受别人升级 代码带来的好处。使用框架开发的应用比较容易理解和维护。 采用框架技术进行软件开发有以下优点: 可复用性:面向对象系统获得的最大的复用方式就是框架,一个大的应用系 统往往可能由多层互相协作的框架组成。框架定义的稳定的接口有助于组件的产 生和设计,从而使组件间的通信简单,同时这些组件可以复用于别的系统,框架 组件的复用可以大规模的提高软件的开发生产率、软件质量、软件可靠性和协同 性。框架描述了该领域内的知识和以前开发者的宝贵经验,这样就不需要对该领 域内的核心需求进行重复理解,提高了核心设计的质量,降低了开发费用和维护 费用,加快了开发速度。 可扩展性:通过提供外在的钩子方法,允许应用程序扩展它已有接口,框架 技术加强了可扩展性。 模块化:通过将不稳定的实现细节封装于稳定的界面后面,框架加强了模块 化。它不仅仅是类的集合,同时它还提供了丰富的功能和对象类之间内嵌的骨架 结构,这些体系模型和设计提高了系统的模块化,最大限度的减少了开发人员需 要开发的通用代码,减轻了代码调试和测试的工作量。设计阶段和实现阶段的决 策改变会给软件系统带来很大的冲击,模块化可以把这种冲击限定在局部的范围 以内。 反向控制特性:框架的运行时间体系结构的一个最大的特点就是反向控制, 由框架主动控制工作流程,不再像传统类库一样被用户代码调用,而是主动调用 j 2 e e 轻量级框架在预算管理系统中的应用研究 用户代码。过程是;框架的反应派遣机制调用各个事件的管理对象,通过对这些 事件管理对象的组织,形成规范的应用程序总体流程。当某个事件发生时,就会 唤醒某个事件管理对象的钩子方法,接着框架的反应派遣机制就会反应。当外部 事件发生时,不是具体定制的应用程序,而是内部的核心框架来决定哪些方法将 被唤醒以处理该事件。 3 2s t r u t s 框架和m v c 模式 3 2 1i a v c 模式 m v c ( m o d d v i e w c o n t r o l l e r ) 模型一视图一控制器模式是在八十年代为编程 语言s ( m a i l t 宴l k 8 0 发明的一种软件设计模式。目前m v c 模式已趋于完善,并成为 一种典型的面向对象设计模式。m v c 把w e b 应用分为三层:模型( m o d e l ) ,视图 ( v i e w ) ,控制器( c o n t r 0 u e r ) 。如图3 1 所示【6 l : 图3 1h v c 设计模式 f i g 3 1m v cd e s i g np a t t e r n 模型( m o d e l ) :是业务逻辑的处理以及业务规则的制定。也就是说,这一层是 现实生活中功能的软件模拟。业务流程的处理过程对其它层来说是黑箱操作,模 型接受视图请求的数据,并返回最终的处理结果。模型包含了应用程序的核心, 第3 章j 2 e e 应用程序框架介绍 它本质上封装了数据及行为,其中包含对数据控制及修改的规则。在j 2 e e 平台中, j a v a b e a n 很适合这样一个角色,因为它能够处理绝大部分的事务逻辑和数据结构, 能够与数据库和文件系统进行交互,承担维护应用程序数据的责任。 视图( e w ) :视图代表用户交互界面,它是应用程序的外在表现。它可以访问 模型的数据,却不了解模型的情况,同时也不了解控制器的情况。m v c 设计模式 对于视图的处理仅限于视图数据的采集处理,不包括视图业务流程的处理,业务 流程交给模型处理。视图可以向模型查询业务状态,但不能改变模型。视图还能 接受模型发出的数据更新事件,从而对用户界面进行同步更新。 控$ 1 j :器r ( c o n t r o l l e r ) :是m o d e l 和v i e w 之间的纽带,控制器解释用户的输入并 将其映射为模型的操作,同时定义应用程序的行为,分派用户的请求并选择恰当 的视图用于显示。例如,用户点击一个连接,控制层接受请求后,并不处理业务 信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返 回给用户。这样模型和视图两者之间可以做到松散耦合,由控制器连接起这两个 部分。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 基于m v c 模式进行设计不仅可以方便的开发三层结构的应用体系,而且它把 用户界面设计、流程控制和业务逻辑进行了分离,使界面设计同数据操作完全隔 离开来,不但使整个开发设计清晰,减少代码的重复度,同时也使得软件的可维 护性、可修复性、可扩展性、灵活性以及封装性大大提高。 3 2 2s t r u t s 实现m v c 的机制 s t r u t s 是a p a c h ej a k a r t a 项目的组成部分1 7 1 ,是基于j 2 e e 平台的m v c 模式的 w e b 应用框架,它由一组相互协作的类( 组件) 、s e r v l e t 以及j s p 卷标库组成。基 于s t r u t s 架构的w e b 应用程序基本上符合j s pm o d e l 2 的设计标准,可以说是m v c 设计模式的一种实现【8 l o 图3 2 显示了s t r u t s 实现的m v c 框架【6 l o j 2 e e 轻量级框架在预算管理系统中的应用研究 颟s l 厂“ 图3 2s t r u t s 实现的m v c 框架 f i g 3 2m v cf r a m eo fs t r u t s 模型:模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常 由j a v a b e a n 或e j b 组件来实现。 视图:视图就是一组j s p 文件。在这些j s p 文件中没有业务逻辑,也没有模 型信息,只有标签,这些标签可以是标准的j s p 标签或客户化标签,如s t r u t s 标签 库中的标签。在s t r u t s 框架中,通常把a c t i o n f o r mb e a n 也划分到视图模块中。, a c t i o n f o r mb e a n 也是一种j a v a b e a n ,除了具有一些j a v a b e a n 的常规方法,还包含 一些特殊的方法,用于验证h t m l 表单数据以及将其属性重新设置为默认值。s t r u t s 框架利用a c t i o n f o r mb e a n 来进行视图和控制器之间表单数据的传递。控制器可以 对a c t i o n f o r mb e a n 中的数据进行修改,j s p 文件使用s t r u t s 标签读取修改后的 a c t i o n f o r mb e a n 的信息,重新设置h t m l 表单。 控制器:控制器由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 类是s t r u t s 框架中的核心组件。a c t i o n s e r v l e t 继承了j a v a x s e r v l e t h t t p h t t p s e r v l e t 类,它在m v c 模型中扮演中央控制器的角色。a c t i o n s e r v l e t 类主要负责接受h t i p 请求信息,根 据配置文件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 s e r v l e t 会先创建这个a c t i o n 对象:a c t i o n 类主要负 责调用模型的方法,更新模型的状态,控制应用程序的流程,充当用户请求和业 第3 章1 2 e e 应用稗序框架介绍 务逻辑处理之间的适配器,将请求与业务逻辑分开。 3 2 3s 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 l 文件中读取配置信息,把它们存放 到各种配置对象中,例如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 接收到一个客户请求时,将执行如下流程【6 】: ( 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 对象,把客户提交 的表单数据保存到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 对象,就表示表单验证成功。否则就表示表单验证 失败,此时a c t i o n s e r v l e t 会根据配置信息中的i n p u t 属性决定跳转的组件。 ( 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 c 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 组件生成动态网页,返回给客户。 图3 3 显示了s t r u t s 响应用户请求的工作流程: j 2 e e 轻量级框架在预算管理系统中的应用研究 a c t i o i l s c r v i c ta c t i o nb u s i n e s sl o g i c 【r e q u j s t a r r i v e s 饕reat】ictioform r e t u r ne r r o r ,1 f 习y e s ” 一竺竺竺卜_七衙m 唧捌b u s i n l 蟛c j f p r o 一觚汹凡一a r d 一 t a c t i 。n f o a j 删盅湍。驴 r e t u r n r e s p o n s e ) 图3 3s t r u t s 响应用户请求的工作流程 f i g 3 3w o r kf l o wo fs t r u t s 3 2 4s t r u t s 框架的优缺点 1 ) s t r u t s 框架的优点 符合h t f p 惯例 s t r u t s 设计是以标准的m 1 甲协议的r e q u e s t r e s p o n s e 模式,对于许多开发人 员来说,很熟悉这种模式。 标准的日志记录 s t r u t s 能够使用应用服务器的日志系统,不需要其他类库来配置解析,这样对 于开发人员来讲实用简单。 通过x m l 配置文件集中配置 s t r u t s 大部分操作都是通过配置文件s t r u t s c o n f i g x m l 来实现的,包括上下文、 异常处理、f o r m b c a n 、映射a c t i o n 等工作都是通过配置文件设置的。系统运行时, 系统动态的解释配置文件。 第3 章j 2 e e 应用程序框架介绍 资源文件支持多语种 支持多种资源文件,资源文件中各种字符串可以按类的路径进行命名,在程序 中很容易得到,多语种程序通过不同的资源文件就可实现。系统中的提示信息、 出错信息以及动态显示的信息都可以在资源文件中设置。 轻量级 s t r u t s 提供的核心组件包数量不多,但功能强大,开发人员很快就能够掌握。 这个s t r u t s 大约有1 5 个包,近2 0 0 个类所组成,系统的核心组件包包括:a c t i o n 、 a c t i o n s 、c o n f i g 、u t i l 、t a g l i b 、v a l i d a t o r 等。 完备的标签扩展服务 除了框架本身的特殊资源外,s t r u t s 包含了一系列的常规用途的标签扩展可以 满足所有的j s p 标签方面需要。 源代码文档齐备 s t r u t s 的源代码文档非常详细,同时给开发人员提供更为详细的高水平的开发 指南。 广泛的厂商支持 因为s t r u t s 的成熟和广泛使用,越来越多的j 2 e e 集成开发工具已经包含对 s t r u t s 的支持。 2 ) s t r u t s 框架的缺点 耦合性强。业务逻辑必须在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 c t i o n 类的代码修改,维护量大,w e b 层和业务逻辑层存在过强的祸合性。 缺乏对持久数据的操作与管理。通过对s t r u t s 框架进行分析,可以看到 s t r u t s 框架并未考虑对持久数掘的操作与管理,一般是通过s t r u t s + d a o 的 方式来解决持久层的处理,然而在数据模型复杂的应用系统中,直接利用 j d b c 编程来实现持久化框架不仅是需要开发者具有相应的专业知识同时 还会造成代码的冗余,开发代价也会随之变高。除此之外,在业务层的处 理上如果业务层的处理分布在用户接口或者持久层里,不难想象这会导致 j 2 e e 轻量级框架在预算管理系统中的应用研究 应用程序的紧祸合,同时随着时间推移代码将很难维护。 事务管理的不便。s t r u t s 没有自己特有的事务管理机制,以前在事务管理 方面通常都是采用e j b 容器来管理,但是e j b 容器存在许多缺点,例如: e j b 代码不可以脱离e t b 容器;e 3 b 容器启动缓慢;部署e j b 十分麻烦, 每个e j b 都需要多个j a v a 文件,在正式部署之前可能还需要首先完成代 码生成和编译;应用代码只能运行在e j b 容器这一个环境中;e j b 容器不 能管理细粒度对象等等。 3 3s p r i n g 应用程序框架 3 3 1s p r i n g 框架简介 s p r i n g 是一个服务于所有层面的应用框架【9 】,提供了b e a n 的配置基础、a o p 的支持、j d b c 抽象框架、抽象事务支持等等。它有一个非常显著的特点:在某个 层面上如果开发者不需要s p r i n g 的支持, 我们在任何方面选择最合适的解决方案, 就可以不使用s p r i n g 提供的类,它允许 而不是强制我们接受s p r i n g 提供的全套 服务。从设计理念上来讲,s p r i n g 帮助实现了真正的逻辑层和w e b 层的分离。它 是为解决企业应用开发的复杂性而创建的,s p f i n g 使用基本的j a v a b e a n s 来完成以 前只可能由e j b 完成的事情。s p r i n g 的主要设计目标是可重用性、易测试性、简 单性以及松耦合性。 s p r i n g 并不是试图同现在的方案竞争,它更愿意与象s c r v l e t 、j s p 、j t a 、j n d i 、 j d b c 和j d o 这些标准和如h i b e r n a t e 、v e l o c i t y 、l 0 9 4 j 等这些优秀的组件无缝地 集成起来。s p r i n g 的目标就是提供一个全面的解决方案,把各个专用框架集成为一 个一致的、统一的、全面的应用框架。s p d n g 最大的特色就是控制反转( 1 0 c = i n v e r s e r o fc o n t m l ) 和依赖注入( d i = d e p e n d e n c ei n j e c i i o n ) 的设计思想【1 0 l 。 3 3 2l o c 容器 i o c ( 控制反转) ,就是由容器控制程序之间的关系,而非传统实现中,由程 序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码转 到了外部容器,控制权的转移,是所谓反转1 1 1 】。l o c 模式是对依赖倒转原则的体现, 第3 章j 2 e e 应用程序框架介绍 做到了针对接口编程。这是面向对象程序设计的核心原则。对一个类应用i o c 模 式意味着这个类不直接负责所有对象实例的创建,取而代之传递给它需要的实例, 即依赖注入。也就是说,由容器将依赖关系注入到组件中。依赖注入的目标并非 为软件系统带来更多的功能,而是为了提升组件重用的概率,并为系统搭建一个 灵活
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公务员面试即兴面试题及答案
- 公务员考试双缝干涉实验试题及答案
- 公务员考试试卷试题及答案
- 云南税务遴选题库及答案
- 2025年襄阳市襄城区总工会公开招聘工会协理员1人参考题库含答案详解(精练)
- 2026年江苏省泰州市单招职业适应性考试题库完美版
- 2026年山东职业学院单招职业技能测试必刷测试卷及答案1套
- 2025年河南省省直及部分省辖市事业单位招聘考试真题试卷 公共基础知识及答案详解(典优)
- 2025广西桂林市卫生健康委员会直属事业单位直接考核招聘高层次专业技术人员63人参考题库及答案详解(新)
- 2026年苏州百年职业学院中单招综合素质考试题库完美版
- 小学生乘坐电梯安全课件
- 河南省郑州市行知中学、一八联合国际学校、南塘中学等联考2024-2025学年九年级上学期期中物理试卷
- 水利工程施工监理规范(SL288-2014)用表填表说明及示例
- 形势与政策补考2-国开(XJ)-参考资料
- 巨人通力电梯NOVA GKE调试说明书故障代码GPN15 GVN15-GKE - 51668093D01-2022
- 2024建筑施工拉杆式悬挑脚手架安全技术规程
- YYT 0631-2008 牙科材料 色稳定性的测定
- 学校运动队组建方案(2篇)
- GB/T 25849-2024移动式升降工作平台设计、计算、安全要求和试验方法
- 中考数学《圆的综合》综合检测试卷及答案解析
- 农业生态与环境保护教案
评论
0/150
提交评论