基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx

上传人:b****8 文档编号:10868128 上传时间:2023-02-23 格式:DOCX 页数:31 大小:1.27MB
下载 相关 举报
基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx_第1页
第1页 / 共31页
基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx_第2页
第2页 / 共31页
基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx_第3页
第3页 / 共31页
基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx_第4页
第4页 / 共31页
基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx

《基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx》由会员分享,可在线阅读,更多相关《基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx(31页珍藏版)》请在冰豆网上搜索。

基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件.docx

基于JSP+Servlet+DAO的个人博客系统的设计与实现含源文件

《J2EE与中间件技术》

课程报告

——基于JSP+Servlet+DAO的个人博客系统

管理员模块的设计与实现

姓名:

李建辉

班级:

BX1109

学号:

37

指导老师:

王小刚

二〇一三年十二月三十日

 

目录

第一章个人博客系统问题提出1

1.1.个人博客系统开发的背景1

1.2.问题的提出1

1.3.系统的开发目标1

第二章可行性需求分析2

2.1.技术可行性2

2.2.经济可行性2

2.3.管理可行性2

2.4.需求分析2

2.4.1注册博友3

第三章系统设计4

3.1.系统分析4

3.2.功能模块简介6

3.2.1博客注册登录管理模块6

3.2.2博客个人维护管理模块6

3.3.系统架构6

3.3.1系统架构说明6

3.3.2实现DAO层8

3.3.3DAO组件的定义8

3.3.4部署DAO层8

第四章主要功能代码编写8

4.1.登录控制:

8

4.2.Ajax读取txt格式数据9

4.3.部分效果预览图10

第五章数据库设计16

5.1.定义数据词典16

5.2.主要表结构如下16

第六章参考文献17

第七章附录17

 

第一章个人博客系统问题提出

1.1.个人博客系统开发的背景

博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。

博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。

许多博客专注在特定的课题上提供评论或新闻,其他则被作为比较个人的日记。

一个典型的博客结合了文字、图像、其他博客或网站的链接及其它与主题相关的媒体,能够让读者以互动的方式留下意见,是许多博客的重要要素。

大部分的博客内容以文字为主,仍有一些博客专注在艺术、摄影、视频、音乐、播客等各种主题。

博客是社会媒体网络的一部分。

比较著名的有新浪、网易、搜狐等博客。

在web2.0应用中,博客(Blog)是web2.0核心应用中最典型、最流行的代表之一,也是web2.0技术应用的最直观的表现,是web2.0精神和理念的具体体现。

开发个人博客系统有助于博客管理员注册,修改,删除个人博客,有利于个人发表日志,分享照片,浏览其他博客的信息等,让博客成为人们交流的工具,增加人们的交流,放松心情,有助于人们的身心健康发展。

1.2.问题的提出

博客的功能是记载博客的日常事务和兴趣爱好,个人通过博客将自己的思想知识与其他博客分享,交流,人们通过博客结识了许多兴趣爱好相同的朋友,随着博客的发展,博客展现出博客特有的价值,通过博客可以了解彼此的信息和需求,让企业发现了博客的价值,进而引发了专业博客的出现。

专业博客的出现,使我们认识到博客蕴涵巨大的信息价值,不同的Blog选择不同的内容,收集和整理成为很多人关注的专业Blog——目前越来越多的人获取信息的来源是一些固定的Blog。

随着博客人数的增加,Blog作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构:

网络信息不再是虚假不可验证的,交流和沟通更有明确的选择和方向性,单一的思想和群体的智慧结合变的更加有效,个人出版变成人人都可以实现的梦想——Blog正在影响和改变着我们的生活。

1.3.系统的开发目标

管理员通过前台界面进入管理模块,对注册的博客用户进行维护包括添加注册用户,查找注册用户,修改注册用户和删除注册用户。

管理员进入登录后,可对帐户进行管理包括添加管理员帐户、修改管理员帐户、删除管理员帐户和对帐户进行权限设置。

博客用户通过前台登录后,可对自己的博客空间进行管理包括发布自己的网络日志、收藏个人图片和相关人员进行交流和沟通以及删除访问者发表的评论等。

因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:

(1)博客的注册、登录验证功能

(2)网络用户通过关键字搜索博文功能(3)最热门博客页面推荐浏览(4)文章详细内容及相关评论显示(5)博客页面访问量统计(6)博客个人文章管理维护功能(7)博客个人文章分类管理维护功能(8)博客个人友情链接维护功能(9)博客个人基本信息管理维护功能(10)博客图片上传及个人相册管理(11)网络用户写留言,博主查看留言。

第二章可行性需求分析

2.1.技术可行性

