基于JSP的多人blog开发设计_第1页
基于JSP的多人blog开发设计_第2页
基于JSP的多人blog开发设计_第3页
基于JSP的多人blog开发设计_第4页
基于JSP的多人blog开发设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、 山东交通学院2008届毕业生毕业论文(设计)题目:多人blog开发设计院(系)别 信息工程系 专 业 计算机科学与技术 班 级 计算 学 号 姓 名 指导教师 二八年六月原 创 声 明本人 郑重声明:所呈交的论文“多人blog开发设计”,是本人在导师何斌和徐海云的指导下开展研究工作所取得的成果。除文中特别加以标注和致谢的地方外,论文中不包含任何其他个人或集体已经发表或撰写过的研究成果,对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明,本人完全意识到本声明的法律后果,尊重知识产权,并愿为此承担一切法律责任。 论文作者(签字): 日期: 年 月 日 摘要随着互联网技术的发展与逐渐成熟

2、,网络交流已经演变成为一种时尚。博客也被越来越多的人喜欢,校园内师生需要一个交流的机会,因此本人所设计的多人博客系统将作为师生交流的平台。本文介绍了系统的设计目标,系统需求和整体设计方案,较详细的论述了系统的详细设计和实现。系统主要完成了用户注册,登陆,日志管理,相册管理,个人资料管理,留言管理,好友管理,消息管理等功能。本系统是利用JBuiler 开发的基于Struts和Hibernate 框架的系统。设计使用Struts 作为表现层的框架,使用Hibernate 作为持久化层的框架,大大曾强了应用的可扩展性和可维护性。关键词:博客,Struts,Hibernate,JSPAbstractW

3、ith the development of Intenet technology and gradually mature, Internet exchanges has evolved into a fashion.The Blog has also been liked by more and more pople.In the university, tecchers and students need an opportunity to exchange,so the blog system I designed will serve as a plateform for excha

4、nge of teachers and students.Key words:Blog, Struts, Hibernate , JSP目 录前言11 系统开发概述21.1 概述21.1.1 表现层框架Struts 简介21.1.2 持久化层框架Hibernate 简介错误!未定义书签。1.1.3 开发工具JBuilder 简介错误!未定义书签。1.1.4 数据库MySQL简介错误!未定义书签。1.2 系统开发背景错误!未定义书签。1.3 系统开发目的错误!未定义书签。1.4 系统开发目标错误!未定义书签。2 系统分析32.1系统开发的可行性分析32.1.1 经济可行性32.1.2 技术可行性

5、32.1.3 运行操作可行性32.2需求分析32.2.1 原有系统存在的问题32.2.2 用户需求32.2.3 总体目标42.3 系统功能模块分析42.4 数据库需求分析错误!未定义书签。2.5 系统性能需求错误!未定义书签。3 数据库设计63.1 数据库设计E-R 图63.2 数据库部分表结构64 详细设计134.1 系统架构134.2 系统详细设计134.2.1 个人资料模块144.2.2 日志模块154.2.3 好友管理模块错误!未定义书签。4.2.4 消息管理模块错误!未定义书签。4.2.5 相册管理模块错误!未定义书签。4.2.6 圈子管理模块错误!未定义书签。5 编码165.1 创

6、建持久化类165.2 创建Hibernate 配置文件hibernate.cfg.xml错误!未定义书签。5.3 struts-config.xml文件错误!未定义书签。6 系统测试176.1 测试方法176.2 系统测试错误!未定义书签。6.2 系统测试报告18结论19致谢20参考文献21附录22前言在这个网络迅速发展的时代里,网络交流给我们带来了很多方便。如今博客颇受人们欢迎,也出现了成了专门的撰写博客的人。博客充分利用网络互动,更新及时的特点,让你最快获取有价值的信息与资源;在博客中你可以发挥无限的表现力,及时记录和发布个人的生活故事、闪现的灵感等;更可以以文会友,结识和汇聚朋友,进行深

