毕业设计(论文)基于Webwork框架与Hibernate持久层框架的中国父母网的设计_第1页
毕业设计(论文)基于Webwork框架与Hibernate持久层框架的中国父母网的设计_第2页
毕业设计(论文)基于Webwork框架与Hibernate持久层框架的中国父母网的设计_第3页
毕业设计(论文)基于Webwork框架与Hibernate持久层框架的中国父母网的设计_第4页
毕业设计(论文)基于Webwork框架与Hibernate持久层框架的中国父母网的设计_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

1、广西师范学院2008届本科毕业设计基于webwork框架与hibernate持久层框架的中国父母网的设计与实现广西师范学院信息技术系 摘 要 本文初步地分析了分层体系结构的思想,简单地阐述了多层软件与mvc设计模式的对应关系,详细剖析了当前在java世界中被广泛应用的开源web设计框架:webwork框架和hibernate框架的工作及其实现原理。基于以上分析笔者就将二者结合起来实现软件分层体系结构的结构思想,并综合其技术优势开发中国父母网。利用webwork框架技术和hibernate持久层技术开发的中国父母网,使得对信息的管理更加及时、高效,提高了工作效率。同时对网站的开发原理、网站的功能

2、特点和设计方案进行了介绍。 关键词 分层体系结构;webwork框架;hibernate持久层;mvc;c/s;b/s;中国父母网;动态网站the research on and practice of webwork frame and hibernate lasting layer in web of chinese parentsinformation management and information system major zhou guangabstract:the paper analyses primarily the ideology of the software de

3、lamination system structure; expounds simply the corresponding connection of multilayer software and mvc design mode; anatomises particularly the design framework of opensymhony web applied abroadly in java nowadays: working and achieving theory of webwork framework and hibernate framework. based on

4、 the above analysis we have put both forward for achieving the design ideology of the software delamination system structure, and colligate the technological advantages to develop the web of chinese parents. the web of chinese parents has used webwork framework technology and hibernate lasting layer

5、 technology to develop,more betimes and high efficiently to manage information,so it improves the work efficiency.at the same time, this paper has included the introduction of the exploitation theory of web, the funtional features of web and design scheme.key words:software layered architecture;webw

6、ork framework; hibernate lasting layer; mvc; c/s;b/s;web of chinese parents;dynamic web1引言随着互联网的飞速发展,有关网络的技术也层出不穷。网络技术,正深入到人们生活的每一部分,人们从internet上获取信息、享受生活、交流感情、网上办公等。从静态网页到动态网页的变化也正说明了这一点。掌握动态网页的基本知识,以及动态网页设计原则和设计过程就显得尤为重要。web开发技术是internet应用的一个重要方面,而jsp又是web开发的最先进的技术,是当前web开发人员的首选技术。但是由于jsp对web开发人员要

7、求较高,所以许多一般的web开发人员还不能够使用这一项先进的技术。中国父母网采用j2ee框架技术中的webwork框架和hibernate持久层框架来实现软件的分层体系结构,在java技术中有许多方法可以对数据进行持久化,持久层也是java应用程序中最重要的部分之一。hibernate作为一个成熟且强大的持久层框架,集诸多持久层设计思想之大成,是一种orm(对象关系映射)映射工具,能建立面向对象的域模型与关系模型之间的映射1。webwork框架在国内虽然还不是很成熟,但由于webwork的轻量级以及非常棒的一些设计,迅速地被国内开发人员所认可。这里所说的中国父母网,其实是一种针对父母与孩子的“

8、信息浏览”,即你可以在网上大量提供这方面信息的“信息巷”中,阅读自己所感兴趣的信息。2 需求分析 如今有关父母的网站也是网络服务的一大热点,诸如中国妈妈网2,为人父母网3,天下父母网,等等,都是提供这方面服务信息的网站。然而,中国父母之多,天下父母之多,仅仅这几个专门网站给父母提供信息或许还是不够的,因此,几乎各大著名门户网站也提供了此类服务,笔者对这个话题也甚感兴趣,于是也运用自己所学到的知识,创建一个中国父母网网站。本网站采用web技术,b/s模式,直观易操作,具有较高的可移植性、可维护性和再开发能力。2.1 经济可行性分析中国父母网是笔者以实现分层体系结构的网站设计思想而设计的一个应用网

