基于J2EE的博客系统的设计与实现 毕业设计

上传人:仙*** 文档编号:27654493 上传时间:2021-08-19 格式:DOC 页数:43 大小:1.81MB
收藏 版权申诉 举报 下载
基于J2EE的博客系统的设计与实现 毕业设计_第1页
第1页 / 共43页
基于J2EE的博客系统的设计与实现 毕业设计_第2页
第2页 / 共43页
基于J2EE的博客系统的设计与实现 毕业设计_第3页
第3页 / 共43页
资源描述:

《基于J2EE的博客系统的设计与实现 毕业设计》由会员分享,可在线阅读,更多相关《基于J2EE的博客系统的设计与实现 毕业设计(43页珍藏版)》请在装配图网上搜索。

1、基于B/S架构的多用户博客系统设计目 录前 言1第1章技术背景31.1方案分析31.2开发工具31.2.1JSP简介31.2.2MySQL简介41.2.3Tomcat简介41.2.4MyEclipse简介41.2.5MVC简介51.2.6Struts 2简介61.2.7Hibernate简介7第2章需求分析82.1功能分析82.1.1系统概述82.1.2基本功能要求82.1.3用户分析82.1.4功能详细说明92.2性能要求112.3运行环境要求112.3.1硬件环境122.3.2软件环境12第3章总体设计133.1功能模块划分133.2数据库设计133.2.1person用户表143.2.2

2、space空间信息表153.2.3post日志表153.2.4category分类表163.2.5reply日志评论表163.2.6comment留言表163.2.7link超链接表173.3系统架构173.4系统运行机制18第4章系统详细设计与实现204.1类的设计与实现204.1.1Java Bean类的设计204.1.2通用类的设计214.2数据库与Hibernate配置224.3Struts 2配置224.4模块详细设计与实现234.4.1登录与注册模块234.4.2日志管理模块244.4.3日志评论模块304.4.4分类模块314.4.5留言模块334.5系统配置34第5章结 论36

3、参考文献38致 谢39II摘 要多用户博客系统是一个以文章形式来发布自己所见、所得、所闻、体会等的互联网信息发布系统,类似个人网站。多用户博客系统是支持多用户注册和管理的信息发布系统。本文以博客日志发布管理为基础,并结合其实际需求,详细叙述了多用户博客系统设计、开发的全过程。本系统主要功能包括博客的日志发布、分类和评论等。开发过程中,采用了MVC分层思想,运用了当今比较流行的Web前端开发技术JavaScript等。本系统基于B/S架构,采用java为开发语言、MySQL为数据库,Tomcat为服务器并结合功能强大的开源框架Struts 2和Hibernate为开发框架,从而保证了整个系统稳定

4、、快速、高效的运行。关键词:博客,MVC,B/S,稳定性38AbstractMulti-user blog system is one of the articles form to publish their own findings obtained, the smell, experience and other Internet information release system, similar to the personal website. Multi-user blog system is an information release system to support mu

5、lti-user registration and management.In this paper, based on post publishing and management, combined with their actual requirement, detailed description of the multi-user blog system design and development at the entire process. The main features include post publish, category and comments, etc. In

6、 the development process, using the MVC layered thinking, the use of todays popular Web front-end development technologies JavaScript, etc.The system is based on B / S structure, to use JAVA language,MySQL database and Tomcat Server. Combined with a powerful open-source JAVA framework for Struts 2 a

7、nd Hibernate as a development framework, thus ensuring the entire system is stable, fast, and efficient.Key words: Blog, MVC, B/S, stable前 言随着互联网技术的高速发展和日益的普及,互联网用户迅速增加,用户对互联网的寄托也发生了翻天覆地的变化,用户不甘于只单单的被动的接受互联网提供的内容,更希望能够加入到内容制造的大家庭中,这时传统的Web应用已经显得力不从心,而Web 2.0的出现,极大的改变了这一局面。所谓Web 2.0其核心就是用户不只是内容的被动浏览者

