企业信息发布系统设计与实现论文.pdf_第1页
企业信息发布系统设计与实现论文.pdf_第2页
企业信息发布系统设计与实现论文.pdf_第3页
企业信息发布系统设计与实现论文.pdf_第4页
企业信息发布系统设计与实现论文.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

企业信息发布系统设计与实现论文.pdf.pdf 免费下载

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

文档简介

大连理工大学 硕士学位论文 企业信息发布系统的设计与实现 姓名:陈哲 申请学位级别:硕士 专业:计算机技术 指导教师:李丽双 20080607 大连理工大学专业学位硕士学位论文 摘要 随着因特网的快速发展和计算机的日益普及,越来越多的企业意识到了网络中存在 的无限商机,在新兴的网络经济时代的今天,企业迫切需要在互联网上建立自己的门户, 以便于用户的访问,并对企业在互联网上发布的的各种信息进行统一化管理,企业信息 发布系统就是为企业研发并用于企业信息发布的管理系统。 本系统利用j s p 和s e r v l e t 技术,结合经典的m v c 设计模式s 劬t s 框架,采用 h i b e n l a t e 架构对数据状态进行持久性保存,使得开发过程更加灵活,更加易于维护。本 文设计并实现了企业信息发布系统,首先介绍了信息发布的历史背景,然后介绍了相关 技术,其中着重介绍了m v c 设计模式和s 饥i t s 框架的基本思想、基本原理及h i b e n l a t e 对象持久化技术的理论基础,接着介绍了企业信息发布系统的需求分析。在已知的理论 基础上,通过精心设计,实现了企业信息发布系统。 企业信息发布系统通过应用测试,运行效果良好,基本上满足了用户的需求,系统 用户界面友好,操作灵活,可大大提高工作效率,降低企业协同办公的成本,具有广泛 的研究意义和应用价值。 关键词:信息发布系统;m v c ;s t r u t s 大连理工大学专业学位硕士学位论文 t h e d e s i g na n di m p l e m e n t a t i o no fe n t e 印r i s ei n f o m a t i o np u b l i s h i n g s y s t e m a b s t r a c t w i 廿l 廿l er 印i dd e v e l o p m e n to f 廿1 ei n t e m e t 锄dt h ep o p u l a r i z a t i o no fc o m m i t e r s ,m o f e 觚dm o r ec o m p a i l i e sh a v eb e e na 1 a r eo fm ee n d l e s sc o n m l e r c eo p p o m m i t i e se x i s t i n go nt l l e i n t e r r l e t o nt h en e w l y f 0 r 屺di n t e n l e te c o n o m yt i r r l e s ,n l e s ec o i i 】【p a i l i e sh a v ea nu r g e n tn e e d t 0b u i l dm e i ro 、) i ,np o r t a l ss ot i l a tu s e r sc a nl o gi i le a s i l y ,a i l dt l l e nv a r i o u si i l f o m a t i o nc o u l db e m a i l a g e do r d e r l yo nt h ei n t e n l e t 1 h ee n t e 印r i s ei n f i o n n a t i o np r o m u l g a t i o ns y s t e mi sd e s i 印e d f o rt l l er e s e a r c ha n dr e l e a s m go fe n t e r p r i s e 试f 0 吼a t i o n t 1 l et e c h n o l o g i e su s e db yt 1 1 es y s t e ma r ej s p 锄ds e n ,l e t c o m b i n e d 谢mn l e 、0 n d e m l l m v cd e s i 弘p h i l o s o p h ya l l dn l es 饥鹏m i i i l e w d 咄i tc o u l dk e e pt l l ed a :t ap e r s i s t i 咖、) i r i n ln 圮 h i b e r m 【t e 仔锄e t h e r e f o r e ,i tm a k e st l l ep r o c e s so fd e v e l o p m e mn 1 0 r ef l e x i b l e ,a l l dr n u c h e 嬲i e rt 0 p r e s e r v e a r l d p r 0 乞e c t t h i sp a p e rd e s i 盟e d 砒l di r n p l e m e n t e dn l ee n t e 印r i s e h l f i o m l a t i o np r o r n u l g a t i o ns y s t e m ,w h i c hf i r s ti n 仃o d u c e dt l l el l i s t o 巧a i l db a c k g r o u n do fi s s u e s i i l f b n l l a t i o n ,a i l d 也e ni n n 0 d u c e dm ep e r t i n e mt e c h n 0 1 0 9 ) ,i nt h i sp a n ,t h em v cd e s i 弘p a n e n l s a i l dt h eb a l s i ci d e a so fs t n j t s 融w o r k ,a sw e u 嬲也eb a s i ct h e o r yo f 让l eh i b e m a t ea r em e m o s ti m p o r r t a n tp o r t i o n s t h e n ,i ta l s o 昀d u c e st l l ea n a l y s i so ft h ed e m a l l d i n go ft l l ee n t e r p r i s e i i l f o n n a t i o np u b l i s l l i n gs y s t e m o nm eb a l s i so ft l l e s ek n o w nt 1 1 e o r i e s ,a i l da sar e s u ho fc a r e 如l d e s i g n ,t h ee n t e r p r i s ei i o 衄a t i o np u b l i s l l i n gs y s t e mh a sb e e nr e a l i z e d b e c a u s eo f 吐l ee f j e e c t i v en m n i 玎go ft e s t s ,t l l e 衔e r l d l ys y s t e mi n l b r f a c e sf 0 ru s e r s ,a 芏l d l e a g i l eo p e r a _ t i o no fm ee n t e i p r i s ei i l f 0 肌a t i o np u b l i s h i n gs y s t e m ,w m c hi m p r o v e sw o r k e m c i e n c y ,a 1 1 da tt l l es a i i l et i m er e d u c e s 也ec o m p 枷e sc o s t s ,a l lo fm i sm a 玉汜sa 诵d em g eo f r e s e a r c hs i g i l i f i c a l l c e 觚da p p l y i l l gv a l u e k e yw o r d s :i 苴1 f o r n l a t i o ni s s u es y s t e m ;m v c ;s 臼1 j t s 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名: p o 焉d 兰t 1 大连理工大学专业学位硕士学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位 论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送 交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连理 工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也 可采用影印、缩印或扫描等复制手段保存和汇编学位论文。 作者签名: 导师签名: 侏髫 大连理工大学专业学位硕士学位论文 1绪论 信息发布系统是将企业需要经常变动的企业信息,业界新闻和产品展示等信息集中 管理,并通过信息的某些共性进行分类,最后发布到系统上的一种信息化应用程序。实 现了数据的动态、实时发布等功能,信息通过一个操作简单的界面加入数据库,然后通 过已有的模板格式以w e b 的形式发布到网络上。其特征是利用i i i t e m e t 的技术传输和处 理信息u j 。 1 1 课题的背景和意义 新的世纪,互联网进入一个崭新的阶段,信息化的发展带动其它产业的发展,各行 各业都与网络进行更深入的融合和渗透。越来越多的企业已开始从对互联网的认知阶段 进入到认同和行动阶段。互联网已日益成为收集、提供信息的最佳渠道并进入传统的流 通领域。网络中信息的发布是伴随着网络广告的发展而不断发展成熟的。网络中信息发 布方式最初形式是以文字、图片做成的广告条发布的。网络广告发轫于1 9 9 4 年的美国, 当年1 0 月1 4 日,美国著名的w i r e d 杂志推出了网络版h o t w 怕d ( w 唧h o 铆i r e d c o m ) 【2 1 , 其主页上开始有a t t 等1 4 个客户的广告b 锄n e r ,这是广告史上里程碑的一个标志, 也是网络产品信息发布的重要标志,一个跨国界的全球性媒体正式形成。中国的第一个 商业性的网络广告出现在1 9 9 7 年3 月,传播网站是c 蛐1 a b 吼e ,广告表现形式为4 6 8 6 0 像素的动画旗帜广告,这是中国网络产品信息发布史上里程碑的标志。信息发布系统 有狭义和广义之分,狭义的信息发布系统也称w c b 信息发布系统,主要指利用w e b 提 供的通信及相关技术手段在h n e n l e t 网上进行信息的发布;而广义的信息发布系统是包 括采用i n t e m e t 技术从信息的采集、信息的管理到信息的发布与交互的全过程的信息系 统。广义的信息发布过程存在于组织内部,组织与组织之间以及组织与整个世界之间。 1 2 信息发布系统的技术现状 信息发布从类型上分为以下3 种: ( 1 ) 个人信息发布,比如个人网站信息发布、班级演讲、教师讲课等。 ( 2 ) 行业信息发布,比如企业通过互联网发布自己的产品信息;学校通过校园广播 站、校园电视台、校园网发布校内新闻;某个体育爱好者协会创办的供内部交流的报刊 等。 ( 3 ) 官方机构信息发布,比如官方网站、官方新闻发布会等。 信息发布从方式上分为以下4 种【3 】: 企业信息发布系统的设计与实现 ( 1 ) 印刷方式:主要以报纸、杂志、书刊、宣传品为主要媒介,用文字、图片等表 达信息,虽然携带方便,价格便宜,易于保存,但是信息内容是静态的,信息盆不可能 很大,且受发行盆限制,传播的范围有限。接收者可决定自己的速度,想停就停,不懂 之处可重复看,其思索余地较大。可自由支配地点和时间。 ( 2 ) 广播方式:它用声音来传达信息,因而不受文化、教育程度限制,另外传播速 度快,范围广,能适应各种环境。然而它也存在不足:单向性的传输,只能在特定的时 间,频段才能收听,所发布的信息是面向所有的人,具有共同性、大众化、普遍性。而 且语言所表达的是抽象的概念,缺乏直观、形象的表现。接收者既不能控制播音员的速 度,也不能要求播音员重复播放,还必须在声音所及的范围内收听。 ( 3 ) 电视方式:将影像、声音、文字、图形等信息形式集于一体,是一种全方位信 息传播载体,表达信息形象、直观、快捷,受到广泛的青睐;另一方面它也存在与广播 类似的问题,观众只能受时间、频道的限制,被动的接受信息,无法实现交互式的双向 传播,尤其是其投入费用昂贵,一定程度上阻碍了信息通过电视方式进行有效发布。视 觉冲击较强烈,听觉处于辅助地位,而视觉所见的是瞬即逝的图像,往往感性认识多, 理性认识则是一个有待上升的过程,接受者使用时受到一定的条件限制。 ( 4 ) 互联网方式:较前三种方式而言,其根本的区别是将纸墨信息,模拟信息全都 转化为数字信息,使信息表达进入一个更深层次。 这种方式具有以下几方面特点: 交互式的双向传播,改变了传统“一对多”的单向传播模式,形成“点对点 的传播方式,用户从被动的接收信息到主动找寻信息,具有个体性和目标性,互联网的 特点使媒体更容易得到反馈,使传播者和访问者之间能够形成一种平行交流气氛。 表现形式丰富,它综合了报纸、广播、电视的优点,给人们以全方位的、多维 的信息。它能通过文字、高清晰度图片、动画、声音乃至动态图像等各种方式进行组合 传播。 信息丰富,资源共享,理论上所有因特网用户的信息是共享的,即互联网是一 个巨大的共用信息资料库。 信息读取、查找、更新和处理方便迅捷,可操作性好,通过简单的点击鼠标就 可读取、查找有用的信息,不像传统媒体那样受印刷或者栏目安排的限制,它的信息放 置在网页上,完全没有任何时间限制,需要时可以随时更新。 跨越时空、地域和人种传播,时效性好。平面媒体和电子媒体往往比不上互联 网络来得迅速。通过互联网络发布产品,企业可以以最快的速度将最新的产品信息以文 一2 一 大连理工大学专业学位硕士学位论文 字、图片等方式发送到服务器上,在世界每个角落的使用者就可以立即看到最新的产品 信息。 目前,在互联网上可以见到的一些信息发布系统多以文字说明、性能数据描述辅以 图片介绍的方式来表达信息,信息数据存储在数据库中,通过数据库进行管理,有的甚 至不采用数据库而直接放在h t m l 中,在一定程度上能够达到产品信息发布的目的, 但这些系统所发布的信息是静态的,无法解决网页上动态交互的问题,发布的形式较单 一,没有充分发挥计算机的功能;另一方面,在传统的数据库编程中,开发人员要面对 大量重复性代码的编写,以实现对不同数据表中数据的获取,并将获取到的记录数据封 装成对象,在处理完成之后,如果需要进行对象状态的存取,需要将对象中的数据拆卸 成数据库记录中的对应字段的值,然后向数据库中进行存储。这种工作方式显然没有实 现真正意义上的数据存取阶段的面向对象。本系统将运用j s p 技术实现发布信息的动态 显示,数据库运用h i b e n l a t e 对象关系数据库映射技术,实现将面向对象思想封装的对 象的各个状态数据映射到基于s q l 的关系模型数据结构中去,从而减少数据库编程中 大量重复性代码的编写。 1 3 本文所做的工作 本文所做的工作是介绍企业信息发布系统的总体设计开发,其中包括系统总体结构 的设计,系统框架设计以及具体功能设计,相关数据库的设计,还有系统中各个层的实 现,最后进行了系统测试。 1 4 本文的结构 论文第一部分“绪论”简要介绍了本文的背景和动机,第二部分对相关技术进行了 介绍,其中详细阐明了m v c 设计模式和s t m t s 设计思想。第三部分对企业信息发布系 统进行了需求分析,并对系统开发环境进行了简单介绍。第四部分是系统设计阶段,描 述了系统的设计目标和原则,对系统的架构、系统的各功能模块及系统数据库进行了设 计。第五部分是系统的实现与测试,通过各层的设计实现了企业信息发布系统,之后讲 述了系统的测试方法,对系统进行了测试,总结了系统中存在的错误。最后,对本文进 行了总结,并对帮助我完成设计的老师表示感谢。 企业信息发布系统的设计与实现 2相关技术 2 1j s p 技术 j s p ( j a v as 觥rp a g c s ) 是由s u i lm i c r o s y s t e m s 公司倡导、许多公司参与一起建立的 一种动态网页技术标准。该技术为创建显示动态生成内容的w e b 页提供了一个简捷而 快速的方法。在目前流行的3 p 技术中( 3 p 技术分别是:a s p ,a c t i v es e r y e r p a g e s ;p h p ,p e r s o n a lh o m e p a g e ;j s p ,j a v as e r y e rp a g 锱) ,j s p 已经逐渐成为i n t e m e t 上的主流 开发工具。j s p 是基于j a v as e 1 e t 以及整个j a v a 体系的w e b 开发技术,j s p 分离了内 容的产生和显示,使用j s p 标识或者小脚本来产生页面上的动态内容。产生的内容的逻 辑被封装在j a v a b e 趾中。所有的脚本在服务器端执行,j s p 引擎在服务器端解释j s p 标 识,产生所请求的内容,并且将结果以h t m l 页面的形式发送回客户端浏览器。自从 1 9 9 8 年初,s u n 公司发布了第一个公开的j s p 规范草稿,j s p 技术就不断更新、完善, 目前已发展到较为成熟的j s p 2 1 版。 2 1 1j s p 特点 j s p 主要有如下5 个方面的特点: ( 1 ) 内容的生成和显示相分离 使用j s p 技术,w e b 页面开发人员可以使用h 脚l 或者l 标识来设计和格式化 最终页面,并使用j s p 标签或者脚本来生成页面上的动态内容。生成内容的逻辑被封装 在标签和j a v a b e a i l 组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。如果核 心逻辑被封装在标签和j a v a b e a i l s 组件中,那么其他人员,如页面设计者或是w e b 管理 人员,就能够编辑和使用j s p 页面而不影响内容的生成。 在服务器端,j s p 引擎解释j s p 标签和脚本,生成所请求的内容,并且将结果以 h 聊l 或x 】l 页面的形式发送回浏览器。这有助于作者保护自己的代码,并且保证了 任何基于h t m l 的w e b 浏览器的完全可用性。 ( 2 ) 可移植性 j s p 的重要特点之一就是它由j a v a 语言构建,是j a v a 应用程序的一种。j a v a 技术 最鲜明的特点之一就是工作平台具有独立性。如果学习过j a v a 语言,就一定听说过 “、m t e0 i l l c e ,r ma n 出e r e 这句名言。与之相同,j s p 也不必考虑在w e b 服务器环 境的操作系统相关性。 一4 一 大连理工大学专业学位硕士学位论文 不管j s p 在任何平台中编写,只要服务器中有j s pc o n t a i n e r 就可以使用原先编写的 程序来运行。正是因为它是由j a v a 语言编写的程序,所以以j s p 为基础编写的w e b 应 用程序可以在其他w e b 服务器中运行,无需更改。这是j a v a 系列产品共同的优点。所 以,j s p 开发者只需编写j s p 程序,无需考虑其硬件是怎样构成的、运行体系是怎样的 等问题。 在数据库连接上也有相同的优势。j s p 与数据库连接时,只需要使用由j a v a 提供的 j d b c ( j a v ad a _ t ab 嬲ec 0 衄e c t i 、,i 劝。j d b c 也独立于平台工作,所以不必担心使用巾b c 而使平台变更。由于j a v a 的这种特性,使得基于j s p 开发的w e b 应用程序可以很简单 地在新开发的软件中重用。 ( 3 ) 采用标签简化页面开发 w e b 页面开发人员不一定都是熟悉脚本语言的编程人员。j s p 技术封装了许多功能, 这些功能是在帆标签中生成动态内容所需要的。标准的j s p 标签能够访问和实例化 j a v a b e a n 组件、设置或者检索组件属性、下载a p p i e t 等。 通过开发自定义的标签库,可以扩展j s p 技术,用户可以为常用功能创建自己的标 签库。w e b 页面开发人员能够使用这些工具简化页面开发。 ( 4 ) 使用可重用的组件 绝大多数j s p 页面依赖于可重用的跨平台组件( j a v a b e a n 或者e j b :e m e 删s e j a v a b e a n ) 来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通 操作的组件,或者使这些组件为更多的用户所使用。基于组件的开发方法加速了总体的 开发过程。 ( 5 ) 完善的存储管理和安全性 由于j s p 页面的内置脚本语言是基于j a v a 语言的,而且所有的j s p 页面都被编译成 为j a v as e l e t ,所以j s p 页面就具有j a v a 技术的所有优点,包括完善的存储管理和安全 性【4 】。 2 1 1 j s p 运行原理 当w e b 服务器上的一个j s p 页面第一次被请求执行时,j s p 引擎先将j s p 页面文件 转译成一个j a v a 文件,即s e i e t 。j a v as e r v l e t 是基于服务器端编程的a p i ,用j a v as e n r l e t 编写的j a v a 程序称为s e r v l e t ,s e n ,l e t 通过h t m l 与客户交互。服务器将前面转译成的 j a v a 文件编译成字节码文件,再执行这个字节码文件来响应客户的请求。当这个j s p 页 面再次被请求时,将直接执行编译生成的字节码文件来响应,从而加快了执行的速度。 整个运行过程如图2 。l 所示【5 j 企业信息发布系统的设计与实现 图2 1j s p 运行原理图 f i g 2 1 、崩n gp 血c i p l eo f j s p 谈到j s p 的运行原理,就不得不谈到s e r v l e t 了。虽然按照s 1 l i l 的观点,将来是要 用j s p 替代s e r v l e t 的,但j s p 是在s e r v l e t 的基础上发展起来的,要深刻理解j s p 的运 行原理,就一定需要了解s e n ,l e t 的相关知识。 2 2s e r vle t 技术 s e r v l e t 是用j a v a 编写的运行在w e b 服务器中的程序,因此它可以调用服务器端的 类,也可以被调用,它本身也是一个类。 2 。2 1 s e r v i e t 的工作原理 s e n r l e t 由w e b 服务器引擎负责编译执行,当客户端浏览器访问s e n ,1 e t 时,服务器 将启动一个线程来响应,而并非c g i 技术的进程,因此相对c g i 方式占用的系统资源 比较少,具有较高的运行效率。 当、b 服务器中的s e l e t 被请求访问时,此s e l e t 被加载到j a v a 虚拟机中,在 s e n ,l e t 中要接受h 1 r p 请求并作相应处理。由于s e r v l e t 是在服务器端运行的,对客户 完全透明,因此比j a v aa p p l e t 具有更好的安全性,当服务器有防火墙的保护时,s e l e t 也就受到防火墙的保护。 2 2 2s e r v l e t 的处理流程 s e n r l e t 为客户端和服务器端的信息处理提供了一种“请求回答机制。j a v a 的s e r v l e t a p i 为处理客户端和服务器之间的请求和回答信息定义了标准接口。下图展示了客户端 到s e r v l e t 再到后端的处理过程: ( 1 ) 客户端向服务器端发送请求。 ( 2 ) 服务器将请求发送至s e l e t 。 大连理工大学专业学位硕士学位论文 ( 3 ) 依据客户端程序的请求,s 酬e t 动态地构造应答信息并返回给服务器,此时, 也可能会利用外部资源。 ( 4 ) 最后,服务器端将应答返回到客户端。 2 2 3s e r v i e t 生命周期 s e 1 e t 的运行机制体现在其生命周期中。基于s e r v l e t 应用的客户程序通常并不直 接使用s e l e t 进行通信,而是通过w e b 服务器和应用服务器完成请求s e r y l e t 的装载和 初始化、为请求提供服务、卸载和撤消s e r v l e t 。这些功能由应用服务器的s e l e t 管理 功能模块提供。一般来说,服务器环境里每一时刻都有一个特定的s e l e t 对象的实例, 这是s e r v l e t 持续性的基本原则。当s e r v l e t 首次被装载到服务器环境的时候,服务器负 责对这个s 耐c t 进行初始化。在这个环境中,s 耐c t 在生命周期内保持活跃或持续的 状态。 一个s e l e t 生命周期主要有三个过程: ( 1 ) s e l e t 的初始化。s e r v l e t 实际是一个类,当第一次被客户端请求时,w 曲服务 器引擎首先要生成这个s 酬e t 类的对象,并加载这个对象,通过这个对象的i l l i t ( ) 方法 完成一些初始化的工作。 ( 2 ) 生成的s e l e t 类的对象调用s e i c e o 方法来响应请求。 ( 3 ) s e 1 e t 类的对象自第一次被生成后将常驻内存直至w e b 服务被关闭,当再次被 请求将直接从内存中取出对象来响应请求。当w 曲服务被关闭时,将调用s e r v l e t 类的 对象的蛐y ( ) 方法消除此对象。 在上述的三个过程中,i i l i t o 方法只被调用一次,即第一次被请求时调用;s e r v i c e o 方法在每次s e l e t 被请求时都会被执行。 2 3l i i v c 设计模式 模式的概念最初来源于工程和建筑模式,软件行业的模式概念的普及是由e r i c h g a i i l l i l a 融d l a r dh e l m ,r a l p hj o h 璐o n 和j o i u l i s s i d e s 四人合著的设计模式:可复用面向 对象软件的基础一书而引发的。如今舡模式 已经成为全世界软件开发的一个共同话题。 在讨论模式之前,必须对“模式”这个词加以界定,简而言之,人们在自己的环境 中不断发现问题和寻找问题的解决方案的时候,发现有一些问题及其解决方案不断变换 面孔重复出现,但在这些不同的面孔后面有着共同的本质,这些共同的本质就是模式【6 l 。 模型视图一控制器( m v c ) 是x e r o xp a r c 在2 0 世纪8 0 年代为编程语言s m a l l t a l k 一8 0 发明的一种软件设计模式,至今已被广泛使用,最近几年被推荐为s u n 公司 j 2 e e ( j a v a2e 1 1 _ t 唧r i s ee d i t i o n ) 平台的设计模式。m v c 模式弱化了业务逻辑接口和数据接 企业信息发布系统的设计与实现 口之间的藕合,使逻辑与呈现相分离,从而让表现层更为独立和更富于变化,增强了 代码的可维护性与扩展性。 m v c 是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。其应用 架构划分为3 个相互协调的核心模块:模型、视图和控制器,它们分别担负不同的任务。 图2 2 显示了这三个模块各自的功能以及它们的相互关系。 事件请求 一一一一一一一一 状 态 变 更 视图控制器 解释模型 视图选择 定义应用程序行为 模型更新请求 用户请示 一一一一一一一一一一一一一一一一二一一用户动作影射成模型更新 发送用户输入给控制器选择相应的视图 允许控制器选择视图 图2 2 i v c 设计模式 f i g 2 2m v d e s i 弘p a t t 锄 由上图我们可以清晰地看出整个m v c 的处理过程是:首先控制器接收用户的请求, 并决定应该调用哪个模型来进行处理;然后模型根据用户的请求进行相应的业务逻辑处 理并返回数据;最后控制器调用相应的视图格式化模型返回的数据,并通过表示层呈现 给用户。 模型( m o d e l ) 是应用程序的主体部分,表示业务数据和业务逻辑。它包含应用程序的 核心功能,封装系统的状态。一个模型能为多个视图提供数据,由于同一个模型可以被 多个视图重用,所以提高了应用的可重用性。 视图( v i c w ) 是模型的动态表示,并提供用户交互界面。视图向用户显示相关的数据, 并能接收用户的输入数据,但是它并不进行任何实际的业务处理。同时当模型状态发生 变化时,视图应该得到通知,以便更新视图。 大连理工大学专业学位硕士学位论文 控制器( c o n t r o l l e r ) 接受用户的输入并调用模型和视图来完成用户的需求,当w e b 用 户点击w e b 页面中的提交按钮来发送h t m l 表单时,控制器接收请求并调用相应的模 型组件去处理请求,然后调用相应的视图来显示模型返回的数据【7 j 。 基于该编程模型进行开发,各个模块之间的接口一旦制定,开发人员可根据模块的 主要功能选用适当的技术对该模块进行有针对性的开发,且无须熟悉实现其他模块的具 体技术细节,最后根据所制定的接口进行系统集成即可。因此,将m v c 编程模型引入 w e b 应用程序的设计开发中,可以有效弥补目前w e b 应用程序开发上的不足,也可以 加快产品推向市场的时问。 2 4j s pm o d ei1 禾口j s pm o d el2 虽然m v c 设计模式很早就出现了,但在w e b 应用的开发引入m v c 却步履维艰。 这是因为w e b 应用系统的开发具有一些鲜明的特点。其一客户机与服务器间的无状态 连接。h t t p 的底层是t c p i p 协议,而t c p i p 协议是一种无状态连接的协议,这种连 接状态使得模型很难将更改通知视图。为了使视图能同步表达模型的状态,客户端必须 不断向服务器进行查询,这样会急剧加重服务器端的负担。另一个特点是传统的设计方 式即页面到页面( p a g et op a g e ) 方式将数据显示、业务逻辑、流程控制和数据持久性处理 等模块强耦合在一个代码模块中,采用这种模型在开发中容易产生很多问题,而且会随 着应用程序规模的不断扩大而加剧系统开发、维护的复杂程度。 为了解决以上问题,s u l l 公司先后制定了两种规范,称为j s pm o d e l l 和j s pm o d e l 2 。 在j s pm o d e l l 的体系中,如图2 3 所示,j s p 页面负责响应用户请求并将处理结果 返回用户。j s p 既要负责业务流程控制,又要负责提供表示层数据,同时充当视图和控 制器,未能实现这两个模块之问的独立和分离。尽管m o d e l l 体系十分适合简单应用的 需要,它却不适合丌发复杂的大型应用程序。 i b 请求1 : r o w4 返回: i s 1_ i i e i l r i 盘_ 务; 器; j :i 图2 3m o d e l l 体系结构图 f i g 2 3 m o d e l1s y s t 锄a r c h i t e c t u r ed i a g r a m 一一一一一1 企! 业 数 据 库暑 企业信息发布系统的设计与实现 j s pm o d e l2 体系结构( 如图2 4 所示) 是一种联合使用j s p 和s e l e t 来提供动态 内容服务的方法。它吸取了j s p 和s e r v l e t 两种技术各自的突出优点,用j s p 生成表示 层的内容,让s e 1 e t 完成深层次的处理任务。在这里,s e r v l e t 充当控制器的角色,负 责处理用户请求,创建j s p 页需要使用的j a v a b e a i l 对象,根据用户请求选择合适的j s p 页返回给用户。在j s p 页内没有处理逻辑,它仅负责检索原先由s e r v l e t 创建的j a v 出e a i l 对象,从s e r v l e t 中提取动态内容插入到静态模块。这是一种有突破性的软件设计方法, 它清晰地分离了表达和内容,明确了角色定义以及开发者与网页设计者的分工。事实上, 项目越复杂,使用m o d d2 设计模式的好处就越大。 图2 4m o d d2 体系结构图 f i g 2 4 m o d e l2s y s t 锄a r c h i 妣t 啪d i a g r a m 基于m v c 设计模式的m o d d2 应用框架,完美地解决m o d e l1 应用中出现的问题。 它不仅实现了系统业务逻辑功能模块、显示模块和数据持久层处理模块的分离,同时还 提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性8 1 。 2 5s t r u t s 框架 2 5 1s t r u t s 概述 s 删s 这个名字来源于在建筑和旧式飞机中使用的金属支架,目的是为了帮助开发 人员减少在运用m v c 设计模式来开发w e b 应用的时间。s 眦s 按照m v c 模式的思想, 提供了一种创建w e b 应用程序的框架,其中对应用程序的用户界面表示和数据的后端 逻辑处理代码进行了抽象,整合了s e l e t 和j s p 在w e b 应用开发上的优势以建立灵活、 扩展性强、复用程度高的应用系统【9 ,1 0 1 。 大连理工大学专业学位硕士学位论文 2 5 2s t r u t s 框架结构 作为一个m v c 的框架,s 觚昭对m o d e l ,v i e w 和c o n 仃o l l e r 都提供了对应的实现组 件。其组件结构如图2 5 所示。 图2 5s 缸1 l t s 框架的组件结构 f i g 2 5 f r a m e w o r ks 仃u c t u c o 璐t i t u e n t ( 1 ) c o n 们l l e r :控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑, 然后把响应结果送回到客户端【l l 】。在s 眦s 中c o f l 仃o l l e r 功能由图a c t i o n s e l e t 和 a 舐o i l m a p p i n g 对象构成:核心是一个s e l e t 类型的对象a c t i o n s e l e t ,它用来接受客 户端的请求。a c t i o n s e 1 e t 包括一组基于配置的a c t i o i l m a p p i n g 对象,每个a c t i o n m a p p i i l 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 2 】。s 咖瞳s 为m o d d 部分提供了a 砸0 n 和a c t i o l l f 伽【i l 对象:所有 的a c t i o n 处理器对象都是开发者从s t n 如的a c t i o n 类派生的子类。a c t i o n 处理器对象封 装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的v i e w 组件以产生 响应。s 饥i t s 提供的a c t i o i l f o 珊组件对象,它可以通过定义属性描述客户端表单数据。 开发者可以从它派生子类对象,利用它和s 缸l 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 伽m 组件对象实现了对v i e w 和 企业信息发布系统的设计与实现 m o d c l 之间交互的支持。s 眦s 通常建议使用一组j a v a b e a i l 表示系统的内部状态,根据 系统的复杂度也可以使用像e n t 时e j b 和s e s s i o ne j b 等组件来实现系统状态。s 饥l t s 建 议在实现时把“做什么 ( a c t i o n ) 和“如何做”( 业务逻辑) 分离。这样可以实现业务 逻辑的重用。 ( 3 ) v i e w :s 缸u t s 应用中的v i e l 7 l ,部分是通过j s p 技术实现的。s 饥i t s 提供了自定义 的标记库可以使用,通过这些自定义标记可以非常好地和系统的m o d e l 部分交互,通过 使用这些自定义标记创建的j s p 表单,可以实现和m o d e l 部分中的a c t i o n f o 姗的映射, 完成对用户数据的封装,同时这些定义标记还提供了像模板定制等多种显示功能【1 3 1 。 2 5 3s t r u t s 架构的优缺点 s t n 鹏是实现m v c 设计模式的一个优秀的应用框架,它具有以下一些优缺点。 优点: ( 1 ) 协作性:s 缸u t s 是一个互相协作、互相促进的平台,适用于开发小组、独立的开 发人员、以及每个人之间的协同工作。 ( 2 ) 开放源码:您可以获得开放源码的全部优点,比如可以查看代码并让使用库的 每个人检查代码。许多人都可以进行很好的代码检查。 ( 3 ) 与其他ja v a 技术兼容:s 仃u t s 的一个基本设计标准就是一定要兼容面向企业级 应用的j 2 e e 平台规范【1 4 】。 ( 4 ) j s p 标记机制的使用:标记特性从j s p 文件获得可重用代码和抽象j a v a 代码。 这个特性很好地集成到基于j s p 的开发工具中,这些工具允许用标记编写代码。灵活利 用能大大提高开效率。在库中找不到标记可以自己定义。这些标记库支持构建国际化的 应用程序,也支持与输入表单和j a v a b e a n 进行交互。这些标记库使得您不需要在j s p 中进行显式的j a v a 编码,或者说只需进行极少量的编码。 ( 5 ) 丰富的m v c 实现样例:如果您希望创建您自己的m v c 实现,则s 眦s 丰富的 实现样例可增加您的见识。 ( 6 ) 管理问题空间:分治是解决问题并使问题可管理的极好方法。当然,问题越来 越复杂,并且需要越来越多的管理。 缺点: ( 1 ) s 劬t s 是基于w 曲的m v c 解决方案,所以必须用h t m l ,j s p 和s e 州e t 来实 现,适用范围有限。 ( 2 ) 开源项目发展很快,但代码、设计变动比较大,利用不当对系统的后续升级、 维护不利【1 5 】。 大连理工大学专业学位硕士学位论文 ( 3 ) 将问题分为几个部分的同时也引入了复杂性。 ( 4 ) 视图部分的精力主要集中在j s p 上,以l 等多种元素作为视图实现的功能, 需要进一步加强【l 6 。 ( 5 ) 需要w e b l o 西c 等支持j 2 e e 的应用服务器来支持。 2 5 4s t r u t s 的核心组件 s 仇l t s 架构包括如下的核心组件【1 7 1 ,如表2 1 所示。 表2 1s t r u t s 架构的核心组件 t a b 2 1s 由m t s e 、o d 【m o d u l e ( 1 ) a c t i o n s e r v l e t a c t i o n s e l e t 继承自j a v a x s e l e t 1 l t t p h t t p s e l e t 类,在s t n l t s 框架中扮演的角色是 控制器。主要负责将h 郇的客户请求信息组装后,根据配置文件的描述,转发到适当的 处理器。按照s e 1 e t 的标准,所有的s e r v l e t 必须在w e b 配置( w e b 煳1 ) 中声明。用户 向服务器提交请求的时候,实际上信息是首先发送到控制器a 心t i o n s e r v l e t ,一旦控制器 获得了请求,就会将请求信息转交给一些辅助类处理,这些辅助类知道如何去处理与请 求信息所对应的业务操作。在s t r i i t s 中这个辅助类就是o r g a p a c h e s 虮l 招a c t i o n a i 吐i o n 。 通常开发者需要自己继承a c t i o n 类,从而实现自己的a c t i o n 实例。 ( 2 ) a 嘶0 nc l 弱s a c t i o n 类的角色j 就像客户请求动作与业务逻辑处理之间的一个适配器,其功能就 是将请求与业务逻辑分开。这样的分离,使得客户请求和a c t i o n 类之间可以有多个点对 点的映射,而且a c t i o n 类还提供了其它的辅助功能,比如:论证、日志、数据验证。 企业信息发布系统的设计与实现 a “o n 中最常用的方法e x e c u t e 。控制器收到客户的请求后,将请求转发给一个 a c t i o n 实例,如果这个实例不存在,控制器会首先创建一个,然后调用这个a c t i o n 实例 的e x e 咖e 方法【1 8 ,19 1 。 ( 3 ) a c t i o n f o n i l 应用系统的信息转移( 或状态转移) 的非持久性数据存储,是由a c t i o l l f o 肌b e 锄 负责保持的【2 们。a 以o i l f o n n 的主要功能就是为a 砸o n 的操作提供与客户表单相映射的 数据( 如果在客户指定的情况下,包括对数据的校验) 。a c t i o i l f o 姗负责对系统数据状

温馨提示

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

评论

0/150

提交评论