基于java的博客网站设计与开发毕业论文正稿.docx
《基于java的博客网站设计与开发毕业论文正稿.docx》由会员分享,可在线阅读,更多相关《基于java的博客网站设计与开发毕业论文正稿.docx(22页珍藏版)》请在冰豆网上搜索。
基于java的博客网站设计与开发毕业论文正稿
编号
中央广播电视大学计算机与科学技术专业
毕 业 论 文
学生:
黄志刚
学号:
43
专业:
计算机与科学技术
班级:
指导教师:
慧
2016年04月
摘要
越来越多的网络用户希望能够在网络平台上更多地展现自己的个性,更方便地与他人互动交流,拥有一个自己独立的空间,随着Web2.0时代的到来,一个新的概念出现了——博客。
首先介绍了博客设计的意义和背景,主流博客的主要功能。
重点介绍了基于J2EE架构的博客设计方案,实现的主要功能。
其次,重点讲述了博客的业务逻辑层和持久层的设计与开发过程中所涉与的技术与开源框架。
系统如何以Spring框架为核心,向下整合Hibernate进行持久层访问,向上整合Struts按清晰的MVC模式控制,怎样划分应用的层次。
简述了页面的请求的分发与流程。
最后对BLOG开发中所碰到的一些问题,并针对这些问题提出一些解决方案,最后对系统性能作出一些简要评估,阐述了一些个人想法。
关键词:
博客,J2EE,Spring,Struts,Hibernate
Abstract
Moreandmorenetworkusershopetounfoldtherecharacteristicsinthenetworkplatformandinteractwithpeoplemoreconveniently.FromthebeginingofWeb2.0,anewconceptofblogemerged.
Firstly,weintroducethemeaningandbackgroundofdesigningofblogsite,andthenintroducethemainfunctionoftheblogsitebriefly.WealsointroducethedesigningschemeofblogsitewhichisbasedonthearchitectureofJ2EE.Themainfunctioncarriedoutinourblogprojectispresented.
Secondly,weintroducethedesigningoflogicandpermanentlayeroftheblogsite.Thetechnicandstructurereferedintheprocessofdevelopingarepresented.WealsodepicthowtobearoundwithframeofSpring,howtoworkwithHibernatetovisitpermanentlayerbelow,howtoworkwithStrutstocontroltheclearMVCmodelupandhowtodividelayersofapplication.Wealsogivethebriefintroduceofdistributionandflowofpages’request.
Finally,wediscusssomeproblemsabouttheblogrealizationandshowschemesofsolvingproblems.Briefevaluationontheperformanceofsystemisgiven.Wegiveacommentonproblemsoccurringinourwork.
Keywords:
blog,J2EE,Spring,Struts,Hibernate
前言
本文介绍了基于轻量级J2EE开发博客。
同时利用Spring、Struts、Hibernate、Ajax等框架整合开发。
本文主要分为七章。
第一章主要介绍了进行博客的背景与意义。
第二章对博客设计方案做了简要介绍。
第三章介绍了博客的需求分析。
第四章详细介绍了系统的架构设计,并详细讲述了通过Spring框架,向下整合Hibernate进行持久层访问,利用DAO模式隔离业务逻辑层与具体持久层,向上整合Struts按清晰的MVC模式构建系统。
第五章简单讲述了系统设计时遇到的问题与解决方案,另外对系统的性能作了一个简要的评论与设计结果和设计结果分析。
第六章对全文所使用的方法、结果以与目的和意义做了全面的总结,展望java技术在Web上的一些应用。
本文的完成得到了戴祖旭博士的帮助和指导,在此向他表示衷心的感。
文献综述
Hibernate相关文献介绍
文献[1]围绕着ORM,讲述了对象映射配置,对象关系映射、集合映射、对象的操作和查询。
与详细如何利用Hibernate构建DAO层,怎样根据PO的关系。
面向对象操作数据库,怎么配置数据库映射文件。
Java基础文献概述
文献[10]讲述了java基础知识,如控制流程、初始化和清理、接口和部类等。
并讲述如何利用对象提供服务,并通过接口隐藏具体实现。
J2EE相关文献概述
文献[4]论述了在J2EE平台中在各层经常遇到的问题,该文献详细讲解如何解决J2EE平台所遇到的问题。
文献[8]将述了如何构建轻量级的J2EE企业应用程序,并讲解MVC在Web中应用,怎么将请求控制并转发,Struts标签。
文献[5]详细讲述了Spring的控制反转、AOP编程思想。
与其怎么利用Spring整合Hibernate,利用Spring提供IOC容器管理DAO组件,利用事务管理SessionFactory。
文献[6]以8个小型J2EE项目讲述怎么利用Struts、Hibernate、Spring等框架构建J2EEWeb应用。
并且也详细讲述各个框架的在项目中应用。
文献[7]这本书是有3个具有15以上的开发经验的企业java架构师或首席架构师所著。
本书讲述了J2EE的3层所涉与的核心模式。
通过通用模式可以更快构建稳定的J2EE应用。
文献[11]这本书详细讲述了架构设计的方法。
架构设计应该包括那些方面。
怎么应用架构模式。
Ajax技术文献概述
文献[2]讲述了JavaScript、CSS、DOM、XML的在Ajax上一些应用。
如何利用这四个技术实现html片段的替换。
并结合一些实例讲述如何利用Ajax
实现友好用户体验。
Eclipse文献概述
文献[9]讲述了如何利用Eclipse开发java应用程序。
该文献主要讲如何构建java开发环境,如何安装Eclipse插件。
并利用Eclipse自动生成一些代码。
Jsp文献概述
文献[3]围绕着实例讲述Jsp的各种技术。
比如Servlet,JavaBean在Jsp中的应用。
本文中的图片播放器和音频播放器是基于这书上实例改进的。
第1章绪论
第1节背景
商业设计的主要目的一般是通过的推广,实现更多网络用户的关注,从而吸引更多的企业用户投入更多的宣传经费到上。
长期的战略目标,商业不仅是公共产品信息和服务的推广,它还是将买家与卖家、厂商和合作伙伴紧密结合的平台,借助这些商业可以消除企业与客户之间时间与空间带来的障碍。
Blog博客致力于为广大博客提供优质博客页面服务的商业。
每个博客都希望借助自己的博客页面宣传自己,而博客数量越多,的点击率越高就越能够吸引广大的企业客户选择该商业作为媒介,将自己的产品展现给客户。
可以说,对这些博客而言:
为博客提供良好的服务就意味着为带来更多的商业客户。
因此,在具体设计实现该博客时,主要考虑了主流博客的几个主要功能。
1.博客的注册、登录验证功能
2.网络用户通过关键字搜索博文功能
3.最热门博客页面推荐浏览
4.文章详细容与相关评论显示
5.博客页面访问量统计
6.博客个人文章管理维护功能
7.博客个人文章分类管理维护功能
8.博客个人友情维护功能
9.博客个人基本信息管理维护功能
10.博客图片上传与个人相册管理
11.网络用户写留言,博主查看留言。
第2节研究的目的与意义
Blog记载了日常发生的事情和自己的兴趣爱好,把自己的思想和知识和他人分享、交流,同时又通过“六度空间”结识了更多志趣相投的朋友;而越来越多专业知识的Blog的出现,让我们看到了Blog更多所蕴涵的巨大的信息价值:
不同的Blog选择不同的容,收集和整理成为很多人关注的专业Blog——目前越来越多的人获取信息的来源是一些固定的Blog。
随着博客人数的增加,Blog作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构:
网络信息不再是虚假不可验证的,交流和沟通更有明确的选择和方向性,单一的思想和群体的智慧结合变的更加有效,个人出版变成人人都可以实现的梦想——Blog正在影响和改变着我们的生活。
第2章设计简介与设计方案
在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定与系统结构设计。
下面对这进行详细介绍。
第1节设计原则
在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具与软件架构。
blog对系统的可靠性、稳定性有比较高的要求。
本系统设计时,比较主流的B/S设计有基于JSP、ASP、PHP、CGI与J2EE等模式。
相比较而言PHP的功能相对简单,不适合做大程序;而CGI效率相对较低,所以也不考虑。
由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate的框架与拥有事务管理和依赖注入的Spring。
利用现存框架可以更快开发系统。
所以选择Java技术作为blog的开发工具。
第2节运行架构
为了增加系统的吞吐量,提高并发处理客户请求数量,系统采用了IBM服务器作为主机。
在数据库处理方面,不需要在数据层借助存储过程与数据库服务器端函数封装过多的业务逻辑,因此数据库系统采用相对精巧的MySQL[6]。
该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下:
1.服务器端操作系统:
独立于操作系统的跨平台系统,客户端MicroSoftWindows2000与以上;
2.数据库:
MySQL5.0.27版本;
3.Web服务器:
Tomcat5.5与以上版本,配合MVC设计模式与Hibernate开发架构;
4.客户端运行环境:
能运行IE5以上或Netscape5以上浏览器的操作系统,配合使用Ajax技术;
5.客户端运行工具:
目前的系统采用浏览器作为客户端,为了支持Ajax开发框架,应该选择使用IE5以上版本浏览器。
本以NT为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客前台与博客个人维护管理等功能模块。
第3节设计方案
为了在更短的时间实现博客,我们采用J2EE架构。
集成开发环境我采用对于插件即插即用的Eclipse,JSP运行环境我们采用Tomcat应用服务器,数据库管理系统我们采用的是MYSQL,博客主要实现注册用户可以在服务器上开辟自己的空间,也可以发布消息,上传文件,回复消息,从服务器发送客户端的数据应用XML来封装.
本系统采用的是经典的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。
三层体系将业务规则、数据访问与合法性校验等工作放在中间层处理。
客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。
并利用Spring、Hibernate、Spring等轻量级框架实现三层结构的设计。
即采用的是贫血模式,业务逻辑对象正面封装了全部的业务逻辑方法,Web层仅与业务逻辑组件交互即可,无须访问底层的DAO对象。
Spring的声明式事务管理将负责业务逻辑对象方法的事务性。
在贫血模式下,其分层非常清晰。
DomainObject并不具备领域对象的业务逻辑功能,仅仅是ORM框架持久化所需的POJO,仅是数据载体。
贫血模型容易理解,开发便捷,但严重背离了面向对象的设计思想,所有的DomainObject并不是完整的Java对象。
第3章相关技术介绍
第1节MVC简介
MVC是Model、View、Controller三个词的缩写,三个词分别代表应用的三个组成部分:
模型、视图与控制器。
三个部分以最少的稿合,协同工作,从而提高应用的可扩展性与可维护性。
起初,MVC模式是针对一样的数据需要不同显示的应用而设计的,其整体的效果如图1所示:
图1MVC结构
在经典的MVC模式中,事件由控制器处理,控制器根据事件的类型改变模型或视图,反之亦然。
具体地说,模型维护一个视图列表,这些视图为获得模型变化通知,通常采用观察者模式登记给模型。
当模型发生改变时,模型向所有登记过的视图发送通知:
接下来,视图从对应的模型中获得信息,然后更新自己。
概括起来,MVC有如下特点。
.多个视图可以对应一个模型。
按MVC设计模式,一个模型对应多个视图,可以减少代码的复制与代码的维护量,一旦模型发生改变,也易于维护。
1.模型返回的数据与显示逻辑分离。
模型数据可以应用任何的显示技术,例如使用JSP页面、Velocity模板或者直接产生Excel文档等。
2.应用被分隔为三层,降低了各层之间的稿合,提供了应用的可扩展性。
3.控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。
因此,控制层可以说是包含了用户请求权限的概念。
4.MVC更符合软件工程化管理的精神。
不同的层各司其职,每一层的组件具有一样的特征,有利于通过工程化和工具化产生管理程序代码。
第2节Spring的起源和背景
2002年wrox出版了《ExpertoneononeJ2EEdesignanddevelopment》一书。
该书的作者是RodJohnson。
在书中,Johnson对传统的J2EE架构提出深层次的思考和质疑。
并提出J2EE的实用主义思想。
2003年,J2EE领域出现一个新的框架:
Spring,该框架同样出自Johnson之手。
事实上,Spring框架是«ExpertoneononeJ2EEdesignanddevelopment»一书中思想的全面体现和完善,Spring对实用主义J2EE思想进一步改造和扩充,使其发展成更开放、清晰、全面与高效的开发框架。
一经推出,就得到众多开发者的拥戴。
传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用并没有真正实现WriteOnce与RunAnywhere的承诺。
Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。
Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。
可以说Spring是企业应用开发的"一站式"选择,并贯穿表现层、业务层与持久层。
然而,Spring并不想取代那些已有的框架,而与它们无缝地整合。
总结起来,Spring有如下优点:
1.低侵入式设计,代码污染极低。
2.独立于各种应用服务器,可以真正实现WriteOnce,RunAnywhere的承诺。
3.Spring的DI机制降低了业务对象替换的复杂性。
4.Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。
第3节Hibernate概述
Hibernate是目前最流行的ORM框架,其采用非常优雅的方式将SQL操作完全包装成对象化的操作。
其作者GavinKing在持久层设计上极富经验,采用非常少的代码实现了整个框架,同时完全开放源代码,即使偶尔遇到无法理解的情况,也可以参照源代码来理解其在持久层上灵巧而智能的设计。
目前Hibernate在国的开发人员相当多,Hibernate的文档也非常丰富,这些都为学习Hiberante铺平了道路,因而Hibernate的学习相对简单一些。
下面通过对比来了解Hibernate和传统JDBC操作数据库持久层之间的差异。
第4章需求分析
Blog主要是实现注册用户登录、管理相关信息、博文与相关评论、查看留言、友情、与图片的上传和图像的播放而为上网用户提供按博文主题搜索,查看注册用户的博文与提出相关评论,并为注册用户写留言,游览注册用户的相册、注册等功能的系统。
下面就以两种不同的用户来分析博客的需求。
第1节注册博友
首先必须在博客首页中登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发表博文。
可以在管理页面上添加博文的分类,可以上传图片和游览自己的相册,在上传过程中可以将一图片定义为自己的签名,在个人管理页面中注册用户还可以修改自己的个人信息。
博文管理,友情管理与博文分类管理,用例图2。
图2博客管理页面的用例图
在博客主界面中发表博文时可以选择博文类型,这样可以更好管理自己的博文。
并查看和删除网友对自己的博文的一些评论、查看和删除网友留下的一些留言,提供与其他网友交流的空间。
更好交流,在信息时代人们通过个人空间沟通也用来但不能在自己的博客主页面中提交评论和留言。
。
这样在本系统中就可以为博友提供更多的个人色彩。
在管理页面中添加和删除友情连接。
这样博友可以在自己空间中快速定位自己的关心的。
这样还可以让网友看到自己的一些信息。
友情与网页访问量统计显示:
在博客的个人页面中还提供了推荐给普通网络用户的相关友情,此外,对个人页面的访问量也在随时进行统计,并在个人页面中进行直观的显示。
博客主页面的用例图如图3所示:
图3博客主页面的用例图
第2节普通用户
在博客注册页面注册成为博客的注册用户,才可以拥有自己独立的空间,进入某一博客页面查看相关文章信息时,可以随时对自己所感兴趣的文章发表评论,同时也可以查看到其他人针对该博文的评论。
普通用户在阅读博文时可以在最后留下自己的一些评论。
他也可以留下更多的信息。
这样他可以写留言。
这样他留下的信息就更快地被博友所看到。
普通用户进入博友的用例图如图4所示:
图4上网博友在博客主页面的用例图
普通网友可以搜索自己关心的一些数据。
并且在搜索结果中提供在结果围再次搜索。
这样就可以将围缩小。
首页向注册用户提供登陆模块,注册用户在博客首页跟上网网友一样可以查看博客和博文推荐。
上网网友可以注册成为博客用户,拥有自己独立的空间。
这一模块的用例图如图5所示:
图5博客首页的用例图
第5章系统架构设计
本系统采用严格的J2EE应用结构,主要有如下几个分层。
1.表现层:
由JSP页面组成。
2.MVC层:
使用Struts框架。
3.业务逻辑层:
主要由SpringloC容器管理的业务逻辑组件组成。
4.DAO层:
由7个DAO组件组成,实现类必须继承Spring提供的HibernateDaoSupport。
5.Hibernate持久层:
由7个PO组成,并在HibernateSession管理下,完成数据库访问。
6.数据库服务层:
使用MySQL数据库存储持久化数据。
系统的具体分层如图5所示。
图6系统结构图
在图6黑色大方框的MVC控制层、Service层与DAO组件层的组件,都由SpringIOC容器负责生成,并管理组件的实例(实例必须是单身模式的,本系统中的bean基本上是单身的)。
第1节系统架构说明:
本系统不仅严格按MVC模式设计,还按J2EE分层设计,将中间层严格分成业务逻辑层、DAO层与数据持久层等。
MVC层的控制器绝对禁止持久层访问,甚至不参与业务逻辑的实现。
表现层采用传统JSP技术。
本系统采用的是典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。
三层体系将业务规则、数据访问与合法性校验等工作放在中间层处理。
客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。
Jsp广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。
中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。
Web层,就是MVC模式里面的C,负责逻辑层和表现层的交互。
调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC采用Struts框架。
Service层(就是业务逻辑层),负责实现业务逻辑。
业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。
DAO层,负责与持久化对象交互。
该层封装了数据的增、删、查、改的操作。
PO,持久化对象。
通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层与PO无缝整合,其数据服务层用来存放数据。
第2节Hibernate层
通过使用Hibernate持久层,可以避免使用传统的JDBC操作数据库,对JDBC近一步包装,从而更好地使用面向对象的方式来操作数据库。
保证了整个软件开发过程以面向对象的方式进行,即面向对象分析、设计与编程,透过Hibernte对PO对象持久化操作,不管插入还是查询都是通过PO。
5.2.1设计持久化对象(PO)
面向对象分析,是指根据系统需求提取应用中的对象,将这些对象抽象成类,再抽取出需要持久化保存的类,这些需要持久化保存的类就是持久化对象(PO)。
该系统并没有预先设计数据库,而是完全从面向对象分析开始,设计了7个持久化类。
本系统一共设计了如下7个PO。
1.Blog:
对应博客网友的一些基本信息,必如id、username、password、sex、
picturename、name、address、uid、subject。
还包括一些集合,博友的博文(Articles)、图片(Pictures)、留言(Messages),这样在系统中我们可以随时通过getXxx()访问博客的一些属性就不用编写sql语句来访问博友的些属性,
2.Picture:
对应博友的图片,包含name、blog,filename,这样我们可以将图片
的路径名保存到数据库中,在根据路径名访问博友上传的图片,就不用用到数据库中的Blob类型,将图片数据格式转来转去,不过这样服务器直接存储客户的图片。
3.Messages:
对应网友留下的留言,属性有id、username、Blog、注册用户可以查看别人写的留言,但不能在自己的空间留言。
4.FeedBack:
对应回复,包括id、article、username、content。
他对于一篇博文,是网友阅读博文后对博文的评论。
该评论无论是谁都可以看到。
5.Sort:
对应博文分类属性有Id、Blog、name、Articles,注册用户可以在自己的空间定义一些分类,这样可以更好管理自己的博文,一个分类对应一个Blog,一个分类可能有很多分类。
6.Arti