技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户(这里是服务器,网速)提出的要求(如计算机的容量、速度等)。

此外,还要考虑开发人员的水平,学习了两年的jsp开发,对于这个系统的编写,我想完整的之需要两个月就可以写出程序,再花上几天的调试,计划两个月左右就可以完成投入使用了。

我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、数据库技术等国家IT认证。

从一定程度上具备了开发一个小型系统的能力。

2.2.经济可行性

主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。

这是个小型的系统,从投入的人力,财力与物力来讲是非常小的,发布出去之需要注册域名就可以了,从节省人力方面,可以让管理人员从繁与复杂的工作中解脱出来,做更多的工作。

2.3.管理可行性

有IP地址、用户名与密码等,可以下载一个FTP上传工具(cure)上传更新后的内容.可以在

下载以后,通过"站点管理"-->"新建站点".输入IP,用户名,密码.然后连接即可.

当然也可用FTP工具.直接在IE浏览器地址栏输入ftp:

//www.域名/然后输入用户名和密码.同样可以上传.随时更新文件!

2.4.需求分析

Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言、友情链接、及图片的上传和图像的播放而为上网用户提供按博文主题搜索,查看注册用户的博文及提出相关评论,并为注册用户写留言,游览注册用户的相册、注册等功能的系统。

下面就以两种不同的用户来分析博客网站的需求。

2.4.1注册博友

首先必须在博客首页中登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发表博文。

可以在管理页面上添加博文的分类,可以上传图片和游览自己的相册,在上传过程中可以将一张图片定义为自己的签名,在个人管理页面中注册用户还可以修改自己的个人信息。

博文管理,友情链接管理及博文分类管理,用例图1

 

图1博客管理页面的用例图

在博客主界面中发表博文时可以选择博文类型,这样可以更好管理自己的博文。

并查看和删除网友对自己的博文的一些评论、查看和删除网友留下的一些留言,提供与其他网友交流的空间。

更好交流,在信息时代人们通过个人空间沟通也用来但不能在自己的博客主页面中提交评论和留言。

这样在本系统中就可以为博友提供更多的个人色彩。

在管理页面中添加和删除友情连接。

这样博友可以在自己空间中快速定位自己的关心的网站。

这样还可以让网友看到自己的一些信息。

友情链接及网页访问量统计显示:

在博客的个人页面中还提供了推荐给普通网络用户的相关友情链接,此外,对个人页面的访问量也在随时进行统计,并在个人页面中进行直观的显示,博客主页面的用例图如图2示:

图2博客主页面的用例图

图3博客首页的用例图

第三章系统设计

3.1.系统分析

在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定及系统结构设计。

下面对这进行详细介绍。

在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具及软件架构。

blog对系统的可靠性、稳定性有比较高的要求。

本系统设计时,比较主流的B/S设计有基于JSP、ASP、PHP、CGI及J2EE等模式。

相比较而言PHP的功能相对简单,不适合做大程序;而CGI效率相对较低,所以也不考虑。

由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate的框架及拥有事务管理和依赖注入的Spring。

利用现存框架可以更快开发系统。

所以选择Java技术作为blog的开发工具。

为了增加系统的吞吐量,提高并发处理客户请求数量,系统采用了IBM服务器作为主机。

在数据库处理方面,不需要在数据层借助存储过程及数据库服务器端函数封装过多的业务逻辑,因此数据库系统采用相对精巧的MySQL[6]。

该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下:

1.服务器端操作系统:

独立于操作系统的跨平台系统,客户端MicroSoftWindows2000及以上;

2.数据库:

MySQL5.0.27版本;

3.Web服务器:

Tomcat5.5及以上版本,配合MVC设计模式及Hibernate开发架构;

4.客户端运行环境:

能运行IE5以上或Netscape5以上浏览器的操作系统,配合使用Ajax技术;

5.客户端运行工具:

目前的系统采用浏览器作为客户端,为了支持Ajax开发框架,应该选择使用IE5以上版本浏览器。

本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。

1、系统处理的准确性和及时性:

系统处理的准确性和及时性是系统的必要性能。

在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。

2、系统的开放性和系统的可扩充性:

系统在开发过程中,应该充分考虑以后的可扩充性。

例如数据表中用户选择字段方式的改变,用户查询的需求也会不断的更新和完善。

所有这些,都要求系统提供足够的手段进行功能的调整和扩充。

而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。

通过软件的修补、替换完成系统的升级和更新换代。

3、系统的易用性和易维护性:

要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。

4、系统的数据要求:

a)数据录入和处理的准确性和实时性。

b)数据的一致性与完整性。

c)数据的共享与独立性。

3.2.功能模块简介

3.2.1博客注册登录管理模块