8、,同时也是内容的制造者。正是因为整个互联网产品设计理念的重大变化,具有代表性的Web 2.0时代的互联网产品也就相继出现,如:论坛,博客、威客,社区、RSS和SNS等。博客也称为网络日志,是blog的谐音,由很多经常更新的帖子(也叫日志或者个人文章)顺序倒序排列,最新的帖子在最上面,这些帖子的内容不一定要长篇大论,具体内容格式也没有任何要求,它以个人纯粹的个人想法和心得,包括你对时事新闻、国家大事的个人看法,或者一日三餐、服饰打扮的精心料理等,也可以是在基于某一主题的情况下或者是在某一共同领域内由一群人集体创作的内容。类似于传统的“网络日志”,但又不同于传统的“网络日志“,传统的”网络日志“是

9、带有显示的私人性质的,而博客则是私人性和公共性的有效结合,绝不仅仅是纯粹个人思想的表达和日常琐事的记录,它所提供的内容可以用来进行交流和为他人提供帮助,是可以包容事个互联网的,具有极高的共享精神和价值。博客还有个最大的特点是可以图文并茂的描述一件事,在文字、图片和视频等的共同描述下,使得内容更加生动形象。博客由2000年悄然进入中国,随后得到迅速发展,但业绩平平,直到2004年由于某一事件,才让民众了解博客,并运用博客。2005年,财大气粗的原本不看好博客的几大门户,也加入到博客的春秋战国时代,开始了你死我活的拼杀。Web 2.0和传统Web 1.0应用相比,有一个非常显著的特点,即:实时性和

10、较高的交互性,正是因为这一实时性和较高的交互性,传统的互联网开发技术也面临的严峻的挑战。在传统的应用中,内容一旦发布,基本不会更新,为了减少服务器的的负载,一般会将内容归档成静态文件(后缀为.html的文件)存在磁盘中,并根据内容在数据库中的唯一标识号生成一个唯一的url地址。当用户需要查看这些内容时,直接通过所生成的唯一的URL地址,经过服务器就直接能访问到这些内容,服务器基本不需要花费时间来生成这些内容,这对于服务器软硬件资源是一个很大的节省。而新形势下(Web2.0)的应用,由于它的实时性和较高的交互性,就注定了不能完全采用生成静态文件方式来解决这一问题,页面可能会实时更新,从而需要实时

11、的请求数据库,将所请求的内容展现在用户面前。由于数据的动态生成。无疑会添加服务器的处理能力,在服务器端并发性一定的情况下,由于请求的用户过多,而服务器又一时处理不过来,所请求的用户必然会经历一个排队的过程,从而使得系统的整体响应时候大幅度添加,这样的用户体验也就不言而喻了。以上这些都是做一个Web2.0应用所必考虑的问题。第1章 技术背景本章将从系统的技术方案及与此相关的开发工具进行说明1.1 方案分析由于博客提供了信息的实时发布,动态展示,信息状态的跟踪,以及博客和浏览者、博客和博客之间互动等这些高交互行为,就注定了对技术的要求会比较苛刻,必需选择一种技术架构成熟,稳定性好,执行效率高、经济

12、实惠的解决方案。纵观各种解决方案,最终选择JAVA作为博客系统的技术路线。本系统以JAVA为技术路线,结合以JavaEE为基础的综合开发平台MyEclipse,开源数据库MySQL和开源服务器Tomcat,技术框架主要采用当今流行的Struts2和Hibernate。它们都是各自独立的程序,但是因为长期的放在一起使用,拥有越来越高的兼容性,共同组建了一个强大的Web应用开发平台。其中MySQL,Tomcat,Struts2和Hibernate均为开源免费的软件,由于他们的开源,标志着任何人都可以无偿的免费使用它们,也意味着越来越多的开发者加入到其中,无偿的奉献他们的智慧,使得软件的效率和性能得