7、度交流沟通,总之博客给人们提供了一个交流与互动的平台。另外“校内网”的崛起也证明了网络交流在大学生的生活中占有了重要的角色。我的设计也就是从这里出发的, blog系统为师生在校内打造一个交流的平台,以便更好的沟通。从发展之初,博客就带有双重功能,一方面它是很棒的在线写日志的工具,另一方面也是绝佳的交流工具。该词最早是在2002年8月8日由著名的网络评论家王俊秀和方兴东共同撰文提出来的。它源于英文单词Blog/Blogger,是Weblog(Web 和Log的组合词)的简称,就是在网络上的一种流水记录形式或者简称“网络日志”。 博客从一开始首先就是指一种网络交流方式继Email、BBS、IM(即

8、时通讯)之后出现的第四种网络交流方式。有人说博客是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,是信息时代的麦哲伦。总之,博客是一个正处于快速发展和快速演变中的互联网新应用。今天,Java Web开发越来越多,成为一种时尚。而且也有越来越多的框架被应用到开发中,加快了开发的速度,提高了开发的质量。像Struts 框架就是一款优秀的基于MVC的Java Web框架,Hibernate 同样是一款优秀的开源的对象关系映像框架。本系统使用Struts加Hibernate框架进行设计开发,使得更容易开发和维护。本系统实现了用户的注册,登录,日志管理,相册管理,评论管理,消息管理,个人资料管

9、理等功能,在线写日志功能已很好的体现。老师和学生经过注册后,可以将自己的感想和感悟发表于网上与他人共享和交流。1 系统开发概述1.1 概述本系统是利用JBuiler 开发的基于Struts框架和Hibernate 框架的系统。系统使用Struts 作为表现层框架,使用Hibernate 作为持久化层框架,使用MySQL 作数据库。以下对所使用的框架和工具,数据库作一下简要介绍。在这之前首先解释一下什么是框架,为什么要使用框架。框架(framework)是可重用的,半成品的应用程序,可以用来产生专门的定制程序Johnson 1。框架可以省去那些通用的而又繁琐的细节,让开发者有更多的时间与精力来解

10、决实际业务问题,大大提高了Web 应用的开发速度。如果没有这些现有的框架(如Struts,Hibernate等),开发人员不得不首先花大量的时间和精力来设计和开发自己的框架1。因此本系统使用了Struts和Hibernate框架。1.1.1 表现层框架Struts 简介Struts 作为一款优秀的基于MVC的Java Web框架,已经得到了广大的企业和Java Web开发人员的认可,成为Java Web开发的首选框架2。Struts的优点:它跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,另外Struts的主要优点集中表现在Taglib和页面导航。Taglib是Strut

11、s的标记库,灵活动用,能大大提高开发效率。图1.1 Java Web 应用的结构Fig.1.1 Java Web Application Structure2 系统分析2.1系统开发的可行性分析2.1.1 经济可行性本系统使用到了Struts和Hibernate框架,使用MySQL数据库。(1) Struts 在Apache 软件许可ASF,License下对公众是免费的。(2) Hibernate是一个开源的对象关系映射框架。(3) MySQL数据库是免费的开源软件。基于以上三点,开发成本是可行的,并且系统开发完成后维护不需要太多的人力,财力,因此在经济方面是可行的。2.1.2 技术可行性在

12、这之前已经学过一些Java Web开发,而且现在已经了解了Struts框架和Hibernate框架,自己有能力独立开发此系统。并且JBuilder集成了JDK和Tomcat,省去了配置JSP环境的繁冗细节,Struts 在Jbuilder中得到了无缝的支持,像可视化的Struts流程编辑器,Struts程序流程一目了然;Hibernate对JDBC进行了轻量级的对象封装,只操作Hibernate提供的几个类就可以达到操作关系数据库的目的,因此在技术方面可行。2.1.3 运行操作可行性(1) 系统基于B/S模式,服务集中于服务器端实现,客户端硬件不需要太高配置,运行可行。(2) 系统完全是在浏览

