《个人博客系统.doc》由会员分享,可在线阅读,更多相关《个人博客系统.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date个人博客系统武汉软件工程职业学院武汉软件工程职业学院课程设计报告2012-2013学年度第二学期题目: 基于ssh+oracle的个人博客系统 姓名: 王晨 班级: 软件1112 系部: 计算机与软件学院 指导教师: 柴柳 日期:2013 年7月4 日目 录1 概述1.1. 引言2 系统分析2.1 需求分析2.3 开发工具简介2.3.1 MyEclipse 8.62.
2、3.2 Oracle 10g2.3.3 Tomcat 6.03 系统设计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 引言现在越来越多的人都拥有了自己的私人博客,而且很多公司,单位也都有自己的博客,在这些
3、博客中每个都有自己独立的特点,都有自己的风格,为自身树立了一个与众不同的形象,博客也变得越来越普遍,它逐渐成为一个随时可以记录自己以及身边发生的一切的地方,在这里可以发表自己的观点,谈自己的想法,也可以和别人交流,学习到更多东西,研究博客具有很大的价值博客是继Email、BBS、ICQ之后出现的第四种网络交流方式。博客是网络时代的个人“读者文摘”。博客是以超级链接为武器的网络日记。博客是信息时代的麦哲伦。博客代表着新的生活方式和新的工作方式,更代表着新的学习方式。通过博客,让自己学到很多,让别人学到更多。总之,博客是一个正处于快速发展和快速演变中的互联网新应用。在市场术语中对博客的定义为:一种
4、表达个人思想和网络链接,内容按照时间顺序排列,并且不断更新的出版方式。Pyra创始人EvanWilliams认为博客概念主要体现在三个方面:频繁更新(Frequency)、简洁明了(Brevity)和个性化(Personality)。在网络上发表Blog的构想始于1998年,但到了2000年才真正开始流行。而2000年博客开始进入中国,并迅速发展,但都业绩平平。直到2004年木子美事件,才让中国民众了解到了博客,并运用博客。2005年,国内各门户网站,如新浪、搜狐,原不看好博客业务,也加入博客阵营,开始进入博客春秋战国时代。目前网络上数以千计的Bloggers发表和张贴Blog的目的有很大的差
5、异。不过,由于沟通方式比电子邮件、讨论群组更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)。 博客正在改变社会交流方式。2 系统分析2.1 需求分析2.1.1 功能需求分析登录个人博客个人发表过的博客个人分类管理分类信息博 客 管 理外部实体(人或部门)数据处理数据存储数据流向评论管理评论信息注册新用户用户信息图 2-1 系统数据流程图注册新用户没有博客账号的用户,可以通过此功能注册一个新的博客。用户登录用户填写正确的用户名和密码,否则提示相应信息。博客管理用户登录博客后,可以发表属于自己的博文,还能对发表的博文进
6、行管理,包括编辑、删除等。分类管理用户可以为博文添加自己喜欢的分类,还能对已添加的分类进行编辑、删除等操作!评论管理用户登录博客后,可以对自己感兴趣的其他人的博文进行评论,当然,对于其他人对自己博文的评论,用户可以删除。退出用户操作完毕后,点击退出,将重新返回登录页面!2.1.2 可行性分析(1) 技术可行性:(2) 经济可行性:(3) 法律可行性:(4) 社会可行性:(5) 操作可行性2.2 开发工具简介该系统的后台主要是在MyEclipse 8.6中开发完成的,其中数据库使用的是Oracle 10g,为了更好地操作数据库进行Windows图形化界面的数据库操作工具,服务器使用Tomcat
7、6.0。2.2.1 MyEclipse 8.6MyEclipse3,是一个十分优秀的用于开发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 的一个引人注目之处就是管理上的极大简化。大量复杂的配置和部署设置
8、被取消或者简化。常见的操作过程被自动化。对不同区域的大多数调整和管理操作的到简化。以前的版本中, DBA 更多时候要手工对 SQL 语句进行优化调整。这里引入了一些新的工具,从此 DBA 无需手工做这些累人的事情。10G也极大的简化了备份与恢复操作。这个改进被称作Disk based Recovery Area ,可以被一个联机Disk Cache 用来进行备份与恢复操作。备份可以调度成自动化操作,自动化优化调整。备份失败的时候,可以自动重启,以确保 Oracle 能够有一个一致的环境使用。2.2.3 Tomcat 6.0Tomcat5是Apache 软件基金会(Apache Software
9、 Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。是目前比较流行的Web 应用服务器,如图2-4所示。图 2-4 Tomcat 6.0 3 系统设计系统设计主要对系统的总体功能如何设计,如何划分模块,系统的数据库如何设计进行研究,它为系统的实现做铺垫。在系统的设计过程中起着非常重要的作用。3.1 总体设计原则(1) 开放性、可扩充性、可靠性原则(2) 安全性原则(3) 良好的用户操作界面(4) 实用性原则3.2 架构概述本项目涉及关系数据库理论的规范化,以解决函数依赖和数据依赖问题。整个系统基于SSH(Struts2 +
10、Spring + Hibernate)技术10,不但可以有效提高系统开发效率,而且在系统安全性、稳定性和健壮性上都有良好的改进。表现层使用了Struts2框架11,实现了视图控制分离。业务层使用了Spring框架12。Spring是一个业务层框架,一个整合的框架,能够很好地黏合表示层与持久层。Hibernate框架13是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架。Hibernate的强大缓存机制能一定程度上的缓解服务器端频繁读取数据库的压力,这也是Hibernate被广泛使用的重要原因之一。3.3 系统模块设计(1) 根据第2章的功能需求分析用户模块用例图,如图3-1所示。图 3
11、-1用户模块用例图 3.4数据库结构设计用户表:记录用户名和密码,用于管理员的登录。博文表:记录发表过博文的一些属性:如博文名和发布日期等。分类表:记录博文所属分类的表,包括分类名,用户ID等属性。评论表:记录用户对博文所发评论的表,包括评论内容,评论日期等属性。3.4.1 数据库的设计数据库的概念设计15,即利用数据模型进行概念数据库的模式设计。根据个人博客管理系统的需求,设计出以下的实体-属性模型图。(1) 用户实体-属性如图3-8所示。用户名用户用户ID用户密码图 3-8 用户实体-属性图(2) 博文实体-属性如图3-9所示。博文内容博文发布日期分类ID博文ID博文标题用户ID图 3-9
12、 博文实体-属性图(3) 评论实体-属性如图3-10所示。评论博文标题评论时间评论内容评论ID评论标题评论人图 3-10 评论实体-属性图(4) 分类实体-属性如图3-11所示。分类等级分类用户ID分类ID分类名图 3-11 分类实体-属性图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 登录模
13、块的实现4.2.1 功能描述 个人博客管理系统的用户登录模块,可以实现用户的安全登录,其中Radio Button和Submit按钮均是采用JQuery UI中的主题。使用HTML5的required进行客户端数据的验证。其中用户的密码不是直接传送到服务器上的,而是经过浏览器JavaScript17的MD5加密再上传至服务器,目的是为了防止用户密码的明文被截获而造成用户账号的安全问题。该登录模块实现了国际化。 4.2.2 模块实现 如图4-1所示,为程序运行时,用户登录个人博客管理系统的截图: 图 4-1 用户登录图用户登录流程如图4-2所示。在数据库中查找该用户ID登录页面用户ID和密码空?
14、用户ID存在?密码正确?登录成功提示用户是是否是是否否图 4-2 用户登录流程图用户登录代码片段如下所示。ApplicationContext wctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext(); IUserDao userDao = (IUserDao)wctx.getBean(userDao); response.setContentType(text/html;charset=UTF-8); PrintWriter out = respons
15、e.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(对不起,您输入的用户名 + userNa
16、me + 已经存在,请从新输入); else out.println(恭喜,您输入的用户名 + userName + 不存在,你可以注册!); 4.3 博文管理模块实现4.3.1 功能描述博客管理模块主要包含以下几个功能模块:编辑博文、删除博文、添加博文。4.3.2 模块实现博客管理模块如图4-3所示。图 4-3 博客管理模块4.3.3 分类管理模块实现单击“分类管理”,用户可以对博客的分类进行编辑、删除和添加,如下图所示,用户执行分类管理操作。图 4-
17、4 编辑博文分类图 4-5 分类管理4.3.4 用户管理模块实现博客系统秉着公平的原则,一旦用户注册以后,将不能再修改用户名,本系统提供了修改用户密码、修改每页显示博文信息数、修改每页显示评论数等功能。 图 4-6修改用户资料图 4-7修改用户密码4.3.5 评论管理模块实现单击评论管理,用户可以对自己的评论内容进行管理,包括添加评论,删除评论等。图 4-8 评论管理图 4-9 发表评论4.3.6 首页管理模块实现博客的首页给人一种简洁舒服的感觉,并且实现了国际化和文字滚动效果,用户可以不用登陆,直接搜索其他人的博客进行观看,也可以直接从下方滚动的账号中选择一个观看。图 4-10 首页管理4.
18、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_US
19、ER);return SUCCESS;-5 总结与展望本次的系统设计在历经了两个多月后终于结束了,在这次的实验中我有了很深刻的体会,无论是在知识技术方面还是个人自身素质的培养等方面都有 了更新的认识。这次的实验过程中有悲有喜,虽然在此之前做过了课程设计,熟悉了系统开发的流程,但在这次的实验中还是碰到了很多的问题。经过近两个月的辛苦忙碌,我的系统设计终于完成了,通过这次系统设计我感觉到了要想做好一个好的“个人博客管理系统”是多么的不容易。先要确立好网站的主题风格,然后就是收集素材,接着就是规划好网站的各个模块,最后就是使他们更好的连接在一起形成一个有机整体。在这次系统设计中,我熟练的掌握了MyE
20、clipse 8.6的使用,以及如何将三大框架Struts2,Hibernate,Spring有机的整合到一起。同时我也熟练的掌握了Adobe Dreamweaver CS5的使用,深刻的了解“DIV+CSS”的网页布局方式,更认识到了CSS的方便之处。在网站的结构上我使用了Flash元素,从而使我关于Flash在网络上应用的能力又迈出了很大的一步,同时Flash使我的网站带来了一些动感。在制作网站的时候我学到了很多的新知识,如JQuery UI美化页面的使用;DWR三级联动下拉菜单的使用; MD5和DES加密等。虽然网站上还有很多的不足之处,但是由于知识和时间有限,已经尽我个人的最大能力将最
21、完美功能全面的系统面展现给大家,看着完全自己设计的“个人博客管理系统”很有成就感,这也是我对大学三年来所做的一次总结性设计,在以后的学习和生活中我会继续努力学习,我坚信以后会做出比这些更优秀的作品!6 参考文献1罗时远,等.高校学生成绩管理系统的分析探讨J.办公自动化,2009,(12):31-33.2Ian Sommerville.软件工程M.北京:中信出版社,2006:96-103.3周平,等.Java EE大学教程M.北京: 清华大学出版社,2012:49-53.4姜承尧.MySQL技术内幕:SQL编程M.北京:机械工业出版社,2012:103-109.5Mladen Turk,Jean
22、-Francois Arcand. The Apache Software FoundationEB/OL. http:/tomcat.apache.org/tomcat-6.0-doc/index.html.6胡崧.Dreamweaver CS5 中文版从入门到精通M.北京:中国青年出版社,2010:73-76.7ACAA专家委员会,DDC传媒.ADOBE PHOTOSHOP CS5标准培训教材M.北京:人民邮电出版社,2010:146-149.8杜秋磊,等.中文版Flash CS5完全自学一本通M.北京:电子工业出版社,2011:135-142.9Frank W. Zammetti.DWR
23、实战M.北京:人民邮电出版社,2010:82-86.10李刚.轻量级Java EE企业应用实战(第3版)Struts 2Spring 3Hibernate整合开发M.北京:电子工业出版社,2011:68-75.11陆舟.Struts2技术内幕:深入解析Struts架构设计与实现原理M.北京:机械工业出版社,2012:15-18.12Rod Johnson. Spring框架高级编程M.北京:机械工业出版社,2009:125-130.13郭伟光,高慧敏.Struts及Hibernate在网络安全管理系统开发中的应用J.电脑编程技巧与维护,2009,(12):107-109.14龚俭,等.计算机网
24、络安全导论(第二版)M.南京:东南大学出版社,2007:68-75.15王珊,等.数据库系统概论(第四版)M.北京:高等教育出版社,2008:210-215.16Bear Bibeault,Yehuda Katz. jQuery实战M.北京:人民邮电出版社,2012:121-132.17Nicholas C.Zakas. JavaScript高级程序设计(第3版)M.北京:人民邮电出版社,2010:54-61.18James Cready. SpryMediaEB/OL.19刘德宝.软件测试工程师培训教程M.北京:中科院新科海学校,2008:235-242.20段念.软件性能测试过程详解与案例剖析M.北京:清华大学出版社,2006:78-82.