13、到很大程度的提高。因此,JavaEE是当今比较强大的互联网解决方案。1.2 开发工具本系统以JavaEE为解决方案,JavaEE不只是稳定性好,效率高和开源免费,它还有一个更重要的特点,那就是运行平台无关性。它除了能运行在Windows操作系统上外,还能运行在Linux,苹果等操作系统上,真正做到一处开发,多处运行。综合各方面因素,最终决定在Windows操作系统上进行开发。本系统采用现今流行的MVC设计模式,从而使整个系统的架构更加清晰。为了提高客户端的用户体验,系统中还会借助客户端技术JavaScript脚本语言等相关技术。以下为各自的介绍。1.2.1 JSP简介JSP(Java Serv

14、er Pages) 1是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 总的来说,它具有以下几个方面的优点:1.一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改4。2.系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统

15、部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的4。 3.强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力4。 4.多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下4。1.2.2 MySQL简介MySQL是基于SQL的,完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系

16、统2。它具有体积小,功能强,使用简便,管理方便,运行速度快,安全可靠性高,尤其是开源这一特点,所以很多企业为了降低网站总体拥有成本而选择了MySQL作为网络数据库。更重要的是提供了用于C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API,从而可以很容易的将其加入到各种应用中6。1.2.3 Tomcat简介Tomcat是Apache 软件基金会(Apache Software Foundation)3的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP

17、规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。1.2.4 MyEclipse简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调

18、试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。1.2.5 MVC简介MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。优点如下:1. 低耦合性视图层和业务层分离:这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。2. 高重用性和可适用性随着技术的不断进步,现在需要用越

19、来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅令是改变视图层的实现方式,而控制层和模型层无需做任何改变。 3.较低的生命周期MVC使降低开发和维护用户接口的技术含量成为可能。 4.快速的部署使用MVC模式3使开发时间得到相当大的缩减,它使

20、程序员集中精力于业务逻辑,界面程序员(HTML开发人员)集中精力于表现形式上。5.可维护性分熟视图层和业务逻辑层也使得WEB应用更易于维护和修改。6.有利于软件工程化管理由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。 图1-1 MVC模型 1.2.6 Struts 2简介虽然Struts 2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork5基础上发展起来的。从某种程度上来讲,Struts 2没有继承St

21、ruts 1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts 2,而不是Struts 1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts 1和WebWork两者的优势,因此,是一个非常值得期待的框架。Apache Struts 2是一个优雅的,可扩展的JAVA EE web框架。框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。Apache Struts 2即是之前大家所熟知的WebWork 2。在经历了几年的各自发展后,WebWork和Strut

22、s社区决定合二为一,也即是Struts 2。 图1-2 Struts2模型1.2.7 Hibernate简介 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、

23、Transaction、Query和Configuration5。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。第2章 需求分析本章主要从多用户博客系统的各功能需求、性能、运行环境几个方面进行描述。2.1 功能分析本节主要对本系统的具体需求进行描述,包括需要提供的功能以及各功能的具体定义。2.1.1 系统概述本系统的最主要功能是体现多用户的使用,用户可以在本系统注册申请自己的博客。一旦用户申请了自己的博客,就可以将心得体会等发表到自己的博客上,当发表了自己的心得体现后,浏览者就可以对用户所发表的日志的内容进行评论,注册用户还可以在自己的博客

24、上添加博客描述及超链接。此外,浏览者还可以在博主空间留言,与博主进行交互。2.1.2 基本功能要求系统提供的主要功能包括以下几个方面:1. 博主的注册和登录2. 日志的发布和管理,包括日志管理和分类选择功能,其中日志管理功能包括日志的 添加、删除和修改,分类选择功能包括分类的添加、删除和修改。3. 文章评论,包括评论的添加、删除、修改三大功能。4. 留言管理,包括留言的添加、删除、修改三大功能。5. 系统管理后台,主要包括用户管理、日志管理、留言管理和评论管理四大功能。2.1.3 用户分析本系统主要包括以下几类用户:1.游客此类用户不是本系统的用户或者没有登录、对于当前系统来讲,只是一名匿名的