9、站,该网站把文章发布系统、用户管理系统的框架搭建起来。开发工具是笔者自己所拥有的个人电脑,上网查资料的费用也是1元每天,但笔者很可能需要在网络上申请一个jsp服务器,以方便把自己做出来的网站在互联网上运行,让中国所有的网民都可以参阅中国父母网。2.2 技术可行性分析中国父母网采用j2ee框架技术中的webwork框架和hibernate持久层框架来实现软件的分层体系结构,在java技术中有许多方法可以对数据进行持久化,持久层也是java应用程序中最重要的部分之一。hibernate作为一个成熟且强大的持久层框架,集诸多持久层设计思想之大成,是一种orm(对象关系映射)映射工具,能建立面向对象的

10、域模型与关系模型之间的映射。webwork框架在国内虽然还不是很成熟,但由于webwork的轻量级以及非常棒的一些设计,迅速地被国内开发人员所认可。2.3 社会环境可行性分析俗话说:狗不嫌家贫,母不嫌子丑!每一对父母都为孩子而活着,再苦不能苦孩子,再穷也要富孩子。所以我们要学会感恩,感谢父母亲给了我们鲜活的生命。而在internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。 伴随着社会的发展和科学的进步,上网获取信息逐渐成为越来越多人们的选择。在21世纪的今天,几乎家家户户都拥有个人电脑了,而且在家里都可以与互联网互通

11、,不论是父母还是孩子,都喜欢上网浏览网站。对于父母来说,除了一些工作需要查阅资料外,更多的还是浏览一些有关父母方面的信息。目前,给父母提供一些生活信息的网站有中国妈妈网,天下父母网,或许还有其他的网站。对于孩子来说,父母给了我们生命,所以我们要学会感恩,多掌握一些孝敬的知识,回报我们的父母。因此,中国父母网的设计与开发是非常必要的。2.4 网站需求分析基于以上可行性分析,也就是有了经济可行性、技术可行性、社会环境可行性后,笔者将对中国父母网站的需求进行分析与调查。通过笔者对网站需求分析,要求网站有以下功能:1 要求网站有良好的人机操作界面,因为要意识到客户的计算机基础知识有限;2 要求有较好的

12、权限管理,明确各自的工作范围,因为本网站处理的信息较多,使用对象复杂,有超级管理员,文章管理员,中国父母网注册会员,游客;3 要求所设计的数据库有很好的健壮性和安全性,虽然本系统的数据量并不是很多,但都是比较重要的一些数据,这也是为了注册会员个人资料的保密安全。又通过笔者对用户的需求调查,虽然中国父母网是一个比较简单的应用网站,但也分为后台管理和前台管理两部分。后台包括文章的上传与编辑,图片的上传与编辑,用户的管理,用户文章的审核,公告的操作管理等功能。前台包括文章与图片的显示,文章搜索功能,供广大网友浏览阅读。 在中国父母网中,我把内容主题(即栏目)主要划分为七个部分,当然还可以再添加,因为

13、本网站的主题栏目是动态添加的。目前最主要的主题栏目有:父母小麦粥、感恩父母、百孝学堂、父母休闲居、父母直通车、父母小插曲、留言板,每个栏目下还可以分出多个子栏目。本网站就是基于这个需求进行设计与开发。3 所用技术介绍3.1 分层体系结构技术在网站设计开发中,有两个极其重要的概念,那就是业务逻辑和数据持久化4。可以说,网站应用是围绕着业务逻辑进行开展的。从业务逻辑的底层实现来看,业务逻辑其实是对业务实体进行组织的过程。 另一个非常重要的概念就是数据持久化。持久化就是将业务逻辑层中的状态数据保存到特定的数据库中,应用网站中的大部分数据都是需要可持久化的,因此,如何对业务数据进行持久化就显得特别的重