13、器上的界面操作,操作可行。2.2需求分析2.2.1 原有系统存在的问题在开发之前对一原有的系统进行了原型化分析,发现存在以下问题:(1) 用户注册时没有密码提示功能。(2) 用户界面模板单一。(3) 写日志的工具功能不够强大,不方便用户随心所欲的写日志。(4) 日志和相册用户不能自定义分类。2.2.2 用户需求(1) 系统要求采用B/S模式。(2) 用户注册时有密码提示功能和密码安全级别检查功能。(3) 用户可以自定义模板。(4) 设计较好的写日志工具,增加文本编辑功能和自定义标签功能。(5) 用户可以上传附件。(6) 用户可以给好友发送短消息。(7) 用户可以对日志和照片发表评论。(8) 写

14、日志,评论等不能因为编码问题出现乱码。2.2.3 总体目标系统开发的总体目标是为了方便师生交流,实现博客的基本功能,如发表日志,发表评论,上传照片等。系统有较好的容错能力,增加系统的健壮性。2.3 系统功能模块分析系统主要模块功能分析图如下:(1) 相册模块图 2.1 相册模块Fig.2.1 Album module(2)博客设置模块图 2.2 博客设置模块Fig.2.2 Blog setting module (3)日志模块图 2.3 日志模块Fig.2.3 Log module(4)个人资料管理模块图 2.4 个人资料管理模块Fig.2.4 Personal information man

15、agement module3 数据库设计3.1 数据库设计E-R 图图3.1 系统E-R图Fig.3.1 System E-R chat3.2 数据库部分表结构通过分析E-R图,为了使数据库结构清晰,数据冗余达到最小,访问速度达到最快,对数据库系统设计采取了分类,分层的设计方法。数据库部分表结构如下面的表所示:表3.1 管理员表Tab.3.1 Admin table字段名数据类型长度允许空主键默认值说明IDUNSIGNED INT10NY编号USERNAMEVARCHAR20NNadmin登录名PASSWORDVARCHAR20YN登录密码LASTLOGINIPVARCHAR20YN最后登录

16、IPLASTLOGINTIMETIMEYN最后登录时间说明:管理员表纪录管理员的信息。表3.2 附件表Tab.3.2 Attachment table字段名数据类型长度允许空主键默认值说明IDUNSIGNED INTNY附件编号UIDUNSIGNED INTNN用户编号TYPEVARCHAR10NN附件类型URLVARCHAR255NN附件地址说明:附件表记录上传的附件的信息,与用户表参照对应。表3.3 博客类别表Tab.3.3 Blog class table字段名数据类型长度允许空主键默认值说明IDUNSIGNED INTNY博客类型编号NAMEVARCHAR50NN新博客类别博客类型名字

17、DESCRIPTIONVARCHAR255YN类型描述说明:博客类别表记录用户博客类别。表3.4 积分规则表Tab.3.4 Coin rule table字段名数据类型长度允许空主键默认值说明IDUNSIGNED INTNY编号DEFAULTSMALLINTNN300注册默认加分DIARYCOINSMALLINTNN5日志加分PHOTOCOINSMALLINTNN5上传照片加分DIGCOINSMALLINTNN1推荐加分(被推荐)MESSAGECOINSMALLINTNN1留言加分(被留言)COMMENTCOINSMALLINTNN50评论加分(被评论)ABLUMCOSTSMALLINTNN1

18、创建相册扣分ATTACHCOSTSMALLINTNN1下载附件扣分说明:积分规则表记录系统积分规则。表3.5 系统相册类别表Tab.3.5Dystem ablum class table字段名数据类型长度允许空主键默认值说明IDLONGNY相册类别编号NAMEVARCHAR20YN相册类别名字说明:系统相册类别表记录系统相册类别。表3.6 系统配置表Tab.3.6 System config table字段名数据类型长度允许空主键默认值说明IDLONG10NY编号SITE_NAMEVARCHAR50YNSOSBlog网站名称SITE_TITLEVARCHAR50YNSOSBlog网站标题SIT

