




已阅读5页,还剩69页未读, 继续免费阅读
(计算机科学与技术专业论文)基于struts的web应用研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 摘要 m v c ( m o d e l v i e w c o n t r o l l e r ,模型一视图控制器) 模式是随着s m a l l t a l k 语言的发展 提出的,它是一个著名的用户界面设计架构。m v c 模式不仅实现了功能模块和显示模块 的分离,还提高了应用系统的可维护性、可扩展性、可移植性以及组件的可复用性。s t r u t s 则是实现m v c 模式的具体应用框架之一。s t r u t s 由一系列的框架类、辅助类和定制的j s p 标记库构成,其核心为一个灵活的、基于j a v as e r v l e t s 、j a v a b e a n s 、x m l 等标准技术的控 制层。s t r u t s 在w e b 应用开发中把界面和业务逻辑分离,有利于网页设计者和程序设计者 的分工,提高了代码的可重用性和灵活性,便于组件式开发。 论文针对高效开发大型企业信息系统的需求,对2 0 0 0 年提出并迅速流行的s t r u t s 以及 基于s t r u t s 构建企业信息系统的相关技术进行了深入研究。论文的主要工作和创新包括: 1 对m v c 模式及其关键技术进行了深入研究,对比分析了几种基于m v c 模式的具 体应用框架一s t r u t s 、j a t o 、j s f 及w a f ,并根据项目开发实践总结出在选择m v c 模式进行系统开发时需注意的一些问题。 2 在对s t r u t s 技术进行深入分析研究的基础上,提出了一系列用户端请求的处理方 案:包括数据库的访问设计,用户的认证、授权及安全退出,日志的管理与实现 等,同时还对画面数据传递过程中可能出现的各种迁移关系,以及可能发生的多 种错误情况进行了详尽的研究,提出了保证数据传递正确有效的解决方案。一方 词减轻了项目开发的任务量;另一方面,切实增强了系统的灵活性、可扩展性, 便于维护升级。 3 基于对中文字符乱码产生原因的分析与综合,设计了一种适用于企业级w e b 系统 丌发的s t r u t s 国际化问题的解决方案。该方案的提出能够帮助解决w c b 开发中容 易出现的:中文数据从数据库到j s p 文件后变成了“? ? ? ? ”;p r o p e r t i e s 文件中的 中文v a l u e 显示乱码;j s p 文件中的中文到浏览器后显示乱码等问题。 在上述研究成果的基础上设计实现了一个基于s t r u t s 框架的企业信息系统,目前该系 统己成功应用于湖南省某电力公司,达到了预期的设计目标,取得了良好的使用效果。 关键字:模式、框架、j 2 e e 、m v c 、s t r u t s 、w e b 、企业信息系统 国防科学技术大学研究生院学位论文 a b s t r a c t m v c ( m o d e l - v i e w - c o n t r o l l e r ) a saw e l l - k n o w nu s e ri n t e r f a c ed e s i g np a t t e r nw a sb r o u g h t u pw i t ht h ed e v e l o p m e n to fs m a l l t a l k m v cp a t t e r nn o to n l yr e a l i z e st h es e p a r a t i o no ff u n c t i o n b l o c ka n dd i s p l a yb l o c k ,b u ta l s oe n h a n c e st h em a i n t e n a n c e s ,e x p a n s i b i l i t ya n dt r a n s p o r t a b i l i t y o ft h ea p p l i c a t i o ns y s t e m ,i nt h es a m et i m e ,t h er e u s a b i l i t yo f c o m p o n e n ta l s oe n h a n c e d s t r u t si s o n eo ft h ec o n c r e t ea p p l i c a t i o n so fm v c p a t t e r n s t r u t si sm a d eu po fas e r i e so ff r a m e w o r k c l a s s ,a s s i s tc l a s sa n dc u s t o m b u i l tj s pm a r kl i b r a r y t h ec o r eo ft h es t r u t sf r a m e w o r ki sa f l e x i b l ec o n t r o l l i n gl a y e rb a s e do ns t a n d a r dt e c h n o l o g i e sl i k ej a v as e r v l e t s ,j a v a b e a n s ,a n d x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) e t c i nw e ba p p l i c a t i o nd e v e l o p i n g ,s t r u t ss e p a r a t e s i n t e r f a c ed e s i g na n ds e r v i c el o g i c ,t h u si th e l p st h ew o r kd i v i s i o nb e t w e e nw e b p a g ed e s i g n e r a n dt h ew o r ko fp r o g r a m m e r ,a n de n h a n c e st h er e u s a b i l i t ya n df l e x i b i l i t yo ft h ec o d e ,a n dm a k e s m o d u l a rd e v e l o p m e n te a s i e r t h i sp a p e ra i m e da tc o n s t r u c t i n ga ne f f e c t i v ee n t e r p r i s ei n f o r m a t i o ns y s t e m t h es t r u t s w h i c hw a sp o p u l a rs i n c e2 0 0 0w a sd e e p l yd i s c u s s e d ,t h et e c h n o l o g yo fc o n s t r u c t i n ge n t e r p r i s e i n f o r m a t i o ns y s t e mw a sd e e p l ys t u d i e d t h em a i nw o r ka n di n n o v a t i o na r el i s th e r e : 1 m v cp a t t e r na n di t s k e yt e c h n o l o g yw e r ef u l l y d i s c u s s e d s e v e r a lc o n c r e t e a p p l i c a t i o nf r a m e w o r k ss u c ha ss t r u t s ,j a t o ,j s fa n dw a f w e r ec o m p a r e d s o m e q u e s t i o n so ns y s t e md e v e l o p i n gb a s e do nm v cp a t t e r nw e r ed i s c u s s e d 2 s o m ep r o p o s a l so nd e a l i n gw i t hu s e rr e q u e s tw e r eg i v e n as e r i e so fs o l u t i o n s ,s u c h a st h ea c c e s so fd a t a b a s e ,t h eu s e r sr e c o g n i t i o n ,t h eu s e r sa u t h e n t i c a t i o na n d s e c u r i t ye x i t t h em a n a g e m e n to fd a i l yr e c o r de t c w e r ep r o p o s e d t h em i g r a t i o n r e l a t i o n s h i pd u r i n gd a t at r a n s f o r ma n dm a n y e r r o rc o n d i t i o n sw e r ef u l l ys t u d i e d ,t h e e f f e c t i v ea n da c c u r a c yo fd a t at r a n s f o r mp r o p o s a l sw e r eb r o u g h to u t t h ew o r ko f d e v e l o p i n gw a sa l l e v i a t e d ,;t h ef l e x i b i l i t ya n de x t e n d i b i l i t yo ft h es y s t e mw e r e e n h a n c e d ,a n dt h em a i n t e n a n c ea n du p g r a d eb e c a m ee a s i e r 3 t h er e a s o n so fc h i n e s ed i s o r d e rc o d ew e r ea n a l y z e d as o l u t i o ns u i t a b l ef o r e n t e r p r i s ew e bs y s t e md e v e l o p m e n to ns t r u t si n t e r n a t i o n a l i z a t i o nw a sp r o p o s e d t h i ss o l u t i o nc a ns o l v et h ef o l l o w i n gp r o b l e m st h a ta r ec o m m o ni nw e ba p p l i c a t i o n d e v e l o p i n g :t h ec h i n e s ed a t at u r n si n t o ? ? ? ? ”i nj s pf i l e sf r o md a t a b a s e ;t h e c h i n e s ev a l u ei np r o p e r t i e sf i l e st u r n si n t od i s o r d e rc o d e ;t h ec h i n e s ed a t ai nj s p f i l e st u r n si n t od i s o r d e rc o d ei nb r o w s e r a ne n t e r p r i s ei n f o r m a t i o ns y s t e mb a s e do nt h er e s e a r c hm e n t i o n e da b o v ew a si m p l e m e n t e d , a n dt h es y s t e mw a sa d o p t e db ya p o w e rc o m p a n yi nh u n a np r o v i n c e a n di th a sas o u n de f f e c t k e y w o r d s :p a t t e r n ,f r a m e w o r k ,j 2 e e ,m v c ,s t r u t s ,w e b ,e n t e r p r i s ei n f o r m a t i o ns y s t e m 国防科学技术大学研究生院学位论文 图目录 图2 1 m v c 三角,6 图2 - 2 多种显示视图7 图2 - 3m o d e l l 体系结构图7 图2 4 m o d e l 2 体系结构图8 图2 - 5 m v c 组件类型的关系和功能9 图2 - 6 m v c 的实现过程。一,1 0 图3 1m v c 与s t r u t s 映射关系图1 5 图3 - 2 s t r u t s 框架的组件结构图1 7 图3 3s t r u t s 请求响应流程,2 0 图4 - 1 系统结构图,3 1 图4 - 2 w e b 子系统与界面层、基础层的关系3 2 图4 3 应用程序初始化顺序3 4 图4 - 4j d b c 结构图,3 9 图4 - 5 画面迁移关系一4 1 图4 - 6 画面迁移关系二,4 l 图4 7 画面迁移关系三,4 l 图4 8 画面迁移关系四,。,。,。4 2 图4 - 9 画面迁移关系五4 2 图4 1 0 画面迁移关系六4 3 图4 - 1 1 画面迁移关系七4 3 图4 1 2 实现用户权限认证的时序图4 4 图4 1 3 实现日志记录的时序图,。4 6 图5 - 1 汉字变成问号的图例,5 l l v 国防科学技术人学研究生院学位论文 表3 1s t r u t s 组件列表 表3 2s t r u t s 优点表 表3 - 3s t r u t s l 0 改进对照表 表3 - 4s t r u t s 缺点表 表目录 1 7 2 5 2 6 2 7 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目:基王! ! ! ! ! 的里! 女应届叠塞皇塞墨 学位论文作者签名:置整整日期:2 畹年6 月引日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅:可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目:垂王;! ! ! ! ! 的! 业廛屈丑窒生塞墨 学位论文作者签名:! 丑整堕 作者指导教师签气二懈 吁r 广 日期:2 时年5 月3 ie 1 日期:勿心年弓月弓日 国防科学技术大学研究生院学位论文 第一章绪论 在中间件技术不断发展以及w e b l o g i c 、w e b s p h e r e 、j b o s s 等a p p l i c a t i o ns e r v e r 的全面 支持下,面向w e b 应用开发的j 2 e e 体系架构已经逐渐成为企业级w c b 应用软件的开发标 准。它提供了一种在分布式环境下基于组件的设计、开发、集成、部署的系统的方法,并 采用j s p s e r v l e t e j b 三层架构来分离网站的显示业务数据三层逻辑。然而,这种简单的 分离在w e b 应用开发中将j a v a 和h t m l 强耦合在一起,使得阅读、调试和维护都十分困 难。因此为了使j a v a 和h t m l 开发出更具柔软性的应用软件,必须解决好以下两个问题: ( 1 ) 用户界面与业务逻辑的分离:( 2 ) 动态页面的逻辑部分与静态h t m l 代码的分离【”】。 由a p a c h ej a k a r t a 项目组提供的s t r u t s 应用框架正是用来解决这些问题的,它采用了基 于w e b 的模型一视图一控制器( m o d e l v i e w c o n t r o l l e r ,m v c ) 模式,能够很好地帮助j a v a 丌发者利用j 2 e e 开发w e b 应用,实现用户界面与业务逻辑的分离;同时,它还提供了大 量的自定义标记库,可以在j s p 页面中将动态页面的逻辑部分与静态h t m l 代码分离,使 页面代码更为清晰,可读性大大提高。另外,s t r u t s 还具有强大的面向对象设计功能,这 些都使得s t r u t s 风靡于整个j a v a 社群,被逐渐应用到许多大型项目中,成为当今w e b 应 用开发中最为流行的框架之一 1 4 】。 1 1 1 课题来源 1 1 课题背景 本课题的研究是建立在为湖南省某电力公司开发企业级信息系统的基础上的,课题研 究的内容为该项目中的一部分。 在新经济环境下,随着现代企业的不断扩张以及社会信息化程度的提高,信息规模逐 渐扩大,信息的复杂程度也闩益增加。于是,企业对信息化的应用提出了更新的要求,即: 高质量、高速度和无处不在。因此,单纯依靠电话、传真、电子邮件及手工方式进行信息 交流与管理的模式已经难以满足各级人员获取信息的需要。为进一步提高工作效率与工作 质量,需要建立一套完善的企业信息系统,以利用信息技术实现对企业信息的集中管理, 更好地为企业发展服务。 本文正是基于上述的应用需求背景,进行了面向企业的大型w e b 应用系统的开发并对 其具体实现中的关键技术进行了研究。 1 1 2s t r u t s 技术的发展 s t r u t s 的承诺是:以更快的速度开发更好的软件,这个契约包含两点:一是开发的速 度。s t r u t s 提供了一个简单易用的开发模型,这个模型集成了很多东西以免开发者再进行 重复开发:其二、s t r u t s 能帮助丌发者交付更好的软件。s t r u t s 是由一群该领域中最具经验 的丌发者建立的,通过了严格的测试。因此,可以说目前的s t r u t s 是一个非常稳定的框 架。 1 国防科学技术大学研究生院学位论文 1 1 2 1s t r u t s 产生的背景 8 0 年代中期,随着封装技术的出现,人们开始将代码封装到对象中,使数据与逻辑分 离。9 0 年代末,采用w e b 应用程序的开发逐渐兴起,不过由于w 曲的不成熟,只有较 少的工具能帮助开发人员构建w e b 软件使得w 曲应用开发中的h t m l 代码与逻辑部分 混合在一起,导致u i 设计的更改和业务逻辑的更新在大型应用程序中既困难又昂贵【5 i 。 因为混合的代码要求开发人员既要具备u i 设计知识,又需要与图形设计人员之间保持紧 密的工作关系,长此以往,造成时间和精力上的浪费。 j s p 技术和标记的引入将逻辑和显示分离,在一定程度上改进了这个问题,它既让u i 设计人员能够专注于页面,又让开发人员能够专注于逻辑。然而,这种方法仍存在一些缺 陷,尤其是某些操作( 包括公共操作) 的开发仍很困难。 s t r u t s 概念是c r a i gm c c l a n a h a n2 0 0 0 年提出的,他创立s t r u t s 的目的就是要为利用 j a v a 技术开发基于m v c 模式的w e b 应用提供一个标准模式【l 。s t r u t s 最初的代码诞生于 2 0 0 0 年5 月,直到2 0 0 1 年中期s t r u t s l 0 最终发布。现在成为a p a c h ef o u n d a t i o nj a k a r t a 项 目的一部分,并将继续与j s p 和s e r v l e t 实现高度兼容,进而与所有j 2 e e 应用程序服务 器高度兼容。 1 1 2 2s t r u t s 名字的由来 “s t r u t s ”这个名字来源于建筑和旧式飞机中使用的金属支架,之所以叫“s t r u t s ”, 是为了提醒我们记住那些支撑我们的房屋、建筑、桥梁,甚至踩高跷时的支架。这也是对 s t r u t s 在开发w e b 应用程序中所扮演的角色的精彩描述,如同建筑工程师使用支柱为建筑 层提供支持一样,软件工程师使用s t r u t s 为业务应用的每一层提供支持p 】。 1 1 ,2 3s t r u t s 的核心开发者 s t r u t s 有很多卓越的开发者,其中最为优秀的是: c r a i gm c c l a n a h a n - - c r a i g 是最初a p a c h ej s e r v 项目的参与者,也是随后t o m c a t 的核心 贡献者,他是s t r u t s 最初的构想者,最初的开发者,以及目前s t r u t s 的首席架构师。 t e dh u s t e d - - 2 0 0 0 年1 2 月,t e d 就成为了s t r u t s 的一个代码提交者,并且于2 0 0 1 年6 月建立了一个早期的产品级站点,他对于项目的开发和支持都十分重要。 j a m e sh o l m e s - - j a m e s 是s t r u t s 控制台的创建者。 c e d r i cd u m o u l i n - - c e d r i c 是t i l e s 的作者以及s t r u t s 众多领域的贡献者1 。 1 1 3s t r u t s 的研究现状 s t r u t s 目前已经达到一个稳定成熟的状态,并足以支持产品级应用。世界上很多的站 点( 包括企业内部应用和外部的i n t e m e t 站点) ,都在运行基于s t r u t s 的产品级应用,t o m c a t 、 j s p s e r v l e t 容器的标准均包含了一个基于s t r u t s 的管理应用程序。s t r u t s 作为一个基于w e b 的应用程序框架,已经掀起了一个风潮。 国防科学技术大学研究生院学位论文 1 1 3 1s t r u t s 的版本 s t r t u s 经历有几个不同的版本,它们分别是: 稳定版本这个版本的代码可以认为是没有b u g 并且准备形成产品的版本,它虽然缺 少一些当前最新的功能,但比较稳定。 b e t a 版本这个版本包含最新的功能,其配置在一定程度上已经稳定,但在b e t a 版本 上进行产品开发需要考虑一定风险。 n i g h t l yb u i l d 版本这是一个开发者使用的版本,需要从源代码编译构建。 大多数产品级站点是基于稳定版本构建的,不过仍有部分站点使用b e t a 版本 。 1 1 3 2 其它可以和s t r u t s 一同使用的应用 丌源社区对s t r u t s 的支持程度令人惊讶,大量的应用程序、工具、示例应用等都可以 得到。下面列举了一些最值得关注的贡献【l 叫: s t r u t s 控制台s t r u t s 控制台用于管理s t r u t s 应用和配置文件,它可以作为一个独立的 s w i n g 应用程序,也可以作为j b u i l d e r 、n e t b e a n s 或s u n f o r t e 的一个插件。 a d a l o n 按照s y n t h i sw e b 站点的说法,这是一个“i n t e r n e t 应用建模工具”。a d a l o n 是用来完成业务过程设计以及i n t e r n e t 应用设计的工具,a d a l o n 能够从它的设计中直 接生成s t r u t s 代码。 用于j u n i t 的s t r u t s t e s t c a s es t r u t s t e s t c a s e 提供了一个j u n i t 的扩展,用于测试基 于s t r u t s 的代码。 以上所列举的只是目前支持s t r u t s 应用中的- d , 瞥,开源社区对s t r u t s 的幕后支持, 是s t r u t s 一个最强大的优势。 1 1 4s t r u t s 的未来 s t r u t s 会呈现怎样的未来? 现在还没有确切的说法,但是我们至少可以进行以下推测。 集成j s t l s t r u t s 标记有望合并到j s p 标准标记库( j s ps t a n d a r dt a gl i b r a r y ,j s t l ) 中。这是 j a k a r t a 的一个项目,它试图产生一个有用的定制标记集合,从而简化并加快用j s p 页面 进行w e b 应用程序的开发。其意义在于:w e b 应用程序的开发将比过去任何时候都更容 易,因为开发人员可以通过使用定制标记的机制得到一个预先编写好的代码库。而且,j s t l 标准中这个项目的合并也能够确保s t r u t s 功能能够得到更为广泛的分发和使用,即凡是采 用了j s p l 2 的应用服务器,都可以获得j a v a 标准标记库j s t l 的全部功能。 集成j a v a s e r v e rf a c e s c r a i gm c c l a n a h a n 不断深入到j a v a s e r v e rf a c e s 规范的制定中,因此s t r u t s 和j s f 将会 不断融合,最终s t r u t s 标准标记库将会慢慢淡出人们的视线,而由j s t l 和j s f 的组合( 或 者共同工作) 来替代。 s t r u t s 工作流管理系统 目前,在w e b 应用程序中对业务过程进行编码是一个棘手的问题,因为必须协调不同 国防科学技术大学研究生院学位论文 的步骤,而每一步都是j a v a 类中一个单独的方法、一个单独的s e r v l e t 或一个单独的j s p 页面。商业市场中的工具对多步骤的业务过程进行建模,然后自动生成j a v a 代码,s t r u t s 工作流管理系统提供的功能与之类似,它使开发人员能够编写业务过程脚本,这些过程在 w 曲应用程序中跨多个页面,并指定这些页面如何通过核心的基于规则的系统进行交互。 s t r u t s 将会被更广泛的接受 目前,大家使用的版本一般为s t r u t s l 1 ,s t r u t s l 1 在功能和代码稳定方面,比以往任何 一个版本都有很大的提高。同时,随着s t r u t s 的逐渐流行,将会有更多的人投入到b u g 修 改和新功能的开发中。因此,对于商业应用的开发,s t r u t s 必将成为一个极具魅力的平台, 同时,它也将会是j a k a r t a 社区中最卓越的应用程序框架。 1 2 课题研究目标和意义 本课题的研究目标是:通过对m v c 设计模式以及对基于m v c 模式的s t r u t s 框架技术 的深入分析和研究,设计并实现一个遵循s t r u t s 技术标准的企业信息系统,从而达到有效 减轻项目开发的任务量,切实增强系统的实用性、灵活性、可扩展性以及安全性的目的。 针对上述研究目标,本课题将主要解决以下关键技术问题: 结合项目开发实际,设计一系列处理系统用户端请求的方案:包括请求路径的获 得、正确映射关系的选择、数据的有效性验证以及结果的返回等。 设计并实现一种适合企业级w e b 系统的数据库访问方案。 设计并实现一种适合企业级w e b 系统的数据传递方案,在任何画面数据传递的迁 移关系中以及各种错误发生的情况下i 仍能够确保数据传递的正确性。 设计并实现一种能够将用户权限验证的逻辑统一在一起,而不是分散在各个处理 逻辑之中的用户认证及授权方案。 针对不同的处理任务,设计并实现相应的系统日志管理与获取方法。 使用类继承机制解决用户的安全退出问题。 结合项目开发实际,解决s t r u t s 的国际化问题。 本课题的研究意义在于:随着现代企业的不断扩张以及信息化程度的提高,企业不再 满足于单纯依靠电话、传真、电子邮件等方式进行信息的交流与管理,而是希望建立一套 完善的信息系统,通过信息技术实现对企业的集中管理。本课题的研究为实现灵活、可靠、 安全、及扩展性强的企业信息系统提供了一个高效的途径,具有重要的现实意义。 1 3 本文的主要工作及创新 本文主要工作和创新有: 1 对m v c 模式及其关键技术进行了深入研究,对比分析了几种基于m v c 模式的具 体应用框架一s t r u t s 、j a t o 、j s f 及w a f ,并根据实际开发经历总结出在选择m v c 模式进行系统开发时需注意的一些问题。 2 在对s t r u t s 技术进行深入分析研究的基础上,提出了一系列用户端请求的处理方 案:包括数据库的访问设计,用户的认证、授权及安全退出,日志的管理与实现 4 国防科学技术人学研究生院学位论文 等。同时还对画面数据传递过程中可能出现的各种迁移关系,以及可能发生的多 种错误情况进行了详尽的研究,提出了保证数据传递正确有效的解决方案。一方 面减轻了项且开发的任务量;另一方面,切实增强了系统的灵活性、可扩展性, 便于维护升级。 3 基于对中文字符乱码产生原因的分析与综合,设计了一种适用于企业级w e b 系统 开发的s t r u t s 国际化问题解决方案。该方案的提出能够帮助解决w e b 开发中容易 出现的:中文数据从数据库到j s p 文件后变成了“? ? ? ? ”;p r o p e r t i e s 文件中的中 文v a l u e 显示乱码:j s p 文件中的中文到浏览器后显示乱码等问题。 1 4 论文结构 论文结构如下: 第一章绪论 介绍了课题背景,包括s t r u t s 技术的产生、发展,国内外研究现状以及前景,简要介 绍了论文的主要工作及创新。 第二章m v c 模式研究 对m v c 模式进行了简单概述,对比分析了几种基于m v c 的具体应用框架,总结了 在选择m v c 模式进行w 曲应用丌发时需注意的一些问题。 第三章s t r u t s 技术分析与研究 对s t r u t s 技术进行了深入研究,着重分析了如何将m v c 概念映射到s t r u t s 以及s t r u t s 的组件和控制流,并对关系到框架效能的特殊设计点进行了分析,最后对s t r u t s 的优缺点 进行了对比研究。 第四章基于s t r u t s 框架的企业信息系统的设计与实现 在前两章的理论基础上,设计开发了基于s t r u t s 框架的企业信息系统,并结合项目的 丌发提出了一系列用户端请求的处理方案。包括数据库的访问设计,用户的认证、授权 及安全退出,同志的管理与实现等,尤其对画面数据传递过程中可能出现的各种迁移关系, 以及可能发生的多种错误情况进行了详尽的研究,提出了保证数据传递正确有效的解决方 案。 第五章s t r u t s 国际化问题研究与实现 基于对中文字符乱码产生原因的分析与研究,设计了一种适用于企业级w e b 系统开发 的s t r u t s 国际化问题解决方案。 国防科学技术人学研究生院学1 :| 7 :论文 第二章m v c 模式研究 m v c 是x e r o x p a r c 在八十年代为编程语言s m a l l t a l k 一8 0 所发明的一种软件设计模式, 它为开发交互式应用系统提供了一个优秀的模式,至今己被广泛使用。m v c 比较特殊, 它并不属于g o f 所提及的2 3 个设计模式之列,但是却在g o f 的书( 设计模式:可复 用面向对象软件的基础碍i j ) 中作为一个重要的例子被提出来,并给予了很高的评价。一 般来说,g o f 所提及的2 3 个模式是一些中级模式,在下面可以抽象出一些更为一般的低 层模式,在上面也可以通过组合得到一些高级的模式,m v c 就可以看作是一些中级模式 进行组合之后的结果。 本章对m v c 模式的结构、特点以及在j 2 e e 平台中所采用的关键技术进行了简单概述, 对比分析了几种基于m v c 的具体应用框架,总结了在选择m v c 模式进行w e b 应用开发 时需注意的几个问题。 2 1 1m v c 的演化 2 1 初步了解m v c m v c 原本是建立s m a l l t a l k 应用的框架,是许多交互和界面系统的构成基础,例如: m i c r o s o f t 的m f c 基础类就是遵循了m v c 的思想。 框架支持代表应用状态、屏幕表现和控制流的三个类,分别称为m o d e l 、v i e w 和 c o n t r o l l e r 。 图2 1 m v c 三角 对同一数据,系统可能需要有不同的显示视图,例如条形图、饼图、数据表格等等。 如图2 2 所示,每种视图都可能在同一时间显示给不同的用户,而且必须保证在数据或者 模型改变时视图也跟着更新。具体实现为:当模型改变时,用户提交一个请求给控制器, 由控制器来支配模型的改变,因此数据视图也跟着改变,以反映最近的模型改变状态pj 。 s m a l l t a l km v c 方案使用观察者通知模式。在这种模式下,每个视图注册为个模型 数据的观察者,然后模型再发送消息给所有的观察者,以通知它们相关的改变。 6 国防科学技术大学研究生院学位论文 2 1 2m o d e l l 图2 - 2 多种显示视图 m v c 模式是专为交互式系统开发设计的模式,逐渐被开发人员引入到j 2 e e 体系中, 成为j 2 e e 进行交互式应用开发,特别是w e b 应用开发时一个重要的设计模式。 j s p 作为j 2 e e 平台的一个主要组成部分,在w e b 应用程序的开发过程中占有非常重 要的地位。因为j s p 页面可以非常容易地结合业务逻辑( j s p = u s e b e a n ) 、服务端处理过 程( j s p :s c r i p l e t ) 以及h t m l ( ) ,因此可以在j s p 页面中同时实现显示、业务 逻辑和流程控制,从而帮助快速地完成应用开发。很多w c b 应用就是由一组j s p 页面构成 的。这种以j s p 为中心的开发模型称之为模型1 ( m o d e l l ) 。其结构如图2 - 3 所示 -l 一一一一一一一一一一一一、f 一一一一一一一 a p p a 山随m r 卧裂甍1 := “7 图2 - 3m o d e l l 体系结构图 m o d e l l 的基础是j s p 文件。它从h t t p 的请求中提取参数调用相应的业务逻辑,处 理h t t p 会话,最后生成h t t p 文档。一系列这样的j s p 文件形成一个完整的m o d e l l 应 用。 在m o d e l l 模式中,j s p 页面独自响应请求并将处理结果返回给用户。总的看来,该模 型简单,可以很好的满足小型应用的需要,但是它把业务逻辑和表现混在一块,不能满足 大型应用的要求。并且过多使用m o d e l l ,还会导致页面中嵌入大量的s c r i p t 或j a v a 代码, 特别是当需要处理的商业逻辑比较复杂时,情况就变得更加严重。这对于前端界面的丌发 国防科学技术大学研究生院学位论文 人员来说,是十分困难的。m o d e l l 模式的不足归纳为: 应用系统的开发一般是基于过程的,在m o d e l l 中,通常是用一组j s p 页面实现一个业 务流程,如果系统的业务逻辑需要改动,就必须在多个地方进行修改,这样很不利于 应用的扩展和更新。 由于应用不是建立在模块上的因此业务逻辑和表示逻辑混合在j s p 页面中,没有进 行抽象和分离,因此也不利于应用系统业务的重用和改动。 由于存在以上的不足,在丌发大型的w e b 应用中必须采用另外的设计模式,于是出现 了m o d e l 2 。 2 1 3m o d e l 2 j s p 的目的在于使动态页面的创建更加容易,j s p 首先是作为s e r v l e t 的替代引入的, 另外还有m s 的a s p 。s e r v l e t 的强大功能被当作创建服务器页面的工具提供给开发者,但 强大的功能带来巨大的责任,很多开发团队发现,他们的项目经常会被纠缠如麻的页面弄 得几近崩溃。但是,功能的扩充离不开复杂的脚本程序,而脚本程序又难于重用。因此, 随着技术的不断发展,很多开发人员逐渐很识到,可以结合使用j s p 和s e r v l e t 来部署w e b 应用,即:使用s e r v l e t 应付控制流,而使用j s p 专注于繁琐的h t m l 代码编写。于是 出现了j s p 和s e r v l e t 相结合的新模式一m o d e l 2 ( 单独使用+ j s p 是m o d e l l ) 。 m o d e i ( b e a n ) p r o v i d e db va b a c k e n ds e r v i c es u c h a se j bs e r v e r 2 2 1m v c 设计模式 r e s p o n s e 图2 - 4m o d e l 2 体系结构图 2 2 深入了解m 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 o d e l ) 是真正完成任务的代码。业务流程的处理过程对其它层来说是黑箱操作,模型接受视 图请求的数据,并返回最终的处理结果。业务模型的设计可以说是m v c 最主要的核心, 目前流行的e j - b 模型就是一个典型的例子。它从应用技术实现的角度对模型做了进一步的 8 国防科学技术大学研究生院学位论文 划分,以便能够充分利用现有的组件。但是m v c 并没有提供模型的设计方法,而只告诉 丌发者应该组织管理这些模型。用对象编程来做比喻,m v c 定义了一个顶级类,告诉它 的子类只能做什么,但没有限制到底能做什么,这点对编程的开发人员非常重要。 【2 j 视图( v i e w ) 视图就是界面,提供模型的表示。它是应用程序的外观。视图可以访问模型的读方法, 但不能访问写方法,此外,它对控制器无所知,当更改模型时,视图会得到通知。在 m v c 模式下,通常的设计前提是界面任务并不大。当然,视图也具有一定的功能并遵守 可用性约束,但视图( 界面) 不应当处理数据。事实上,界面的每一部分都只能包含采集 数据的足够逻辑并把它传递给设计模式中的其它组成部分以供处理。由于所有最麻烦的工 作代码都保存在了模型上,因此创建新的视图并不令人感到太痛苦,从而产生软件编码错 误的可能性也就随之降低了。 1 3 1 3 控制( c o n t r o l l e r ) 控制的任务是从用户接收请求,将模型与视图进行匹配,共同完成用户的请求。控制 层不做任何数据处理。例如,用户点击一个连接,控制层接受请求后,不处理业务信息, 而只把用户的信息传递给模型,告诉模型做什么,然后选择符合要求的视图返回给用户。 因此,一个模型可能对应多个视图一个视图也可能对应多个模型。 m v c 组件类型的关系和功能如图2 5 所示: 一事件 图2 - 5m v c 组件类型的关系和功能 尽管m v c 设计模式很早就提出,但在w e b 项目的开发中引入m v c 却是步履维艰。【1 2 1 主要原因:第一,在早期的w e b 项目开发中,程序语言和h t m l 的分离一直难以实现。 c g i 程序以字符串输出的形式动态生成h t m l 内容,后来随着脚本语言的出现,前面的方 式被倒了过来,变成将脚本语言书写的程序嵌入在h t m l 内容中。这两种方式有一个共同 的不足之处就是它们都没有将程序语言和h t m l 分离。第二,脚本语言的功能相对较弱, 缺乏支持m v c 设计模式的一些必要的技术基础。直到基于j 2 e e 的j s pm o d e l2 问世后才 得以改观,它用j s p 技术实现视图的功能,用s e r v l e t 技术实现控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询公司战略方案
- 甲乙签订一份试用买卖合同6篇
- 2025版地磅购置与安全认证合同范本
- 华彩战略咨询方案
- 高校党章考试题及答案
- 感官课程考试题及答案
- 施工方案pdf怎么修改
- 法考试题及答案
- 湖北顶板加固施工方案
- 2025民办幼儿园教师聘用合同书范本
- 气瓶检验员考试题库
- AAMA2605-铝窗(板)更高标准有机喷涂的非官方标准、性能要求、测试程序
- 西语国家概况
- 成人学士学位英语1000个高频必考词汇汇总
- GB/T 5271.29-2006信息技术词汇第29部分:人工智能语音识别与合成
- 全屋定制家居橱柜衣柜整装安装服务规范
- 沥青及沥青混合料试验作业指导书
- 义务教育阶段学生艺术素质测评指标体系小学音乐
- 妊娠合并HIV(医学PPT课件)
- Minitab(高级)
- 工学结合的课程开发与教学设计
评论
0/150
提交评论