博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应的博客档案,实现对博客信息的后台维护及管理,同时也便于通过博客档案库将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户。

该功能模块实现了以下几个子功能。

(1)新博客在线注册。

(2)博客登录管理。

(3)跳转到博客主页。

只有进行登录并通过身份验证的用户,才可以在个人博客页面发表日志,并借助个人设置实现对个人博客相关信息的管理维护。

对于没有经过身份验证的网络用户不允许在博客页面中发表日志,更不允许对博客页面信息进行管理维护。

该模块实现新博客的注册及登录验证功能。

其中,注册新博客时会对用户输入的注册信息进行有效性验证,包括基本数据格式的有效性以及逻辑有效性,例如,用户名被占用时将及时给出提示。

注册成功的博客登录时,会随时根据博客输入的登录信息进行提示,如用户名错误或者密码错误。

3.2.2博客个人维护管理模块

博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。

该功能模块实现了如下几个子功能:

(1)日志及日志分类管理。

(2)评论及留言管理。

(3)个人基本信息维护管理。

借助该模块,用户可以随时对个人博客主页中的内容进行增加或修改,包括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信息进行维护及其管理。

3.3.系统架构

3.3.1系统架构说明

本系统采用严格的J2EE应用结构,主要有如下几个分层。

1.表现层:

由JSP页面组成。

2.MVC层:

使用Struts框架。

3.业务逻辑层:

主要由SpringloC容器管理的业务逻辑组件组成。

4.DAO层:

由7个DAO组件组成,实现类必须继承Spring提供的HibernateDaoSupport。

5.Hibernate持久层:

由7个PO组成,并在HibernateSession管理下,完成数据库访问。

6.数据库服务层:

使用MySQL数据库存储持久化数据。

系统的具体分层如图3所示。

图4系统结构图

在图4黑色大方框内的MVC控制层、Service层及DAO组件层的组件,都由SpringIOC容器负责生成,并管理组件的实例(实例必须是单身模式的,本系统中的bean基本上是单身的)。

本系统不仅严格按MVC模式设计,还按J2EE分层设计,将中间层严格分成业务逻辑层、DAO层及数据持久层等。

MVC层的控制器绝对禁止持久层访问,甚至不参与业务逻辑的实现。

表现层采用传统JSP技术。

本系统采用的是典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。

三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。

客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。

Jsp广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。

中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。

Web层,就是MVC模式里面的C,负责逻辑层和表现层的交互。

调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC采用Struts框架。

Service层(就是业务逻辑层),负责实现业务逻辑。

业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。

DAO层,负责与持久化对象交互。

该层封装了数据的增、删、查、改的操作。

PO,持久化对象。

通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。

Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

通过使用Hibernate持久层,可以避免使用传统的JDBC操作数据库,对JDBC近一步包装,从而更好地使用面向对象的方式来操作数据库。

保证了整个软件开发过程以面向对象的方式进行,即面向对象分析、设计及编程,透过Hibernte对PO对象持久化操作,不管插入还是查询都是通过PO。

3.3.2实现DAO层

DAO还有助于提升系统的可移植性。

独立的DAO层使得系统能在不同的数据库之间轻易切换,底层的数据库实现对于业务逻辑组件是透明的。

数据库移植时仅仅影响DAO层,不同数据库的切换不会影响业务逻辑组件,因此提高了系统的可复用性。

对于不同的持久层技术,Spring的DAO提供一个DAO模板,将通用的操作放在模板里完成,而对于特定的操作,则通过回调接口完成。

Spring为Hibernate提供的DAO支持类是:

HibernateDaoSupport。

3.3.3DAO组件的定义

DAO组件提供了各持久化对象的基本的CRUD操作。

而在DAO接口里则对DAO组件包含的各种CRUD方法提供了声明,但有一些IDE工具也可以生成基本的CRUD方法。

使用DAO接口的原因是:

避免业务逻辑组件与特定的DAO组件藕合。

由于DAO组件中的方法不是开始就设计出来的,其中的很多方法可能会随着业务逻辑的需求而增加,但以下几个方法是通用

的。

•get:

根据主键加载持久化实例。

•saveorupdate:

保存或更新持久化实例。

•remove:

删除持久化实例。

上面涉及了7个PO,这样我们必须设计7个对应的PODao

7个Dao必须继承BaseDao这个BaseDao有对接口的一些基本的CURD操作。

7个Dao如下。

LinksDao,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao。

这7个Dao分别封装对自己的持久化对象的一些操作。

3.3.4部署DAO层

HibernateDaoSupport类只需要一个SessionFactory属性,即可完成数据库访问。