19、E_URLVARCHAR50YN网站地址SITE_COPYRIGHTVARCHAR255YNCopyright © 2008- AllRights Reserved.版权说明SITE_KEYWORDSVARCHAR255YN关键字SITE_EMAILVARCHAR50YN站长邮箱REG_TEXTMEDIUMTEXTYN用户注册协议USER_PLACARDMEDIUMTEXTYN欢迎使用SOSBlog系统用户后台公告USER_UPDIRVARCHARNNupfiles用户上传文件目录USER_DIRVARCHARNNu用户站点目录MAXDIARYLENGTHSMALLINTNN6553

20、5用户日志允许最多字符数MAXMESSAGELENGTHSMALLINTNN32768留言允许最多字数MAXCOMMENTLENGTHSMALLINTNN32768评论允许最多字数IS_REGAUDITBOOLNNTRUE用户注册是否需要审核IS_DIARYAUDITBOOLNNFALSE发表日志是否需要审核IS_ACTIVEBOOLNNTRUE网站是否运行IS_REGBOOLNNTRUE是否允许新用户注册IS_GETPASSWORDBOOLNNTRUE是否允许用户取回密码IS_ALBUMBOOLNNFALSE是否允许创建相册IS_MUSICBOXBOOLNNFALSE是否允许使用音乐盒IS_

21、REGVERIFYBOOLNNTRUE注册时是否需要验证码IS_LOGINVERIFYBOOLNNTRUE登陆时是否需要验证码IS_COMMENTVERIFYBOOLNNTRUE评论、留言时是否需要验证码IS_MESSAGEBOOLNNTRUE游客是否允许留言IS_COMMENTBOOLNNTRUE游客是否允许评论说明:系统配置表记录系统配置信息。表3.7 系统日志类别表Tab.3.7 System subject table字段名数据类型长度允许空主键默认值说明IDLONGNY日志类别编号NAMEVARCHAR20NN日志类别名字说明:系统日志类别表记录系统日志类别。表3.8 用户表Tab.

22、3.8 User table字段名数据类型长度允许空主键默认值说明UIDLONGNY用户编号USERNAMEVARCHAR50NN用户名PASSWORDVARCHAR50NN用户密码QUESTIONVARCHAR50NN密码提示问题ANSWERVARCHAR50NN密码提示答案EMAILVARCHAR50NN用户注册邮箱PROVINCEVARCHAR50NN省份CITYVARCHAR50NN城市JOBVARCHAR50NN用户职业ICONURLVARCHAR50YN头像地址NICKNAMEVARCHAR50YN昵称REALNAMEVARCHAR50YN真实名字GENDERLONGYN性别 0:

23、女 1:男BIRTHDAYDATEYN生日QQVARCHAR50YNQQ号MSNVARCHAR50YNMSNPHONEVARCHAR50YN电话MOBILEVARCHAR50YN手机HOMEPAGEVARCHAR50YN主页ADDRESSVARCHAR255YN地址POSTCODEVARCHAR20YN邮编BLOGNAMEVARCHAR50YN博客名BLOGINFOVARCHAR255YN站点信息BLOGPLACARDVARCHAR255YNBLOG公告BLOGCLASSIDUNSIGNED INTNN0用户博客类别编号BLOGSKINMAINMEDIUMTEXTNN日志主模版BLOGSKIN

24、SUBMEDIUMTEXTNN日志副模版PLAYERTYPEIDUNSIGNED INTYN0播放器类型SHOW_DIARYWORDNUMLONGNN50日志默认部分显示字数SHOW_DIARYPERPAGELONGNN10每页显示日志篇数SHOW_PHOTOPERPAGELONGNN6每页显示照片数SHOW_NEWDIARYNUMLONGNN5显示最新日志条数SHOW_NEWCOMMENTNUMLONGNN10显示最新评论数SHOW_NEWREPLYNUMLONGNN10显示最新留言条数SHOW_COMMENTORDERLONGNN0日志评论排列顺序(0:时间顺序 1:时间倒序)EDITOR