25、浏览者。在系统中,所有游客都没有身份标识,他们可以浏览博客中的日志和发表匿名的评论。2.注册用户此类用户和游客的唯一区别为该类用户属于系统登录用户,在系统中有用户ID作为他们的唯一标识,并拥有自己的博客。用户浏览其它用户的博客时,仅仅是一个有身份标识的浏览者而已,但一旦用户进入了自己的博客主页,那么这时身份除了是一名浏览者外,还是一名博主,这时将拥有博主的所有权限。3.博主此类用户即为拥有博客的用户,是注册用户的一种特例,有管理博客的权限。该用户拥有上述所有用户的权限,当该用户浏览其它用户的博客时,当前身份就变成了登录浏览者身份,不再具有博主的身份,只有当该用户进入自己的博客主页时,才会所有博

26、主的身份。4.系统管理员该类用户为博客系统的网站管理员,本应具有上述用户的所有管理权限,为了减少系统的复杂度,这里只具有系统后台的管理功能。2.1.4 功能详细说明本节将从用户用例的角度来描述系统的具体功能,本博客系统主要用例包括:游客用例、注册用户用例、博主用例和系统管理员用途,以下是详细描述。图2-1 游客用例图图2-1用例说明如下:浏览日志:阅读系统内所用博客的日志。发表留言:对浏览过的博客空间进行留言,由于游客没有身份标识,所以只能匿名留言。发表评论:对浏览过的日志进行评论,由于游客没有身份标识,所以只能匿名评论。2. 注册用户用例图图2-2 注册用户用例图图2-2用例说明如下:浏览日

27、志: 阅读系统内所用博客的日志。发表留言:对浏览过的博客空间进行留言,由于注册用户具有身份标识,所以在留言时可以自己身份或匿名身份进行留言。发表评论:对浏览过的日志进行评论,由于注册用户具有身份标识,所以在对日志评论时可以自己身份或匿名身份进行评论。个人资料管理:可以对自己的个人资料进行更新。图2-3 博主用例图图2-3用例说明如下:日志管理:对博客日志进行管理,具体操作包括:发布日志、修改日志、删除日志。评论管理:对日志的评论进行管理,具体操作包括:添加评论、删除评论。留言管理:对博客空间的留言进行管理,具体操作包括:添加留言,删除留言。超链接管理:对博客空间的超链接进行管理,具体操作包括:

28、添加链接,修改链接,删除链接。图2-4 系统管理员用例图图2-4用例说明如下:用户管理:对系统中的所有用户进行管理,管理员可以根据用户名搜索用户,对一些违法的用户,管理员可以对其进行删除。日志管理:对系统中的所有日志进行管理,管理员可通过日志标题进行搜索,管理员本身也可以发表日志,还可以对违法违规日志进行删除。评论管理:对系统中所有的日志评论进行管理,管理员可通过日志标题搜索其对应的评论,对其中不合法的评论进行删除。留言管理:对系统中所有的留言进行管理,管理员可以通过用户名搜索其对应空间的留言,对其中不合法的留言进行删除。2.2 性能要求本系统为实时性内容发布平台,因此服务器需要724小时运行

29、,确保系统能正常运行,系统响应时间必须在1秒内,页面响应时间不能超过3秒,并且页面不能出现假死现象。2.3 运行环境要求本系统为开发阶段的版本,因此系统架构都在同一台电脑上,硬件与软件规模均处于测试阶段,未能达到商业用途的要求。本节将从硬件环境与软件环境两方面来进行描述。2.3.1 硬件环境ASUS笔记本电脑一台2.3.2 软件环境操作系统:Microsoft Windows 7(32位)Web服务器:Apache Tomcat 6.0Java环境:jdk1.6.0_16数据库:MySQL Server 5.1开发环境:MyEclipse 7.0技术框架:Struts-2.1.8.1 ; Hi

30、bernate 3.2第3章 总体设计本章将从整个系统的功能模块划分、数据库设计、系统架构、运行机制等几个方面进行描述.3.1 功能模块划分多用户博客系统从整个架构特点来看,主要由用户博客首页、用户博客后台、系统博客首页和系统博客后台4个大的功能模块组合而成,系统总体功能模块如图3-1所示。图3-1 系统总体功能模块图系统博客首页:系统博客首页主要是对所有用户的博客信息进行按照一些的排序方式进行统一展现。系统博客后台:系统博客后台主要是对系统内的所有信息进行统一管理,如:对非法信息进行清除等操作。用户博客首页:用户博客首页主要是对用户个人的博客内容进行展现。用户博客后台:用户博客后台主要是用户