SessionFactroy创建Session,而数据库的CRUD操作都是有Session完成,并将查询结果保存在一级缓存中,每次用户提交一次会话,可能需要Session完成一些数据库的操作而实际的数据库访问由模板类HibernateTemplate完成,该模板类提供了大量便捷的方法,简化了数据库的访问。

第四章主要功能代码编写

4.1.登录控制:

if(this.session().getAttribute("rand")!

=null){//检验随机数是否为空if(this.checkCode.equals(this.session().getAttribute("rand").toString())){//比较随机数

uservo=userbo.queryUserByINfo(uservo);//检验用户信息并将信息返回

if(uservo!

=null){//看用户是否存在

this.setUserpurview(uservo.getPurviewId());//设置用户权限

this.session().setAttribute("user",uservo);//将用户信息放在session中

returnSUCCESS;//返回用户主界面页面

}else{returnERROR;返回到失败页面}

}else{returnERROR;}}else{returnERROR;}

4.2.Ajax读取txt格式数据

functionajax_function(var1,var2){

varxmlHttp=null;//创建xmlhttprequest

try

{

//Firefox,Opera8.0+,Safari对不同浏览器常见不同对象

xmlHttp=newXMLHttpRequest();

}

catch(e)

{

try

{

//InternetExplorer

xmlHttp=newActiveXObject('Msxml2.XMLHTTP');

}

catch(e)

{

try

{

xmlHttp=newActiveXObject('Microsoft.XMLHTTP');

}

catch(e)

{

alert('YourbrowserdoesnotsupportAJAX!

');

returnfalse;

}

}

}

xmlHttp.onreadystatechange=function()

{

if(xmlHttp.readyState==4&&xmlHttp.status==200)

{

varsomeDiv=document.getElementById('someDiv');

someDiv.innerHTML=xmlHttp.responseText;

}

}

xmlHttp.open('GET','www/index.jsp?

param1='+var1+'¶m2='+var2,true);

xmlHttp.send(null);

}

4.3.部分效果预览图

图4-1前台界面管理登录

图4-2管理员登陆界面

图4-3管理员操作界面

图4-4添加管理员

图4-5删除管理员账户

图4-6图片管理

图4-7链接管理

图4-8博文管理

图4-9博客管理系统首页

图4-10查看留言

图4-11发博文

第五章数据库设计

5.1.定义数据词典

1、数据库表名的定义使用:

重点字_table;重点字可以是多个英文单词的组合,从组合的第二单词起首字母大写,字段命名是能表达字段内容的英文单词的组合,组合方式同表名重点字相同。

2、NN表示notnull不填表可为空。

3、数据类型不使用固定数据库的类型,标识大众类型,如字符串、字符、数字等。

这样在更改数据库时需求的数据是可移植的

4、输写数据表在数据库中的物理名称,可用自己熟悉的语言再定义表名称,方便沟通。

5、长度定义又数据类型决定:

如字符串可选8000以下,数字可在50位之间,字符只允许一位。

6、输入方式表示数据的来源:

生成表由程序或数据库的索引自动生成,而不需人工录入;输入表示通过文本框等输入的数据;选择表单选框、复选框、下拉列表等通过选择输入的数据;自定获取是为外码的输入设定的,它由程序自动获取。

5.2.主要表结构如下

1.表[blogs]日志数据表

字段名

类型

说明

blogid

Int(10)

日志的ID

title

text

日志标题

pubtime

Int(11)

日志发表时间

authorid

Int(8)

日志作者的UID

replies

Int(8)

日志的评论数

tbs

Int(8)

日志的trackback数

views

Int(8)

日志的查看次数

category

Int(3)

日志所属的分类的ID

content

mediumtext

日志正文内容

property

Int

(1)

日志的属性

0公开日志

1锁定日志

2隐藏日志

3一般草稿

2.表[register]用户数据表

字段名

类型

说明

userid

Int(8)

登陆时需要用到的用户名

username

text

用户昵称

userpwd

Int(8)

登陆密码

regtime

Int(11)

注册时间

usergroup

Int

(2)

所属的用户组ID

email

text

用户email

qq

text

Qq号

msn

text

用户msn

gender

text

用户性别

第六章参考文献

[1]孙卫琴.精通Struts:

基于MVC的JavaWeb的设计与开发[M].北京:

电子工业出版社,2004.

[2]陈天河.Hibernate项目开发宝典[M].北京:

电子工业出版社,2006.

[3]阎宏.Java与模式[M].北京:

电子工业出版社,2002.

[4]罗时飞.精通Spring2.0[M].北京:

电子工业出版社,2007.

第七章附录

源代码程序:

packagecao.visit.fileread;

importjava.io.*;

publicclasscounterextendsObject

{

privateStringcurrentRec

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1