25、TYPELONGNN0默认编辑器类型字段名数据类型长度允许空主键默认值说明ISCLASSLISTBOOLNNTRUE分类日志是否以列表显示ISINDEXLISTBOOLNNTRUE首页日志是否以列表显示ISDIGABLEBOOLNNTRUE是否可以被被推荐(博客推荐和日志推荐)REGTIMEDATEYNnow注册日期REGIPVARCHAR20YN注册IPLASTLOGINTIMEDATEYNnow最后登陆时间LASTLOGINIPVARCHAR20YN最登陆IPLOGINCOUNTLONGNN0登陆次数HITSLONGNN0被浏览次数COINSLONGNN100用户积分USERLEVELID

26、LONGNN0用户等级DIARYCOUNTLONGNN0用户日志总数PHOTOCOUNTLONGNN0用户照片总数MESSAGECOUNTLONGNN0留言总数COMMENTCOUNTLONGNN0评论总数DIGCOUNTLONGNN0用户被推荐次数ATTACHMENTCOUNTLONGNN0用户的传附件数ISACTIVEBOOLNNTRUE用户是否是活动状态说明:用户表记录用户基本信息,与博客类别表,用户模板表,参照对应。表3.9 用户模板表Tab.3.9 User skin table字段名数据类型长度允许空主键默认值说明IDLONGNY用户模版编号SKINNAMEVARCHAR50YNS

27、OSBlog用户模版模版名称SKINPICVARCHAR255YNusrskins/default/logo.jpg模版图片SKINAUTHORVARCHAR50YN模版作者SKINAUTHORURLVARCHAR255YN作者链接SKINMAINMEDIUMTEXTNN主模版SKINSUBMEDIUMTEXTNN副模版ISDEFAULTBOOLNNN是否是默认模版ISPASSBOOLNNN是否通过审核说明:用户模板表记录用户模板信息。表3.10 用户等级表Tab.3.10 User level table字段名数据类型长度允许空主键默认值说明IDLONGNY用户等级编号LEVELNAMEVA

28、RCHAR50NN用户等级等级名称COINLIMITLONGNN0用户需要积分数量USERCOUNTLONGNN0此等级的用户数字段名数据类型长度允许空主键默认值说明FILESPACELONGNN0此等级用户可使用的空间大小说明:用户等级表记录用户等级信息。表3.11 用户日志分类表Tab.3.11 User subject table字段名数据类型长度允许空主键默认值说明IDLONGNY分类编号UIDLONGNN用户编号NAMEVARCHAR20YN分类名字说明:用户日志分类表记录用户日志类别。与用户表,系统日志分类表参照对应。表3.12 用户相册表Tab.3.12 User ablum c

29、lass table字段名数据类型长度允许空主键默认值说明ABIDLONGNY编号UIDLONGNN用户编号ABLUMNAMEVARCHAR20YN相册名字COVERURLVARCHAR255YN封面URLTYPEIDLONGNN类型编号说明:用户相册表记录用户相册信息,与用户表,相册分类表参照对应。表3.13 用户照片表Tab.3.13 User photo table字段名数据类型长度允许空主键默认值说明PHOTOIDLONGNY编号ABIDLONGNN相册编号PHOTOURLVARCHAR255NN照片URLTITLEVARCHAR20YN相片标题DESCRIPTIONVARCHAR50

30、0YN相片描述HITSLONGYN点击数说明:用户照片表记录用户相片信息。与用户相册表参照对应。表3.14 用户好友表Tab.3.14 User friend table字段名数据类型长度允许空主键默认值说明UIDLONGNY用户编号FRIENDIDLONGNY朋友编号TYPELONGYN类型 0:好友1:黑名单说明:用户好友表记录用户好友信息,与用户表参照对应。表3.15 用户短消息表Tab.3.15 Users message table字段名数据类型长度允许空主键默认值说明IDLONGNY编号SENDERIDVARCHAR20NN发送者RECIEVERIDVARCHAR20NN接收者IS

