blog的设计与实现课程设计.doc
《blog的设计与实现课程设计.doc》由会员分享,可在线阅读,更多相关《blog的设计与实现课程设计.doc(50页珍藏版)》请在沃文网上搜索。
1、 摘要随着互联网络的发展,在自由精神与共享精神的影响下博客(Weblog,Blog)诞生了。Blog的产生让我们可以有更多的机会向别人展示我们自己的见解与日常生活中的信息。JAVA作为目前最为流行的技术之一,其企业版本(J2EE)在设计与实现Web应用方面非常适合。并且,目前基于J2EE的开源框架也已经非常成熟。可以利用现有的优秀框架进行系统的设计与构建。使用J2EE技术来设计实现Blog正是本文的目的所在。本文将设计并实现一个基于J2EE的Blog系统。该系统以Struts、Spring以及Hibernate框架为基础进行设计与构建。Struts、Spring以及Hibernate都是开源框
2、架,分别实现MVC(Model-View-Control)、依赖注入(Dependency Injection)以及ORM(Object/Relation Mapping)。为了提高系统的性能,持久层使用了延迟加载方式。而这种方式需要持久层接口的生命周期延续到表示层。通过对现有技术的分析并结合本系统的特点,笔者设计了一个延长持久层接口生命周期的有效方式,LongPersist机制。在利用以上技术的同时,通过分析Blog的特点,最终完成系统结构的设计与实现。本系统主要完成了用户的登录、注册以及管理功能,实现了用户文章的发表与管理。通过使用URL Rewrite方式使用户方便的浏览自己以及其他用户
3、的Blog。关键词:博客;J2EE;Struts;Spring;Hibernate;框架;I目录前言11 项目概述21.1 系统概述21.1.1 Blog21.1.2 J2EE Web技术31.1.3 Struts框架31.1.4 Spring框架41.1.5 Hibernate框架41.1.6 Geronimo J2EE 开源服务器41.2 业务流程描述42 可行性分析62.1 技术可行性62.2 经济可行性82.2.1支出92.2.2效益92.2.3收益/投资比92.3 操作可行性93 需求分析103.1 系统的设计思想103.1.1 表示层103.1.2 中间层123.1.3 业务逻辑层
4、123.1.3 持久层123.1.3 简单JAVA对象(POJO)133.2 总体目标133.3 具体目标133.3.1 系统功能设计143.3.2 系统特点143.4 系统数据流程图153.5 数据字典184 概要设计244.1 Blog系统结构图244.2 Blog系统接口设计244.3 数据库设计254.3.1 数据库需求分析254.3.2 数据库概念结构设计264.3.3 关系模式设计284.3.3 数据库表结构294.5运行设计314.6安全技术335 详细设计345.1 Blog系统层间协作设计345.2 Blog系统功能模块设计375.2.1 用户身份375.2.2 用户Blog
5、列表显示385.2.3 用户Blog操作395.2.4 Blog评论435.2.5 文章分类管理435.2.6 系统支撑455.3 Blog系统Long Persist机制455.3.1 利用request对象和Service对象的finalize方法实现465.3.2 利用request对象和EL语言实现476 编码496.1 系统使用的语言496.2 编码工具497 系统实现507.1 用户注册界面507.2 用户登录界面507.3 Blog导航界面507.4 用户Blog显示界面527.5 用户信息管理界面538 测试568.1 用户注册测试568.1.1用户名测试用例568.1.2用户
6、密码测试用例568.1.3用户E-mail地址测试用例578.1.4用户Blog空间标题测试用例578.1.5用户Blog空间描述测试用例588.2 用户登录测试588.3用户文章发表测试598.4 用户评论发表测试598.5 Blog系统测试结论59结论60辽宁工程技术大学毕业设计(论文)前言Blog是Web logs的简称,中文名称为博客。Web logs是Web和Log的组合,Web意为环球网络,Log意为航海日志,也就是在海上航行的记录。Web log可以意为在网络上“航行”的记录。Blog表现了互联网的自由、共享的精神。使得每个人成为信息传播的参与者,而使得传统媒体的信息垄断被打破。
7、Blog用它的创新给网络带来了新的生命力,让不同年龄层和不同背景的人们能够互动起来。是继Email、BBS、ICQ之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,是代表着新的生活方式和新的工作方式,更代表着新的学习方式。Blog的出现集中体现了互联网时代非商业化自由以及大众化的信息传播。1 项目概述一个Blog就是一个或几个网页,它通常是由简短且经常更新的日志(log)所构成。Blog的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人、构想、新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有,涉及各行各业。许多Blog是个人
8、心中所想之事情的发表,倾向于个人情感的体现活动。其它Blog则是一群人基于某个特定主题或共同利益领域的集体创作。Blog好像对网络传达的实时信息。撰写这些Weblog或Blog的人就叫做 Blogger或Blog writer。本Blog系统是为Bloggers提供编写、管理日志的空间的基于J2EE技术以及开源框架的Web 应用程序。1.1 系统概述Blog系统,为Bloggers提供编写日志的空间。Bloggers可以通过注册获得属于自己的Blog空间,从而建立自己的Blog。本系统在提供空间的同时,也允许网友对自己关注的Blog进行评论,方便与编写者进行直接的讨论。使用J2EE技术构建,集
9、合主流的Struts、Spring以及Hibernate开源J2EE框架。这种以开源技术为基础的构建方式对于以自由共享精神为基础的Blog来说是再合适不过的了。由于Blog系统的业务逻辑等相对简单,所以将系统设计为轻量级J2EE应用,而不使用EJB等重量级企业应用。1.2 业务流程描述 Blog系统的一般业务流程如下:1) 用户账户注册;2) 用户登录;3) 发表及管理日志,浏览、评论其他用户或自己的日志;4) 登出系统。图1-1 系统业务流程图2 可行性分析2.3 操作可行性使用本系统的用户需要了解一些上网常识,会浏览网页,并对Blog或BBS有一定的了解就可直接进行操作。管理员要有一定计算
10、机知识的人员,对网站规划有一定的了解。可及时对系统及数据库进行定期的整理。3 需求分析Blog系统的存在就是为了使用户可以更好的表达自我,记录身边的事物。为了达到这一目的,本系统主要以操作的简便性、沟通的便捷性以及用户的隐私安全等方面为标准进行系统设计。3.2 总体目标Blog是一种崇尚自由、共享精神的大众化的信息传播方式。更重视个人观点的表达,而不是如传统媒体那样让读者以被动式接受的方式来传播信息。Blog一般都比较简短,更新速度较快。所以,Blog系统应该更重视操作的简便性和系统的快速性。这就要求系统的设计在实现基本功能的基础之上尽可能的简洁。同时,还要提供用户隐私的保护。Blog系统应该
11、提供用户和浏览者之间讨论的渠道,使作者可以在第一时间了解读者对于自己文章的看法,也使读者有机会与作者进行直接的沟通。3.3 具体目标通过总体目标的规划,设计了下面的具体目标。包括系统应具备功能以及本Blog系统统所具有的特点。3.3.1 系统功能设计本Blog系统将完成以下功能:1) 用户的注册、登录和登出;用户注册成功后,自动为其建立文章分类“默认分类”;2) 显示用户主页;可以分页、分类显示用户的文章(Log)列表;在浏览器地址栏中输入“http:/server:port/Blog系统 /用户名”即可显示该用户的主页;3) 显示用户文章以及对该文章的评论;4) 登录后的用户可以评论自己以及
12、别人的文章;5) 登录后的用户可以发表文章,编辑自己的文章,删除自己的文章;支持用户发表带有格式的文章;并可以选择文章的分类以及是否公开;6) 登录后的用户可以管理所有人对自己文章的评论;7) 登录后的用户可以管理自己的文章分类,包括新建、修改和删除,其中对于删除的分类,其下的所有文章归入“默认分类”;默认分类不可修改或删除。8) 管理员可以管理用户的文章,包括删除、编辑;9) 管理员可以管理所有评论;10) 管理员可以管理用户的文章分类;11) 管理员的操作全部在普通页面中进行,无须建立管理员专区。3.3.2 系统特点1) 整个系统建立在严密的身份验证基础上,对不同权限的用户提供不同的服务;
13、2) 系统的各项功能简单实用。只要对网络稍有了解的人都可以在几分钟之内熟练操作本系统;3) 文章列表采取分页方式显示,并且可以按照类别过滤。方便读者浏览;4) 非公开内容对于除作者和管理员之外都是不可见的;5) 管理员的所有管理操作都可以在普通的页面上完成,无须建立管理员专区。管理员的管理操作可以即时的反映出来。4 概要设计4.1 Blog系统结构图根据Blog系统需求,设计系统功能如图4-1所示:图4-1 系统结构图Fig.4-1 System chart4.2 Blog系统接口设计1) 用户界面设计在用户界面部分,根据分析的结果,用户需要一个友善的界面。在界面设计上,应该做到简单明了,易于
14、操作,并且要注意到界面的布局。考虑到Blog系统的用户为互联网的使用者,决定采用瘦客户端(浏览器),搭建Web应用程序。系统用户界面简单、易于操作学习。2) 软件接口与数据库服务器通过持久层调用JDBC驱动MySQL数据库。采用驱动程序为:mysql-connector-java-5.0.0-beta-bin.jar。3) 硬件接口采用键盘、鼠标进行输入。4.3 数据库设计数据库在一个系统中占有非常重要的作用,数据库结构设计的好坏将直接的影响到系统得效率,以及实现的效果。合理的数据库设计可以提高数据存储的效率,保证数据的完整和一致性9。Blog系统的设计在数据库系统方面先充分的了解用户各个方面
15、的需求,包括现有的和将来可能增加的需求。数据库设计一般有以下的几个步骤:1) 数据库需求分析。2) 数据库概念结构设计。3) 数据库逻辑结构设计。4.3.1 数据库需求分析用户的需求具体的体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能够满足各种信息的输入输出。通过对系统需求的分析,Blog系统的数据库系统存在以下需求:1) 用户具有用户信息,每个用户具有一种账户状态用于标识权限;2) 用户空间与用户一一对应,具有空间属性;3) 每个用户都可以发表多篇文章(Log);4) 每个用户可以拥有多个文章分类;5) 每篇文章属于其发表者拥有的分类中的一个;6) 每个用户可以对任何一篇公开文
16、章进行评论,并且可以对同一篇文章多次评论。根据以上分析,设计数据结构如下:1) 用户信息:用户账号,用户密码,电子邮件,性别,出生日期,注册日期;2) Blog空间信息:空间标题,空间描述,空间访问计数;3) 文章类别信息:分类名称;4) 文章信息:文章分类,标题,内容,发布时间,公开,浏览量;5) 文章评论:评论内容,发布时间;6) 用户状态:账户状态描述。4.3.2 数据库概念结构设计得到了以上的数据项和数据结构后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计做铺垫。这些实体包含各种具体信息,通过相互间的作用形成数据间的流动。同时,考虑到本Blog系统采
17、用ORM框架Hibernate作为层,所有实体及关系的设计在不违反设计原则的基础上最大程度的利于ORM。用户信息实体图如图4-2:图4-2 用户信息实体图Fig.4-2 User information entity plan空间信息实体图如图4-3:图4-3 空间信息实体图Fig.4-3 Blog space information entity plan文章信息实体图如图4-4:图4-4 文章信息实体图Fig.4-4 Blog information entity plan账户状态信息实体图如图4-5:图4-5 账户状态信息实体图Fig.4-5 User accout statement
18、information entity plan文章分类信息实体图如图4-6:图4-6 文章分类信息实体图Fig.4-6 Category information entity plan实体间关系图(ER图)如图4-7:图4-7 各实体间的E-R图Fig.4-7 All inter-entity E-R plan4.3.3 关系模式设计本系统数据库设计采用了关系模式设计。本系统的关系模式(带下划线的为主码):1) 用户(用户ID,用户账号,用户密码,电子邮件,账户状态ID,性别,出生日期,注册日期);2) Blog空间(用户ID,空间标题,空间描述,访问计数);3) 文章分类(文章分类ID,用户
19、ID,分类名称);4) Blog文章(Blog ID,用户ID,文章分类ID,标题,内容,发布时间,公开,浏览量);5) 评论(评论ID,被评论Blog的ID,评论者ID,评论内容,发布时间);6) 用户状态(账户状态ID,账户状态描述)。4.3.3 数据库表结构数据库表结构是由数据库中所建的表来完成的。数据库的概念结构设计完成后,就可以将数据库概念结构转化为一种数据库系统所支持的实际数据模型。1) 用户信息表(user),用来保存注册到Blog系统中的用户的个人信息。结构如表4-1:表4-1 用户信息表Tablet.4-1 user information table列名称数据类型大小Not
20、 NullNot Equal备注user_idINTEGER依赖于数据库主键user_nameVARCHAR50user_pwdVARCHAR50user_emailVARCHAR255user_stateINTEGER依赖于数据库外键user_sexVARCHAR4user_birthdayDATE依赖于数据库user_reg_dateDATE依赖于数据库2) Blog空间信息表(space),存放用户Blog空间的相关属性。结构如表4-2:表4-2 Blog空间信息表Tablet.4-2 space information table列名称数据类型大小Not NullNot Equal备注
21、user_idINTEGER依赖于数据库主键、外键space_titleVARCHAR50space_descriptionVARCHAR100space_countINTEGER依赖于数据库3) 文章分类表(category),存放用户建立的文章分类的相关属性。结构如表4-3:表4-3 文章分类表Tablet.4-3 blog category table列名称数据类型大小Not NullNot Equal备注category_idINTEGER依赖于数据库主键user_idINTEGER依赖于数据库外键category_nameVARCHAR454) 文章表(blog),存放用户文章的相关
22、属性。表4-4 文章表Tablet.4-4 blog table列名称数据类型大小Not NullNot Equal备注blog_idINTEGER依赖于数据库主键user_idINTEGER依赖于数据库外键category_idINTEGER依赖于数据库外键blog_titleVARCHAR60blog_bodyTEXT65535blog_timeDATE依赖于数据库blog_PublicTINYINT1blog_countINTEGER依赖于数据库5) 文章评论表(comment),存放用户文章的相关属性。表4-5 文章评论表Tablet.4-5 blog comments table列名
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- blog 设计 实现 课程设计