31、的博客内容进行管理,如:日志的发布,删除等操作。3.2 数据库设计本系统主要由7个基本表组成,分别为person(用户表),space(空间信息表),post(日志表),category(分类表),reply(日志评论表),comment(留言表),link(超链接表),各表关系如下图所示:图3-2 数据库各表关系图3.2.1 person用户表用户表记录用户基本信息,结构如表3-1所示:表3-1 person用户表字段名称字段类型长度是否可为空备注idint11否用户IDaccountvarchar50否用户帐号passwordvarchar50否用户密码namevarchar50否用户昵称

32、emailvarchar50是用户电子邮箱sexvarchar10是用户性别dateCreatedvarchar50否注册时间ipCreatedvarchar50否注册IPisAdminint10否是否为管理员3.2.2 space空间信息表空间信息表记录了用户空间的信息,结构如表3-2所示:表3-2 space空间信息表字段名称字段类型长度是否可为空备注idint11否空间IDnamevarchar50否空间名称desvarchar400是空间描述3.2.3 post日志表日志表记录了日志的详细信息,结构如表3-3所示:表3-3 post日志表字段名称字段类型长度是否可为空备注idint11

33、否日志IDtitlevarchar50否日志标题contentvarchar10000是日志内容hitint11否日志点击数dateCreatedvarchar50否日志创建时间Spa_idint11否日志所属空间Cat_idint11否日志所属分类3.2.4 category分类表分类表记录了日志的分类信息,结构如表3-4所示:表3-4 category分类表字段名称字段类型长度是否可为空备注idint11否分类IDnamevarchar50否分类名称Spa_idint11否分类所属空间3.2.5 reply日志评论表日志评论表记录了日志的相关评论信息,结构如表3-5所示:表3-5 repl

34、y日志评论表字段名称字段类型长度是否可为空备注idint11否评论IDnamevarchar50否评论者名字contentvarchar1000是评论内容floorint11否评论数dateCreatedvarchar50否评论时间ipCreatedvarchar50否评论IPPost_idint11否评论所属日志3.2.6 comment留言表留言表记录了他人对博主空间的留言,结构如表3-6所示:表3-6 comment留言表字段名称字段类型长度是否可为空备注idint11否留言IDnamevarchar50否留言者名字contentvarchar1000是留言内容floorint11否留言

35、数dateCreatedvarchar50否留言时间ipCreatedvarchar50否留言IPSpa_idint11否留言所属空间3.2.7 link超链接表超链接表记录了用户设置的超链接信息,结构如表3-7所示:表3-7 link超链接表字段名称字段类型长度是否可为空备注idint11否超链接IDtitlevarchar50否超链接标题urlvarchar100否超链接内容Spa_idint11否超链接所属空间3.3 系统架构系统将采用提供Web服务器的经典架构,即:B/S(Browse/Server)架构,该架构和传统的架构C/S(Client/Server)最大的不同在于,传统架构不

36、但要提供服务器端(Server)的程序,还需要提供一个客户端(Client)程序,当软件有更新时,需要所有客户端同时升级才能享受到你的功能,所以软件升级成本比较高。而B/S架构则很好的解决了这一问题,该架构的最终系统代码只需要放在Web服务器上,而用户仅仅通过浏览器就能轻松访问系统,而对于系统的升级,只需要将系统代码更新到Web服务器上,用户就能享受到新系统所带来的功能体验。系统总体架构如图3-3所示:图3-3 系统总体架构图Browser为用户浏览器,即安装在用户电脑上的WEB浏览器。对于用户浏览器来说只需要和WEB服务器进行交互,而WEB服务器再与系统交互,把结果返回给用户浏览器。而数据库

