基于JSP技术的博客设计与实现(含源文件)


获取项目源文件,学习交流联系Q:1225467431


摘 要
编号
淮安信息职业技术学院
毕业论文
题 目 基于JSP技术的博客设计与实现
学生姓名 白 鹤
学 号 35011222
院 系 计算机与通信工程学院
专 业 计算机应用技术
班 级 350112
指导教师 冯 钢
顾问教师
二〇一三年十月
摘 要
随着我们社会的不断进步,阅读文章成为了一种获取知识与信息的方式,同时也挖掘出了一些人在写作方面的才能。那么,怎么样才能在第一时间发布自己的文章并且能够让大多数人看到?因此,博客的出现解决了这一问题。它既可以让自己的写作成果让更多的人来欣赏,也可以让他人来指出其中的问题。除了发表文章之外,也可以将自己在生活、工作或学习中获得的感悟发表于此,借此找到与自己志同道合的朋友,一定程度上加深了人与人之间的交流。
本文设计了基于Servlet和JavaBean的个人博客,通过JSP语言、基于B/S的服务模式、SQL Server 2005等技术重点介绍了个人博客的开发过程。包括:系统分析、需求分析、数据库设计、功能设计、系统调试和实现。
关键词:博客 JSP Servlet MVC
Abstract
With the development of our society, reading has become a kind of knowledge and information, but also unearthed some people in writing ability. So, how can we in the first time to publish their articles and to let people see? Therefore, the blog this problem is resolved. It can make your writing achievement to allow more people to enjoy, also can let others to point out the problem. In addition to publish articles, you can own for life, work or study published in this sentiment, to find and his like-minded friends, to a certain extent, deepen the exchanges between people.
In this paper, the design of Servlet and JavaBean based on the personal blog, through the JSP language, based on B/S service mode, SQL Server 2005, introduced the development process of the personal blog. Include: system analysis, demand analysis, database design, functional design, system debugging and implementation.
Keywords: Blog JSP Servlet MVC
目 录
TOC 1-3 摘 要 I
Abstract II
第一章 绪论 1
1.1选题的背景与意义 1
1.2课题研究的内容 1
1.3.1 经济可行性 1
1.3.2 技术可行性 2
1.4论文的结构 2
第二章 系统相关技术介绍 3
2.1 JSP技术 3
2.1.1 JSP特点 3
2.1.2 JSP的处理流程 3
2.2 MVC模式 4
2.2.1 MVC模式的优缺点 4
2.2.2 MVC模式的处理流程 5
2.3 SQL Server 2005 5
2.3.1 SQL Server 2005的特点 5
2.3.2 SQL语言 6
2.4 本章小结 6
第三章 系统分析及数据库设计 7
3.1系统需求分析 7
3.2 系统功能分析 7
3.3 数据库设计 9
3.3.1 数据库设计 9
3.3.2 数据库表设计 9
3.4 本章小结 10
第四章 系统详细设计及实现 12
4.1 前台功能的实现 12
4.1.1 登录模块 12
4.1.2 注册模块 15
4.1.3 博客主页 18
4.2 后台功能的实现 19
4.3 本章小结 23
第五章 总结与展望 24
5.1 总结 24
5.2 展望 24
致 谢 26
参考文献 27
第一章 绪论
1.1选题的背景与意义
当今社会,科技的不断发展,信息量不断的增大,一些传统的获取信息的方式已经不能满足人们,而且随着网络上越来越多的个人发表一些文章或者有关于自己的动态,很多人都渴望能有一个专业的平台来管理一下,通过互联网使人们快速获取、发布和传递重要的信息。这样,博客应运而生。这是一种全新的网络交流方式,通过网络,使人们的视野加大,它让人们可以在网络上畅谈有关于生活、工作、学习等方面的趣事,同时也可以学习到其他人在各方面的经验,使自己学到很多,也让别人学到很多。更重要的是,他让使用者的思想得到了充分的、自由的发挥,这也代表着一种新的学习方式。
随着知识的不断发展,人们的想法不断的改变,越来越多的人喜欢将自己的想法、心得、感受与别人分享,同时,自己也喜欢获得一些其他的信息。传统的方式不但获取速度慢,而且很难辨别其真实性,利用网络,不仅加快信息传递的速度,更能够在很短的时间内获取大量的信息,使用者可以在其中挑选出对自己有利的信息,在某种程度上已经在改变着人们的工作与学习方式。
1.2课题研究的内容
本次设计的个人博客主要包括管理员与访问者两种,管理员可以进入后台管理个人文章的发表、相册照片上传、查看用户留言、设置访问者的权限等,访问者只可以查看文章以及相册和公告,并对文章进行相应的回复。博客网的主要功能:登录与注册、查看博主发表的文章以及上传的个人照片、对博主以及发表的文章进行留言、查看公告栏等。
在本网站的设计中,主要用到了JSP、MVC、SQL Server 2005数据库等技术,具体的技术内容将在第二章给出详细的说明。本次系统设计中开发环境分为服务器端与客户端,需要的开发环境如下:
服务器端:
◆ Web服务器:Tomcat 6.0
◆ Java开发包:JDK 1.6以上
◆ 数据库:SQL Server 2005
◆ 浏览器:IE8.0及以上
◆ 开发工具:MyEclipse 8.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.1 JSP技术
JSP全称为Java Server Pages,是由Sun公司倡导、许多公司参与一起建立的一种动态技术标准。JSP用HTML语言和Java语言作为脚本语言,通过编写嵌入在页面中的Java代码,实现动态的页面效果。
2.1.1 JSP特点
(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-ODBC bridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。
2.1.2 JSP的处理流程
图2.1 JSP的处理流程
当一个JSP页面被请求后,JSP引擎将该页面转换为一个Servlet,并将Servlet编译成一个class文件,让服务器进行处理;处理完成后,将内容一HTML代码的形式返回给客户端,并在页面中显示出来。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件。
2.2 MVC模式
MVC全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写,它强制性的使应用程序 (​http:​/​​/​baike.baidu.com​/​view​/​330120.htm​)的输入 (​http:​/​​/​baike.baidu.com​/​view​/​700406.htm​)、处理 (​http:​/​​/​baike.baidu.com​/​view​/​989420.htm​)和输出 (​http:​/​​/​baike.baidu.com​/​view​/​700402.htm​)分开。使用MVC应用程序被分成三个核心部件:模型 (​http:​/​​/​baike.baidu.com​/​view​/​96500.htm​)、视图 (​http:​/​​/​baike.baidu.com​/​view​/​71981.htm​)、控制器 (​http:​/​​/​baike.baidu.com​/​view​/​122229.htm​)。它们各自处理自己的任务。最典型的MVC就是JSP (​http:​/​​/​baike.baidu.com​/​view​/​3387.htm​)+Servlet (​http:​/​​/​baike.baidu.com​/​view​/​25169.htm​)+JavaBean (​http:​/​​/​baike.baidu.com​/​view​/​28155.htm​)的模式。
2.2.1 MVC模式的优缺点
(1) 优点
偶合性低
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松耦合的构件。
部署快
使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
重用性高
MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
(2) 缺点
增加系统结构和实现的复杂性
对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
没有明确的定义
完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。
不适合小型,中等规模的应用程序
花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
2.2.2 MVC模式的处理流程
图2.2 MVC模式的处理流程
用户输入信息后,控制器层(Controller)会将相应的数据传输给模型层(Model),然后模型层会进行相关的业务处理(例如:调用相关类、对数据库进行相应的操作等),在很具处理结果的不同寻找不同的视图(View),视图层将传过来的结果加载到相应的位置,最后显示给用户。
2.3 SQL Server 2005
Microsoft SQL Server 2005 是一个全面的数据库平台,使用集成 (​http:​/​​/​baike.baidu.com​/​view​/​101357.htm​)的商业 (​http:​/​​/​baike.baidu.com​/​view​/​8211.htm​)智能 (BI)工具 (​http:​/​​/​baike.baidu.com​/​view​/​74746.htm​)提供了企业级的数据管理,可以满足Web站点和企业数据处理系统存储和分析数据的需求。Microsoft SQL Server 2005 数据引擎是该企业数据管理解决方案的核心,此外 Microsoft SQL Server 2005 还结合了分析、报表、集成和通知功能。
2.3.1 SQL Server 2005的特点
(1) 数据库引擎
数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内要求极高而且需要处理大量数据的应用需要。
(2) 全文搜索功能的增强
SQL Server2005将支持丰富的全文应用软件。服务器的编目功能将得到增强,对编目的对象提供更大的灵活性。查询性能和可升级性将大幅得到改进,同时新的管理工具将为有关全文功能的运行,提供更深入的了解。
(3) 增强的安全性
SQL Server2005中的新安全模式将用户和对象分开,提供fine-grainAccess存取、并允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。
2.3.2 SQL语言
SQL是英文 (​http:​/​​/​baike.baidu.com​/​view​/​170434.htm​)Structured Query Language的缩写,意思为结构化查询语言 (​http:​/​​/​baike.baidu.com​/​view​/​595350.htm​)。SQL语言 (​http:​/​​/​baike.baidu.com​/​view​/​9793.htm​)的主要功能就是同各种数据 (​http:​/​​/​baike.baidu.com​/​view​/​38752.htm​)库建立联系,进行沟通。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句 (​http:​/​​/​baike.baidu.com​/​view​/​537751.htm​)进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
2.4 本章小结
本章主要介绍了开发博客网所需要的一些技术,例如:JSP技术、MVC模式以及SQL Server 2005数据库等,同时说明了各个技术的一些特点以及其中一些用到的具体操作,并且要在设计系统过程中灵活应用,以达到最好的效果。
第三章 系统分析及数据库设计
3.1系统需求分析
本博客登录部分主要分为管理员与访问者两种,根据身份不同,需求也不相同。根据具体分析之后,管理员与访问者具体的需求分别如图3.1、3.2所示:
客户端访问者:

图3.1 访问者功能需求
服务端管理员:
图3.2 管理员功能需求
3.2 系统功能分析
根据上图结构以及模块分析来看,本次设计的博客主要拥有的功能包括以下几点:
 对用户进行登录验证。如果是已经注册的用户,则可以进入;如果还未注册,则需要注册成功后才能进入该网站,否则视为非法用户;
 注册时需要对用户输入内容加以判断,以确定是否符合要求。如果符合要求,则会注册成功;如果其中有不符合的内容,则注册失败,用户需要重新注册;
 对已经登录成功的用户再次进行博主认证。如果是博主本人登录,则显示后台的链接,使博主可以有效的管理博客网;如果只是普通访问者,则不显示后台的链接,访问者只可以进行文章查看及回复、相册访问等基本功能;
 对文章信息进行管理。通过选择文章类别名称添加文章内容,并可以查询、修改和删除文章内容(除查询外,其它功能仅限博主本人,如果是博主登录,会显示后台的超链接);
 可以在线修改管理员与访问者的个人信息。
3.3 数据库设计
在系统开发的过程中,数据库设计占有极其重要的地位。数据库设计的原则是根据系统的整体需求而定的。首先分析出在实施过程以及在日后的使用中需要哪些数据,然后对这些数据进行整理、分类,最后创建出符合要求的数据库以及数据表。通过对本网站进行的需求分析、网站流程分析,以及系统功能结构的确定,规划出系统中使用的数据库实体对象。
3.3.1 数据库设计
本次设计将使用SQL Server 2005数据库作为数据库管理系统。新建一个数据库,将数据库名命名为db_BlodMay,其中包含的数据库表及相应功能如表3.1所示:
表3. 1 db_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章 系统详细设计及实现
博客网主要分为前台与后台两个部分,分别对应于普通访问者和博主(即管理员)。前台主要用于显示博客网的主要内容,后台主要用于博主对网站内的信息管理等。
4.1 前台功能的实现
前台是本网站的核心,通过前台页面的显示可以实现用户的登录与注册、文章信息查询及回复、相册查看等一系列功能,下面就来分别介绍各种功能的实现过程。
4.1.1 登录模块
(1) 内容介绍
登录页面是博客网的首页,只有登录成功,用户才可以进行其他的操作。在首页,用户输入用户名和密码进行登录操作。如果用户名与密码输入框都为空,在点击登录按钮时,系统会弹出提示用户输入为空,并回到登录页面;如果不为空,则访问相应的类和数据库进行验证,如果用户输入的用户名与密码和数据库中的数据相符,则说明为合法用户,即登录成功,可以开放其它功能为用户使用;如果用户输入的用户名与密码和数据库中的数据不符,则说明为非法用户,系统将弹出提示您输入的用户名不存在,请重新输入”,并返回到登录页面,使用户重新登录。
(2) 设计流程
图4.1 登录模块的设计流程
(3) 功能实现
根据上图的展示,可以清楚的了解实现用户登录功能的整体过程,具体的效果图如下所示:
用户登录页面,使用户输入用户名和密码:

图4.2 登录页面
用户登录成功页面,并弹出提示用户登录成功”:

图4.3 登录成功
用户登录失败页面,并弹出提示:

图4.4 登录失败
(4) 功能实现代码
上面已经呈现出了实际的效果图,而所有的实现过程均是由代码所执行的。用户输入用户名与密码,点击登录之后,系统将会获取用户输入的用户名,并根据用户名到数据库中取出该用户的所有信息并进行判断,如果没有取出任何信息,则说明没有该用户,提示您输入的用户名不存在,请重新输入!”;如果取出信息中的密码与数据库中不一致,则提示您输入的登录密码有误,请重新输入!”;如果没有错误,则登录成功并转到相应页面。下面将给出在设计过程的关键代码。
判断用户登录是否成功
ConsumerServlet.java:
// 用户登录操作
public void checkConsumer(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding(gb2312);
String account = request.getParameter(account);
consumerDao = new ConsumerDao();
ConsumerForm consumerForm = consumerDao.getConsumerForm(account);
if (consumerForm == null) {
request.setAttribute(information, 您输入的用户名不存在,请重新输入!);
} else if (!consumerForm.getPassword().equals(
request.getParameter(password))) {
request.setAttribute(information, 您输入的登录密码有误,请重新输入!);
} else {
request.setAttribute(form, consumerForm);
}
RequestDispatcher requestDispatcher = request
.getRequestDispatcher(dealwith.jsp);
requestDispatcher.forward(request, response);
}
根据用户名取出用户所有信息
ConsumerDao/getConsumerForm.java:
// 以用户名为查询条件,查询一组数据
public ConsumerForm getConsumerForm(String account) {
String sql = select * from tb_consumer where account= + account
+ ;
try {
ResultSet rs = connection.executeQuery(sql);
while (rs.next()) {
consumerForm = new ConsumerForm();
consumerForm.setId(Integer.valueOf(rs.getString(1)));
consumerForm.setAccount(rs.getString(2));
consumerForm.setPassword(rs.getString(3));
consumerForm.setName(rs.getString(4));
consumerForm.setSex(rs.getString(5));
consumerForm.setQQNumber(rs.getString(6));
consumerForm.setMainPage(rs.getString(7));
consumerForm.setInterest(rs.getString(8));
consumerForm.setEMail(rs.getString(9));
consumerForm.setManageLevel(rs.getString(10));
}
} catch (SQLException e) {
e.printStackTrace();
}
return consumerForm;
}
4.1.2 注册模块
(1) 内容介绍
对于首次进入博客网以及登录失败的用户,需在该网站注册成功后才能进入博客进行下面的操作。本次设计在登录界面加上了注册的超链接,用户可以点击该链接到注册页面进行注册,填写相应的内容进行注册,填写完毕后,点击保存按钮,系统会自动调用相关类来进行验证,当用户输入的内容与系统要求相符时,系统会提示用户注册成功”并自动登录;如果用户输入的内容与要求不符,系统将会相应的提示用户的错误,使用户重新输入。
(2) 设计流程
图4.5 注册模块的设计流程
(3) 功能实现
注册功能的大致流程已经给出,下面给出实际的效果图。
用户注册页面,使用户输入相关信息:
图4.6 注册页面
用户注册成功页面,并弹出提示用户注册成功”:
图4.7 注册成功
用户注册失败页面,并弹出提示用户注册失败”:

图4.8 注册失败
(4) 功能实现代码
使用注册功能中,用户需要根据列出的内容进行填写。如果输入不合要求系统将会提示注册失败,使用户重新进行注册;如果所有内容均填写完毕并符合要求,则提示注册成功并自动登录。下面将给出在设计过程的关键代码。
获取用户输入内容并调用相关类判断
ConsumerServlet.java:
// 用户注册操作
public void registerConsumer(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding(gb2312);
ConsumerForm form = new ConsumerForm();
consumerDao = new ConsumerDao();
form.setAccount(Chinese.toChinese(request.getParameter(account )));
form.setPassword(Chinese.toChinese(request.getParameter(passwo rd)));
form.setName(Chinese.toChinese(request.getParameter(name)));
form.setSex(Chinese.toChinese(request.getParameter(sex)));
form.setQQNumber(request.getParameter(QQnumber));
form.setMainPage(request.getParameter(mainPage));
form.setInterest(Chinese.toChinese(request.getParameter(intere st)));
form.setEMail(request.getParameter(eMail));
form.setManageLevel(普通);
String result = fail;
if (consumerDao.getConsumerForm(form.getAccount()) == null) {
if (consumerDao.addConsumerForm(form)) {
request.setAttribute(form, consumerDao.getConsumerForm(form
.getAccount()));
result = success;
}
}
request.setAttribute(result, result);
RequestDispatcher requestDispatcher = request
.getRequestDispatcher(dealwith.jsp);
requestDispatcher.forward(request, response);
}
向数据库中添加用户信息
ConsumerDao/addConsumerForm.java:
// 添加用户信息
public boolean addConsumerForm(ConsumerForm form) {
boolean flag = false;
String sql = insert into tb_consumer values ( + form.getAccount()
+ , + form.getPassword() + , + form.getName() + ,
+ form.getSex() + , + form.getQQNumber() + ,
+ form.getMainPage() + , + form.getInterest() + ,
+ form.getEMail() + , + form.getManageLevel() + );
if (connection.executeUpdate(sql)) {
flag = true;
}
return flag;
}
4.1.3 博客主页
(1) 内容介绍
博客主页是登录成功后进入的第一个页面,也是该网站的宣传页面。这个页面上有该博客的所有功能,其中最主要的就是文章的显示,可以让用户在第一时间看到最新发表的文章,该功能的实现是由后台类自动进行,系统运行后,会调用相关类来访问数据库中的数据,取出数据后并显示在页面上。
(2) 功能实现
由于该过程是由系统自动调用数据库内的信息并显示在页面上,所以实际效果图如图4.9所示:
图4.9 博客主页
(3) 功能实现代码
进入主页面后,系统会自动显示信息,下面给出该过程实现的代码:
获取文章信息
<%
for(int articleI=0;articleIArticleForm articleForm=(ArticleForm)articleList.get(articleI);
String articleContent=articleForm.getContent();
if(articleContent.length()>100){
articleContent=articleContent.substring(0,100)+...;
}
%>
根据封装信息到数据库中获取
public class ArticleForm {
private Integer id=-1;
private Integer typeId=-1;
private String title=;
private String content=;
private String phTime=;
private Integer number=-1;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public String getPhTime() {
return phTime;
}
public void setPhTime(String phTime) {
this.phTime = phTime;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getTypeId() {
return typeId;
}
public void setTypeId(Integer typeId) {
this.typeId = typeId;
}
4.2 后台功能的实现
(1) 内容介绍
后台功能主要针对博主来说,登录后,系统会自动进行验证,如果登录用户为博主本人,则会在页面上显示出进入后台”的超链接,点击该链接可以进入后台进行一系列的管理,如进行文章的添加、删除等。
(2) 功能实现
管理员进入后台之后,进行相关的操作以管理该博客的运行。这里以文章添加和删除功能来介绍后台功能,实际效果图如下所示:
发表文章页面,使博主输入文章题目与内容
图4.10 发表文章页面
发表成功,在下方显示文字提示发表成功
图4.11 发表成功
删除文章页面(被删除文章题目为Android)
图4.12 删除文章
④ 删除成功,并弹出提示删除成功”
图4.13 删除文章成功
(3) 功能实现代码
发表文章时,管理员输入题目与内容后,点击保存”按钮即可;删除时,只要点击文章后面的删除”,确定即可。下面将给出关键代码:
添加文章
ArticleServlet.java:
// 后台添加文章
public void addArticle(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
ArticleForm articleForm = new ArticleForm();
articleForm.setTypeId(Integer.valueOf(request.getParameter(typ eId)));
articleForm.setTitle(Chinese.toChinese(request.getParameter(ti tle)));
articleForm.setNumber(Integer.valueOf(request.getParameter(num ber)));
articleForm.setContent(Chinese.toChinese(request
.getParameter(content)));
articleForm
.setPhTime(Chinese.toChinese(request.getParameter(phTime)));
articleDao = new ArticleDao();
String result = 文章添加失败!;
if (articleDao.operationArticle(添加, articleForm)) {
result = 文章添加成功!;
}
request.setAttribute(result, result);
RequestDispatcher requestDispatcher = request
.getRequestDispatcher(back_ArticleAdd.jsp);
requestDispatcher.forward(request, response);
}
根据上段代码的结果向数据库中添加信息
ArticleDao/operationArticle.java:
public boolean operationArticle(String operation, ArticleForm form) {
boolean flag = false;
String sql = null;
if (operation.equals(添加))
sql = insert into tb_article values ( + form.getTypeId() + ,
+ form.getTitle() + , + form.getContent() + ,
+ form.getPhTime() + , + form.getNumber() + );
if (operation.equals(修改))
sql = update tb_article set typeID= + form.getTypeId()
+ ,title= + form.getTitle() + ,content=
+ form.getContent() + where id= + form.getId() + ;
if (operation.equals(删除))
sql = delete from tb_article where id= + form.getId() + ;
if (operation.equals(增加))
sql = update tb_article set number=number+1 where id=
+ form.getId() + ;
if (connection.executeUpdate(sql)) {
flag = true;
}
return flag;
}
4.3 本章小结
本章主要介绍了在网站中几项主要的功能,如登录、注册、文章查看以及在后台管理进行文章的发表和删除等,说明了各个功能运行的流程并给出图加以说明,同时给出了在设计过程中主要部分的代码以及项目运行的效果图,使各个功能的运行看起来更加清晰,对项目整体的实施过程有更加全面的了解。
第五章 总结与展望
5.1 总结
随着人们生活水平的提高,计算机不再只用于工作之中,而是已经和人们的生活、学习相关,在这样一种环境之下,本次设计了一个基于JSP技术的博客网。该网站主要以发表文章为主,通过用户登录实现文章的查看与评论,并能够与博主进行文章之间的交流,用户通过网站上的文字可以很方便的使用自己所需的功能。
在本次设计中主要做了以下几个方面的工作:
(1) 根据博客网的需求以及对JSP技术的一些了解,对开发环境以及开发工具提出了要求;
(2) 根据本网站的数据需要,本次设计中选择了SQL Server 2005作为数据库,并设计出了相应的数据表;
(3) 本文采用Tomcat 作为服务器,发布后可通过Internet网络实现不同地域、不同人群的公用,在一定程度上为信息的传播起到了作用;
(4) 本次设计在图形界面上只做了简单的美化,因此用户在使用上会比较方便。
最后,本文主要采用MVC模式来实现系统整个的控制,对不同的信息进行相应的处理,并通过后台管理实现互动,从而达到本次设计整体的效果。
5.2 展望
通过这次在毕业设计中做的这个项目,使我巩固了之前在学习中学到的知识并且能够运用到其中,最后达到了最初预想的目标。但由于时间和本人技术的局限性,在整个项目中仍然存在着不足之处,总结之后大致有以下几点:
(1) 界面的美观性
在毕业设计中,我主要考虑了整体功能的实现,有时忽略了对于项目外观上的修饰,如图片的颜色与搭配、网站中文字颜色与大小的选择等,这些还有待于在以后的学习中继续完善。
(2) 功能的完整性
在这个项目中,我只设计了几种相对于比较简单的功能,相比于网上一些流行的大型博客网来说还有很远的距离,主要功能不是太多,有些技术还没有达到很高的要求,希望在以后的学习中慢慢实现。
(3) 用户方面
本次设计的博客只有注册的用户才可以进入并进行访问,相比于一些比较流行的大型博客网站来说,在用户群方面比较少,这点在以后的工作中会加以改进,是更多的人可以使用本博客。
最后,通过本次设计让我在JSP方面的学习有了进步,同时借此机会也初步了解了一些在实践工作中需要的技术,也会给我在以后工作的时候打下一些基础。
致 谢
在学校的学习生涯即将结束,回顾这两年多来的学习经历,面对现在的收获,我感到无比欣慰。在论文完成之际,我首先向关心帮助和指导我的指导老师——冯钢老师表示由衷的感谢并致以崇高的敬意!
本论文是在指导老师冯钢老师的悉心指导下完成的,无论是论文的选题,还是修改定稿,冯老师都倾注了很多心血。在论文工作中,遇到了各种困难,一直得到冯老师的亲切关怀和悉心指导,使我论文进展的很快。老师以其深厚的理论素养、严谨的治学态度、丰富的实践知识和他敏捷的思维给我留下了深刻的印象,也深深的影响着我,这里,再一次向他表示衷心的感谢,感谢他们为学生营造的浓郁学术氛围,以及学习、生活上的无私帮助! 值此论文完成之际,谨向冯老师致以最崇高的谢意!同时,我也向热心帮助过我的所有老师和同学表示由衷的感谢!
在我即将完成学业之际,我也深深地感谢我的家人给予我的全力支持!
最后,衷心地感谢在百忙之中评阅论文和参加答辩的各位评委!
参考文献
1. 王国辉,王毅,李钟蔚.JSP程序开发范例宝典[M].北京:人民邮电出版社,2007. 
2. 王国辉 ,李钟尉. Java程序设计自学手册. 人民邮电出版社. 2008
3. 康会光,王俊伟,张瑞平,等. SQL Server 2005标准教程[M]. 北京:清华大学出版社,2007
4. 赛奎春.JSP信息系统开发实例精选[M].北京:机械工业出版社,2006: 66-72.
5. (美)格罗夫著,章小莉等译. SQL完全手册(第二版)[M].北京:电子工业出版社,2006:12-1
6. 陈文兰,刘红霞. Java基础案例教程[M]. 北京:北京大学出版社,2009
7. 王志勃,徐义晗,杨晔. JSP应用开发项目化教程. 北京:北京大学出版社,2011.7
8. 汤承林,杨玉东. SQL Server 2005数据库实例教程. 北京:北京大学出版社,2010.5
9. 陶宏才. 数据库原理及设计[M]. 北京:清华大学出版社,2007
10. 卢翰,王国辉等. JSP项目开发案例全程实录[M]. 北京:清华大学出版社,2011.1
11.
12
获取项目源文件,学习交流联系Q:1225467431

发布了24 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_17669865/article/details/104235663