14、要4。根据应用网站的大小和设计者或开发者的选择,数据持久化也有好多种途径,比如早期的文件系统、数据库等。目前最为流行的持久化机制便是数据库,而最为普遍的是通过rdbms(关系数据库)进行业务状态的持久化。为了能够更有效地对应用网站中的各种逻辑进行有效的组织,可使用应用分层技术来实现具体的网站开发。应用分层在计算机领域中有着悠久的历史,计算机的实现中就应用了分层的概念。笔者在读大二时上过的计算机网络课程以及大三暑假在广西大学思科学院进行的ccna培训中,就详细地介绍了计算机的分层结构。最常见的模型是由国际标准化组织(international organization for standardi

15、zation,iso)所定义的 osi 7 层模型(osi 7 layer model),如图3-1所示:应用层表示层会话层传输层数据链路层网络层物理层·提供用户接口·数据表示·数据处理,比如加密·维持不同应用层程序的会话连接和数据分隔图3-1 osi 7 层模型从图中可以看出,应用分层可以使层次逻辑更加清晰,并且实现了一定程度的解耦,综合上面的考虑,也可以把软件应用分为多个层次3.1.1 层次结构4在20世纪90年代,基于c/s架构的系统不断增加,使得分层的概念开始流行起来,在那个时候,两层结构占据着很重要的位置:客户端是一些用户界面和应用代码,而服务

16、器端则通常是一个关系数据库,如常见的使用vb、powerbuilder和delphi语言开发的访问数据库的应用程序都属于这种两层结构。这些工具使基于数据的应用网站开发变得非常的容易,只需通过简单的拖曳和属性填写就可以实现界面组件和数据库之间的连接,比如微软的visual studio 2005,笔者曾用c#写了一个基于c/s模式两层结构的打印机信息管理系统,就将它应用到了生活中。两层体系结构一直到现在还广泛应用着,如果软件应用的主要功能是实现关系数据的展现和简单的更新等操作,那么c/s架构的软件系统和网站系统都能够很好地满足要求。但问题是随着业务逻辑的出现,如何进行业务逻辑的处理、校验、计算等

17、诸如此类的问题。这时,通常是将这些需求实现到客户端,也就是将业务逻辑绑定到了用户界面代码中间。当业务逻辑变得越来越复杂的时候,客户端的代码变得越来越难于维护,甚至,绑定业务逻辑的客户端代码复制得到处都是,致使简单的需求改变了但却不得不找遍所有的客户端代码来进行修改,这样岂不是很麻烦了吗?那有其他的解决方法吗?或许,你会想到另外一种方式是将业务逻辑作为存储过程绑定到数据库中间。但是,存储过程同样导致了软件系统对数据库的依赖;人们之所以采用关系数据库是因为sql语言是独立于特定数据库的数据查询标准,这使得更换更合适的数据库厂商变得非常的容易。在c/s应用变得越来越流行的时候,面向对象领域在不断的发

18、展壮大过程中,针对c/s应用的缺点,面向对象的思想提出了三层体系结构:表示层负责处理界面,业务层负责业务逻辑,再加上持久层(数据库或者数据源)。但由于两层架构转变到三层架构并不是那么容易,因此三层体系理论在过去很长一段时间内没有得到切实的发展。随着互联网的发展与普及,人们需要将c/s应用能够通过浏览器进行访问。然而,如果所有的业务逻辑都在客户端,那么客户端业务逻辑必须要重新实现一套来支持基于web的界面,而一个设计良好的三层体系结构只需要增加一个新的表示层就可以满足这个要求。由此,三层架构应运而生,三层体系结构将应用划分为3个层次,如果图3-2所示:表示层业务逻辑层数据库层图3-2 三层架构表

19、示层:是基于html和网页浏览器(以下简称浏览器)的web程序。它主要的责任是向用户展现信息以及处理用户请求,例如鼠标单击、内容输入、http请求等。业务逻辑层:实现各种业务逻辑。职责包括处理业务逻辑和存储业务数据,校验从表示层传过来的数据,通过表示层提交的命令来执行相应的业务逻辑。数据库:负责存放和管理应用的持久性业务数据。在本应用网站中,采用关系数据库中保存了用户信息,管理员信息,文章信息等业务数据,因为关系数据库(rdbms)是目前最为流行的数据库。由图中的箭头可以看出三层架构之间的依赖关系,表示层把页面中的数据或请求传到业务逻辑层,再由业务逻辑层传到数据库层。基于三层架构的应用,笔者也

