本科毕业设计基于jsp技术的博客设计与实现.docx
《本科毕业设计基于jsp技术的博客设计与实现.docx》由会员分享,可在线阅读,更多相关《本科毕业设计基于jsp技术的博客设计与实现.docx(33页珍藏版)》请在冰豆网上搜索。
本科毕业设计基于jsp技术的博客设计与实现
编号
淮安信息职业技术学院
毕业论文
题目
基于JSP技术的博客设计与实现
学生姓名
白鹤
学号
35011222
院系
计算机与通信工程学院
专业
计算机应用技术
班级
350112
指导教师
冯钢
顾问教师
二〇一三年十月
摘要
随着我们社会的不断进步,阅读文章成为了一种获取知识与信息的方式,同时也挖掘出了一些人在写作方面的才能。
那么,怎么样才能在第一时间发布自己的文章并且能够让大多数人看到?
因此,博客的出现解决了这一问题。
它既可以让自己的写作成果让更多的人来欣赏,也可以让他人来指出其中的问题。
除了发表文章之外,也可以将自己在生活、工作或学习中获得的感悟发表于此,借此找到与自己志同道合的朋友,一定程度上加深了人与人之间的交流。
本文设计了基于Servlet和JavaBean的个人博客,通过JSP语言、基于B/S的服务模式、SQLServer2005等技术重点介绍了个人博客的开发过程。
包括:
系统分析、需求分析、数据库设计、功能设计、系统调试和实现。
关键词:
博客JSPServletMVC
Abstract
Withthedevelopmentofoursociety,readinghasbecomeakindofknowledgeandinformation,butalsounearthedsomepeopleinwritingability.So,howcanweinthefirsttimetopublishtheirarticlesandtoletpeoplesee?
Therefore,theblogthisproblemisresolved.Itcanmakeyourwritingachievementtoallowmorepeopletoenjoy,alsocanletotherstopointouttheproblem.Inadditiontopublisharticles,youcanownforlife,workorstudypublishedinthissentiment,tofindandhislike-mindedfriends,toacertainextent,deepentheexchangesbetweenpeople.
Inthispaper,thedesignofServletandJavaBeanbasedonthepersonalblog,throughtheJSPlanguage,basedonB/Sservicemode,SQLServer2005,introducedthedevelopmentprocessofthepersonalblog.Include:
systemanalysis,demandanalysis,databasedesign,functionaldesign,systemdebuggingandimplementation.
Keywords:
BlogJSPServletMVC
第一章绪论
1.1选题的背景与意义
当今社会,科技的不断发展,信息量不断的增大,一些传统的获取信息的方式已经不能满足人们,而且随着网络上越来越多的个人发表一些文章或者有关于自己的动态,很多人都渴望能有一个专业的平台来管理一下,通过互联网使人们快速获取、发布和传递重要的信息。
这样,博客应运而生。
这是一种全新的网络交流方式,通过网络,使人们的视野加大,它让人们可以在网络上畅谈有关于生活、工作、学习等方面的趣事,同时也可以学习到其他人在各方面的经验,使自己学到很多,也让别人学到很多。
更重要的是,他让使用者的思想得到了充分的、自由的发挥,这也代表着一种新的学习方式。
随着知识的不断发展,人们的想法不断的改变,越来越多的人喜欢将自己的想法、心得、感受与别人分享,同时,自己也喜欢获得一些其他的信息。
传统的方式不但获取速度慢,而且很难辨别其真实性,利用网络,不仅加快信息传递的速度,更能够在很短的时间内获取大量的信息,使用者可以在其中挑选出对自己有利的信息,在某种程度上已经在改变着人们的工作与学习方式。
1.2课题研究的内容
本次设计的个人博客主要包括管理员与访问者两种,管理员可以进入后台管理个人文章的发表、相册照片上传、查看用户留言、设置访问者的权限等,访问者只可以查看文章以及相册和公告,并对文章进行相应的回复。
博客网的主要功能:
登录与注册、查看博主发表的文章以及上传的个人照片、对博主以及发表的文章进行留言、查看公告栏等。
在本网站的设计中,主要用到了JSP、MVC、SQLServer2005数据库等技术,具体的技术内容将在第二章给出详细的说明。
本次系统设计中开发环境分为服务器端与客户端,需要的开发环境如下:
服务器端:
◆Web服务器:
Tomcat6.0
◆Java开发包:
JDK1.6以上
◆数据库:
SQLServer2005
◆浏览器:
IE8.0及以上
◆开发工具:
MyEclipse8.5
客户端:
◆浏览器:
IE8.0及以上
1.3.1经济可行性
博客网通过我的文章和相册上传等功能模块,来吸引更多的浏览者,增加网站的访问量,提升网站的影响力;通过不断更新网站信息内容,使网站信息更加多元化,适合不同的访问群体;通过网站展现个人魅力,愉悦身心;通过与来访者的交流,不断积累经验,吸收新的知识,使网站始终充满活力。
1.3.2技术可行性
本系统主要应用Servlet技术开发。
Servlet是一个Java类,Java语言能够实现的功能,Servlet基本上都可以实现(图形界面以外)。
总的来说,Servlet技术具有以下特点。
(1)高效
在服务器上仅有一个Java虚拟机在运行,其优势在于当多个来自客户端的请求进行访问时,Servlet为每一个请求分配一个线程而不是进程。
(2)灵活性和可扩展性
采用Servlet开发的Web应用程序,由于Java类的继承性、构造函数等特点,由于灵活,可随意扩展。
(3)共享数据
Servlet之间可通过共享数据很容易地实现数据库连接池。
它能方便地实现管理用户请求,简化Session和获取前一页面信息的操作。
1.4论文的结构
第一章、本章简要说明了设计该博客网的背景以及它的意义,简述了一下其中的具体内容,对所需要的开发工具进行了说明;分别通过经济和技术这两方面对这个项目进行了可行性分析,使这个项目在实施过程当中更具有条理性。
第二章、本章对于在设计过程中用到的开发技术进行了详细了论述,例如JSP技术的特点与处理流程,MVC模式的介绍以及数据库等。
第三章、主要进行了项目的需求分析和数据库的设计。
需求分析中重点对系统的功能做了比较多的说明,列出了主要的几项功能;数据库设计的主体就是数据表,本章对项目中所要用到的数据表进行了比较详细的分析,根据本系统的需求,主要创建了用户信息表、文章信息表、个人相册信息表等。
第四章、本章着重讲解了在开发项目过程的几项功能的具体实现步骤,如登录与注册、文章的发表等等,并给出了运行后的效果及其中的主要代码,使人看起来清晰明了。
第五章、本章中主要是对本次项目进行一次总结与展望,找出在项目中的不足以及需要完善的地方。
第二章系统相关技术介绍
2.1JSP技术
JSP全称为JavaServerPages,是由Sun公司倡导、许多公司参与一起建立的一种动态技术标准。
JSP用HTML语言和Java语言作为脚本语言,通过编写嵌入在页面中的Java代码,实现动态的页面效果。
2.1.1JSP特点
(1)将内容的生成和显示进行分离
用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容。
生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
(2)适应平台
几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。
从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。
(3)数据库连接
Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。
Sun公司还开发了JDBC-ODBCbridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。
2.1.2JSP的处理流程
图2.1JSP的处理流程
当一个JSP页面被请求后,JSP引擎将该页面转换为一个Servlet,并将Servlet编译成一个class文件,让服务器进行处理;处理完成后,将内容一HTML代码的形式返回给客户端,并在页面中显示出来。
在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件。
2.2MVC模式
MVC全名是ModelViewController,是模型(Model)-视图(View)-控制器(Controller)的缩写,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
最典型的MVC就是JSP+Servlet+JavaBean的模式。
2.2.1MVC模式的优缺点
(1)优点
偶合性低
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。
由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松耦合的构件。
部署快
使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
重用性高
MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。
例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
(2)缺点
增加系统结构和实现的复杂性
对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
没有明确的定义
完全理解MVC并不是很容易。
使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。
同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。
每个构件在使用之前都需要经过彻底的测试。
不适合小型,中等规模的应用程序
花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
2.2.2MVC模式的处理流程
图2.2MVC模式的处理流程
用户输入信息后,控制器层(Controller)会将相应的数据传输给模型层(Model),然后模型层会进行相关的业务处理(例如:
调用相关类、对数据库进行相应的操作等),在很具处理结果的不同寻找不同的视图(View),视图层将传过来的结果加载到相应的位置,最后显示给用户。
2.3SQLServer2005
MicrosoftSQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理,可以满足Web站点和企业数据处理系统存储和分析数据的需求。
MicrosoftSQLServer2005数据引擎是该企业数据管理解决方案的核心,此外MicrosoftSQLServer2005还结合了分析、报表、集成和通知功能。
2.3.1SQLServer2005的特点
(1)数据库引擎
数据库引擎是用于存储、处理和保护数据的核心服务。
利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内要求极高而且需要处理大量数据的应用需要。
(2)全文搜索功能的增强
SQLServer2005将支持丰富的全文应用软件。
服务器的编目功能将得到增强,对编目的对象提供更大的灵活性。
查询性能和可升级性将大幅得到改进,同时新的管理工具将为有关全文功能的运行,提供更深入的了解。
(3)增强的安全性
SQLServer2005中的新安全模式将用户和对象分开,提供fine-grainAccess存取、并允许对数据存取进行更大的控制。
另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。
2.3.2SQL语言
SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
2.4本章小结
本章主要介绍了开发博客网所需要的一些技术,例如:
JSP技术、MVC模式以及SQLServer2005数据库等,同时说明了各个技术的一些特点以及其中一些用到的具体操作,并且要在设计系统过程中灵活应用,以达到最好的效果。
第三章系统分析及数据库设计
3.1系统需求分析
本博客登录部分主要分为管理员与访问者两种,根据身份不同,需求也不相同。
根据具体分析之后,管理员与访问者具体的需求分别如图3.1、3.2所示:
客户端访问者:
图3.1访问者功能需求
服务端管理员:
图3.2管理员功能需求
3.2系统功能分析
根据上图结构以及模块分析来看,本次设计的博客主要拥有的功能包括以下几点:
●对用户进行登录验证。
如果是已经注册的用户,则可以进入;如果还未注册,则需要注册成功后才能进入该网站,否则视为非法用户;
●注册时需要对用户输入内容加以判断,以确定是否符合要求。
如果符合要求,则会注册成功;如果其中有不符合的内容,则注册失败,用户需要重新注册;
●对已经登录成功的用户再次进行博主认证。
如果是博主本人登录,则显示后台的链接,使博主可以有效的管理博客网;如果只是普通访问者,则不显示后台的链接,访问者只可以进行文章查看及回复、相册访问等基本功能;
●对文章信息进行管理。
通过选择文章类别名称添加文章内容,并可以查询、修改和删除文章内容(除查询外,其它功能仅限博主本人,如果是博主登录,会显示后台的超链接);
●可以在线修改管理员与访问者的个人信息。
3.3数据库设计
在系统开发的过程中,数据库设计占有极其重要的地位。
数据库设计的原则是根据系统的整体需求而定的。
首先分析出在实施过程以及在日后的使用中需要哪些数据,然后对这些数据进行整理、分类,最后创建出符合要求的数据库以及数据表。
通过对本网站进行的需求分析、网站流程分析,以及系统功能结构的确定,规划出系统中使用的数据库实体对象。
3.3.1数据库设计
本次设计将使用SQLServer2005数据库作为数据库管理系统。
新建一个数据库,将数据库名命名为db_BlodMay,其中包含的数据库表及相应功能如表3.1所示:
表3.1db_BlodMay数据库包含的数据表及其功能
数据表
功能
tb_consumer
用户信息表
tb_article
文章信息表
tb_articleType
文章类别信息表
tb_restore
文章回复信息表
tb_photo
个人相册信息表
3.3.2数据库表设计
本次设计数据库中主要包括用户信息表、文章内容信息表、文章类型信息表,具体的数据表如表3.2~3.6所示
用户信息表名为tb_consumer,主要用来保存用户信息,其中的具体内容如表3.2所示:
列名
数据类型
主键
允许空
说明
id
Int(4)
否
自动编号
account
Varchar(10)
是
用户名
password
Varchar(10)
是
用户登录密码
name
Varchar(50)
是
用户真实姓名
sex
Char(5)
是
用户性别
QQNumber
Int(10)
是
用户QQ号码
mainPage
Varchar(50)
是
主页地址
interest
Varchar(50)
是
用户爱好
eMail
Varchar(50)
是
电子邮箱
manageLevel
Varchar(10)
是
用户登录级别
表3.2用户信息表
文章类别信息表名为tb_articleType,主要用来保存文章类别信息,其中的具体内容如表3.3所示:
列名
数据类型
主键
允许空
说明
id
int
否
自动编号
typeName
varchar(50)
是
类别名称
description
varchar(50)
是
内容
表3.3文章类别信息表
相册信息表名为tb_photo,主要用来保存相册基本信息,其中的具体内容如表3.4所示:
表3.4相册信息表
列名
数据类型
主键
允许空
说明
id
Int(4)
否
自动编号
photoAddress
Varchar(50)
是
相册存放地址
photoDescription
Varchar(50)
是
相册描述时间
photoTime
Varchar(50)
是
相册上传时间
文章内容信息表名为tb_article,主要用来保存文章内容信息,其中的具体内容如表3.5所示:
表3.5文章内容信息表
列名
数据类型
主键
允许空
说明
id
Int(4)
是
否
自动编号
typeID
Int(4)
否
文章类别表的外键
title
Varchar(30)
是
文章题目
content
Varchar(2000)
是
文章内容
phTime
Varchar(30)
是
文章发布时间
number
Int(4)
是
文章访问次数
文章回复信息表名为tb_restore,主要用来保存文章回复信息,其中的具体内容如表3.6所示:
表3.6文章回复信息表
列名
数据类型
主键
允许空
说明
id
int
否
自动编号
articleId
int
是
文章编号
reAccount
Varchar(50)
是
阅读次数
reTitle
Varchar(50)
是
回复文章标题
reContent
ntext
是
回复文章内容
3.4本章小结
本章具体的分析了系统的基本流程以及所需要的基本功能,同时对该博客基本的几项功能进行了简要的说明,同时针对项目对于具体信息的需要以及在对信息进行整理之后,设计出了相应的数据库和数据表。
在本章给出的数据表中,也对给出的数据表进行了详细的说明。
如各表名与表中信息的数据类型、哪些列为主键、是否允许为空和对每项列名的解释说明。
通过这些数据,能够清晰的了解到项目整体需要哪些信息,同时各个功能与数据表也可以一一对应上,对于了解项目处理的流程也能起到辅助作用。
第四章系统详细设计及实现
博客网主要分为前台与后台两个部分,分别对应于普通访问者和博主(即管理员)。
前台主要用于显示博客网的主要内容,后台主要用于博主对网站内的信息管理等。
4.1前台功能的实现
前台是本网站的核心,通过前台页面的显示可以实现用户的登录与注册、文章信息查询及回复、相册查看等一系列功能,下面就来分别介绍各种功能的实现过程。
4.1.1登录模块
(1)内容介绍
登录页面是博客网的首页,只有登录成功,用户才可以进行其他的操作。
在首页,用户输入用户名和密码进行登录操作。
如果用户名与密码输入框都为空,在点击登录按钮时,系统会弹出提示用户输入为空,并回到登录页面;如果不为空,则访问相应的类和数据库进行验证,如果用户输入的用户名与密码和数据库中的数据相符,则说明为合法用户,即登录成功,可以开放其它功能为用户使用;如果用户输入的用户名与密码和数据库中的数据不符,则说明为非法用户,系统将弹出提示“您输入的用户名不存在,请重新输入”,并返回到登录页面,使用户重新登录。
(2)设计流程
图4.1登录模块的设计流程
(3)功能实现
根据上图的展示,可以清楚的了解实现用户登录功能的整体过程,具体的效果图如下所示:
用户登录页面,使用户输入用户名和密码:
图4.2登录页面
用户登录成功页面,并弹出提示“用户登录成功”:
图4.3登录成功
用户登录失败页面,并弹出提示:
图4.4登录失败
(4)功能实现代码
上面已经呈现出了实际的效果图,而所有的实现过程均是由代码所执行的。
用户输入用户名与密码,点击登录之后,系统将会获取用户输入的用户名,并根据用户名到数据库中取出该用户的所有信息并进行判断,如果没有取出任何信息,则说明没有该用户,提示“您输入的用户名不存在,请重新输入!
”;如果取出信息中的密码与数据库中不一致,则提示“您输入的登录密码有误,请重新输入!
”;如果没有错误,则登录成功并转到相应页面。
下面将给出在设计过程的关键代码。
判断用户登录是否成功
ConsumerServlet.java:
//用户登录操作
publicvoidcheckConsumer(HttpServletRequestrequest,
HttpServletResponseresponse)throwsServletException,IOException{
request.s