【VC++开源代码栏目提醒】:网学会员VC++开源代码为您提供基于MVC、STRUTS框架、HIBERNATE框架的信息发布系统 - 硕士论文参考,解决您在基于MVC、STRUTS框架、HIBERNATE框架的信息发布系统 - 硕士论文学习中工作中的难题,参考学习。
湖北工业大学硕士学位
论文 摘要 实时信息发布系统属于局域网内的信息发布系统,它采用丰富的交流不但加快了各种信息流转速度,提高了工作人员的效率;而且扩大了知识范围,提高了工作人员的技能。
随着Internet技术的飞速发展,网络信息系统被广泛应用。
信息发布系统,就是指基于web的数据信息发布系统。
随着时间的推移以及实际应用的检验,传统的Web信息系统暴露了很多问题,例如页面逻辑、业务逻辑和数据逻辑柔和在一起,这使得系统的耦合性高,修改、维护比较困难,扩展性也很差。
为克服以上所述问题,新的开发方法也不断被提出来,如软件分层思想,MvC设计模式等等。
本文分析了传统web信息系统的缺点,详细阐述了MvC设计模式思想,剖析了当前被广泛应用的设计框架:Struts和Hibernate的工作原理,就如何构建可维护和可扩展的信息发布系统等问题展开探讨。
根据当前web技术的发展的现状,提出了采用Java环境下实现MVC设计模式的Struts框架和实现数据持久化的Hibernate框架结合起来开发发布系统,这样就提高系统的实用性、灵活性,克服传统web系统的缺点。
基于以上分析提出将二者结合起来实现优势互补共同开发信息发布系统的思路,最后结合了实时信息发布系统模式实现了具有良好可扩展性、实用性和可维护性的信息发布系统。
关键词:MvC,Struts框架,Hibernate框架,信息发布系统 湖北工业大学硕士学位
论文 Abstract T1leReal.Timeinfo册atiOnpublicatiOnsVstembelongstoIANinfo 加atiOnpublicationsVstem,itselectsrichexchangemethods,notonlyspeedsupeachkindofinfb咖atiOnpastingspeed,enh锄cessta任tecluliqe,butalsoexpaJldsl【Ilowledgesharingscope,enhancesstaf! Withtherapiddevelopment0fintemettechIlologv,wfskill ebiIlfomationsystemhasbeeninusewidelv.ThetraditionalinfomationpublicationsystemwhichreferstodigitaliIlfo珊ationpublicationsystemhasconffontedwithmanyseriOuspro.blems,forexampIe,webpagelo舀c、processlogic蛆ddatalo百cmustbestickedtogetherwhichmavcausehighcoupleofsystem、difficultiesofmaintenance、10wexpansibilitv.Justforsolvingtheseproblems,Alotofnewmethodshavebeenbroughtup.fbrexample,sOftwarehierarchytheOryaJldMVCpattem. ThisthesisexplainsdrawbacksoftraditionaliIlfb肌ationpubl icationsVstem,introducesthetheorVofMVCdesignmOdelindetail,statesdesi星皿仃amewOrkusedwidelvnowadaVs:worktheorVofstrutsandhibemate,introduceshowtObuildinfo肌ationpublicationsVstemwithmaintenance、expansibility.Accordingt0recentdevelopmentstateofwebpagetechnology,I舀Vethemethodabouthowinfo咖atiOnpublicationsVstemwithstrutsantodeVelopdhibematecoporatedt0realizemutaladv卸tegies. Finalv, incoporationofrealtimeinfo珊ationpublicationsystemdesi印model,theDaperrealizesinfb皿ationissuesystemwithmainten柚ce、exp卸sibility肌d900d叩plication.Keywords:MVC,StmtSFr锄ework,HibemateFr锄ework,InfomationPublication System Ⅱ 溯班j堂大学 学位
论文原创性声明和使用授权说明
原创性声明 本人郑重声明:所呈交的学位
论文,是本人在导师指导下,独立进行研究工作所取得的研究成果。
除文中已经标明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。
本声明的法律结果由本人承担。
学位
论文作者签名:嚼勇日期:z··Ij『年f 月巧日 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权湖北工业大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位
论文。
学位
论文作者签名:雷声 指导教师签名: 干又舌 日期:)oD墨年争月涉日 日期:工··i年f月t;日 办 湖北工业大学硕士学位
论文 第1章引言1.1研究的目的和意义 随着以电子计算机和数据通讯为标志的信息革命的到来,各项技术不断完善,信息工作的方方面面也发生了巨大的变化,特别是信息手段走上了自动化的道路,极大地提高了信息工作的效率和准确性。
计算机网络作为一种重要的信息手段,将分布在不同地理位置的
计算机联系起来,实现了信息的收集、加工、存贮、传递等各个环节的自动化、高速化、标准化。
通过计算机
网络进行信息发布,能大大提高信息工作的准确性和时效性。
信息发布系统属于局域网内的信息发布系统,它采用丰富的交流方式,不但加快了各种信息流转速度,提高了
工作人员的效率;而且扩大了知识共享范围,提高了工作人员的技能。
目前局域网内的信息发布已经广泛地应用到网络故障报警、办公自动化、即时通信中,使单位工作协同高效、信息透明,实现了信息统一、沟通统一、管理统一。
在实时信息发布系统开发过程中,传统的方法一般是经过需求分析和总体设计,把实时信息发布的各种功能和特性以固定的方式结合在一起,往往形成一个独立的整体系统,在其发布之前就集成了使用特性,但其中的许多特性不能独立地被删除、升级或者替代。
对于其它应用软件,即使是使用同一种编程语言,在同一台机器上运行,也难以共享程序的数据和功能。
用传统的技术开发实时信息发布系统周期长,维护费用也高,并且不同的
软件系统无法真正地复用 就如何构建弱耦合性,可维护和可扩展的信息发布系统等问题展开探讨。
根据当前w曲技术的发展,提出了实现MVC设计模式的Stlllts框架和实现数据持久化的Hibemate框架结合起来开发信息发布系统,提高系统的实用性、灵活性,克服传统的方法的缺点。
1.2本文的主要研究内容 本文通过分析传统Wreb信息
系统的缺点,详细阐述了MVC设计模式思想,剖析了当前被广泛应用的
开源设计框架:StllJts和Hibemate的工作原理,基于以上分析提出将二者结合起来实现优势互补共同开发信息发布系统的思路,结合对信 2 湖北工业大学硕士学位
论文息发布系统所需技术、平台和各种发布方式的深入研究,提出基二j:组件技术的信息发布系统体系结构模型和功能结构模型,并将其应用到具体开发过程,最后结合了DAO和工厂设计模式实现了具有良好可扩展性、实用性和可维护性的信息发布系统.
论文的主要工作如下: (1)阐述本文课题提出的背景及意义,分析当前组件技术和实时信息发布技术发展热点。
(2)研究分析Struts和Hibemate组件技术的各种实现平台。
(3)探讨实时信息发布的相关协议、平台和发布方式。
(4)对各种发布信息进行分析、分类,确定各种信息的发布类型。
(5)提出基于Stmts和Hibemate组件的实时信息发布系统的体系结构模型和功能结构模型,并具体分析总体功能结构中各部分的功能。
(6)以本文提出的模型为参考,开发一个基于stmts和Hibemate组件的实时信息发布系统,采用多种方式完成对实时信息的发布。
1.3
论文的组织 第1章绪论介绍本研究的目的和意义及主要研究内容. 第2章MVC设计模式介绍MvC设计思想、MVC设计模式的实现、MVC设计模式的扩展、MVC的优点、MvC的缺点。
第3章基于MVC的Struts框架介绍Stmts框架的基本概念、MVC与St兀lts框架、Stmts的工作原理、Stmts框架的核心组件、基于MvC的StllJts框架的实现。
第4章Hibemate框架介绍Hibemate持久框架概述、Java持久层技术分析、Hibemate开发的基本技术、Hibemate的配置、Hibemate的持久化、Hibemate的缓存(Cache)机制、Hibemate的分页机制。
第5章系统总体结构和功能设计介绍系统的体系结、用户登录模块设计、系统的总体功能结构。
第6章实时信息发布系统的设计及实现介绍系统概述、信息分析、接口的设计、系统数据库设计、系统Stmts和Hibemate构架模型设计、Stnlts和Hibemate构架间的
通信。
第7章总结与讨论介绍本文得出的结论、进一步研究的方向。
3 湖北工业大学硕士学位
论文 第2章MVC设计模式2.1MVC设计思想 MVC模式是”Model.Ⅵew.Controller”的缩写,中文翻译为”模式.视图.控制 器”。
MvC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。
smalltalk语言和java语言有很多相似性,都是面向对象语言。
MVC模式是一种架构模式,其实需要其他模式协作完成。
设计模式的概念最初来自于城市建筑专家Christopher|舢ex龃der对建筑模式的定义:“每一个模式描述了一个在人们周围不断重复发生的问题,以及该问题解决方案的核心。
这样,你就能一次又一次地使用该方案而不必做重复劳动。
”把以前经常遇到的问题进行归纳总结,得出通用的解决方案,就形成了设计模式。
一般而言,一个设计模式有四个基本要素: 1.模式名称(PattemName) 一个助记名称,它用一两个词来描述模式的问题,解决
方案和效果。
模式名可以帮助我们思考,便于我们与其他人交流设计思想和
设计结果。
2.
问题口roblem) 描述应该在何时使用设计模式。
它解释了问题和问题存在的前因后果,描述了特定问题以及相应的类或对象结构,有时还包括使用模式所必须满足的一系列先决条件。
3.解决方案(Solutio n) 描述设计的组成成分,它们之间的相互关系及各自的职责和协作方式。
因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎么用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。
4.效果(Consequene es) 描述模式应用的效果及使用模式应权衡的问题。
尽管设计时并不常提到模式效果,但它对评价设计的选择和理解使用模式的代价及好处都具有重要意义。
MVC应用程序由这三个部分组成。
EVent(事件)导致Controller改变Model或Ⅵew,或者同时改变两者。
只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。
类似的,只要Controller改变了Ⅵew,View会从潜在的Model中 4 湖北工业大学硕士学位
论文获耿数据来刷新自己。
MVC模式是一个复杂的架构模式,其实现也显得非常复杂。
但是,我们已经终结出了很多可靠的设计模式,多种设计模式结合在一起,使MVC模式的实现变得相对简单易行。
Ⅵews可以看作一棵树,可以用CompositePattem来实现。
Ⅵews和Models之间的关系可以用ObseⅣerPattem体现。
C0ntroller控制Views的显示,可以用StrategyPattem实现。
Model通常是一个调停者,可采用MediatorPattem来实现。
MVC英文即Model.view.C彻troller,即把一个应用的输入、处理、输出流程按照Model、Ⅵew、Controller的这三种方式进行分离,这样一个应用被分成三个层次——模型层、视图层、控制层。
视图mew)代表用户交互界面,对于W曲应用来说,可以概括为HTML 界面,但有可能为xmML、XML等。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MvC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)处理。
模型(Model):就是业务流程/状态的处理以及业务规则的制定。
业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MvC最主要的核心。
它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。
它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。
对一个开发者来说,就可以专注于业务模型的设计。
MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。
抽象与具体不能隔得太远,也不能太近。
MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。
我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。
这点对编程的开发人员非常重要。
业务模型还有一个很重要的模型那就是数据模型。
数据模型主要指实体对象的数据保存。
控制(C0ntroller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。
划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。
控制层并不做任何的数据处理。
例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选 5 湖北工业大学硕士学位
论文择符合要求的视图返回给用户。
因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。
因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。
这实际上是一种模型的变化.传播机制。
模型、视图、控制器三者之间的关系和各自的主要功能,如图2.1所示。
——————■方法调用………一■事件 图2.1MVC组件类型的关系和功能2.2设计模式的实现 ASP.NET提供了一个很好的实现这种经典设计模式的类似环境。
开发者通过在ASPX页面中开发用户接口来实现视图;控制器的功能在逻辑功能
代码(.cs)中实现;模型通常对应应用系统的业务部分。
在ASP.NET中实现这种设计而提供的一个多层系统,较经典的ASP结构实现的系统来说有明显的优点。
将用户显示(视图)从动作(控制器)中分离出来,提高了
代码的重用性。
将数据(模型)从对其操作的动作(控制器)分离出来可以让你设计一个与后台存储数据无关的系统。
就MVC结构的本质而言,它是一种解决耦合系统问题的方法。
6 湖北工业大学硕士学位
论文2.2.1视图 视图是模型的表示,它提供用户交互界面。
使用多个包含单显示页面的用户部件,复杂的Web页面可以展示来自多个数据源的内容,并且网页人员,美工能独自参与这些web页面的开发和维护。
视图的实现很简单。
可以像开发w工NDowS界面一样直接在集成开发环境下通过拖动控件来完成页面开发本。
本文中介绍每一个页面都采用复合视图的形式即:一个页面由多个子视图(用户部件)组成;子视图可以是最简单HTML控件、服务器控件或多个控件嵌套构而成的web自定义控件。
页面都由模板定义,模板定义了页面的布局,用户部件的标签和数目,用户指定一个模板,平台根据这些信息自动创建页面。
针对静态的模板内容,使用缺省的模板内容配置;针对动态的模板内容(主要是业务内容),由于用户的请求不同,只能使用后期绑定,并且针对用户的不同,用户部件的显示内容进行过滤。
使用由用户部件根据模板配置组成的组合页面,它增强了可重用性,并原型化了站点的布局。
视图部分大致处理流程如下:首先,页面模板定义了页面的布局;页面配置文件定义视图标签的具体内容(用户部件);然后,由页面布局策略类初始化并加载页面;每个用户部件根据它自己的配置进行初始化,加载校验器并设置参数,以及事件的委托等;用户提交后,通过了表示层的校验,用户部件把数据自动提交给业务实体即模型。
这一部分主要定义了W朗页面基类PageBase;页面布局策略类PageLayout,完成页面布局,用于加载用户部件到页面;用户部件基类UserContr01Base即用户部件框架,用于动态加载检验部件,以及实现用户部件的个性化。
为了实现wEB应用的灵活性,视图部分也用到了许多配置文件例如:置文件有模板配置、页面配置、路径配置、验证配置等。
2.2.2控制器 为了能够控制和协调每个用户跨越多个请求的处理,控制机制应该以集中的方式进行管理。
因此,为了达到集中管理的目的引入了控制器。
应用程序的控制器集中从客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么商业逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的视图组件。
7 湖北工业大学硕士学位
论文 用控制器提供一个控制和处理请求的集中入口点,它负责接收、截取并处理用户请求;并将请求委托给分发者类,根据当前状态和业务操作的结果决定向客户呈现的视图。
在这一部分主要定义了HttpReqDispatcher(分发者类)、HttpCapture(请求捕获者类)、Controller(控制器类)等,它们相互配合来完成控制器的功能。
请求捕获者类捕获HTTP请求并转发给控制器类。
控制器类是系统中处理所有请求的最初入口点。
控制器完成一些必要的处理后把请求委托给分发者类;分发者类分发者负责视图的管理和
导航,它管理将选择哪个视图提供给用户,并提供给分发资源控制。
在这一部分分别采用了分发者、策略、工厂方法、适配器等设计模式。
2.2.3模型 MvC系统中的模型从概念上可以分为两类一一系统的内部状态和改变系统状态的动作。
模型是你所有的商业逻辑
代码片段所在。
本文为模型提供了业务实体对象和业务处理对象:所有的业务处理对象都是从ProcessBase类派生的子类。
业务处理对象封装了具体的处理逻辑,调用业务逻辑模型,并且把响应提交到合适的视图组件以产生响应。
业务实体对象可以通过定义属性描述客户端表单数据。
所有业务实体对象都EntityBase派生子类对象,业务处理对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。
通过业务实体对象实现了对视图和模型之间交互的支持。
实现时把”做什么”(业务处理)和”如何做”(业务实体)分离。
这样可以实现业务逻辑的重用。
2.3MVC设计模式的扩展 MvC模式编写的,具有极其良好的可扩展性。
它可以轻松实现以下功能: ①实现一个模型的多个视图; ②采用多个控制器; ③当模型改变时,所有视图将自动刷新; ④所有的控制器将相互独立工作。
这就是MVC模式的好处,只需在以前的程序上稍作修改或增加新的类,即可轻松增加许多程序功能。
以前开发的许多类可以重用,而
程序结构根本不再需要 8 湖北工业大学硕士学位
论文改变,各类之|、日J相互独立,便于团体开发,提高开发效率。
下面讨论如何实现一个模型、两个视图和一个控制器的程序。
其中模型类及视图类根本不需要改变,与前面的完全一样,这就是面向对象编程的好处。
对于控制器中的类,只需要增加另一个视图,并与模型发生关联即可。
该模式下视图、控制器、模型三者之间的示意图如图2.2所示。
图2.2视图、控制器、模型三者之间的关系 同样也可以实现其它形式的MVC例如:一个模型、两个视图和两个控制器。
从上面可以看出,通过MVC模式实现的应用程序具有极其良好的可扩展性,是ASP.NET面向对象编程的未来方向。
2.4MVC的优点 大部分用过程语言比如ASP、PHP开发出来的web应用,初始的开发模板就是混合层的数据编程。
例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。
产品设计弹性力度很小,很难满足用户的变化性需求。
MvC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。
首先,最重要的是应该有多个视图对应一个模型的能力。
在目前用户需求的快速变化下,可能有多种方式访问应用的要求。
例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。
按MVC设计模式,一个订单模型以及多个视图即可解决问题。
这样减少了
代码的复制,即减少了
代码的维护量,一旦模型发生改变,也易于维护。
其次,由于模型返回的数据不带任何显示格式,因而这些模型也可 9 湖北工业大学硕士学位
论文直接应用于接口的使用。
再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。
一个应用的业务流程或者业务规则的改变只需改动MvC的模型层。
控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。
晟后,它还有利于软件工程化管理。
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序
代码。
2.5MVC的缺点MvC的不足体现在以下几个方面: (1)增加了系统结构和实现的复杂性。
对于简单的界面,严格遵循MvC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
(2)视图与控制器间的过于紧密的连接。
视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
(3)视图对模型数据的低效率访问。
依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。
对未变化数据的不必要的频繁访问,也将损害操作性能。
(4)目前,一般高级的界面工具或构造器不支持MvC模式。
改造这些工具以适应MvC需要和建立分离的部件的代价是很高的,从而造成使用MvC的困难。
10 湖北工业大学硕士学位
论文 第3章基于MVC的struts框架的研究3.1Struts的基本概念 MvC的提出最早源于JSP的标准。
在1998年10月7号,Sun发布的JSP的0.92的规范中提出的Model2就是MVC的原型。
在1999年12月JavaWorld的大会中,GavindSeshadri的文章最早阐述了就是一种MvC的架构,同时也提有了MvC架构是一种最好的开发方法。
2000年3月,由CraigMcClanahan发布的成为了最早支持MvC的框架。
Struts应用范围极广,可以用在不同的项目和不同的行业。
Struts目的是为了帮助开发人员减少用MvC设计模式来开发web应用的时间。
Struts按照MvC模式的思想,提供了一种创建Web应用程序的框架,对应用程序的界面表示和数据的后端逻辑处理
代码进行了抽象,整合了Servlets和JSP在Web应用开发上的优势以建立灵活、扩展性强、利用程度高的应用系统。
Struts是实现MVC模式的一个优秀的应用框架。
Struts具有以下一系列优点:(1)具有MvC模型的所有特性和优点;(2)简化了基于MvC的应用程序的开发;(3)提供了很多对象实现MvC的基本特.