31、READBOOLYN是否已读TITLEVARCHAR15YN新消息标题CONTEXTVARCHAR1000YN正文ADDTIMEDATEYN发送时间说明:用户短消息表记录用户短消息的信息,与用户表参照对应。表3.16 用户留言表Tab.3.16 Users message table字段名数据类型长度允许空主键默认值说明MIDLONGNY消息编号UIDLONGNN用户编号WRITERIDLONGNN写消息者ADDTIMEDATEYN消息发送时间CONTENTVARCHAR50YN消息发送者IPREPLYVARCHAR500YN回复内容REPLYTIMEDATEYN回复时间HOMEPAGEVAR

32、CHAR50YN用户主页urlCONTENTVARCHAR500YN消息内容TITLEVARCHAR20YN消息主题说明:用户留言表记录用户留言,与用户表参照对应。4 详细设计4.1 系统架构系统所使用的整体架构如图4.1所示:图4.1 系统架构Fig.4.1 System architecture系统整体架构说明:(1) Struts框架作表现层。跟用户打交道的是JSP页面,Struts的ActionForm类获取用户的请求,由Action类去处理用户的请求,最后再由JSP页面显示处理的结果。(2) Hibernate框架作持久化层。当需要操作数据库时,Hibernate 根据配置文件hib

33、ernate.cfg.xml提供的信息链接数据库,再根据持久化类和对象关系映射文件对相应的数据库表进行操作。(3) MySQL作数据库。4.2 系统详细设计系统总体设计结构图如下图4.2 所示:图4.2 系统结构图Fig.4.2 Structure of the system 4.2.1 个人资料模块图4.3 个人资料页面迁移Fig.4.3 Personal information pages relocation图4.3的说明:当用户需要对个人资料进行设置或对密码进行修改时,userInfoActionForm类获取用户的请求,userInfoAction类去处理用户的请求,主要针对用户表进

34、行修改。(1) 点击个人资料设置,对个人的信息资料进行设置和修改,如头像,昵称,真实姓名,生日,QQ号,msn号,每页显示的照片数,每页显示的日志篇数,显示最新留言条数等等。修改完毕点击提交按钮进行提交。(2) 点击密码修改连接,在文本框中填入新密码,选择密码提示问题,填写密码提示问题答案,按确定按钮提交信息。4.2.2 日志模块图4.4 日志页面迁移Fig.4.4 Log pages relocation5 编码部分代码介绍,对于每一个模块来说,实现的方法都是一样的,都是使用JSP页面作表现层,Struts框架中的Action 作控制层,而用Hibernate框架去实现与MySQL 数据库的

35、连接,完成对数据库的操作。部分代码实现如下:5.1 创建持久化类这个持久化类是Hibernate连接数据库的一个条件,类中的成员变量与数据库中的相关表是对应的,以下是Userphoto类的部分代码(请参照:表3.13用户照片表)。package sosblog.beans;import java.io.Serializable;import java.util.Set;import mons.lang.builder.ToStringBuilder;public class Userphoto implements Serializable private Integer id; privat

36、e String url; private String title; private String description; private Integer digcount; private Integer readcount; private Integer commentcount; private sosblog.beans.Userablum userablum; private Set userphotocomments; public Integer getId() return this.id; public void setId(Integer id) this.id = id; public String getUrl() return this.url; public void setUrl(String url) this.url = url; public String getTitle() return this.title; public void setTitle(String title) this.title = title; 6 系统测试6.1 测试方法表6.1 测试表Tab. 6.1 test table测试模块测试功能测试用例/测试方法测试结果测试说明用户注册密码安全级别检查(1) 密码:(2) 密码:zhangliang(3)

温馨提示

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

评论

0/150

提交评论