当前位置:文档之家› 个人博客系统

个人博客系统

武汉软件工程职业学院

课程设计报告

2012-2013学年度第二学期

题目:基于ssh+oracle的个人博客系统姓名:王晨

班级:软件1112

系部:计算机与软件学院

指导教师:柴柳

日期:2013 年7月4 日

目录

1 概述

1.1. 引言

2 系统分析

2.1 需求分析

2.3 开发工具简介

2.3.1 MyEclipse 8.6

2.3.2 Oracle 10g

2.3.3 Tomcat 6.0

3 系统设计

3.1 总体设计原则

3.2 架构概述

3.3 系统模块设计

3.4 数据库结构的设计

3.4.1 数据库的概念设计

4 系统实现

4.1 系统的开发环境

4.2 登录模块的实现

4.2.1 功能描述

4.2.2 模块实现

4.3 博文管理模块实现

4.3.1 功能描述

4.3.2 模块实现

4.3.3 分类管理模块实

4.3.4 用户管理模块实现

4.3.5 评论管理模块实现

4.3.6 首页管理模块实现

4.3.7 其它功能模块实现

5 总结与展望

6 参考文献

1 引言

现在越来越多的人都拥有了自己的私人博客,而且很多公司,单位也都有自己的博客,在这些博客中每个都有自己独立的特点,都有自己的风格,为自身树立了一个与众不同的形象,博客也变得越来越普遍,它逐渐成为一个随时可以记录自己以及身边发生的一切的地方,在这里可以发表自己的观点,谈自己的想法,也可以和别人交流,学习到更多东西,研究博客具有很大的价值

博客是继Email、BBS、ICQ之后出现的第四种网络交流方式。

博客是网络时代的个人“读者文摘”。

博客是以超级链接为武器的网络日记。

博客是信息时代的麦哲伦。

博客代表着新的生活方式和新的工作方式,更代表着新的学习方式。通过博客,让自己学到很多,让别人学到更多。

总之,博客是一个正处于快速发展和快速演变中的互联网新应用。在《市场术语》中对博客的定义为:一种表达个人思想和网络链接,内容按照时间顺序排列,并且不断更新的出版方式。Pyra创始人EvanWilliams认为博客概念主要体现在三个方面:频繁更新(Frequency)、简洁明了(Brevity)和个性化(Personality)。

在网络上发表Blog的构想始于1998年,但到了2000年才真正开始流行。而2000年博客开始进入中国,并迅速发展,但都业绩平平。直到2004年木子美事件,才让中国民众了解到了博客,并运用博客。2005年,国内各门户网站,如新浪、搜狐,原不看好博客业务,也加入博客阵营,开始进入博客春秋战国时代。目前网络上数以千计的Bloggers发表和张贴Blog的目的有很大的差异。不过,由于沟通方式比电子邮件、讨论群组更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)。博客正在改变社会交流方式。

2 系统分析

2.1 需求分析

2.1.1 功能需求分析

图 2-1 系统数据流程图

注册新用户——没有博客账号的用户,可以通过此功能注册一个新的博客。

用户登录——用户填写正确的用户名和密码,否则提示相应信息。

博客管理——用户登录博客后,可以发表属于自己的博文,还能对发表的博文进行管理,包括编辑、删除等。

分类管理——用户可以为博文添加自己喜欢的分类,还能对已添加的分类进行编辑、删除等操作!

评论管理——用户登录博客后,可以对自己感兴趣的其他人的博文进行评论,当

登录个人博客

个人 发表过的博客

个人 分类管理 分类信息 博

外部实体(人或部门) 数据处理 数据存储 数据流向 评论管理 评论信息 注册新用户

用户信息

然,对于其他人对自己博文的评论,用户可以删除。

退出——用户操作完毕后,点击退出,将重新返回登录页面!

2.1.2 可行性分析

(1)技术可行性:

(2)经济可行性:

(3)法律可行性:

(4)社会可行性:

(5)操作可行性

