(机械制造及其自动化专业论文)基于j2ee的企业内部bbs系统的设计与实现.pdf_第1页
(机械制造及其自动化专业论文)基于j2ee的企业内部bbs系统的设计与实现.pdf_第2页
(机械制造及其自动化专业论文)基于j2ee的企业内部bbs系统的设计与实现.pdf_第3页
(机械制造及其自动化专业论文)基于j2ee的企业内部bbs系统的设计与实现.pdf_第4页
(机械制造及其自动化专业论文)基于j2ee的企业内部bbs系统的设计与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(机械制造及其自动化专业论文)基于j2ee的企业内部bbs系统的设计与实现.pdf.pdf 免费下载

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

文档简介

基于j 2 e e 的企业内部b b s 系统的的设计与实现 摘要 本文借鉴基于j 2 e e 架构的思想模式,建立了以这种模式为基础 的w e b 应用体系。对基于j 2 e e 的b b s 交流平台进行研究并予以实现。 在这个架构中,采用s t r u t s 框架技术来解决视图层、业务层、控制 层的分离,采用j d b c 来提供面向对象的灵活的数据持久层实现,从 而得到一个开发灵活、低耦合及易于维护的w e b 应用系统解决方案。 针对各企业内部存在的“信息孤岛和协同设计的问题,为企业的内 部交流和协同设计提供了一个平台。为统一数据服务管理手段,规范 业务管理信息,提供多种数据业务的综合管理能力。 本系统是基于j 2 e e 标准,采用s t r u t s 架构并在e c l i p s e + m y e c l i p s e 平台下实现的。j 2 e e 平台是s u n 公司提出的一个获得广泛 认可的、面向对象的大型应用开发平台,具有强大的分布式处理和事 务处理功能。s t r u t s 拥有灵活的视图层和控制层,实现了表示层、 逻辑层和数据库访问层等多层面分离,因而可以大大提高业务层的重 用性和扩展性。在这个架构下开发系统可以有效的降低开发复杂性, 提高开发效率,并且开发出的系统也具有跨平台运行,高可靠性、高 安全性、可扩展和易维护等特点。 关键词j 2 e es t r u t sb b s 平台j d b c d e s i g e na n di m p l e m e n to fb b ss y s 髓m b a s e do nj 2 e e a b s t r a c t t h i s p a p e r e s t a b l i s h e saw e b a p p l i c a t i o ns y s t e m b a s h e do n d i s t r i b u t i n gs y s t e ms t r u c t u r eo fj 2 e e ,r e s e a r c h e sa n di m p l e m e n t st h e b b sp l a t f o r mb a s h e do nj 2 e e t h es y s t e mr e s o l v e dt h ep r o b l e m so f i s o l a t e di n f o r m a t i o na n de s t a b l i s h e da p l a t f o r m f o ri n f o r m a t i o n i n t e r c o m m u n i c a t i o n t h i ss y s t e mi sb a s h e do ns t a n d a r do fj 2 e e ,a d o p t sf r a m e w o r ko f s t r u t sa n d p l a t f o r m o f e c l i p s e + m y e c l i p s e j 2 e e i sa n a c q u i r e d e x t e n s i v e l y a n do b j e c to r i e n t e dp l a t f o r m p u tf o r w a r db yt h es u n c o r p o r a t i o n ,h a st h ef u n c t i o no fd i s t r i b u t i n gm a n a g e m e n ta n db u s i n e s s m a n a g e m e n t t h ef r a m e w o r ko fs t r u t sp o s s e s s e sf l e x i b l ev i e wa n d c o n t r o l l e ro fs t r u t s ,s oi tc a ni n c r e a s et h ep o t e n t i a lf o rb u s i n e s sl a y e r r e u s ea n di t se x t e n s i o ng r e a t l y d e v e l o pt h es y s t e mu n d e rt h i ss t r u c t u r e c a nl o w e rt h e d e v e l o p m e n tc o m p l e x i t ye f f e c t i v e l y , e x a l t a t i o n d e v e l o p m e n te f f i c i e n c y , a n dt h es y s t e ma l s oh a v et h ec h a r a c t e r i s t i c so f c r o s s p l a t f o r mm o v e m e n t ,h i g ha n dd e p e n d a b l e ,h i g hs a f e t y , c a ne x p a n d a n de a s ym a i n t e n a n c ee t c k e yw o r d sj 2 e es t r u t sb b sp l a t f o r mj d b c 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所 知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰 写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢 意。 申请学位论文与资料若有不实之处, 本人签名:j 赵乒全漳l 本人承担一切相关责任。 r # a - 2 理昆:垒:z 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校 攻读学位期间论文工作的知识产权单位属北京邮电人学。学校有权保留并向国家有关部门 或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的 全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。( 保密的 学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:童! - 尘芒递。日期:2 丝星:生:羔 导师签名:垄心日期: 丝茎! 幺三 北京邮电大学硕士学位论文 1 1 研究背景 第一章绪论 随着计算机技术的发展和互联网时代的到来,人们已经切实的进入了信息时 代,也有人称为数字化时代,在这个数字化时代里,各行各业都受到了极大的挑 战。机械设计制造企业面临的竞争压力也越来越大,个性化、多元化的消费需求 使得市场快速多变、不可捉摸。以前,一流产品的优势平均可以保持几年,而现 在普遍的情况是只能维持几个月甚至几周。由于业务本身的发展速度比以前快得 多,企业必须通过重新定义它们的产品开发流程,才可能持久地,快速地生产出 更优秀的产品,并保持其竞争优势。 另外,随着i n t e m e t 的普及和全球化程度的提高,企业之间的竞争己经成为 产品整个价值链的竞争。任何一个企业都不可能在所有业务上成为最杰出者,必 须联合行业中其他上下游企业,建立一条经济利益相连、业务关系紧密的行业供 应链,实现优势互补,共同增强市场实力。 纵观国内外优秀企业产品开发工作,已由个体化、串行流程的产品研发模式, 转向上下游多方协同,兼顾设计、工艺、制造、客户、供应商、合作伙伴等并行 的产品设计。信息交流在产品开发中越来越重要,“协同”己经成为当代产品研 发策略的根本方向。 在这个数字化时代里,面对信息时代愈演愈烈的竞争,企业的工作效率的提 升,对企业至关重要。以往的企业管理模式比较单一,往往都是纵向的垂直结构 和横向的平行结构,形成了一系列的“信息孤岛 和缺少自下而上的信息反馈, 信息的传达和扩散比较缓慢。现代企业管理制度迫切需要改变这种单一的管理模 式,从单一的横向和纵向结构转向每个节点互通互联的网状结构。 “协同”的思路为我们开创一个新的解决之道,在这样一个内部的协同式公共 交流平台上,员工不仅可以不限时间不限地点的进行虚拟协同设计和技术交流, 还可以在交流平台上把一些企业内部的消息和公告进行发布,比如各项工作的进 展状况、下一个阶段的工作安排、员工的工作状况等,实现资源配置的最优化。 1 2 课题研究的现状 1 ) 机械行业的协同式虚拟设计状况 c a d 技术随着计算机网络的兴起早就丌始了协同设计的尝试。但基于各方 1 北京邮电大学硕士学位论文 面的限制,协同设计多数还只是在局域网内展开,采用客户端服务器( c s ) 模式 来实现设计人员之间的协同。在平面二维图纸设计,三维设计上都有过尝试。有 些研究也取得了很大的成功并且用于实际。它实现了设计人员之问通过网络实现 异地协同设计的梦想,并且有效地发挥了团队的作用。同时,在c a d 系统开发 时,c s 模式的采用实现了客户端与服务器端的分离,让设计人员将复杂问题细 分到两个部分,一部分是在客户端实现界面的友好,功能实现的方便;另一部分 是在服务器上实现数据的处理与保存。在服务器与客户端的通信上一般采用专门 的线路和协议,比较安全和可靠。 当然,这种c s 模式的缺点也是明显的。它对软件硬件的要求比较高,开发 成本高。技术实现上多采用多种独立的通信传输协议,比较复杂,开发人员负担 重。在企业之间的互连,与广域网的连接上增加了额外的难度。协同设计平台的 各个功能模块之间的关系繁复,给软件设计本身增加了难度。而要增加新的功能 时,工作量很大。 2 ) 其它行业的协同式产品开发状况 当前在电子商务,电子政务的应用上,有采用a s p 、j s p 等技术实现协同式 产品开发支持平台的。而且随着计算机集成制造( c i m s ) 技术的兴起,机械生产 制造企业f 试图将c a d 、c a m 、e r p 等系统有机集成,他们对信息的集成可以 部分达到协同设计的目的。 当然,游戏行业的发展可以说在网络三维方面遥遥领先,并且不断推动三维 设计技术的发展。最开始是二维游戏,到今年,已经有相当多的公司己经开发出 了完全三维的游戏。当然,游戏纯粹是娱乐性质的一般都是按照预定的情节展开 故事,与游戏中环境的交互一般也只控制已有三维人物的动作而已,这和我们的 虚拟设计要求的交互式虚拟环境有相当大的区别。如果设计平台只追求使人物与 环境完全的逼真,那还不如就在现实中去设计思考算了。虚拟设计讲究的是逼近 现实又高于现实的一种方便产品设计的交互式平台,这个宗旨可以说比游戏更高 级。难度也不是进行纯粹的游戏设计可以考虑到的。 1 3 课题研究的主要内容 本文的研究工作主要针对如何建立协同式的设计和交流平台的问题,进行系 统方案设计和与技术攻关。 论文章节安排如下: 第一章阐述了本课题研究的背景及现状,分析了目前国内各企业采用协同 式设计和交流平台的必要性,并针对提出了解决方案。介绍了本论文的主要研究 内容。 第二章分析研究j 2 e e 标准及其具有的优势,分析了该平台所采用的j 2 e e 主流技术。 2 北京邮电大学硕十学位论文 第三章对s t r u t s 实现的m v c 模式技术进行探讨。 第四章结合s t r u t s 技术和j 2 e e 标准阐述了协同式交流平台系统技术路线, 包括整体技术框架和各层的具体实现。 第五章协同设计平台的设计。 第六章对m d 5 加密算法进行技术探讨。 第七章总结。阐述论文的主要研究工作以及论文的创新点和不足。 3 北京邮电人学硕上学位论文 2 1j 2 e e 概述 第二章j 2 e e 标准 j 2 e e 是j a v a2p l a t f o r me n t e r p r i s ee d i t i o n 的缩写,是一种利用j a v a2 7 台来简 化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。2 0 0 0 年初,s u n 公司发布了j a v a2p 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 ) 规范,提供了一种在企业级规 模下的统一程序设计模式基于w e b 的企业应用设计模式。j 2 e e 技术的基础就 是核, l , j a v a 平台或j a v a2 平台的标准版,j 2 e e 体系结构提供中间层集成框架来满 足企业应用开发的需求。 传统的w e b 应用开发是将页面显示、业务逻辑和数据处理大部分都集中在页 面代码中,导致了业务逻辑、数据处理和页面显示的耦合性很强,w e b 应用扩展 与维护都比较困难,同时也不利于开发人员分工协作。传统的w e b 应用开发在开 发大型的企业级w e b 应用中愈加显得力不从心。近年来,随着网络技术的迅速发 展和j 2 e e 平台的广泛应用,基于b s 的多层w e b 体系结构逐渐发展成熟起来,多 层w 曲应用的开发己成为主流。多层的w e b 应用设计技术和开发工具,能够将页 面显示、业务逻辑和数据处理相分离,最大限度地降低系统各模块之问的耦合性, 从而增强系统的可扩展性与可维护性,提高代码重用率,使系统的层次结构更加 清晰,易于开发人员的分工协作,充分发挥开发人员的各自特长l 2 。 j 2 e e 的设计目的是为了推动企业应用的开发和部署。它通过提供企业计算 环境所必需的各种服务,使得部署在j 2 e e 平台上的多层应用可以实现高可用性、 安全性、可扩展性和可靠性。j 2 e e 技术巩固了标准版中“编写一次、随处运行” 的优点,使得基于j 2 e e 标准开发的应用可跨平台移植,且由于j a v a 语言的安全、 严格等特性,使开发者可以编写出十分可靠的代码。j 2 e e 提供了在企业计算中 需要的所有服务,且简单易用:j 2 e e 中的多数标准定义了接口,如j n d i ,j d b c , j a v am a i l 等,可与许多厂商的产品配合,容易得到广泛的支持。从整体上讲,j 2 e e 是使用j a v a 技术丌发企业级应用的事实上的工业标准。 。 2 2j 2 e e 的优势 j 2 e e 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用 性、高可靠性及可扩展性的应用的要求【3 1 。通过提供统一的开发平台,j 2 e e 降低 了开发多层企业级应用的费用和复杂度,同时支持e j b 与现有系统集成,有良好 4 北京邮电大学硕上学位论文 的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了安全性能。 j 2 e e 平台提供的多层分布式应用模型、组件重用、一致化的安全模型以及灵活 的事务控制,加快了企业应用的设计与开发。 j 2 e e 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机 制【4 1 。 1 1 能保留客户现有的信息系统 由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而 不是重新制定全盘方案就变得很重要。这样,一个以渐进的方式建立在已有系统 之上的服务器端平台机制是企业所需求的。因为j 2 e e 拥有广泛的业界支持和一 些重要的“企业计算”领域供应商的参与,所以j 2 e e 架构可以充分利用现有的信息 系统。并且基于j 2 e e 平台的产品几乎能够在任何操作系统和硬件配置上运行, 企业现有的操作系统和硬件也能被使用。 2 ) 具有高效率的开发 j 2 e e 允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完 成。这样开发人员可以把精力集中在如何创建商业逻辑上,相应地缩短了开发时 间。如b e a 公司提供的w e b l o g i c 应用服务器,i b m 公司提供的w e b s p h e r e 应用服 务器,就可以帮助开发人员管理各种状态和数据访问逻辑 3 1 支持异构环境 j 2 e e 能够丌发部署在异构环境中的可移植程序。基于j 2 e e 平台的应用程序 可被部署到各种操作系统、中间件、硬件,具有“一次编写,随处运行”的特性。 平台独立的、基于组件的j 2 e e 解决方案使企业应用不会被束缚在任何一个厂商 的产品和a p i 上。 4 ) 可伸缩性 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满 足那些在他们系统上进行商业运作的大批新客户。基于j 2 e e 平台的应用程序可 被部署到各种操作系统上。例如可被部署到高端u n i x 与大型机系统,这种系统单 机可支持6 4 至2 5 6 个处理器。( 这是n t 月艮务器所望尘莫及的) 。j 2 e e 领域的供应商 提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部 署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的 需要。 气 北京邮电大学硕士学位论文 5 ) 稳定性 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。 j 2 e e 部署到可靠的操作环境中,支持长期的可用性和稳定性。 2 3 j 2 e e 的主要技术 j 2 e e 平台由一整套服务( s e r v i c e s ) 、应用程序接e l ( a p i ) 矛- l l 协议构成,它对开 发基于w e b l 拘多层应用提供了功能支持【5 1 。 1 ) e j b 技术 e j b ( e n t e r p r i s ej a v ab e a 】1 s 1 是j a v a 服务器端服务框架的规范,软件厂商根据 它来实现e j b f l 艮务器。j 2 e e 技术之所以赢得媒体广泛重视的原因之一就是e j b 。 应用程序开发者可以专注于支持应用所需的组件,而不用担心周围框架的实现问 题。它提供了一个框架来开发和实施分布式商务逻辑,因此显著地简化了具有可 伸缩性和高度复杂的企业级应用的开发。它同时又定义了e j b 组件在何时如何与 它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、 安全性、资源缓冲池以及容错性。e j b 不是实现j 2 e e 的唯一途径,正式由于j 2 e e 的开放性,使得所有厂商的开发都能够与e j b 的发展相平行。 2 ) j s p 技术 j s p 页面由h t m l 代码和嵌入其中的j a v a 代码所组成。j a v a 程序片段可以 操纵数据库、重新定向网页以及发送e m a i l 等,实现建立动态网站所需要的功 能【6 】。所有程序操作都在服务器端进行。服务器在页面被客户端所请求以后对这 些j a v a 代码进行处理,然后将生成的h t m l 页面返回给客户端的浏览器。j s p 最大的优点就是能把h t m l 编码与业务逻辑有效的分离。j s p 负责生成动态 h t m l 页面,业务逻辑由其他可重用的组件( 如s e r v l e t 、j a v ab e a n ) 和其他j a v a 程序来实现。j s p 可以通过j a v a 程序片段访问这些业务组件。 3 ) j a v as e r v l e t j a v as e r v l e t 是一种小型的j a v a 程序,它扩展了w e b 服务器的功能。是与平台 无关的服务器端组件,可以运行在s e r v l e t 容器中。s e r v l e t 容器负责s e r v l e t 和客户 的通信以及调用s e r v l e t 的方法,s e r v l e t 和客户的通信采用“请求响应”的模式。作 为一种服务器端的应用,当被请求时开始执行,这和c g ip e r l 脚本很相似。它由 j a v a 写成并生成h t m l 页面。s e l e t 的框架是由两个j a v a 包组成:j a v a x s e r v l e t 和 6 北京邮电大学硕上学位论文 i a v a x s e r v l e t h t t p 。前者定义了所有的s e r v l e t 类都必须实现或扩展的通用接e l 和 类。后者定义了采用h t r p 协议通信i 拘h t t p s e r v l e t 类。s e r v l e t 的框架的核心是 s e r v l e t 接口,所有的s e r v l e t 都必须实现这一接口。 4 ) r m i ( r e m o t em e t h o di n v o c a t i o n ) r m i 是在远程方法调用,是基于j a v a 的分布式编程模型。r m i 是j a v a 应用 程序访问远程j a v a 对象的一种标准。利用r m i ,j a v a 应用程序可以访问位于其 他进程甚至其他计算机上的对象。对于应用程序来说,r m i 使得远程对象如同 本地对象一样,不用考虑底层的网络传输细节。它使用了连续序列方式在客户端 和服务器端传递数据。r m i 是一种被e j b 使用的更下层的协议。 r m i 应用程序的工作原理:r m i 程序开发人员提供r m i 对象和远程接口, 由r m i 服务器( 如w e b l o g i cs e r v e r ) 负责把经网络到达的客户机的方法调用送到 相应的r m i 对象。最后r m i 服务器再把调用结果通过网络回送给客户机。 5 ) 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 ) x m l 全名叫扩展标记语言,它是一种可以用来定义其它标记语言的语言。 被用来在不同的商务过程中共享数据。x m l 的发展和j a v a 是相互独立的,但是, 它和j a v a 具有的相同目标正是平台独立性。通过将j a v a 和x m l 的组合,您可 以得到一个完美的具有平台独立性的解决方案。 6 ) j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) j d b ca p i 通过定义的几个数据库访问的类和接口,为应用程序访问数据库 提供了一个统一的接口。通过j d b c 可以完成建立到数据库的连接、执行s o l 语句等操作,需要有相应数据库的j d b c 驱动程序,j d b c 驱动程序负责将j d b c 操作转换为特定的数据库操作。像o d b c 一样,j d b c 对开发者屏蔽了一些细节 问题。另外,j d b c 对数据库的访问也具有平台无关性,并且支持数据库连接池。 j d b c 定义了4 种不同的驱动程序,现分述如下: 类型1 :j d b c o d b cb r i d g e o d b c 早就成为各类数据库通用的驱动方式,开发者只需配置相应的o d b c 数据源即可,而无需再安装另类驱动程序包。不足的是,这类驱动方法需要客户 端安装数据库客户机库才能连接带相应的数据库服务器上进行数据库操作。换句 话说,必须安装m i c r o s o f tw i n d o w s 的某个版本。使用这一类型你需要牺牲j d b c 7 北京邮电大学硕士学位论文 的平台独立性。另外,o d b c 驱动程序还需要具有客户端的控制权限。 类型2 :j d b c - n a t i v ed r i v e rb r i d g e j d b c 本地驱动程序桥提供了一种j d b c 接口,它建立在本地数据库驱动程序 的顶层,有部分j a v a 程序代码和部分本地代码组成,而不需要使用o d b c 。j d b c 驱动程序将对数据库的a p i 从标准的j d b c 调用转换为本地调用。使用此类型需要 牺牲j d b c 的平台独立性,不仅需要安装相关的j a v a 类库,还要求在客户端安装 一些与平台相关的本地代码。 类型3 :j d b c n e t w o r kb r i d g e 完全由j a v a 语言编写的类库,它用一种与具体数据库服务器无关的协议将请 求发送给服务器的特定组件,再由该组件按照特定数据库协议对请求进行翻译, 并把翻译后的内容发送给数据库服务器。j d b c 网络桥驱动程序不再需要客户端 数据库驱动程序。它使用网络上的中间服务器来存取数据库。这种应用使得负载 均衡、连接缓冲池和数据缓存技术的实现有了可能。由于第3 种类型往往只需要 相对更少的下载时间,具有平台独立性,而且不需要在客户端安装并取得控制权, 所以很适合于i n t e r n e t 上的应用。 类型4 :p u r ej a v ad r i v e r 通过使用一个纯j a v a 数据库驱动程序来执行数据库的直接访问。此类型实际 上在客户端实现了2 层结构。要在n - 层结构中应用,一个更好的做法是编写一个 e j b ,让它包含存取代码并提供一个对客户端具有数据库独立性的服务。 7 ) j m s ( j a v am e s s a g i n gs e r v i c e ) j m s ( j a v a 消息服务) 提供了一组标准 j a v aa p i ,用于企业级的消息处理。 j m s 是用于和面向消息的中间件相互通信的应用程序接n ( a p 0 。它既支持点对 点的域,有支持发布订i 翊( p u b l i s h s u b s c r i b e ) 类型的域,并且提供对下列类型的支 持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者 支持。a s 还提供了另一种方式来对您的应用与l e g a c yb a c k e n d 系统相集成。j m s 提供了两种消息处理方式:队列模型和基于主题的发布订阅模式。前者是将j m s 消息放到j m s 队列中,然后接收方到j m s 队列中去取消息。后者是将某一主题的 j m s 消息发给该主题的所有订阅者。 8 ) j t s ( j a v at r a n s a c t i o ns e r v i c e ) j t s 规定了事务管理器的实现方式,该事务管理器是在高层支持j t s 规范, 8 北京邮电大学硕士学位论文 并且在较低层实现q m go t s s p e c i f i c a t i o n 的j a v a 映像。j t s 事务管理器为应用服 务器、资源管理器、独立的应用以及通信资源管理提供了事务服务。 9 ) j n d i ( j a v an a m i n g & d i r e c t o r yi n t e r f a c e ) j n d i 即j a v a 的命名和目录接口。j n d i 是j a v a 定义的一种标准的注册机制。提 供名字和目录服务。在j 2 e e 应用中,j n d i 用于管理应用中用到的核心组件和对 象。当需要使用某一个组件时,j n d i 可以提供查找该组件的方法。 j n d i 提供了一组a p i 用来访问命名和目录服务。它提供一个相容的模式访问 和操作企业大范围的资源。命名服务是一种应用程序,该程序包含一个对象集合 或对象引用的集合。还对每个对象关联了一个对用户友好的名称。目录服务只是 命名服务所提供的一个扩展功能。 本章分析了j 2 e e 标准及其具有的优势,研究了该平台所采用的j 2 e e 主流 技术。j 2 e e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理相 关的复杂问题的体系结构。 9 北京邮电大学硕:卜学位论文 第三章w e b 框架模式的研究 3 1m c 模式 3 1 1m v c 简介 在面向对象的编程中,软件编程人员更加注重以前的代码的重用性和可维护 性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构,为开发者 提供了好的设计经验。设计模式的思想是将程序中可能变化的部分与不变的部分 分离,尽量减少对象之间的耦合,当某些对象发生变化时,不会导致其他对象都 发生变化。 其中m v c 模式是一种目前广泛流行的软件设计模式,随着j 2 e e 的成熟,它 正成为j 2 e e 平台上推荐的一种设计模型,将业务处理与显示分离,将应用分为 模型、视图以及控制层,增加了应用的可扩展性。现在随着网路的飞速发展, m v c 模式在w e b 应用开发中也得到了广泛的应用。 3 1 2m v c 设计模式 m v c 是一种流行的软件设计模式,它把系统分为三个模块:模型( m o d e l ) 、 视图( v i e w ) 、控制器( c o n t r o l l e r ) 。各模块的功能参见表3 1 。 表3 1m v c 的三个模块 m v c 模式 描述 模型代表应用程序状态和业务逻辑 视图提供可交互的客户界面,采集数据并向客户显示模型的处理 数据结果 控制器响应客户的请求,根据客户的请求来操纵模型,并把模型的 响应结果经由视图展现给客户 1 0 北京邮电大学硕士学位论文 d i d _ i -办 左i ;i ! j ; i t - if j 图3 1m v c 模型图 各个模块问的相互作用情况如图3 1 所示。客户可以从视图提供的客户界面 上浏览数据或发出请求,客户的请求由控制器处理,它根据客户的请求调用模型 的方法,完成数据更新,然后调用视图的方法将响应结果展示给客户。视图也可 以直接访问模型,查询数据信息,当模型中数据发生变化时,它会通知视图刷新 界面,显示更新后的数据。 3 2s t r u t s 实现的m v c 模式 3 2 1s t r u t s 框架简介 s t r u t s 把m v c 设计模式运用到w e b 应用中,它由一组相互协作的类s e r v l e t 及 j s pt a gl i b r a r y 组成。基于s t r u t s 框架的w e b 应用程序符合j s pm o d e l 2 的设计标 北京邮电大学硕上学位论文 准,是m v c 设计模式的一种变化类型。s t r u t s 结构如图3 2 所示: 过程如图3 3 所示 图3 - 2s t r u t s 实现的m v c 模式 c o n t r o l l e r a c t i o n s e t y l e r ) a c t i o nb u s i n e s sl o g i c e s t a 胁0 i a c t i o n m a p p i n g ? 一v i f o u n d n o t f o u n d i c r e a t 神e0 r e t u r ne r r o r ) 擘孚m ) k r f 。r mr e q u i r e d 。 y 8 5 。:兰: ,:;a p n 。y e s c u t _ ) 一+ k b u s i n e s sl o g i c 、l。 l rp r o c e s s 、 l 配i o f o 嗍。a c t i o n f o r w a r d 一 aa。n。oi。thnemrappin g , ( ,器。) 图3 - 3s t n l t s 实现的m v c 模式过程图 1 2 北京邮电人学硕士学位论文 在s t r u t s 框架中,模型由a c t i o n f o r mb e a n 和其他实现业务逻辑的j a v ab e a n 或 f j b 组件构成,控制器由a c t i o n s e r v l e t 来实现,视图由一组j s p 文件构成。 ( 1 ) c o n t r o l l e r :控制器的作用是从客户端接受请求,并且选择执行相应的业务 逻辑,然后把响应结果送回到客户端r n 。在s t r u t s 中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 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 ,它用来接受客户端的请求。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 对象实现了一个请求到一个具体的 m o d e l 部分中a c t i o n 处理器对象之间的映射。 ( 2 ) m o d e l :m v c 系统中的m o d e l 部分从概念上可以分为两类系统的内部 状态,和改变系统状态的动作1 8 l 。s t r u t s 为m o d e l 部分提供了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 处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适 的v i e w 组件以产生响应。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 处理器对 象可以直接对它进行读写,而不再需要干1 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 组件对象实现了对v i e w 和m o d e l 之间交互的支持。s t r u t s 通常建议使 用一组j a v a b e a n 表示系统的内部状态,根据系统的复杂度也可以使用像e n t i t y e j b 和s e s s i o ne j b 等组件来实现系统状态。s t r u t s 建议在实现时把“做什么”( a c t i o n ) 和“如何做”( 业务逻辑) 分离。这样可以实现业务逻辑的重用。 ( 3 ) v i e w :s t r u t s 应用中的v i e w 部分是通过j s p 技术实现的p j 。s t r u t s 提供了自 定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的m o d e l 部分 交互,通过使用这些自定义标记创建的j s p 表单,可以实现和m o d e l 部分中的 a c t i o n f o r m 的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模 板定制等多种显示功能1 1 0 1 。 3 2 2s t r u t s 的核心组件 s t r u t s 架构包括如下的核心组件【1 ,如表3 2 所示。 北京邮电大学硕十学位论文 表3 2s t r u t s 架构的核心组件 组件 角色 a c t i o n s e r v l e t 核心控制器 a c t i o nc l a s s w e b 层调用业务逻辑的类 a c t i o n f o r m 视图层数据的显示与封装 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 sa 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 e r r o r 用来保存和回收错误 a c t i o n e l r o r sa c t i o n e r r o r 类的容器 s t r u t s 标记库 减轻开发视图层的工作 1 ) 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 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 类,在s t r u t s 框架的核心控制 器组件【1 1 】。主要负责将h t t p l 拘客户请求信息组装后,根据配置文件的描述,转发 到适当的处理器。按照s e r v l e t 的标准,所有的s e r v l e t 必, 须在w e b 配置文件( w e b x m l ) 中声明。用户向服务器提交请求的时候,实际上信息是首先发送到控制器 a c t i o n s e r v l e t ,一旦控制器获得了请求,就会将请求信息转交给一些辅助类处理, 这些辅助类知道如何去处理与请求信息所对应的业务操作。在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 。通常开发者需要自己继承a c t i o n 类,从而 实现自己的a c t i o n 类的实例。 2 ) a c t i o nc l a s s a c t i o n 类的角色,就像客户请求动作和与业务逻辑处理之间的一个适配器, 其功能就是将请求与业务逻辑分开1 1 2 j 。这样的分离,使得客户请求和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 。在r e q u e s t p r o c e s s o r 类预处理请求时,在创建了a c t i o n 的实 例后,就调用自身i 拘p r o c e s s a c t i o n p e r f o r m 0 方法,该方法再调用a c t i o n 类的e x c u t e 0 方法l l 引。a c t i o n 类主要职责是:校验前提条件或者声明;调用需要的业务逻辑方 1 4 北京邮电大学硕士学位论文 法;检测或处理其他错误:路由控制到相关视图。通常还提供了其它的辅助功能, 比如:认证、日志、数据验证。 3 ) a c t i o n f o r m 应用系统的信息转移( 或状态转移) 的非持久性数据存储,是由a c t i o n f o r m b e a n 负责保持的【1 4 l 。a c t i o n f o m 的主要功能就是为a c t i o n 的操作提供与客户表单 相映射的数据。a c t i o n f o r m 负责对系统数据状态的保持,而a c t i o n 贝j j 负责根据业 务逻辑的需要,对数据状态进行修改,在改变系统状态后,a c t i o n f o r m 贝j j 自动的 回写新的数据状态并保持。在a c t i o n f o r m 的使用中,s t r u t s 提倡使用值对象 ( v a l u e o b j e c t ) ,使客户或开发人员对数据状态和对象能够有更加清晰的理解和使 用【1 5 j 。对于客户的请求,s t r u t s 框架在处t 里a c t i o n f o r m 的时候,一般需要经历如 下几个步骤【1 6 1 。 检查a c t i o n 的映射,确定a c t i o n 中己经配置了对a c t i o n f o r m 的映射。 根据n a m e 属性,查找f o r m b e a n 的配置信息。 检查a c t i o n 的f o r r n b e a n 的使用范围,确定在此范围是否己经有f o r m b e a n 的实例。 假如当前范围下,己经存在了f o r m b e a n 的实例,而且对当前请求来说, 是同一种类型的话,那么就重用。 否则,就重新构建一个f o r m b e a n 的实例。 f o r m b e a n 的r e s e t 方法被调用。 调用对应的s e t t e r 方法,对状态属性赋值。 如果v a l i d a t e d 的属性被设置为t r u e ,那么就调用f o r m b e a n 的v a l i d a t e 方法 【1 7 l 。 4 ) 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 m a p p i n g 中, 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 类i 拘p e r f o r m 0 方法,a c t i o n 将使用 a c t i o n m a p p i n g 的f i n d f o r w a r d 0 方法,此方法返回一个指定名称的a c t i o n f o r w a r d , 这样a c t i 伽就完成了本地转发。若没有找到具体的a c t i o n f o 刑a r d ,就返回一个 n u l l l l 8 1 。 5 ) 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 类获得 1 5 北京邮电大学硕士学位论文 a c t i o n f o r w a r d 实例的句柄,通过f i n d 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 是对将要转向的视图地址的一个封装。a c t i o n f o r w a r d 类定义了三 个保护字段,n a m e ,p a t h ,r e d i r e c t 。它们构成了a c t i o n f o n v a r d 的三个属性【1 9 】【2 0 1 。 6 ) a c t i o n e r r o r e r r o r 类是s t r u t s 中用以表示操作错误的类,s t r u t s 提供了两个类来处理错误, 包括a c t i o n e r

温馨提示

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

评论

0/150

提交评论