(计算机应用技术专业论文)基于enhydra平台的报刊营业管理系统的设计和实现.pdf_第1页
(计算机应用技术专业论文)基于enhydra平台的报刊营业管理系统的设计和实现.pdf_第2页
(计算机应用技术专业论文)基于enhydra平台的报刊营业管理系统的设计和实现.pdf_第3页
(计算机应用技术专业论文)基于enhydra平台的报刊营业管理系统的设计和实现.pdf_第4页
(计算机应用技术专业论文)基于enhydra平台的报刊营业管理系统的设计和实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

中南人学硕士学位论文摘要 摘要 在提供了底层服务的应用服务器的基础上,采用分层架构模型来 设计和开发基于w e b 的企业应用系统,已经成为一种成熟的软件开发 解决方案。利用平台提供的服务并采用良好的分层架构设计,可以提 高软件的质量,缩短开发时间,降低开发成本,并使系统具有很好的 可扩展性和可维护性。 本文针对日本某新闻社报刊营业管理系统的设计展开研究,在总 结了国内外有关j 2 e e 技术发展趋势的基础上,提出了基于e n h y d r a 平台的多层增强m v c 架构模型的报刊营业管理系统的设计方案和实施 思路。主要讨论了在e n h y d r a 平台提供的技术和服务的基础上,如何 来构建一个可重用性强,层次分明,易于维护和扩展的w e b 应用系统。 论文通过对目前流行的轻量级j 2 e e 架构进行分析,提出了基于 e n h y d r a 平台的m v c 架构模型;详细介绍了在这种架构模型下系统的 总体设计,着重阐述了怎样根据需求来设计结构良好易于维护和扩展 的报刊营业管理系统;并以广告刊登检查列表模块为实例详细说明了 此系统的具体实现。另外,还对系统性能的优化和系统异常处理机制 等进行了深入地分析和研究。最后对所从事的工作进行了总结,分析 了系统存在的问题和需要继续完善的功能。 关键词e n h y d m j 2 e em v c 模式架构 中南大学硕士学侍论文 a b s t r a c t a b s t r a c t i th a sb e c o m ea g o o ds o f t w a r ed e v e l o p m e n t s o l u t i o nt h a tu s i n gt i e r e d a r c h i t e c t u r em o d e l s t h i ss o l u t i o ni st od e s i g na n dd e v e l o pw e b b a s e d e n t e r p r i s ea p p l i c a t i o n so nt h eb a s i so fa p p l i c a t i o ns e r v e rt h a tp r o v i d i n g b a s i cs e r v i c e s u s e do ft h es e r v i c e sp r o v i d e db yt h ep l a t f o r m , g o o dd e s i g n w i t ht i e r e da r c h i t e c t u r ec a ni m p r o v et h eq u a l i t yo ft h es o f t w a r e ,s h o r t e n t h ed e v e l o p m e n tt i m e ,r e d u c et h ed e v e l o p m e n tc o s t s ,a n de n a b l et h e s y s t e mt oh a v eh i 曲e x t e n s i o n a n d m a i n t a i n a b i l i t y t h i st h e s i sl a u n c h e si nv i e wo ft h ed e s i g no faj a p a n e s en e w s p a p e r b u s i n e s sm a n a g e m e n ts y s t e m o nt h eb a s i so fs u m m a r i z i n ga b o u tb o t h f o r e i g na n dd o m e s t i cj 2 e et e c h n o l o g i c a ld e v e l o p m e n tt r e n d ,w ep u t f o r w a r dd e s i g np l a na n di m p l e m e n tt h i n k i n gb a s e do nm u l t i l a y e r s t r e n g t h e n e da r c h i t e c t u r em o d e l o ne n h y d r a ( p l a t f o r m ) t h i st h e s i sm a i n l y d i s c u s s e sa b o u th o wt ob u i l das y s t e m ,w h i c hi sr e u s a b l e ,l e v e lc l e a r , e a s i l yt om a i n t a i na n de x t e n d ,o nt h eb a s eo ft h et e c h n o l o g ya n ds e r v i c e s u p p o r t e db yt h ee n h y d r a ( p l a t f o r m ) t h r o u g hc a r r i e so nt h ea n a l y s i st ot h ep r e s e n tp o p u l a rl i g h t w e i g h t j 2 e ea r c h i t e c t u r e ,t h et h e s i sp r o p o s e st h em v ca r c h i t e c t u r em o d e lb a s e d o nt h ee n h y d r ap l a t f o r m t h e ni ti n t r o d u c e st h es y s t e md e s i g ni nd e t a i l u n d e rt h i sk i n do fm o d e l ,e l a b o r a t e de m p h a t i c a l l yh o wt od e s i g nt h e n e w s p a p e rb u s i n e s sm a n a g e m e n ts y s t e mw h i c hi se a s i l ym a i n t a i n e da n d e x t e n d e dw i t hf i n es t r u c t u r ea c c o r d i n gt ot h er e q u i r e m e n t , a n ds p e c i f i e s t h ei m p l e m e n t a t i o no ft h i ss y s t e mb yt a k i n gt h ep u b l i s h e da d v e r t i s e m e n t i n s p e c t i o nm o d u l e a se x a m p l e m o r e o v e r , i tc a r r i e so nt h o r o u g h l ya n a l y s i s a n dr e s e a r c ht ot h es y s t e mp e r f o r m a n c eo p t i m i z a t i o na n dt h es y s t e m e x c e p t i o nh a n d l i n gm e c h a n i s ma n ds oo n f i n a l l yt h ep a p e rc a r r i e so na s u m m a r yo ft h ew o r k , a n a l y z e st h ee x i s t e n c eq u e s t i o na n dt h ef u n c t i o n w h i c hi sr e q u i r e dt ob ei m p r o v e do f t h i ss y s t e m k e yw o r d se n h y d r aj 2 e em v cp a r e ma r c h i t e c t u r e 。口l;震r气。 。蠡。f。耘黟惠 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在论文中作了明确的说明。 作者签名:丛遁日期:型年月卫日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文,允许学位论文被查阅和借阅;学校可以公布学位 论文的全部或部分内容,可以采用复印、缩印或其它手段保存学位论 文;学校可根据国家或湖南省有关部门规定送交学位论文。 懒名:避聊签避眺业野卫日 一 中南大学硕士学位论文绪论 第一章绪论 1 1 课题来源 软件外包【l 】是指将一个软件系统全部或部分地交由其他的软件企业进行开 发,以及由开发方对所开发的软件提供相应维护服务的软件开发形式。对于发包 方而言,可以将软件转包给更加专业、开发成本更低的软件企业,有效地降低软 件开发成本和风险,提高利润:对于承包方则是利用自身的人力资源以及专业知 识,根据客户的需求,为客户提供软件开发服务和软件维护服务,通过软件开发 获取相应利润。 由于文化和语言方面的原因,再加上作为承包方的国内软件开发企业在人力 资源成本方面有着相当的优势,我国目前有大部分的软件外包项目都来自日本。 随着我国企业对日外包项目开发的日益成熟,也在长期的分工合作期间也积累了 一些开发经验。本课题正是结合对日软件外包实际项目,这个项目来源于日本某 新闻社的报刊营业管理系统的开发,由于日本发包方只提供系统的功能概要设 计,所以我们需要在分析系统功能需求的基础上,选择一种合适的技术和方案来 设计和实现应用系统。 1 2j 2 e e 架构研究现状 为了快速设计和开发企业级的应用程序,s u n 公司推出了一种全新概念的模 型t 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 e e ) ,它与传统的互联网应用程 序模型相比有着不可比拟的优势。 j 2 e e 平刽1 8 1 提供了一个多层结构的分布式应用程序模型,该模型具有重用组 件的能力,基于扩展标记语言( 儿) 的数据交换、统一的安全模式和灵活的事 务控制;使开发者不仅可以比以前更快地发表对市场的新的解决方案,而且其独 立于平台、基于组件的j 2 e e 解决方案不再受任何提供商的产品和应用程序编程界 面的限制。提供商和买主都可以选择适合于其应用和所需技术的产品和组件。 另一方面,j 2 e e 在一些方面已经开始捉襟见肘。j 2 e e 应用开发的成本通常很 高,j 2 e e 应用项目至少和从前的t ;j 2 e e 项目一样容易失败。而在j 2 e e 遭遇失败的 场景中,e j b 通常都扮演着重要的角色。 从本质上来说,j 2 e e 就是一大堆标准化的企业级服务例如命名和目录服 务( j n d i ) 、为异构的事务性资源提供的标准事务管理接口( j t s 和j t a ) 、连接遗留 系统的标准机制( j c a ) 、资源池、线程管理等一的集合体。j 2 e e 的价值在于提 供这些服务,它对这些服务的标准化对于这个行业非常有益。另一方面,e j b 使 开发者能够通过一个特定的组件模型使用这些有价值的服务,它仅仅是使用这些 中南大学硕士学位论文绪论 服务的手段之一。 j 2 e e 社群不断地向着更简单的解决方案( 轻量级架构) 、更少使用e j b 的方 向发展。即使没有e j b ,也可以借助久经考验的类库和架构优良的框架来使用这 些服务,构建健壮的应用系统,因为这些类库和框架不仅可以让我们摆脱使用 j 2 e e 服务的复杂度,而且也不会招致e j b 所带来的复杂度。 1 3 研究内容与意义 计算机的应用已经从过去单纯的科学计算渗透到社会生活的各个领域。随着 计算机技术的发展和应用范围的不断延伸,作为计算机灵魂的软件系统,其规模 也在不断扩大,维护越来越困难。因此,设计一个功能完善、结构优良,开发效 率高,稳定性和安全性强,扩展方便,维护简单,易于复用,生命周期长,投资 成本低的软件系统,一直是系统管理、设计和开发者所追求的目标之一。遗憾的 是。现实生活中,被抛弃的软件系统随处可见,造成极大的投资浪费。原因之一 是系统开发仓促编码,结构劣拙,功能扩展困难,稍有修改,便错误百出,无法 维护,唯有弃之不用。 软件发展的实践证明,模块化的分层设计模型是提高系统可用性和可维护性 的主要途径。分层模型设计,既将整个软件系统划分为若干个相互独立的层次进 行描述。层与层之间通过事先约定的接口相互通讯,某个层只负责一个或多个功 能,各负其则,不越俎代庖。分层设计把一个复杂的问题分而治之,降低了复杂 性,功能清晰、易于实现、修改和维护。现在,有很多开源框架和应用服务器都 提供了对分层设计模型的天然支持,为开发基于多层架构的应用系统提供了底层 应用程序接口和其他服务。因此,以之为基础的软件系统解决方案,开发效率高, 投资少,维护成本低,复用【2 】能力强,软件升级简单。 本课题将对e n h y d r a 平台的x m l c 技术和基于此平台的m v c 架构模式进行深入 研究,提出基于此平台的多层增强m v c 架构模型,以报刊营业管理系统的需求为 应用重点,分析和设计了基于此模型的系统结构和每个结构层次的解决方案,并 结合一个典型的功能模块给出了在这种架构模型和解决方案下系统的具体实现。 1 4 论文组织 论文分为六章。 第一章绪论。介绍了课题来源和j 2 e e 架构的发展现状,最后给出本文的研 究内容和意义。 第二章基于e n h y d r a 平台的b v c 架构模式研究。首先在分析传统以e j b 为 核心的j 2 e e 架构特点的基础上提出轻量级j 2 e e 架构的概念,然后对采用这种架 ,。厶意。羹乞。【:一 中南人学硕士学衍论文 构搭建w e b 应用的e n h y d r a 平台进行了介绍,并通过具体实例分析介绍了e n h y d r a 核心表示技术x m l c 。最后通过分析m v c 架构模式,提出了在e n h y d r a 平台通过多 层增强m v c 架构模型来构建系统的方案。 第三章基于j 2 e e 平台的报刊营业管理系统系统的总体设计。通过分析系统 需求和目标,给出了系统的功能模块设计,并分析了系统的网络结构。在这些基 础上,并基于e n h y d r a 平台的多层增强m ,c 模型,提出系统结构设计方案,对各 个层次进行了详细分析和设计,给出了系统的结构模型。最后分析了系统的总业 务流程,结合数据库设计原则给出了数据库设计方案。 第四章系统的详细设计与具体实现。选取有一定代表性的功能模块,按照 w e b 层,业务服务层、数据访问层的顺序对系统的实现进行了分析,并给出了详 细的解决方案来实现应用系统。 第五章系统性能优化及异常处理机制研究。研究了系统是怎样通过连接池 机制来提高和优化系统数据访问性能的;并设计和实现了系统自己的异常处理机 制来分析和处理程序中出现的异常。 第六章回顾和展望。总结所完成的工作,并提出了进一步研究方向。 中南人学硕士学位论文基丁e n h y d r a 平台的m v c 架构模式研究 第二章基于e n h y d r a 平台的m v c 架构模式研究 2 1e n h y d r a 及其核心技术x m l c 2 1 1 轻量级j 2 e e 架构 j 2 e e 平台由一整套服务( s e r v i c e s ) 、应用程序接口( a p i s ) 和协议构成, 它对开发基于w e b 的多层应用提供了功能支持。通常认为,j 2 e e 是一种分布式平 台,s e s s i o nb e a n 和e n t i t yb e a n 在该平台中占有中心地位。在这个架构构成 的一个典型的应用系统中,j a v a 类通常分散在不同的j v m ( j a v a 虚拟机) 中,虽然 很多应用系统可以把这些类并置在一起来消除远程调用的沉重负载。 在这种经典的j 2 e e 架构中,w e b 层一般由一个m v c 架构实现。设计得比较精 心的应用系统,一般会有专门的一个客户端代理层,通过它调用远程e j b ,这样 就能够很好地解除w e b 层和e j b 之间的耦合。所有的业务组件都是带远程接口的 无状态s e s s i o nb e a n ,运行在e j b 容器中。e j b 容器提供远程调用机制、事务管 理、线程管理,可能还有基于角色的安全服务。所有的数据访问都要通过e n t i t y b e a n 。现在人们都公认,如果使用e n t i t yb e a n 的话,带本地接口的c m p ( 容器管 理持久性) e n t i t yb e a n 是最好的选择,因为带远程接口的e n t i t yb e a n 在性能 上还有很大风险。e i s 层由一个或多个数据库再加上遗留系统组成。( 最常见的情 况还是只使用一个带事务的资源。) 如果存在多个带事务的资源的话,通过e j b 容器访问的j t a 服务会负责协调分布式事务。 这个架构有以下优势: 1 、远程e j b 提供了一个严格定义的服务层; 2 、e j b 中包含的各种服务( 比如声明式的事务管理、线程管理等) 能够对应 用程序开发者保持透明; 3 、提供一个共享的中间层,就能够支持各种类型的j 2 e e 客户端。如果需要 支持基于j a v a 的其他客户端( 比如s w i n gg u i ) ,那么这种架构就具有很 好的可移植性; 4 、本架构能够把业务组件分布在多台服务器上,在一些罕见的情况下,这 个能力能够带来很好的扩展性; 5 、如果应用系统不做并置部署的话,可以独立于w e b 层更新业务逻辑。 但是,本架构有以下弱点: i 、这种架构运行负担很重,有一些负载来自e j b 的共通问题,不过很多还 是与分布式架构的特性有关; 2 、软件许可费用高,不容易管理; 辜蠢 女k童#玉, 缨 笏 蟹 中南人学硕十学付论艾 基 :e n h y d r a 平台的m v c 架拗模式研究 3 、为了分白化,它牺牲了o o ( 面向对象) 原则; 4 、因为业务逻辑通常编写在e j b 的实现类中,而这些类完全依赖于e j b 容 器,所以难以测试e j b 组件。 “轻量级”j 2 e e 架构是指不使用e j b 的j 2 e e 架构,这种架构在w e b 应用中 取得了很大的成功。该结构通常由w e b 容器定义,规范性不强,因而系统结构需 要设计者自己设计。 “轻量级”j 2 e e 架构有以下特点: l 、所有j a v a 对象都运行在同一个j 中; 2 、w e b 层通常也由m v c 框架实现; 3 、业务组件都是p o j o ( 无格式普通j a v a 对象) ,运行在w e b 容器中; 4 、用不着通过w e b 层的代理访问p o j o 业务组件; 5 、w e b 组件可以直接与业务接口交互; 6 、不使用e n t i t yb e a n ,用o r 映射方案,或是用j d b c 访问数据; 7 、e i s 层与传统的架构一致; 8 、w e b 组件通常使用s i n g l e t o n 模式或者某种特制工厂定位本地业务组件; 9 、需要编程实现事务管理; 如果把整个w e b 应用系统部署在多台服务器上,这种结构也可以实现系统集 群;本架构如图2 - 1 所示。 s e r v l e t s w e b1 3 口c l a s s e s u it i e r ( m v cf m l e w o r k ) j 2 e es e m r b u s i n e s s i n t e r f a c e m i d d l et i e ri w e bc o n t a i n e r p o j o ( s i n g l ej v m ) 1 孟;。m 娟二 图2 - 1 三层轻量级架构的系统结构图 本架构的优点如下: 1 、架构简单,但是功能强大。 2 、能够在s e r v l e t 引擎中运行; 中南大学硕十学伊论文基于e n h y d r a 平台的m v c 架构模式研究 3 、软件许可费用低,容易管理,而且负载比较小; 4 、容易在不同的应用服务器或s e r v l e t 引擎之间移植。 5 、实现更为简单。比如,访问p o j o 业务组件通常比访问e j b 简单得多:不 需要j n d i 寻址。不需要那么多累赘的部署描述符;更加容易测试;代码部署周 期短。比如,我们就不需要e j b 的j a r 部署单元了,只需要打好w a r 包就够了。 2 1 ,2e n h y d r a 平台 ( 1 ) e n h y d r a 的定义和基本组成 e n h y d r a 是一个基于“轻量级”j 2 e e 架构上可运行多个w e b 应用程序的应用 服务器,它还包括一套应用程序开发工具。应用程序服务器【4 8 1 通常是运行于w e b 服务器和数据服务器之间的,它提供了业务代码的存放和运行的环境。而w e b 服 务器负责将应用服务器动态产生的内容发送到客户端的浏览器。 e n h y d r a 由三部分组成: 1 、多服务器:通过与别的w e b 服务器( 如t o m c a t ) 协作来运行e n h y d r a 应 用程序。 2 、e n h y d r a 工具:用来开发e n h y d r a 的应用程序,如捌l ct o o l s 等。 3 、应用程序框架:收集j a v a 类,满足e n h y d r a 应用程序底层的运行时的 需要。 所谓e n h y d r a 应用程序框架( e n h y d r aa p p l i c a t i o nf r a m e w o r k ) 是指e n h y d r a 提供的一系列j a v a 类,这些类提供了e n h y d r a 应用程序运行时需要的支持环境。 也就是说,e n h y d r a 应用程序可以而且应当通过这些预先设计的j a v a 类来减轻编 程工作量和增加应用程序的稳定性,因为这个应用程序框架已经实现了很多功 能。 ( 2 ) e n h y d r a 应用程序 一个e n h y d r a 应用程序是使用e n h y d r a 应用程序框架运行于多服务器的 j a v a 程序。e n h y d r a 开发环境不但支持基于3 层模式的w e b 应用程序开发,而且 是作为强烈建议提出的。e n h y d r a 的核心技术中,】( l l c 即为p r e s e n t a t i o nl o g i c 的核心。而e n h y d r a 核心中的应用程序管理器,则把p r e s e n t a t i o nm a n a g e r , s e s s i o nm a n a g e r ,d a t a b a s em a n a g e r 有机的结合起来,构成了e n h y d r a 的应用 程序的运行环境。 图2 2 就是e n h y d r a 应用程序的3 层体系结构。 廖 。_ : ? _ $ * 一。,:盆 :。j , k _ i 绷 当 中南大学硕士学何论文 基于e n h y d r a 平台的m v c 架构模式研究 图2 - 2e n h y d r a 应用程序体系结构图 由图可以看出,用户通过浏览器访问e n h y d r a 应用程序,而e n h y d r a 应用服 务器不但为e n h y d r a 应用程序提供了运行的平台( e n h y d r aw e b s e r v e r 和 e n h y d r am u l t i s e r v e r ) 及e n h y d r a 应用程序开发工具( 如) ( m l ct o o l s 等) ,还 负责提供e n h y d r a 应用程序框架,使得用户的应用程序可以在这些预先设计的 j a v a 类的基础上来设计开发自己的应用,从而减轻了工作量并增加了应用程序的 稳定性。 2 1 3x m l c 技术 x m l c ( e x t e n s i b l em a r k u pl a n g u a g ec o m p i l e r ) 技术是基于e n h y d r a 的一 种核心的表示层技术。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 ) ,w o r l dw i d ew e b c o n s o r t i u m ( w 3 c ) 的定义是在w e b 上构造文件和数据的通用格式。x m l c ,顾名思 义就是把标记语言页面,比如h t m l ,x m l ,w m l 等等编译生成一个相应的j a v a 类, 它是可扩展标记语言( ) ( m l ) 文件的镜像。这个j a v a 类包含了页面的完整的d o m ( d o c u m e n to b j e c tm o d e l ) 树结构及其操作方法,d o m 是w 3 c 的标准接口,能升 级x m l 文件的内容和结构,因而可以处理页面上的任何元素及其属性。更重要的 是,在】( m l c 中,巧妙地把动态内容和h t m l 中的i d 元素联系起来并在j a v a 类中 生成相应的操作方法,比如改变文本的内容和元素的属性等等。不同于j s p ,】【m l c 没有引进任何额外的h t m l ) ( m l 标记元素,只是重用了i d 元素。因而,x m l c 实际 上可以处理任何的标记语言,不仅仅限于】( m l ,h t m l 等。 中南大学硕士学位论文 基于e n h y d m 平台的m v c 架构模式研究 ( 1 ) x m l c 技术开发实例 下面通过实例来说明x m l c 技术的应用: 例如假定有一个叫做s a m p l e h t m l 的文件,其中有段代码如下: s t e x t a t e x t b a 刮o p t i o n b d o p t i o n 叫s e l e c t 这个h t m l 代码片断有一个( t a b l e ) 标记,其中它包含了 标记, 中又 有 标记, 贝t j 有文本( 或者其他数据) 。这就定义了一个树状的层次结构。 d o m 树的结构如图2 3 所示。 图2 - 3s a m p l e h t m l 的d o m 树 利用x m l c 工具自动将s a m p l e h t m l 生成与之对应的j a v a 类文件为 s a m p l e h t m l j a v a 。注意这个j a v a 类的代码是由x m l c 自动编译并生成的,对于 控制页面逻辑的程序员来说,是不用了解它的封装细节而只需要使用它提供给外 绷 缴 中南人宁硕七学位论文 基y - e n h y d m 平台的m v c 架构模式研究 界使用的公共方法的。x m l c 产生诸于g e t e l e m e n t x x x ( ) 的公共方法并且返回一 个对象( x x x 为i d 属性的名称,用束标志需要动态编程的d o m 树中的节点) 。通过 这个返回对象就可以利用w 3 c 定义的关于d o m 的包和接口来设置或改变h t m l 元 素的各种属性。另外,捌l c 产生的s e t t e x t x x x ( ) 方法用来改变i d 为x x x 的元素 的文本。 在s a m p l e h t m l 类的构造函数中,编译系统自动生成的代码会构建由与之对 应的s a m p l e h t m l 页面元素组成的d o m 树,e n h y d r a 关于y d & c 的a p i 里面的类 有方法负责实现了遍历d o m 树并返回其所需要节点。 每个方框和椭圆都是这个树中的一个节点( n o d e ) 。在这种层次结构中一个节 点上面的节点叫做父节点( p a r e n t ) 。父节点下面的节点叫做孩子节点 ( c h i l d r e n ) 。每个节点可以有自己的属性,就像h t m l 标记一样( 例如,一个表格 就可以有背景颜色这个属性) 。w 3 c 定义了一些包和接口来反映h t m l 文档中的节 点对象的层次。而且,) ( m l c 包含了改变属性值的a p i 。 例如可以利用一个与s a m p l e h t m l 对应的名为s a m p l e j a v a 的s e r v l e t 程序 在d o p o s t ( ) 方法里面写下控制页面显示的逻辑代码来改变一个表格的背景颜色 以及文本内容并且选中下拉框的第一个选项: s a m p l e h t m lt h e d o c u m e n t = n e ws a m p l e h t m l o ; h t m i i b b l e c e l l e l e m e n t c e l l o n e = t h e d o e u m e n t g e t e l e m e n t c e l l o n e 0 ; e e l l o n e s e t b g c o l o r ( ”r e d ”1 : t h e d o c u m e n t s e t t e x t c e l l o n e ( ”n e w t e x t a ”) : t h e d o c u m e n t s e t t e x t c e l l t w o ( ”n e w t e x t b ”) : h t m l s e l e e t e l e m e mc m b t e s t = t h e d o c u m e n t g e t e l e m e n t c m b t e s t 0 ; c m b t e s t s e t s e l e e t e d l n d e x ( 0 ) ; 从这个例子中可以看出,h t m l t a b l e e l e m e n t ,h t m l s e l e c t e l e m e n t 类和 s e t b g c o l o r 0 、s e t s e l e c t e d i n d e x ( ) 方法均来自于w 3 c 的包: g e t e l e m e n t c e l l o n e ( ) ,g e t e l e m e n t c m b t e s t 0 ,s e t t e x t c e l l o n e 0 ,s e t t e x t c e l l t w o ( ) 和方法来自x m l c 编译产生的s a m p l e h t m l 类。 这段代码说明这样一件重要事情,) ( m l c 确实创建方法来访问d o m 中的节点 x m l c 产生g e t e l e m e n t x x x0 方法并且返回一个对象,这个对象同带i d 属性的标 记交互。 然后,t h e d o c u m e n t 类作为参数返回并由r e s p o n s e 对象转化输出的代码如下: b y t e l b y t e s = n e wd o m f o r m a t t e r ( o p t i o n s ) t 0 b y t e s ( t l l e d o c u m e m ) ; 聘s p o n 辩s e t c o n m n t l e n 垂h ( b y t e s 1 e n g t h ) ; s e r v l e t o u t p u t s t r e a mo u t = r e s p o n s e g e t o u t p u t s t r e a m 0 ; o u t w r i t e ( b y l e s ) ; 中南人学硕十学付论文 基t e n h y d r a 平台的m v c 架构设式研究 其中d o m f o r m a t t e r 为x m l c 的a p i 中实现转化d o m 树的类。这样,重新发送 到客户端浏览器的静态h t m l 代码为: n e w l b x t a 啕修 n e w t e x t b n t e x t c t e x t d a b 刮s e l e c t q 修 可以看出,表示层通过x m l c 完全实现了h t m l 模版和动态控制逻辑分离,使 得开发和维护更加方便,代码结构更加清晰,这种方法也极大的简化j a v a 开发 人员处理页面动态内容的工作量。 需要指出的是,通过使用w 3 c 提供的关于d o m 树的包和接口以及e n h y d r a 关于d o m 的a p i 可以实现更复杂的属性的设置并且可以根据需要动态地改变d o m 树的结构,增删页面的h t m l 元素,比如用j a v a s c r i p t 代码来控制b u t t o n 的c l i c k ( ) 事件的逻辑等等,从而使得灵活地随心所欲地控制页面表示成为可能。 ( 2 ) x m l c 技术在表示技术中的优势: 众所周知,目前比较流行的动态网页技术有a s p ,p h p ,j s p 等,x m l c 技术在表 示层技术方面的简洁和强悼,使得它在表示技术中的领先地位表现在 3 - 6 1 : 1 、界面设计人员和后台程序开发人员可以很好地分工协作。 2 、) ( m l c 没有引入任何额外的标记元素,可以使用任何你熟悉的h t m l 编辑 软件来编辑页面。 3 、e n h y d r ax l d l c 把页面( h t m l ,x m l ,w m l 等) 转换有对等的j a v a 类( d o m 树) , 就意味着可以从面向对象的角度来操纵整个页面。 中南犬学硕十学伊论文 荩 = e n h y d r a 平台的m v c 架构模式研究 袁2 - 1 各项性能的比较 瑚l c j s p a s p ,n e tp h p 代码町虞件好小好好 不好 运行速度快快较快 较快 运行平台绝丈部分平台绝大部分平台w i n d o w s 平台w i n d o w s u n i x 扩展性好好较好较差 产商支持较多多较少较多 对组件的支持支持支持支持不支持 对分布式处理的支支持支持支持不支持 持 2 2 基于e n h y d r a 的m v c 架构模式 2 2 1m v c 架构模式 l 、c 由t r y g v er e e n s k a u g 提出,首先被应用在s m a l l t a l k - 8 0 环境中构建用 户界面。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 设计模式的目的是增加代码的重用率,减少数据表达、数据描述和应用操作的耦 合度,同时也使软件可维护性、可修复性、可扩展性、灵活性及封装性大大提高。 模型是软件处理逻辑的内在抽象,封装了业务功能的数据和逻辑关系,独立于具 体的界面表达和i 0 操作。视图是人机对话的界面,负责数据的输入与输出。 一方面,为用户提供输入界面;另一方面,从模型获取所要显示的数据,再对这 些数据进行格式化加工,最后显示到终端。控制器是模型和视图的桥梁,用户请 求被提交后,先传给控制器,控制器根据请求的类别来选择调用模型,模型完成 请求的任务后,将加工后的信息传给控制器,再由控制器来决定选择视图,最后 将视图信息输出给用户。三者之间的关系如图2 - 4 所示。 1 调用初蛤化视图 3 加工处理 视 控 2 提交信息 模 制 图 4 返回状杏信息 型 5 输出处理结果 器 图2 - 4m v c 模式图 在这种模式下开发w e b 应用系统,模型、视图与控制器分离开来,使一个模 型可以被多个视图调用,提高了模型的利用率,优势表现在: l 、m v c 架构模式可以使系统方便地支持其他新的客户端类型,除了运行在桌 面型的浏览器外,还可以运行在p d a 、带p d a 功能的手机、w a p 浏览器上。 2 、由于m ,c 架构模式分离了数据的控制与显示,从而可以使开发者更容易 协作开发,后台开发人员可以专注业务逻辑的编程,前台开发人员专注于用户交 互的界面,从而缩短产品的开发周期。 一 绷 绷蚴嬲缢_ 中南人学硕士学位论文 基t - e n h y d r a 平台的m v c 架构梭式研究 2 2 2 基于e n h y d r a 平台的多层增强m v c 架构模型 ( 1 ) w e b 应用程序与e n h y d r a 平台 e n h y d r a 平台不但提供了像) ( h i l c 这样的核心技术,还提供了一系列对各部分 组件的基本管理和支持,这些帮助包括提供了丰富的应用程序接口、s e r v l e t 容 器管理、表现层管理、s e s s i o n 管理、数据库访问管理等等,使程序员可以专心 于业务逻辑的实现,不必和底层的a p i 打交道,从一些繁琐的底层服务实现中解 脱出来。基于e n h y d r a 的w e b 应用程序以图2 - 5 的方式来调用平台提供的a p i 和 服务。 陆h ,打aa p p l i c a t i o n 乎 兰 毛 h 图2 - 5e n h y d r a 应用程序调用e n h y d r a 平台服务 在e n h y d r a 应用程序中,e n h y d r a 表现管理器处理表现对象的载入和执行; e n h y d r as e s s i o n 管理器能够通过s e s s i o n 来维持一个应用程序的状态。每一 个应用程序拥有e o i i ll u t r i s a p p s e r v e r s e r v e r s e s s i o n s t a n d a r d s e s s i o n m a n a g e r 类实例的s e s s i o n 管理器。当它被创建时,s e s s i o n 管理器会从配置文件 a p p n a m e c o n f 中读取到s e s s i o n 的相关信息来维护一段时间内同一用户的状 态;e n h y d r a 数据库管理器d a t a b a s e m a n a g e r 控制着应用程序数据库连接的一个 层。每一个应用程序拥有c o m 1 u t r i s a p p s e r v e r s e r v e r s q l s t a n d a r d a t a b a s e m a n a g e r 类实例的数据库管理器。当它被创建时,数据库管理器从配置文件中读 取到所使用到的逻辑数据库配置参数,如目前的数据库的类型以及其它相关信 息,并负责管理连接资源的分配和释放。 ( 2 ) 基于e n h y d r a 平台的多层增强架构模型: m v c 架构模式将问题域分为三大部分”,每个部分负责完成不同的功能。 基于j 2 e e 的系统圈一般由s e r v l e t 当任控制器的角色;而视图表示采用e n h y d r a 的x m l c 技术可以清晰分离视图展现和逻辑控制代码;由于在一般的企业应用系 统中,提供业务服务和处理数据是系统的工作核心,所以有必要将负责处理业务 毫;墨 , :轴 女: “; b t 囊 中南大学硕士学伸论文 基于e n h y d r a 平台的m v c 架构模式研究 逻辑的模型( m o d e l ) 继续细分为不同的层次,来保持良好的松耦合,进一步加强 系统的可扩展性、可维护性和可重用性,以适应更加复杂的业务需求。 s e r v l e t 4 6 作为整个系统架构的交通枢纽,起着调度的作用,称之为控制引 擎。s e r v l e t 是运行在请求响应模式的服务器上的j a v a 组件,是具有平台无关 性的、没有图形用户界面的j a v a 程序,可以在许多方面扩充w e b 服务的功能。 它能够访问j a v a 全部的高级特性。这些特性使用h t t p 作为接口,在任意的浏览 器环境下运行都是一样的。s e r v l e t 运行于由s e r v l e t 引擎所管理的j v m ( j a v a v i r t u a lm a c h i n e ,j a v a 虚拟机) 中。可以使用j a v a s e r v l e t 技术编写h t t ps e r v l e t 类,用来扩展服务器的功能,响应客户的请求。s e r v l e t 在每次被调用的时候由 w e b 服务器进程创建一个新的s e r v l e t 线程,相同的请求由同一个线程处理,有 效节约了服务器端 3 0 l 的系统资源。 基于e n h y d r a 平台的架构模型原理图如图2 6 所示。 图2 - 6 基于e n h y d r a 平台多层增强g v c 架

温馨提示

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

评论

0/150

提交评论