37、也是和系统交互,将结果统一给WEB服务器返回给用户浏览器。用户浏览器与WEB服务器采用HTTP协议进行通信,而系统和数据之间的通信则采用底层的TCP/TP协议进行。3.4 系统运行机制本节主要对整个系统运行平台的运行机制加以说明,运行平台基于windows平台,而开发平台主要是基于面向对象的JAVA语言,另外整合了JAVA WEB流行框架Struts2和Hibernate。Windows平台运行机制如图3-4所示:图3-4 windows运行平台机制图如图3-4所示,运行机制为:用户在浏览器里输入博客系统地址,然后浏览器通过HTTP请求访问提供服务的服务器的8080端口,由于在服务器上8080

38、端口由Tomcat服务器提供,所以操作系统把整个请求交给Tomcat来处理,Tomcat通过用户的请求地址,识别出系统采用JSP语言编写,这里Tomcat服务器需要调用JSP解析引擎来对指定的博客系统源码进行解析,然后将JSP返回的结果返回给用户浏览器,最终用户就能够通过浏览器看到博客系统的界面了。在JSP解析博客系统的过程中,如果需要从数据库里取数据,则通过TCP/TP建立起MySQL数据库服务器的连接。最终通过JSP将需要返回,这一步是在JSP内部完成。第4章 系统详细设计与实现本章将描述整个博客系统最核心的部分,主要从各功能的具体设计方法和主要实现代码方面描述。4.1 类的设计与实现在博

39、客系统中,类的设计主要分为两类:一类是Java Bean,还有一类是通用工具类。其他类为次要,在此不另外说明。4.1.1 Java Bean类的设计Java Bean一般用来封装业务逻辑、数据库操作以及在系统存储和传递数据的实体,是整个软件的核心部分。Java Bean类图如下4-1所示(图中省略了getter()和setter()方法):图4-1 Java Bean类图如图4-1所示:l Person Bean用来保存用户的基本信息,包括:用户ID,帐号,密码,昵称,电子邮箱,性别,注册时间,注册IP,是否为管理员。l Space Bean用来保存用户空间的信息,包括:空间ID,空间名,空间

40、描述。l Post Bean用来保存用户日志的信息,包括:日志ID,标题,内容,被点击数,创建时间,所属空间以及所属分类。l Category Bean用来保存分类的信息,包括:分类ID,分类名和所属空间。l Reply Bean用来保存日志评论的信息,包括:评论ID,评论者名字,评论内容,评论数,评论时间,评论IP和评论所属日志。l Comment Bean用来保存留言的信息,包括:留言ID,留言者名字,留言内容,留言数,留言时间,留言IP和留言所属空间。l Link Bean用来保存超链接的信息,包括:超链接ID,超链接标题,超链接内容和超链接所属空间。4.1.2 通用类的设计在博客系统中

41、还设计了通用类,这个通用类主要是针对Hibernate设计的,这个类在对数据的插入,修改,删除,更新时经常用到,因此在这里把它封装成一个通用,方便以后的调用。HibernateSessionFactoryUtil代码如下所示:public class HibernateSessionFactoryUtil private static SessionFactory sessionFactory; /单态模式的SessionFactoryprivate HibernateSessionFactoryUtil() static /static代码块,类加载时初始化Hibernate session

42、Factory = new Configuration().configure().buildSessionFactory();public static SessionFactory getSessionFactory() return sessionFactory;4.2 数据库与Hibernate配置本系统使用现今流行的Java Web框架Hibernate来统一管理数据库,在MySQL数据库中先建立好基本表,然后通过Hibernate与Java Bean对应映射关系,Hibernate配置文件如下所示:root jdbc:mysql:/localhost:3306/blog?chara

43、cterEncoding=UTF-8org.hibernate.dialect.MySQLDialectcom.mysql.jdbc.Driver123 com.mysql.jdbc.Driver threadtrue .4.3 Struts 2配置本系统采用经典的MVC设计模式,由现今流行的Java Web框架Struts 2进行统一管理,Struts 2是一个十分实用的MVC框架,Struts 2的配置文件如下所示: /person/RegisterSuccess.jsp /person/register.jsp /person/pAdmin.jsp/person/login.jsp4.4

