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

ssh之个人博客管理系统

ssh之个人博客管理系统
ssh之个人博客管理系统

附件2:

宜春数学与计算机科学学院

课程设计说明书

课程名称: ssh之个人博客管理系统

题目:个人博客系统

年级/专业/班:

组长:

组员:

指导教师:张老师

开题时间:年月日

完成时间:年月日

目录

1 概述

1.1. 引言

2 系统分析

2.1 需求分析

2.3 开发工具简介

2.3.1 MyEclipse 8.6

2.3.2MySQL5.1

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)技术可行性:

使用现在流行的JSP、SSH框架与MySQL数据库结合的方法可以完成本系统的开发。而且就目前而言,已经有不少使用类似方法开发成功的例子。

(2)经济可行性:

使用MyEclipse开发个人博客管理系统,是这个开发工具的强项。在技术上是完全可行的。

(3)法律可行性:

本系统的开发是由本组成员在老师的指导下完成,不涉及任何公司任何个人的私有信息,不存在任何侵和知识产权的问题和行为。

(4)社会可行性:

现代社会是信息高速发展的社会,尤其是计算机的日趋成熟,选择使用计算机对个人博客进行管理已经成为现代教学的必然选择,所以从社会的角度对本系统进行分析是完全可行的。

(5)操作可行性

此博客系统具有简单、快捷、低成本的特点。博客像是简化了的个人主页,只需几分钟的时间就可以申请到一个属于自己的博客空间,并方便地发表观点或评论,快速建立自己的网络形象。只要“会上网打字,就会博客”,与传统的个人主页相比,它的优点在于简单、快速和“入门免费”。次博客界面美观,功能齐全,一幕了然,更能使用户方便使用。

2.2 开发工具简介

该系统的后台主要是在MyEclipse 8.6中开发完成的,其中数据库使用的是MySQL5..1,为了更好地操作数据库进行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 MySQL5.1

MySQL[1] 是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。如图2-3所示。

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;

④数据库:MySQL5.1;

⑤开发语言:Java、JSP、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-0所示。

图 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 ){

在数据库中查找该用户ID

登录页面

用户ID 和密码空?

用户ID 存在?

密码正确?

登录成功

返回到登陆界

out.println("对不起,您输入的用户名

  [  " + userName +

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

} else{

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

  [  "+ userName +

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

}

}

4.4.3.3 博客管理模块实现

用户登陆成功后,用户进入自己的博客中心,用户可以选择自己需要的功能,如个人资料、留言管理等模块。

3 博文管理模块实现

4.3.1 功能描述

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

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

图4-3 博客管理模块

图4-5 分类管理

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加密等。虽然网站上还有很多的不足之处,但是由于知识和时间有限,已经尽我个人的最大能力将最完美功能全面的系统面展现给大家,看着完全自己设计的“个人博客管理系统”很有成就感,这也是我对大学三年来所做的一次总结性设计,在以后的学习和生活中我会继续努力学习,我坚信以后会做出比这些更优秀的作品!

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