学生个人博客毕业论文Word文件下载.docx
《学生个人博客毕业论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生个人博客毕业论文Word文件下载.docx(48页珍藏版)》请在冰豆网上搜索。
4.1.2服务器和数据库13
4.2程序设计13
4.2.1程序设计概述13
4.2.2三大框架之间的连接和配置14
4.2.3注册登录模块的程序设计20
4.2.4个性化设置模块功能的实现24
4.2.5发表查看文章模块功能的实现24
4.2.6评论模块功能的实现27
4.2.7相册模块功能的实现29
4.2.8组件化分页模块31
4.2.9个人信息模块33
4.2.10留言板模块功能的实现35
第五章测试博客39
5.1软件测试分析39
5.1.1测试的目的和重要性39
5.1.2测试的方法与步骤39
5.2设计测试用例39
5.2.1单元测试39
5.2.2集成测试41
5.2.3验收测试41
第六章结束语42
6.1完成效果42
6.2改进意见42
6.3收获体会42
参考文献:
43
致44
第一章绪论
1.1选题背景
在科技飞速发展的今天,互联网正成为人们快速获取、发布和传递信息的最为便捷的渠道,它在人们日常的生活和学习中发挥着重要的作用。
而近年来博客和博客文化正在成为互联网的热点,并被视为是,bbs,icq之后的第四种网络交流方式,由于博客的沟通方式比电子、讨论群组等更为简单容易,现在已经成为了家庭、公司、部门、团队之间越来越盛行的沟通工具了。
博客正在改变着当今社会的交流方式,越来越多的人选择加入到博客的阵营。
我之所以选择做个人博客,首先是因为可以从中学到很多的网络和编程方面的知识,其次通过这个毕业设计可以很好的锻炼自己的动手能力,并提高自己的个人能力。
最后个人博客是当前互联网上的热点,它既可以作为一个聊天工具又能作为一个交流的平台,对大多数人而言都是非常实用的。
1.2课题研究意义
随着知识经济的到来,人们已经开始向信息化社会迈进。
信息增长的速度越来越快,人们希望能够用一种便捷有效的工具来处理这些信息,并从中获取对自己有用的信息,以提高自己的工作效率。
在这个信息化的时代,网络技术的运用和发展不仅能够造福于人们,还能够促进社会的进步,经济的发展。
因此,作为一种交流和沟通的工具,对博客的研究是非常有必要有意义的。
1.3论文的组织结构和具体安排
本次设计的目标是,开发一个个人博客。
借助该,不同年级不同学院的学生可以通过查看文章学习到自己需要的知识,并能够自己发表文章,发表个人的心得体会等。
还可以上传自己的照片,聊天交友等等。
论文分为五个部分:
第一章即本章绪论,简述开发个人博客的背景,以及研究博客的意义。
第二章为需求分析,本章中明确了博客需要实现的功能,分析了博客的开发流程,并介绍根据需求选择相应的开发工具和技术。
第三章是总体设计,详细描述了博客需要的数据库的设计情况,并给出了总体界面的设计方案。
第四章为博客的程序设计和具体的编码,包括各个模块的实现方法及其关键的代码,并截取了一些图片作为参考,以便能够更加直观的了解博客的实现情况。
第五章是对博客进行整体的测试,测试功能实现并对测试结果进行记录分析。
第六章是结束语,总结本次设计中的难点和亮点以及自己在这次毕业设计中学到的知识。
第二章个人博客需求分析
2.1可行性分析
个人博客作为一种新的交流沟通的工具和平台,能够有效地促进交流,解决学生的实际问题,方便学生的学习生活,开发本的可行性研究如下:
2.1.1技术可行性
技术上的可行性分析主要分析技术条件能否顺利完成开发工作,能否满足实际的需求。
本使用java语言开发,利用开源的Tomcat作为运行服务器,用户界面简洁,易操作。
的数据库采用开源的MySql存储数据,Mysql能够处理较大的数据,同时保持数据的完整性和安全性。
因此开发本的平台是成熟可行的。
2.1.2.经济可行性
随着经济的发展,计算机的普及程度已经非常的高了,而开发本的配置和技术均可行,因此开发这样的一个成本是可以控制的,并且的运行可以加强学生之间的交流和沟通,方便学生的学习生活,还可以有一定的经济回报,因此该在经济上是可行的。
2.2个人博客需求概述
2.2.1目标
本的核心架构是JavaEE中的三大框架,在中主要有两种类型的用户。
即注册用户和非注册用户。
注册并登陆的用户可以在中查看自己活着他人发表的文章,可以上传自己的照片,还可以对自己感兴趣的文章加以标注和评论。
而对于非注册的用户,只能以浏览者的身份进入,可以查看中其他人发表的文章,也可以匿名的发表评论,但是不能写文章,也不能上传自己的图片等。
2.3个人博客需求模型
2.3.1功能描述
个人博客的主要目标是作为一个交流的工具和一个沟通的平台,让不同年级不同专业的学生可以在这里交流学习的经验,可以发表自己的想法,还可以上传自己的图片来聊天交友,本的基本功能如下:
1.注册登录
凡是要发表文章显示个人信息的用户均必须先注册账号,再通过登录验证才能够进行各种功能的操作,不注册登录的用户在中权限较低。
2.设置
制作者可以修改网页的基本页面,更改系统时间。
3.用户功能
用户可以查看,删除,评论相应的文章,可以通过问题回自己的账户密码。
4.其他的功能
制作者可以管理,并拥有起亚用户所拥有的所有的权限和功能。
2.3.2详细功能描述
学生通过浏览器访问到本,可以使用一下功能:
1)注册用户
按照规定注册一个正确的账号。
2)用户登录
输入注册过的用户名和密码登录。
3)修改登录密码
可以修改自己的登录密码
4)查看文章
可以查看其它人发表的文章,也可以查看自己已经发表过的文章。
5)修改个性化设置
可以更改个人的设置
6)评论文章
可以对好的文章进行评论,还可以查看别人的评论。
7)上传相册
对登录用户,可以上传自己的照片。
8)
本提供了对一些知名博客的,可以点击进入其他博客。
8)留言
本提供了留言板,所有登陆用户都可以进行留言或者查看别人的留言。
2.3.3主要功能模块处理流程的描述
个人博客主要可以分为几个个大的模块,第一个模块是用户注册登录模块,即进入模块。
第二个模块是用户的个性化设置,第三个模块是发表文章,查看文章容,第四个模块是相册模块开发与RSS订阅。
用户注册登录模块:
(1)功能描述
完成注册登录,填写基本信息
查看并修改个人信息。
(2)具体流程图
个性化设置模块
可以设置个性化页面,用于显示在上方。
可以修改个性化语句。
发表,管理文章模块
登陆成功后发表自己的文章。
查看管理自己的文章,还可以查看他人的文章。
(2)具体的流程图:
相册模块开发与RSS订阅:
可以点击上传图片到服务器。
通过RSS订阅能够快速查找到文章和显示新添加的文章
(2)流程图
第三章整体设计
3.1数据库设计
3.1.1数据库设计概述
数据库是整个系统最核心的部分,数据库设计的好坏直接影响到整个系统的设计成败,因此本节专门来讨论有关数据库的设计。
数据库作为管理数据的最新技术。
近年来随着计算机的大力发展数据库管理系统已从专用的应用程序发展成为通用的系统软件。
由于现在的数据库都具有数据结构化,最低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。
数据库的出现改变了人们存储数据的方式,极提高了存储数据的能力,方便了人们对数据的管理和利用,并提高了人们的决策的可靠性。
目前,数据库已经成为现代信息系统不可分割的重要组成部分。
数据库技术也已经成为计算机领域中发展最快的技术之一。
数据库设计是将现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。
数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。
数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。
数据库的设计都必须遵循一定的规则,每一个数据库都有自己不同的规则,在关系型数据库中,这种规则就是式,式是符合某一种级别的关系模式的集合。
一般人们设计数据库都遵循第三式。
即:
数据库表中不包含已在其他表中包含的非主关键字信息。
采用式减少了数据冗余,节约了存储空间,同时加快了操作数据库的速度。
整个博客所包括的信息表有
1:
用户信息表:
(B_User)
2:
个性化设置表:
(B_blog)
3:
文章列表:
(B_Article)
4:
评论列表:
(B_Criticle)
5:
点击量列表:
(B_Clickrate)
留言板列表:
(guestbook)等相应信息表。
可将这些信息抽象为所需要的数据项和数据结构
1)用户信息表(用户ID,用户,昵称,,密码,验证码,是否验证,密保问题,密保答案)
2)个性化设置表(个性化ID,用户ID,个性化题目,个性化容)
3)文章列表(文章ID,文章标题,文章容,用户,发表日期,是否已读)
4)评论列表(评论ID,文章ID,评论容,用户)
5)点击量列表(点击量ID,文章ID,点击IP地址,点击时间)
6)留言板列表(留言ID,作者,标题,容,留言时间)
注:
带方框的表示表的主键
3.1.2用户信息表结构设计
用户信息表主要保存博客已经注册过的用户基本信息,主要包括用户的登录账户和密码以及一些基本的验证。
表的具体结构如下所示:
用户信息表B_User
字段名称
数据类型
字段长度
是否为空
说明
userId
Int
10
No
Key
username
varchar
50
用户名
nickname
20
昵称
password
密码
email
emailValidateCode
验证码
isValidateEmail
char
1
Yes
是否已验证
question
密保问题
answer
密保答案
3.1.3个性化设置表表结构设计
该表的设计主要是用于存储登录用户的个性化设置,主要设置其页面,包括个性化标题和个性化容,当用户进入时其个性化语句会显示在上方页面的中央,表的具体结构设计如下所示:
个性化设置表B_Blog
blogId
Yse
用户Id号
blogTitle
No
个性化标题
Idiograph
个性化容
3.1.4文章列表表结构设计
文章列表主要用来存储用户发表的文章,包括文章的标题,容,该用户是否已阅读,查看的日期以及用户名。
用过该表可以读取当前博客的所有文章信息,还可以根据登录用户名查看用户个人发表的文章信息,表的具体结构设计如下所示:
文章列表B_Article
articleId
title
255
文章标题
content
文章容
date
dateTime
19
查看文章日期
hasread
用户是否已查看
3.1.5评论列表表结构设计
此表的设计主要用于存储用户对文章的评论信息,主要有两种用户:
未登录的用户和登录用户,登录用户在评论后会显示其用户名,未登录用户只能以匿名的方式发表评论,表的具体结构设计如下所示:
评论列表B_Criticle
critiqueId
文章ID号
CritiqueContent
500
评论容
varvhar
3.1.6点击量列表表结构设计
该表的设计主要用于记录文章的点击数量,这里要根据用户的IP地址来判断不同的用户,因此该表存储文章的ID号,用户的IP地址以及点击的时间。
表的具体结构设计如下所示:
点击量列表B_Clicrate
clickRateId
int
Ip
访问IP地址
clickTime
Date
点击的时间
3.1.7留言板列表表结构设计
留言列表guestbook
Id
author
varther
作者
Yes
标题
varthar
intime
留言时间
第四章程序设计与编码
4.1开发平台与工具
4.1.1MyEclipse8.6平台
本博客采用MyEclipse工作平台,MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。
在结构上MyEclipse的特征可以分为七类:
1、J2EE模型;
2、WEB开发工具;
3、EJB开发工具;
3、应用程序服务器的连接;
4、J2EE项目部署服务;
6、数据库服务;
7、MyEclipse整合帮助。
在个人博客的开发过程中,应用的是MyEclipse8.6这个版本,作为MyEclipse较新的版本,MyEclipse8.6中的关键特性有:
支持最新版本的ApacheTomcat,支持Spring项目,Spring安全向导,Spring服务从WSDL,Spring代码辅助管理,完整的Java探测,支持Ajax工具,支持Web服务工具。
因此个人博客运行的服务器我选择的是新版本的ApacheTomcat6.0.35版本。
4.1.2服务器和数据库
在系统的开发过程中使用的服务器是Tomcat,Tomcat来源于Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了前Sun公司的参与和支持,最新的Servlet和JSP规总是能在Tomcat中得到体现。
并且因为Tomcat技术先进、性能稳定,而且免费,成为目前比较流行的Web应用服务器。
因此本博客选择了Tomcat作为其服务器。
开发用的系统工具如下表所示:
个人博客开发平台和工具
工具名称
用途
MyEclipse8.6
Tomcat6.0
MySql5.5
博客的开发平台
WEB服务器
数据的存储
4.2程序设计
4.2.1程序设计概述
本博客在设计的过程中运用了当今非常流行的编程模式---三层架构的思想,即将界面层,业务逻辑层,数据操作层相分离,使用JavaEE中非常著名的三大框架(Struts2,Spring,Hibernate)来分别实现,其中界面层使用Struts2,业务逻辑层使用Spring,数据操作层使用Hibernate。
Struts2是用于Web项目中UI层的开源的框架,是经典的MVC模式实现的案例。
作为一款开源的框架,Struts2具有非常明显的优势和特点:
1.Struts2中将业务数据,显示页面,动作处理等进行分离,极方便了代码的维护。
2.Struts2采用的是FrontController模式来实现对各种触发动作的处理,要求所有的请求都经过统一的入口,再进行转发,方便了我们对代码的统一控制和管理。
3.Struts2过Action类实现各种逻辑,并且利用Struts2的核心标签来完成对数据的呈现。
4.struts2在servlet容器中运行,通过配置文件web.xml来完成到相应的Action的跳转。
Spring主要运用于业务逻辑层,在功能上有润滑剂的美称。
Spring主要通过控制反转,AOP应用,面向接口编程来降低组件之间的耦合度,增加系统的扩展性。
Spring作为一个分层框架,由七个定义良好的模块组成,其中最重要的模块是核心容器。
核心容器定义了创建、配置和管理bean的方式,并且提供了Spring框架的基本功能。
Beanfactory作为核心容器的组件,是工厂模式的实现。
其利用控制反转将应用程序的配置和应用分开,减少了代码的耦合。
Hibernate主要作用于数据层,主要用于封装数据访问层的组件。
在应用程序中的数据用对象来体现,而数据库中,数据用表的形式保存。
Hibernate利用对象-关系映射,将应用程序中的对象(Object)与表中的数据(Relationship)之间的映射(Mapping)。
利用Hibernate可以直接从数据库中取出java对象,并将java对象直接保存在数据库中,中间的sql等语句都被封装了。
4.2.2三大框架之间的连接和配置
<
!
--配置监听器,用于spring初始化的监听器-->
listener>
<
listener-class>
org.springframework.web.context.ContextLoaderListener
<
/listener-class>
/listener>
context-param>
param-name>
contextConfigLocation<
/param-name>
param-value>
classpath:
config/spring/applicationContext.xml<
/param-value>
/context-param>
根据需求将Spring分配置文件分类:
基本的配置信息(db.properties),主要用于连接数据库:
在Spring的配置文件applicationContext.xml中加载外部配置文件信息:
--加载外部的properties文件,用于解析${}形式的变量,如果需要加载多个properties文件,就写在一起,用逗号分隔-->
beanclass="
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
>
propertyname="
locations"
list>
value>
config/props/db.properties<
/value>
/list>
/property>
/bean>
--定义数据源获取数据库信息-->
beanid="
dataSource"
class=
"
org.springframework.jdbc.datasource.DriverManagerDataSource"
driverClassName"
value="
${driverClassName}"
/>
url"
${url}"
username"
${username}"
password"
${password}"
--通过spring管理hibernate(SesionFactory)-->
--定义SessionFactory-->
sessionFactory"
class="
org.springframework.orm.
hibernate3.LocalSessionFactoryBean"
ref="
/>
hibernateProperties"
<
props>
<
propkey="
hibernate.dialect"