44、 模块详细设计与实现本节将详细介绍博客系统各模块的设计,主要模块包括:登录与注册模块,日志管理模块,日志评论模块,分类模块,留言模块。4.4.1 登录与注册模块1.注册用户通过填写注册页面的的要求完成注册,注册时需要符合系统对用户注册的要求,如用户名不能重复,输入正确的验证码等。注册成功的同时,并开通个人博客,操作流程为将用户所填写的注册信息插入到用户表,并根据用户ID和博客系统的缺省参数生成一条记录,插入到空间信息表中。注册页面如图4-2所示:图4-2 注册页面2.登录登录功能的操作流程为根据用户所填写的登录信息去用户表里查询,如果有该记录,则说明登录成功,然后根据用户ID从空间信息表里取出

45、信息,最后初始化用户信息和用户空间信息,登录成功就跳转到用户博客首页。登录代码如下所示:public class LoginAction extends ActionSupport private String account; /从登录页面接收到帐号private String password; /从登录页面接收到密码public String login() String message = null;PersonDao dao = new PersonDaoHibernate(); /验证密码是否与数据库中数据匹配,若不匹配则if (dao.validateLogin(account,

46、 password) = null) /返回消息错误message = 用户名和密码错误!;ServletActionContext.getRequest().setAttribute(message, message); return input; /登录错误,仍返回登录页面 else ServletActionContext.getRequest().getSession(true).setAttribute(account, account); /数据若遇数据库中数据匹配则将account保存到sessionreturn LoginSuccess; /登录成功,返回登录成功页面4.4.2

47、 日志管理模块日志管理模块主要包括的功能有对日志的添加,修改,删除,查询,详细情况如下:1.添加日志在添加日志时首先选择日志所属的分类,选择分类后再向日志表中插入日志内容,日志内容包括日志标题,内容,添加内容部分采用现今流行的HTML编辑器ckeditor。如果失败则退出,然后更新日志发表时间,IP以及设置点击数(Hit)为0,具体流程如图4-3所示:图4-3 添加日志流程图添加日志代码如下(省略getter(),setter()方法)所示:public class AddPostAction extends ActionSupport private static final long se

48、rialVersionUID = -6214943526110239290L;private String title; /从添加日志页面接收标题private String content; private String cname; public String execute() throws Exception Session session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();Transaction tx = session.beginTransaction();Post post

49、= new Post(); /定义一个Post类型的对象postpost.setTitle(title); /将接收到的标题存入postpost.setContent(content); List list = (List) ServletActionContext.getRequest().getSession(true).getAttribute(spacelist);Space s = (Space) list.get(0); /获取要添加日志的所在空间Integer sid = s.getId();CategoryDao dao = new CategoryDaoHibernate()

50、;Category c = dao.findByName(cname, sid); /通过分类名找到分类对象Integer cid = c.getId();Category category = (Category) session.get(Category.class, new Integer(cid);Space space = (Space) session.get(Space.class, new Integer(sid);post.setSpace(space); /将空间对象保存到postpost.setCategory(category);SimpleDateFormat sdf

51、=new SimpleDateFormat(yyyy年MM月dd日 HH:mm:ss); /格式化时间Date dt = new Date();post.setDateCreated(sdf.format(dt); /将时间保存到postsession.save(post); /将post对象保存mit();return addSuccess;添加日志页面如下图4-4所示:图4-4 添加日志页面2.修改日志修改日志首先要根据日志ID查询到所要修改的日志,然后从数据库中读取日志的相关信息到修改日志页面,最后通过日志ID更新操作插入数据库,修改日志页面与添加日志页面基本相同。具体流程如下图4-5所

52、示:图4-5 修改日志流程图修改日志代码如下(省略getter(),setter()方法)所示:public class EditPostAction extends ActionSupport private static final long serialVersionUID = 7616571471898530213L;private String title; /从编辑页面接收标题private String content;private String cname;private String id;public String execute() throws ExceptionPo

53、st post=null;Session session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();Transaction tx = session.beginTransaction(); List list = (List) ServletActionContext.getRequest().getSession(true).getAttribute(splist); /通过session获取空间列表Space s = (Space) list.get(0);Integer sid = s.getId();CategoryDao dao = new CategoryDa

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!