2.2 开发工具简介

该系统的后台主要是在MyEclipse 8.6中开发完成的,其中数据库使用的是Oracle 10g,为了更好地操作数据库进行Windows图形化界面的数据库操作工具,服务器使用Tomcat 6.0。

2.2.1 MyEclipse 8.6

MyEclipse[3],是一个十分优秀的用于开发Java,Java EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错,如图2-2所示。

图2-2 MyEclipse 8.6

它是功能丰富的Java EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts2,JSP,CSS,JavaScript,Spring,SQL,Hibernate。

2.2.2 Oracle 10g

这个版本的Oracle 的一个引人注目之处就是管理上的极大简化。大量复杂的配置和部署设置被取消或者简化。常见的操作过程被自动化。对不同区域的大多数调整和管理操作的到简化。以前

的版本中,DBA 更多时候要手工对SQL 语句进行优化调整。这里引入了一些新的工具,从此DBA 无需手工做这些累人的事情。10G也极大的简化了备份与恢复操作。这个改进被称作Disk based Recovery Area ,可以被一个联机Disk Cache 用来进行备份与恢复操作。备份可以调度成自动化操作,自动化优化调整。备份失败的时候,可以自动重启,以确保Oracle 能够有一个一致的环境使用。

2.2.3 Tomcat 6.0

Tomcat[5]是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。是目前比较流行的Web 应用服务器,如图2-4所示。

图2-4 Tomcat 6.0

3 系统设计

系统设计主要对系统的总体功能如何设计,如何划分模块,系统的数据库如何设计进行研究,它为系统的实现做铺垫。在系统的设计过程中起着非常重要的作用。

3.1 总体设计原则

(1)开放性、可扩充性、可靠性原则

(2)安全性原则

(3)良好的用户操作界面

(4)实用性原则

3.2 架构概述

本项目涉及关系数据库理论的规范化,以解决函数依赖和数据依赖问题。整个系统基于SSH(Struts2 + Spring + Hibernate)技术[10],不但可以有效提高系统开发效率,而且在系统安全性、稳定性和健壮性上都有良好的改进。表现层使用了Struts2框架[11],实现了视图控制分离。业务层使用了Spring框架[12]。Spring是一个业务层框架,一个整合的框架,能够很好地黏合表示层与持久层。

Hibernate框架[13]是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架。Hibernate的强大缓存机制能一定程度上的缓解服务器端频繁读取数据库的压力,这也是Hibernate被广泛使用的重要原因之一。

3.3 系统模块设计

(1)根据第2章的功能需求分析用户模块用例图,如图3-1所示。

图 3-1用户模块用例图

3.4数据库结构设计

用户表:记录用户名和密码,用于管理员的登录。

博文表:记录发表过博文的一些属性:如博文名和发布日期等。

分类表:记录博文所属分类的表,包括分类名,用户ID 等属性。

评论表:记录用户对博文所发评论的表,包括评论内容,评论日期等属性。

3.4.1 数据库的设计

数据库的概念设计[15],即利用数据模型进行概念数据库的模式设计。根据个人博客管理系统的需求,设计出以下的实体-属性模型图。

(1) 用户实体-属性如图3-8所示。

图 3-8 用户实体-属性图

(2) 博文实体-属性如图3-9所示。 用户名 用户

用户ID 用户密码

图 3-9 博文实体-属性图

(3) 评论实体-属性如图3-10所示。

图 3-10 评论实体-属性图

(4) 分类实体-属性如图3-11所示。

图 3-11 分类实体-属性图

博文内容 博文

发布日期 分类ID

博文ID 博文标题

用户ID 评论

博文标题

评论时间 评论内容 评论ID

评论标题 评论人

分类等级

分类

用户ID

分类ID 分类名

4 系统实现

4.1 系统的开发环境

(1)服务器端:

①操作系统平台:Windows、Linux、Unix;

②系统开发平台:Java EE;

③Web服务器:Tomcat 6.0;

