JSP个人博客系统资料.docx
- 文档编号:7278911
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:44
- 大小:1.48MB
JSP个人博客系统资料.docx
《JSP个人博客系统资料.docx》由会员分享,可在线阅读,更多相关《JSP个人博客系统资料.docx(44页珍藏版)》请在冰豆网上搜索。
JSP个人博客系统资料
目录
第1章概述1
1.1系统开发目的和意义1
1.2系统开发环境及技术2
1.3系统基本功能简介3
第2章个人博客系统总体设计5
2.1系统功能模块设计5
2.2系统数据库设计6
第3章个人博客系统详细设计及编码9
3.1数据库底层访问类9
3.2系统登录模块11
3.3系统后台页面导航14
3.4文章类别管理15
3.5文章管理21
3.6好友管理26
3.7博主信息管理模块30
3.8留言板管理模块34
3.9相册管理模块37
3.8前台浏览及查询模块38
结论43
参考文献44
第1章概述
1.1系统开发目的和意义
本次课程设计的题目是“基于MVC模式的个人博客系统”,该设计是对《JSP程序设计》课程中所学知识的巩固和深入应用。
该系统是B/S模式的系统,发布后可以通过浏览器访问。
系统结合Java语言、JSP技术以及MVC模式进行设计和开发。
“博客”一词是从英文单词Blog翻译而来。
Blog是Weblog的简称,而Weblog则是由Web和Log两个英文单词组合而成。
Weblog就是在网络上发布和阅读的流水记录,通常称为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。
博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。
许多博客专注在特定的课题上提供评论或新闻,其他则被作为比较个人的日记。
一个典型的博客结合了文字、图像、其他博客或网站的链接、及其它与主题相关的媒体。
能够让读者以互动的方式留下意见,是许多博客的重要要素。
大部分的博客内容以文字为主,仍有一些博客专注在艺术、摄影、视频、音乐、播客等各种主题。
博客是社会媒体网络的一部分[1]。
Blog是继电子邮件、论坛、即时聊天之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,代表着新的生活方式和新的工作方式,更代表着新的学习方式。
具体来说,博客(Blogger)这个概念解释为使用特定的软件,在网络上出版、发表和张贴个人文章的人。
通过博客能让个人在互联网上表达自己的心声。
这是一个收集和共享任何感兴趣的事物的地方—可以是政治评论、个人日记或是指向您想记住的网站的链接。
它是一种简单有效的提供网络用户之间进行在线交流的网络平台,通过通用博客可以结交更多的朋友,表达更多的想法,它随时可以发布日志,方便快捷。
博客作为一种新的表达方式,它传播的不仅是情绪,还包括大量的智慧、意见和思想。
从某种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现了网络的知识价值,标志着互联网发展开始步入更高的阶段。
这样不仅促进了学习,更重要的是反映了一个人的在思想上的成长过程。
通过“个人博客系统”的开发,使我们了解当今通用博客发展的最新动态,以及通用博客对整个社会的影响力。
同时,可以熟悉MVC模式在Web系统中的应用,锻炼独立分析、设计系统以及解决具体问题的能力,并逐步理解软件开发步骤和软件工程的基本思想[1]。
可以使我们掌握个人网站开发的基本方法和技术,为以后的实际开发奠定基础。
1.2系统开发环境及技术
1.2.1个人博客系统开发环境
个人博客系统基于B/S(Browser/Server)模式开发,完全采用面向对象的思想进行设计,系统使用了JSP技术,因此采用了MyEclipse5.5.1GA作为集成开发环境,后台使用Java语言编写程序;前端使用HTML及CSS等技术设计开发页面;后台数据库使用MicrosoftSQLServer2005。
该系统所需要的运行环境如下:
客户端:
IE6浏览器(要求6.0以上)或者其他常用浏览器;
服务器端:
安装Java虚拟机及MicrosoftSQLServer2005应用程序系统。
1.2.2个人博客系统开发技术
MVC模式
本系统是基于MVC模式设计和开发的,MVC模式的基本形式图如图1-1所示。
图1-1MVC模式的基本形式图
MVC(Model-View-Controller)模式并不是J2EE行业人士标新立异的。
MVC的核心就是要做到三级甚至多级的松散耦合,MVC模式将系统分为三个部分,分别是:
数据模型、视图和控制器,并定义了这三个部分之间实现通信的一种模式[1],使每个部分不必卷入到其他部分的状态表示和方法实现的细节中去。
每个部分有自己的数据管理规则,各个对象之间的通信只能使用自己定义的一个受限连接集合进行。
保持这种分离性通常是面向对象编程和设计要追求的目标,让各个对象只需专注于自己的事务[2]。
JSP的基础——Servlet技术
JavaServlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。
Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。
许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。
得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合JavaServlet规范,Servlet是完全平台无关且是Web服务器无关的。
由于JavaServlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高。
但JavaServlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。
这就是为什么SUN还要推出JavaServerPages的原因。
JSP技术
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为JavaServlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点
JDBC(JavaDataBaseConnectivity)技术
本系统数据库连接是采用了JDBC技术来实现的,JDBC是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成[4]。
JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
有了JDBC,向各种关系数据库发送SQL语句就是一件很容易的事。
JavaScript技术
JavaScript是一种基于对象和事件驱动,并具有安全性的脚本语言。
它与HTML,CSS结合起来,用于增强功能,并提高与最终用于之间的交互性能。
客户端的JavaScript必须要有解释器的支持 JavaScript代码是解释型的。
不需要编译,而是作为HTML文件的一部分由解释器解释执行。
目前,所有的浏览器都内置JavaScript的解释器
1.3系统基本功能简介
基于MVC模式的XXX管理系统按照前台和后台两部分功能进行设计,其中前台主要实现其中前台主要实现前台主页展示,文章浏览页面,相册浏览页面,以及留言板页面。
主页展示的包括个人信息,文章推荐,好友推荐,个人兴趣,相册TOP3以及最近的留言信息,以下是详细介绍:
1.个人信息主要展示博主的个人信息如姓名、性别、邮箱、国籍以及个人头像;
2.文章推荐主要显示博主最近添加的几篇文章;
3.好友推荐主要显示博主最近添加的好友信息以及超链接;
4.个人兴趣主要展示博主的个人爱好比如爱好的电影、音乐等等信息。
文章浏览页面主要用来展示博主所发表的所有文章,并可以点击相关的文章流浪相应的文章。
相册浏览页面主要用来展示博主上传的照片,并显示照片的相关信息比如名称,描述等等信息。
留言板页面主要用来展示游客的留言信息以及给游客用来留言的留言板单。
后台主要实现博主登陆,博主信息以及密码修改,文章管理,类别管理,相册管理,好友管理以及留言板管理功能,以下是以上模块的详细叙述:
1.博主登陆:
主要是实现博客后台登陆,主要引用了博客的登陆界面,当博主登陆失败的时候会返回博主登陆失败的原因;
2.博主信息密码修改:
主要实现博主个人信息以及密码的修改;
3.文章管理:
主要实现文章的查询,添加,删除,修改,批量删除等功能;
4.文章类别管理:
可以对文章类别进行添加、修改、删除、批量删除等操作。
5.好友链接管理:
可以对好友链接网址进行添加、删除、批量删除和好友信息修改等操作。
第2章个人博客系统总体设计
2.1系统功能模块设计
博客是一种通常由个人管理、不定期发表、转载新文章的网站。
博客上的文章通常根据发表时间,以倒序方式由新到旧排列。
参照一般的个人博客网站,本系统在开发过程中首先对系统的功能模块进行了分析,经过系统的需求设计,功能设计和数据库设计等过程,最终实现了系统全部要求的功能[3],将本系统功能模块设计如下:
1.博主登录模块
可以实现博主的后台登陆功能,如果登陆失败告知博主登陆失败原因。
2.文章类别管理模块
可以对文章类别进行查询、添加、删除、批量删除、修改等操作。
3.文章管理模块
可以对文章进行添加、修改、删除、批量删除等操作。
4.好友链接管理模块
可以对好友链接网址进行添加、修改、删除、批量删除等操作。
5.博主信息管理模块
可以对博主信息进行修改操作。
1.前台浏览模块
前台主要实现前台主页展示,文章浏览页面,相册浏览页面,以及留言板页面。
2.相册信息管理模块
可以对相册进行上传,以及信息的修改、删除、批量删除等操作。
系统功能模块图如图2-1所示。
图2-1系统功能模块图
2.2系统数据库设计
数据库管理系统是允许用户在计算机上创建数据库,增加、修改、删除、排序和检索数据库中的数据,并使用数据库中的数据创建表格和报表的软件系统。
数据库的设计是整个系统成败的一个重要环节。
合理的数据库设计能够给系统带来很好的效率。
而且能够使得各个功能模块的设计变得非常简单而且模块间的关系特别明确。
本系统的数据库是在SQLServer2005中创建的。
根据前面的分析,个人博客系统数据库共包含6个表,包括博主信息表(tb_user)、文章信息表(tb_article)、文章类别表(tb_type)、留言板评论表(tb_comment)、好友信息表(tb_friend)、照片信息表(tb_photo)
表的结构、表字段的数据类型及相关说明如下:
表1博主信息表
列名
说明
数据类型
约束
UserName
用户名
nvarchar(50)
主键
Password
用户密码
nvarchar(50)
非空
sex
性别
nvarchar(50)
‘男’OR‘女’
QQ号
nvarchar(50)
邮件地址
nvarchar(50)
@约束,非空
LastLoginTime
最后登陆时间
datetime
非空
birthday
生日
datetime
非空
State
国籍
nvarchar(20)
非空
表2文章类别表
列名
说明
数据类型
约束
id
类别ID
int
主键、自增长标识
name
类别名称
nvarchar(20)
非空
describle
类别描述
nvarchar(50)
非空
表3文章信息表
列名
说明
数据类型
约束
id
类别ID
int
主键、自增长标识
title
文章标题
nvarchar(50)
非空
date
发表时间
datetime
非空
type
类别
int
非空、外键
text
文章正文
text
非空
keyword
搜索关键字
nvarchar(50)
表4留言板评论表
列名
说明
数据类型
约束
id
留言ID
int
主键、自增长标识
name
留言者姓名
nvarchar(MAX)
title
留言标题
nvarchar(MAX)
非空
datetime
留言时间
datetime
非空
text
留言内容
text
表5好友信息表
列名
说明
数据类型
约束
id
好友ID
int
主键、自增长标识
name
好友姓名
nvarchar(50)
非空
hypelink
好友超链接
varchar(MAX)
非空
dateTime
添加时间
datetime
非空
表6照片信息表
列名
说明
数据类型
约束
id
好友ID
int
主键、自增长标识
name
照片名称
nvarchar(MAX)
非空
filename
照片文件名
nvarchar(MAX)
非空
describle
照片描述
nvarchar(MAX)
以上是个人博客系统所需的数据表,按照这些表结构设计,在MicrosoftSQLServer2005中创建数据库Blog,并创建相应的表。
第3章个人博客系统详细设计及编码
3.1数据库底层访问类
本系统的设计使用基于Servlet的MVC架构模式,将系统的各个功能的实现过程严格的划分为视图(View)、控制(Controller)、模型(Model),其中View负责界面的显示,Controller负责请求的转发和响应,Model负责逻辑业务对象实体和业务实体。
由于本系统是一种信息管理系统,在这三层之下,还要建立数据库访问层,该层完成数据库的连接、SQL语句的具体执行等操作。
这一层由MVC模式中的Model层里的业务实体进行调用,从而完成逻辑业务的信息维护操作。
3.1.1使用JDBC技术连接数据库
JDBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface应用程序设计接口)。
它由一些Java语言编写的类和界面组成。
JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库[4]。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。
也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。
用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。
不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。
Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,RunEverywhere!
”。
因此,我们只要在需要用到的程序中导入对应的驱动包即可。
列如:
开发Web程序,只要将sqljdbc.jar文件拷贝到MyEclipse中的web项目的目录\WebRoot\WEB-INF\lib下。
3.1.2添加DBManager公共类
首先创建包Blog.tools,在该包下创建名为DBManager的类,该类得职责用于提供访问、操作数据库的公共方法。
添加公共类的方法和步骤如下:
在工程中的包名上点右键,选择【New】->【Class】菜单项,将弹出【NewJavaClass】对话框,保留默认的选择,在Name文本框中输入DBManager,点击Finsih按钮。
因为该系统数据多数由后台处理,本系统的页面编码主要是GBK与UTF-8编码,在数据传入后台时会转为ISO-8859-1编码,为了后台数据转换的方便,在newBlog.toos包中新建一个名为toExchangeString的java类,该类的职责用于解决后台接收到参数后的转码问题。
添加toExchangeString公共类的方法和步骤如下:
在工程中名为Blog.tools的包名上点右键,选择【New】->【Class】菜单项,将弹出【NewJavaClass】对话框,保留默认的选择,在Name文本框中输入toExchangeString,点击Finsih按钮。
3.1.3编写公共方法
3.1.2小节为项目添加了一个DBManager类,该类用于存放连接、操作数据库的公共方法,本小节介绍如何编写这些公共方法。
首先为DBManager类声明几个公共变量,其中conn为数据库连接对象,stmt为数据库创建的对象,rs为存储的返回结果集,uri为要连接的数据库的地址,user为数据库的名称,psw为数据库的密码。
1、数据库连接方法getConnection()
该方法的作用为获取数据库连接,并且给出获取成功和失败的相应提示。
getConnection方法的关键代码如下:
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection(uri,user,psw);
if(conn!
=null){
System.out.print("数据库连接成功!
");
}}
2、数据库查询方法executeQuery()
该方法的作用为查询所给的sql语句,返回查询结果集,并且给出相应的提示。
executeQuery方法的关键代码如下:
try{
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
3、数据库增删改的操作方法executeUpdate()
该方法的作用为执行所给的sql语句,完成数据的相应操作,并且给出提示。
executeUpdate方法的关键代码如下:
intcount=0;try{
stmt=conn.createStatement();
count=stmt.executeUpdate(sql);}
4、数据库释放的操作方法releaseResource()
该方法的作用为释放相应的数据库连接资源。
releaseResource方法的关键代码如下:
try{if(rs!
=null)rs.close();
if(stmt!
=null)stmt.close();
if(conn!
=null)conn.close();
}
3.1.2小节还为项目添加了一个toExchangeString类,该类的职责用于解决后台接收到参数后的转码问题。
首先为toExchangeString类声明1个名为string1的字符串类型的公共变量
在类中编写如下两个方法
1、由ISO编码转换为GBK编码的方法toExchangeString(StringStringSource)
下面是关键代码:
string1=newString(StringSource.getBytes("ISO-8859-1"),"GB2312");
returnstring1;
2、由ISO编码转换为UTF编码的方法toExchangeStringUtf(StringStringSource)
下面是关键代码:
string1=newString(StringSource.getBytes("ISO-8859-1"),"UTF-8");
returnstring1;
3.2系统登录模块
登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。
本节首先严格按照MVC架构模式为个人博客系统制作了一个简单的登录模块,登录成功后,应当进入该系统的后台管理系统。
另外,对于用户的登录过程系统会给出相应的提示消息,以方便用户的使用。
3.2.1View层构建
首先在MyEclipse的项目的WebRoot目录中建立admin文件夹,在其下建立login文件夹,并在其下建立名为login的JSP页面,在该页面中编写表单代码,其中注意表单的action属性为该表单信息提交的服务端URL地址,method属性为提交方式。
在这里由于是按照MVC模式,将信息提交给Servlet。
同时为避免复杂的URL的路径逻辑关系,统一使用绝对路径。
图3-1登录界面
3.2.2Model层构建
1.实体JavaBean的构建
在newBlog.Moudle包中添加用户实体Javabean,类名为uesrInfoMoudle。
该类是存储博主信息的模型,主要包含了5个属性的定义以及相应的set和get方法,User模型类的核心代码如下:
privateStringname="";
privateStringPassword="";
privateStringSex="";
privateStringQQ="";
privateStringEmail="";
privateStringLastLgoinTime="";
privateStringBirthday="";
privateStringState="";
……}
2.业务逻辑JavaBean的构建
实现用户相关操作的DAO类为adminDAO,该类主要包括5个方法,分别为isExist()方法、CheckPsw()方法、updatePsw()、getUserInfo()方法等,其中isExist()方法用于实现系统的登录功能,该方法需要接收由servlet传递过来用户名与密码,返回值为Boolean类型。
当用户输入用户名和密码后,servlet将调用该方法系统验证用户输入的用户和密码是否正确,实现过程中借助DBManger数据库底层操作类判断用户登录是否成功:
当执行完sql语句得到一个非空的结果集rs时,则表示用户登录成功,方法返回一个布尔类型的true,否则返回false。
该方法的核心代码如下:
Booleant=false;
DBManagerdb=newDBManager();
Stringsql="select*fromUserInfowhereUs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 个人 博客 系统 资料