20、曾按照参考书的例子改写过一个网站论坛,是三层架构的04信管班论坛,有经验的开发者看了这个论坛的代码后说代码太乱了,而且在jsp页面中有太多的java代码,不利于网站的维护,他们建议用四层结构来写。笔者还是第一次听到四层结构,因为当时笔者认为三层结构就是mvc,后来笔者认真学习j2ee的框架技术,从网上了解了很多j2ee的知识和技术,才明白mvc与三层结构是不能划等号的。从中也了解到了软件应用其实不只是有两层结构,三层结构,还可以分出四层结构,甚至n层结构。四层结构是在三层结构的基础上,把业务逻辑层划分出一个持久层来,在java世界中,用于持久层的框架技术有很多,最具代表性的还是笔者比较熟练使用

21、的hibernate框架,本网站也是用hibernate框架作为持久层框架的关键技术。四层结构将应用划分为4个层次,如图3-3所示: 持久层数据库层图3-3 四层架构业务逻辑层表示层 表示层、业务逻辑层、数据库层在前面也讲解过,现在着重讲解一下持久层。数据持久层的设计目标是为了整个软件系统提供一个高层、统一、安全和并发的数据持久化机制,完成对各种数据库进行持久化的编程工作,并为系统业务逻辑提供报务。数据库持久层提供了数据访问访问方法,能够使其他程序员避免手工编写程序访问数据层持久层,使其专注于业务逻辑的开发,并且能够在不同项目中重用映射框架。这样就大大简化了数据增删改查等功能的开发过程,同时又

22、不丧失多层结构的天然优势,继承延续j2ee特有的可伸缩性和可扩展性5272。 从开发者的角度来看,使用持久层技术的更为明显的原因是:在java的数据库编程过程中,从前期的系统分析和设计,到之后的java编程等使用的都是面向对象的思想,但是由于数据是关系型的非面向对象技术,所以在数据层编程时,开发者都会变得非常痛苦,他们需要编写面向过程的sql语句5272。3.1.2 mvc设计模式与分层架构web应用开发框架的最重要的一个任务就是支持逻辑, 内容, 表示相分离的理念。如果没有做到这一点, 通常会导致维护上的问题, 还会使应用的开发变得更加困难。达到分离目的的一般方法是采用mvc(model-v

23、iew-controller)设计模式,该模式鼓励使用分离的代码来处理模型(model, 即“业务逻辑”), 控制器(controller, 即“应用逻辑”)和视图(view)。web应用程序中的mvc事件流如图3-4所示:请求请求请求请求请求y actionview.jspzactionweb浏览器xaction请求请求请求图3-4 页面控制器mvc模式的控制面板的实现mvc里的m可以用来在三层中间传递数据, v就是三层里的表示层, c就是业务逻辑层,mvc架构实现了三层结构中的两层,即表示层和业务逻辑层,另外还有一层被称之为持久化层。表现层实现的代表框架是struts,在笔者的设计中采用w

24、ebwork来实现,业务层实现的代表构架是spring,持久层实现的代表框架是hibernate。不过在笔者的设计开发中spring被省掉了,因为笔者认为业务比较简单,还不至于用spring来实现,还是采用webwork来实现。经曲mvc设计模式与三层架构之间的对应关系如图3-5所示:视图(v)控制器(c)模型(m),可以用在三层之间传递数据数据库层业务逻辑层表示层mvc设计模式三层应用结构图3-5 经曲mvc设计模式与三层架构之间的对应关系3.1.3 分层架构的特点在前文对分层结构的的分析中可以知道分层的目的就是为了隔离各个层之间的耦合,并划分各个层之间的职责关系。有经验的开发者在进行架构设