④数据库:Oracle 10g;

⑤开发语言:Java、HTML、JavaScript。

(2)客户端:

①操作系统:Windows、Linux、Unix;

②浏览器:IE。

4.2 登录模块的实现

4.2.1 功能描述

个人博客管理系统的用户登录模块,可以实现用户的安全登录,其中Radio Button 和Submit按钮均是采用JQuery UI中的主题。使用HTML5的required进行客户端数据的验证。其中用户的密码不是直接传送到服务器上的,而是经过浏览器JavaScript[17]的MD5加密再上传至服务器,目的是为了防止用户密码的明文被截获而造成用户账号的安全问题。该登录模块实现了国际化。

4.2.2 模块实现

如图4-1所示,为程序运行时,用户登录个人博客管理系统的截图:

图4-1 用户登录图

用户登录流程如图4-2所示。

图 4-2 用户登录流程图

用户登录代码片段如下所示。

ApplicationContext wctx =

WebApplicationContextUtils.getWebApplicationContext (request.g etSession().getServletContext());

IUserDao userDao = (IUserDao)wctx.getBean("userDao");

response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter();

String userName = request.getParameter("userName"); userName = URLDecoder.decode (userName,"UTF-8"); if (userName == null || userName.length() == 0){ out.println("用户名不能为空");

} else {

User user = userDao.getUserByName(userName); if (user != null ){

out.println("对不起,您输入的用户名在数据库中查

找该用户ID 登录页面

用户ID 和密码空?

用户ID 存在?

密码正确?

登录成功 提示用户

否 否

  [  " + userName + "  ]  已经存在,请从新输入");

} else{

out.println("恭喜,您输入的用户名

  [  "+ userName + "  ]  不存在,你可以注册!");

}

}

4.3 博文管理模块实现

4.3.1 功能描述

博客管理模块主要包含以下几个功能模块:编辑博文、删除博文、添加博文。

4.3.2 模块实现

博客管理模块如图4-3所示。

图4-3 博客管理模块

4.3.3 分类管理模块实现

单击“分类管理”,用户可以对博客的分类进行编辑、删除和添加,如下图所示,用户执行分类管理操作。

图4-4 编辑博文分类

图4-5 分类管理

4.3.4 用户管理模块实现

博客系统秉着公平的原则,一旦用户注册以后,将不能再修改用户名,本系统提供了修改用户密码、修改每页显示博文信息数、修改每页显示评论数等功能。

图4-6修改用户资料

图4-7修改用户密码

4.3.5 评论管理模块实现

单击评论管理,用户可以对自己的评论内容进行管理,包括添加评论,删除评论等。

图4-8 评论管理

图4-9 发表评论

4.3.6 首页管理模块实现

博客的首页给人一种简洁舒服的感觉,并且实现了国际化和文字滚动效果,用户可以不用登陆,直接搜索其他人的博客进行观看,也可以直接从下方滚动的账号中选择一个观看。

图4-10 首页管理

4.3.7 其它功能模块实现

用户密码修改流程如4-11所示。

图 4-11 管理员密码修改

当用户单击“退出”时,用户则安全退出了管理模块,同时系统销毁所有的Session 。 用户注销代码片段如下所示。

private User user;

private Map session;

public String execute() throws Exception {

user = (User)session.get("SESSION_USER");

session.remove("SESSION_USER");

return SUCCESS ;

} 原始密码是否正确?

开始

输入原来的密码,修

改密码和确认密码

修改密码是否等于确认

密码?

确定?

输出密码修改

成功! 结束

-----------

5 总结与展望

本次的系统设计在历经了两个多月后终于结束了,在这次的实验中我有了很深刻的体会,无论是在知识技术方面还是个人自身素质的培养等方面都有了更新的认识。这次的实验过程中有悲有喜,虽然在此之前做过了课程设计,熟悉了系统开发的流程,但在这次的实验中还是碰到了很多的问题。

经过近两个月的辛苦忙碌,我的系统设计终于完成了,通过这次系统设计我感觉到了要想做好一个好的“个人博客管理系统”是多么的不容易。先要确立好网站的主题风格,然后就是收集素材,接着就是规划好网站的各个模块,最后就是使他们更好的连接在一起形成一个有机整体。在这次系统设计中,我熟练的掌握了MyEclipse 8.6的使用,以及如何将三大框架Struts2,Hibernate,Spring有机的整合到一起。同时我也熟练的掌握了Adobe Dreamweaver CS5的使用,深刻的了解“DIV+CSS”的网页布局方式,更认识到了CSS的方便之处。在网站的结构上我使用了Flash元素,从而使我关于Flash在网络上应用的能力又迈出了很大的一步,同时Flash使我的网站带来了一些动感。在制作网站的时候我学到了很多的新知识,如JQuery UI美化页面的使用;DWR三级联动下拉菜单的使用;MD5和DES加密等。虽然网站上还有很多的不足之处,但是由于知识和时间有限,已经尽我个人的最大能力将最完美功能全面的系统面展现给大家,看着完全自己设计的“个人博客管理系统”很有成就感,这也是我对大学三年来所做的一次总结性设计,在以后的学习和生活中我会继续努力学习,我坚信以后会做出比这些更优秀的作品!

6 参考文献

[1]罗时远,等.高校学生成绩管理系统的分析探讨[J].办公自动化,2009,(12):31-33.

[2]Ian Sommerville.软件工程[M].北京:中信出版社,2006:96-103.

[3]周平,等.Java EE大学教程[M].北京: 清华大学出版社,2012:49-53.

[4]姜承尧.MySQL技术内幕:SQL编程[M].北京:机械工业出版社,2012:103-109.

[5]Mladen Turk,Jean-Francois Arcand. The Apache Software Foundation[EB/OL].

https://www.doczj.com/doc/9418804039.html,/tomcat-6.0-doc/index.html.

[6]胡崧.Dreamweaver CS5 中文版从入门到精通[M].北京:中国青年出版社,2010:73-76.

[7]ACAA专家委员会,DDC传媒.ADOBE PHOTOSHOP CS5标准培训教材[M].北京:人民邮电出版

社,2010:146-149.

[8]杜秋磊,等.中文版Flash CS5完全自学一本通[M].北京:电子工业出版社,2011:135-142.

[9]Frank W. Zammetti.DWR实战[M].北京:人民邮电出版社,2010:82-86.

[10]李刚.轻量级Java EE企业应用实战(第3版)—Struts 2+Spring 3+Hibernate整合开发[M].北京:电子工业出版社,2011:68-75.

[11]陆舟.Struts2技术内幕:深入解析Struts架构设计与实现原理[M].北京:机械工业出版

社,2012:15-18.

[12]Rod Johnson. Spring框架高级编程[M].北京:机械工业出版社,2009:125-130.

[13]郭伟光,高慧敏.Struts及Hibernate在网络安全管理系统开发中的应用[J].电脑编程技巧与维护,2009,(12):107-109.

[14]龚俭,等.计算机网络安全导论(第二版)[M].南京:东南大学出版社,2007:68-75.

[15]王珊,等.数据库系统概论(第四版)[M].北京:高等教育出版社,2008:210-215.

[16]Bear Bibeault,Yehuda Katz. jQuery实战[M].北京:人民邮电出版社,2012:121-132.

[17]Nicholas C.Zakas. JavaScript高级程序设计(第3版)[M].北京:人民邮电出版

社,2010:54-61.

[18]James Cready. SpryMedia[EB/OL].https://www.doczj.com/doc/9418804039.html,/examples/index.php.

[19]刘德宝.软件测试工程师培训教程[M].北京:中科院新科海学校,2008:235-242.

[20]段念.软件性能测试过程详解与案例剖析[M].北京:清华大学出版社,2006:78-82.

相关主题
文本预览
相关文档 最新文档