25、计时适当地采用分层来搭建基础的应用环境,分层架构具有以下优点:1.伸缩性 各个层实现的方式都依赖于这个特性。满足业务增长的需要来提高系统的性能时,需要一个设计合适的分层系统,可以在压力大的层增加机器来增加其负载能力。显而易见的一个例子就是,在原有的系统中在进行数据库操作时,需要每一个客户端都建立一个数据库连接,而三层架构通过数据库连接池机制,可以利用少量的数据库资源来满足大量的用户请求的需要。另外,如果要改善可伸缩性、容错和性能,可以通过各个层的集群,实现大容量的应用服务,将层分布在多个物理层上。2.可维护性可维护性指的是当发生用户需求变化,只需修改应用软件或网站的某一部分,不会影响其他部分的

26、代码。层数越多,可维护性也会不断提高,修改软件的某一层的实现,不会影响其他层。3.可扩展性通过分层,可以实现新功能的增加而不会影响其他层的实现。只有在影响原有实现的接口时,才有可能影响到各个层之间的关系。4.可重用性可重用性指的是程序代码没有冗余,同一个程序能满足多种需求。例如,业务逻辑层可以被多种表示层共享,既支持基于gui界面的表述层,也支持基于web页面的表示层。重用性和松耦合是有联系的,都是为了达到同一个实现能够满足多种应用需求的目的。例如,业务逻辑层能够被web、wap等多种表示层实现调用;同样,业务逻辑层在调用数据层时并不需要了解其对数据库的依赖。在应用的规模较小、业务逻辑简单的情

27、况下,适当的简化分层架构会带来开发效率和沟通上的提高。当然,这个架构的选择也依赖于具体的应用环境,设计开发者应当慎重选择其软件系统架构。3.2 j2ee web 框架技术介绍3.2.1 什么是j2ee j2ee是一种利用java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构6。j2ee技术的基础就是核心java平台或java 2平台的标准版,j2ee不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的jdbc api、corba技术以及能够在internet应用中保护数据的安全模式等等,同时还提供了对 ejb(enterprise javabe

28、ans)、java servlets api、jsp(java server pages)以及xml技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。 j2ee体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,j2ee降低了开发多层应用的费用和复杂程度,同时提供对现有应用程序集成强有力支持,完全支持enterprise javabeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。3.2.2 j2ee框架技术jboss创始人之一和webwork的创造者ri

29、ckard曾经说过:“框架的强大之外不是源自它能让你做什么,而是它不能让你做什么78。”他所说的话解释了什么是框架:框架使混乱的东西变得结构化。而web应用程序框架则鼓励开发人员使用一系列框架所提供的基础类和类库,从而避免杂乱的jsp所造成的混乱。webwork in action对框架作了一个很好的比喻:“框架就像是一间有很多屋梁的房子,当你需要扩建房子的时候,譬如增加新的房间、窗户和过道或者在卧室增加一个壁炉,由于屋梁的限制,你并没有什么其他的选择,虽然较少的屋梁和架构会让有更多的选择,但是当台风来袭或者发生地震的时候,你让家人住在这样一间只有屋顶的房子里,恐怕不会觉得安全吧。总之,框架是

30、在结构和创造力之间的一个精确的天平。78”开源框架(如mvc框架struts、or mapping框架hibernate、log框架log4j等)的出现极大地提高了j2ee应用程序开发的效率,但它们都只提供了应用程序某一层次的框架,不是一个完整的应用框架。应用框架是整个系统的可重用设计,是构建应用程序的模板,它本质上是一系列设计模式的抽象实现,并提供一些框架基础服务。在整合各种框架的基础上,我们在一个更高的层面上设计和实现了一个j2ee web开发框架。该开发框架具有良好的软件体系结构,采用了多种架构设计模式(如多层结构、mvc模式、ioc模式等),保证了程序具有松耦合性和易扩展性,并提供了一

31、些常用的可复用构件,实现了web应用系统的基础功能。它可以帮助开发人员获得最大程度的框架复用,快速开发应用系统或者开发应用网站3.2.3 hibernate持久层框架技术hibernate是一种java语言下的对象关系映射解决方案。 它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于sql 的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。hibernate是一个开放源代码的对象关系映射框架,它对jdbc进行了轻量级的对象封装,使得java程序员可以使用对象编程思维来操纵数据库。hibernate可以在应用ejb的j2ee架构中取代cmp

32、,完成数据持久化。它还可以应用在任何使用jdbc的场合,既可以在java的客户端程序实用,也可以在servlet/jsp的web应用中使用。在本设计与开发中,就采用hibernate框架实现数据库持久层。hibernate 不仅管理java 类到数据库表的映射(包括从java数据类型到sql数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用sql 和jdbc 处理数据的时间8。3.2.4 webwork框架技术webwork由opensymphony(开源)组织开发,致力于组件化和代码重用的拉出式mvc模式j2ee web框架7。 由于webwork的轻量级以及非常

33、棒的一些设计,迅速地被全球开发人员所认可。webwork具有下列优点: 1功能强大的标签库,并且可以在标签里直接调用action方法(可以带参数的),直接访问类的静态属性和静态方法; 2实现服务器端及客户端验证。很多设计人员可能忽略了服务器端验证,过多地运用客户端验证即javascript。这样,当我们在浏览器上屏蔽javascript运行时,就可能造成系统瘫痪; 3插件的支持。webwork的插件应归功于其拦截器(aop编程),它的很多功能框架都是通过拦截器来组装的(如验证、国际化、ioc等),并且与其它项目的集成也更加容易,这让webwork非常灵活,使得开发人员很容易解决复杂的页面逻辑和

34、程序逻辑; 4支持多视图表示,视图部分可以使用jsp,velocity,freemarker,jasperreport等。3.3 log4j技术log4j技术是apache的一个开放源代码项目,通过使用log4j,我们可以控制日志信息输送的记录;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码9。 使用log4j的好处在于: 1 通过修改配置文件,就可以决定log信息的目的地控制台、文件、gui组件、甚至是套接口服务器、nt的事件记录器、unix sysl

35、og守护进程等 ;2  通过修改配置文件,可以定义每一条日志信息的级别,从而控制是否输出。在系统开发阶段可以打印详细的log信息以跟踪系统运行情况,而在系统稳定后可以关闭log输出,从而在能跟踪系统运行情况的同时,又减少了垃圾代码(system.out.println(.)等); 3 使用log4j,需要整个系统有一个统一的log机制,有利于系统的规划。3.4 java验证码技术现在很多网站或系统都使用验证码技术,主要是为了安全性考虑,防止用户使用程序自动机进行自动提交注入,避免服务器交互处理遭受不必要的攻击。其主要思想是必须通过人为参与完成信息提交过程,并且对验证码字体做

36、了相关处理,因为对于目前的技术发展来说,验证码的计算机自动识别还不太容易(不是没有可能)。虽然现在有些技术可以绕过验证码输入这一关,但使用验证码技术,也还是对其有一定的制约作用,并且主要的是对网站的信息安全还是起到了显著的保护屏障的作用10,11。4 系统设计4.1总体设计4.1.1 网站功能划分网站功能模块如图4-1所示 :图4-1 网站功能模块中国父母网超级管理员后台管理系统文章管理员后台管理系统用户个人后台管理系统用户管理员管理文章,评论管理公告管理图片管理文章管理公告管理图片管理文章管理个人资料修改图片上传后台:增删改查留言板栏目类别管理栏目类别管理用户注册,登录前台 前台管理模块:用

37、户在线注册,成为中国父母网网友,非中国父母网网友也可以浏览信息,并且可以在留言板进行留言 后台管理模块:分超级管理员,文章管理员,个人用户后台管理三个部分,每个部分的功能都不一样,是根据用户角色进入到后台管理中心的。4.1.2 网站用例分析设计通过4.1.1小节的功能模块划分,还获知了用户、管理员的具体业务需求以及网站后台管理中心中存在的角色,下面将根据功能模块和角色建立业务模型。用例图(use case)是一种常用的建立业务模型的方式,根据功能划分的模块,可能得到整个网站的业务用例图,如图4-2所示:注册成为中国父母网会员管理员普通网友登录中国父母网浏览本站所有文章信息搜索本站文章会员个人后

38、台管理中心后台管理中心发布文章留言,评论修改资料上传图片审核文章添加删除管理员查看删除用户资料添加删除公告图4-2 中国父母网用户例图从这个用例图可以看到该网站主要有三个角色,分别是普通网友,会员,管理员,这三个角色分别进行了不同的操作,根据这些操作建立相应的用例,我将其他划分为7个用例,分别是: 普通网友注册用例; 普通网友浏览信息用例; 普通网友搜索文章用例; 普网友留言评论用例; 会员登录用例; 会员个人后台管理用例; 管理员后台管理中心用例;4.2 中国父母网开发环境(1) cpu:tntel;(2) 内存:1gb;(3) 操作系统:microsoft windows xp sp2;(

39、4) 开发平台:sun jdk1.5;(5) 关系数据库:microsoft sql server 2000 简体中文版 + microsoft sql server 2000 service pack4简体中文版;(6) 应用服务器:tomcat 5.5.20;(7) jdbc驱动程序包:msbase.jar + mssqlserver.jar + msutil.jar。4.3中国父母网工程的建立在环境都配置好后,就开始建立工程了。建立好后的结构图如下所示:图4-3:图4-3 中国父母网网站工作结构示意图4.3.1 中国父母网工程中包的简要说明g.thesis.prj.zgfm

40、,指的是,广西师范学院.毕业生.论文.项目.中国父母网,这是项目中总的包,下面简要说明一下,各个包的含义。 g.thesis.prj.zgfm.dao 存放各个业务逻辑层的接口类别; g.thesis.prj.zgfm.dao.impl 存放各个业务逻辑层接口的实现类; g.thesis.prj.zgfm.filter 存放过滤器类; g.thesis.prj.zgfm.listener存放监听器类; g.thesis.prj.zgfm.hibernate 存放hibernate公共类; g.thesis.pr

41、j.zgfm.juit 存放整个应用程序中对业务逻辑的测试类; g.thesis.prj.zgfm.model 存放javabean类,该类只包含一些属性及getter/setter方法; g.thesis.prj.zgfm.webapp.util 存放整个应用程序中一些公共类; g.thesis.prj.zgfm.webwork.action 存放webwork中控制部分的类。4.3.2 中国父母网工程中的mvc结构 视图部分如表4-4所示:组成部分文件名或类名或包名功能jsp或html*.jsp动态交互页面*.htm静态页面表4-

42、4 中国父母网视图部分 控制部分如表4-5所示:组成部分文件名或类名或包名功能web容器配置文件web.xml配置servlet,filter等内容webwork配置文件xwork.xml定义了action的映射xwork_*.xml定义action映射,在xwork.xml中被引用wperties定义application范围的设计,以及能够改变框架功能的配置参数。actiong.thesis.prj.zgfm.webwork.action 负责存储数据/状态(以getter和setter的方式)并且执行逻辑处理表4-5 中国父母网控制部分4.

43、3.2.3 模型部分如表4-6所示:组成部分文件名或类名或包名功能javabeang.thesis.prj.zgfm.modelgetter/setter方法业务逻辑g.thesis.prj.zgfm.dao.impl进行种业务处理数据访问(dao)g.thesis.prj.zgfm.dao访问数据库hibernate.cfg.xml数据库访问配置表4-6 中国父母网模型部分4.4中国父母网数据库的设计4.4.1 数据库的选择本网站采用sql server 2000 数据库,数据库名为zgfm,共包含14张数据表和一张关系表。下面分别对各数据表、关系表

44、的简要说明,数据库表之间的关系及主要数据表的结构。4.4.2 数据表的简要说明 数据表树型结构如图4-7所示,该数据表树型结构图包含本网站中使用的所有用户数据表。4-7 数据表树型结构图 g_message:最新消息表; g_newsadmin:网站管理员表; g_newscolumn:栏目表; g_newscommon:访问客户机ip地址表; g_newsgrade:用户等级表; g_newsinfo:文章信息表; g_newskind:类别表; g_newspic:图片属性表; g_newsreply:新闻评论表; g_newsuser:网站会员表; g_noteadmin:留言管理员表;

45、 g_noteguest:客户留言表; g_notereply:留言回复表; g_notice:公告表。4.4.3 数据表关系概要说明中国父母网网站的数据表关系如图4-8所示:4-8 数据表关系图 为了方便起见,我在数据表关系之间都设置了它们的级联关系,允许级联删除,也就是在,在应用程序中,如果删除了父表中的数据,它的id对应的子表中的数据也会跟着删除,这就省略了在程序中写删除子表的sql语句。但这有一个不足之处,那就是对于网站的移植性不好,如果要把sql server 2000 数据库文件移植到mysql,oracle下,那就要修改很多代码了,包括程序中的代码,所以,一般上不是很建议使用级联

46、删除。4.4.4 数据表设计见附录c。4.5中国父母网持久化框架的设计本中国父母网网站使用的持久化技术为hibernate技术,hibernate使用了orm机制。orm是object-relation mapping的缩写,指的是对象关系映射,因此hibernate是对象模型与关系数据模型之间的桥梁15。hibernate是java持久化层的通用实现,它不与特定的业务领域相关,能够把任何一个java应用与相关的数据库系统连接,因此它是一个中间件,不管是网上购物系统,网上银行系统,还是电子商务系统,在这些不同的业物领域中都可以用hibernate。“持久化”包括和数据库相关的各种操作:保存、更

47、新、删除、查询。也就是说,有些情况下,我们需要将内存中的对象的信息永久地保存到关系数据库中,而在另一些情况下,我们需要查询、更新数据的时候,我们就要先从数据库中将数据加载到内存中,在内存中这些信息就以对象的形式存在。4.5.1 hibernate的配置文件hibernate.cfg.xml 其实,在eclipse中利用myeclipse插件自带的hibernate功能就可以引入运用hibernate所需jar包,hibernate的配置文有两种形式,分别为:hibernate.cfg.xml和perties,网站采用前一种形式。中国父母网站建立与数据库连接后的配置文件

48、的代码如例程4-9所示:<?xml version='1.0' encoding='utf-8'?><!doctype hibernate-configuration public "-/hibernate/hibernate configuration dtd 3.0/en" "<!- generated by myeclipse hibernate tools. -><hibernate-configuration> <session-factory> <propert

49、y name="connection.username">sa</property> <property name="connection.url">jdbc:microsoft:sqlserver:/localhost:1433;databasename=zgfm </property> <property name="dialect"> org.hibernate.dialect.sqlserverdialect </property> <property n

50、ame="file">zgfm</property> <property name="connection.password">sa</property> <property name="connection.driver_class"> com.microsoft.jdbc.sqlserver.sqlserverdriver </property> <mapping resource="gxtc/edu/

51、thesis/prj/zgfm/model/gnoteadmin.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnewsinfo.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnewsgrade.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnewsreply.h

52、bm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnotice.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnewsuser.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnotereply.hbm.xml" /> <mapping resour

53、ce="gxtc/edu/thesis/prj/zgfm/model/gnoteguest.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gmessage.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnewsadmin.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/m

54、odel/gnewskind.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnewscolumn.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnewscommon.hbm.xml" /> <mapping resource="gxtc/edu/thesis/prj/zgfm/model/gnewspic.hbm.xml" />

55、; </session-factory></hibernate-configuration>例程4-9 hibernate.cfg.xml配置文件4.5.2 hibernate的映射文件建立实体域模型到关系数据模型的映射文件(以数据表g_newsinfo为例),如例程4-10所示: gnewsinfo.hbm.xml<?xml version="1.0" encoding="utf-8"?><!doctype hibernate-mapping public "-/hibernate/hibernate

56、 mapping dtd 3.0/en""<hibernate-mapping> <class name=".thesis.prj.zgfm.model.gnewsinfo" table="g_newsinfo" schema="dbo" catalog="zgfm"> <id name="newsid" type="java.lang.integer"> <column name="ne

57、wsid" /> <generator class="native" /> </id> <property name="columnid" type="java.lang.integer"> <column name="columnid" /> </property> <property name="kindid" type="java.lang.integer"> <column

58、name="kindid" /> </property> <property name="myother" type="java.lang.integer"> <column name="myother" /> </property> <property name="headtitle" type="java.lang.string"> <column name="headtitle" /> </property> <property name="content" type="java.lang.str

温馨提示

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

评论

0/150

提交评论