1、摘 要关键词: ABSTRACTKeywords: 目 录1 绪论 .11.1 研究背景及意义 .11.2 个人家园博客发展现状分析 .11.3 研发目的和意义 .21.4 本文主要工作及内容安排 .22 系统开发相关技术 .32.1 JSP 简介 .32.2 SQL Server 数据库简介 .42.3 MyEclipse 简介 .42.4 Dreamweaver 简介 .52.5 Apache Tomcat 简介 .52.6 WEB 系统层次结构简介 .62.6.1 客户机/服务器模式 .62.6.2 三层结构模式 .63 系统需求分析 .73.1 系统总体需求 .73.1.1 系统需求
2、.73.1.2 功能需求 .73.1.3 性能需求 .83.2 系统设计指导思想 .83.3 系统模块 DFD 图 .94 系统总体设计 .134.1 系统设计原则 .134.2 系统结构设计 .144.2.1 软件体系结构设计 .144.2.2 系统需求结构设计 .154.2.3 系统模块设计 .154.3 数据库设计 .164.3.1 数据库总体设计 .164.3.2 数据库详细设计 .164.3.3 数据库主外键及约束 .215 系统详细设计与实现 .225.1 系统功能模块设计 .225.2 界面设计 .225.2.1 前台界面设计 .225.2.2 后台界面设计 .235.3 主要功
3、能模块设计实现 .245.3.1 用户管理模块 .245.3.2 文章管理模块 .265.3.3 相册管理模块 .285.3.4 文章类别管理模块 .295.3.5 留言管理模块 .305.3.6 好友管理模块 .316 系统测试 .336.1 登录验证测试 .336.2 文章管理测试 .346.3 相册管理测试 .356.4 其他模块测试 .366.5 系统负载测试 .376.5 系统测试总结 .397 总结 .40参考文献 .41翻译部分 .42英文原文 .42中文译文 .43致 谢 .44中国矿业大学 2013 届本科生毕业设计(论文) 第 1 页1 绪论1.1 研究背景及意义博客又称
4、Blog,是英语 Weblog 的缩写。博客是继 E-mail、BBS、IM 之后出现的第四种全新的网络交流方式。博客系统不仅仅是一种单向的发布系统,它有着极其出色的交流功能。在以往的几种网络交流方式中,BBS 过于公共化。而 E-mail 和即时通信工具 IM则有很明显的私人性质,博客系统的出现则将公共性和私人性很好的结合起来。博客是一个正处于快速发展和快速演变中的互联网新应用,它就是一个网页,通常由简短且经常更新的帖子构成,这些帖子一般是按照年份和日期倒序排列的。它并不等同于“网络日志” 。作为网络日志是带有很明显的私人性质的,博客则是私人性和公共性的有效结合,它绝不仅仅是纯粹个人思想的表
5、达和日常琐事的记录,它提供的内容可以用来进行交流和为他人提供帮助,是可以包容整个互联网的,具有极高的共享精神和价值。Blog 的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人、构想的新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有。许多 Blog 是个人心中所想之事情的发表,其他 Blog 则是一群人基于某个特定主题或共同利益领域的集体创作。简言之,博客就是以网络作为载体,简易迅速便捷地发布自己的心得,即时有效轻松的与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。博客系统可以充分展示每个用户的内心世界、工作感受、技术资料等方面的资讯。博客是个独立站点
6、任何人都可以方便的来使用,就像每个人拥有自己的笔记本开始书写一样简单。博客的出现代替了以前的个人网站,任何人不需要懂得网页设计的制作技术,就可以在互联网上表达自己的观点,展示自己的风采,记录自己的生活琐事或是工作经验,让自己得到更多人的关注。随着 Blog 快速扩张,它的目的与最初的浏览网页心得已相去甚远。目前网络上数以千计的 Bloggers 发表和张贴 Blog 的目的有很大的差异。不过,由于沟通方式比电子邮件、讨论群组更简单和容易,Blog 已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)中。1.2 个人家园博客发展现状分析博客的
7、概念是 1997 年 12 月由美国的 Jorn Barger 最早提出的,这些年全球博客获得了突飞猛进的发展。2000 年博客开始进入中国,并迅速发展,但都业绩平平;2004 年木子美事件,才让中国民众了解到了博客,并运用博客;2005 年,国内各门户网站,如新浪、搜狐,原先不看好博客业务的,也加入了博客阵营,开始进入博客春秋战国时代。这些 BSP 提供商的加入促进了我国博客用户的覆盖人数和作品数量,同时也涌现出一大批名人名博。随着 Web 2.0 时代的来临,原先网络上那种由少数人创作内容和服务,多数人只能被动接受的信息分享模式已经一去不复返。以多数人取代少数人的智慧或贡献的时代已经来临。
8、而 Blog 作为 web2.0 时代的先锋,早在上世纪 90 年代就已出现。2000 年以来,很多网站开始提供 Blog 服务,由此很多人都有了一个属于自己个人博客,从原先的单纯中国矿业大学 2013 届本科生毕业设计(论文) 第 2 页文字,到后来的图片,视频,分享页面等。随着动态网页技术的发展,博客系统中的实时性与交互性增加,博主可以与阅读者进行实时在线的交流讨论。由此,简单的个人博客就成为了个人网上家园的雏形并衍生出了 SNS,博主可以在博客中更换主题,背景,布局的等个性化设置,借此进行自我表达。虽然 BSP(Blog Service Provider)有着免费,稳定,容易上手等特点,
9、但是很多 Blog 系统和 SNS 为了保证稳定和安全,只开放很小的修改权限。虽然有很多模板,但是对于数以万计的博客用户来说模板“撞车”的可能性非常大。另外虽然几乎所有的 BSP 都可以免费使用,但同时用户也不得不接受界面上插入的广告等信息。正是由于用户的这种个性化以及简洁的需求以及许多志愿者的努力,使得各种开源的建站软件出现,同时服务器空间和域名的费用也低到人们可以接受的程度,所以个人的网上家园博客系统开始大量出现。1.3 研发目的和意义国内的 Blog 以及个人网上家园大都建于 BSP,主流的有新浪,网易,腾讯等,有一些著名的 IT 技术博客如 CSDN 博客和月光博客采用的是独立建站的方
10、式。WordPress 因为其开源,免费的特点,被用于大部分个人 Blog 建设。另外的一些 SNS 家园平台有人人网,QQ 空间,基于手机浏览器 UCWEB 的 UC 乐园,还有 UCenter。它们为用户提供了大量的个性化模板,插件,链接生成,图片相册,网页游戏等功能,同时依靠页面广告和增值服务获取利润。但对网页技术有所了解的人来说无法在系统中放入随心所欲的内容或功能,以至于很多人对技术有一定了解的人投向了自行架站。更重要的一点是很多 BSP 的数据库安全存在漏洞,导致用户数据泄露,正如前一阵的 CSDN 用户密码泄露事件,因为用户数据未加密而造成大规模泄露。由此可见,个人的网上家园平台在
11、今后的一段时期内必将获得大发展。基于 Jsp 动态网页技术,拥有完善用户权限管理功能、安全管理功能的个人家园博客系统将会借助安全性高,自定义程度高等特点而得到较快发展。1.4 本文主要工作及内容安排本文以提升基于 Java 的个人家园博客系统的研究为切入点,着力于研究适应个人用户使用的家园博客系统。本文详细介绍了基于 Java 的个人家园博客系统的设计及实现过程,共分为七章:第 1 章,绪论,介绍系统的开发背景、目的及意义、个人家园博客当前现状分析、存在问题及解决策略,指出了本文的工作。第 2 章,对系统相关技术进行简单介绍。第 3 章,对系统进行需求设计。第 4 章,对系统进行总体设计,并对
12、本系统进行简单分析。第 5 章,在第三章的基础上,对本系统中各个功能模块行详细的设计和实现。第 6 章,对系统进行测试。第 7 章,总结。对本次设计做出总结,指出不足之处及可扩展的空间。最后是参考文献、翻译和致谢。中国矿业大学 2013 届本科生毕业设计(论文) 第 3 页2 系统开发相关技术2.1 JSP简介JSP 即(Java Server Pages) ,它具有平台无关特性,他们都用来帮助 Web 内容的开发者们使用相对少的代码创建动态的网页。一个 JSP 页面包含掺杂着 Java 代码的 HTML代码。下面主要介绍下 JSP 的特点:(1)将内容的生成和显示进行分离使用 JSP 技术,
13、Web 页面开发人员可以使用 HTML或者 XML 标识来设计和格式化最终页面。(2)JSP 技术源于 Java 语言。Java 语言是体系结构中立的。这使 JSP 技术可以在实现这个 JSP 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。(3)JSP 系统是可移植的。这种可移植性来源于体系结构中立性。(4)强调可重用的组件。绝大多数 JSP 页面依赖于可重用的,跨平台的组件(JavaBeans 或者 Enterprise JavaBeans TM 组件)来执行应用程序所要求的更为复杂的处理。(5)采用标识简化页面开发 Web 页面开发人员不会都是熟悉脚本语言的编程人员。JS
14、P 技术封装了许多功能,这些功能是在易用的、与 JSP 相关的 XML 标识中进行动态内容生成所需要的。(6)使用 JSP 标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和 JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。(7)由于 JSP 页面的内置脚本语言是基于 Java 编程语言的,而且所有的 JSP 页面都被编译成为 Java Servlet,JSP 页面就具有 Java 技术的所有好处,包括健壮的存储管理和安全性;(8)作为 Java 平台的一部分,JSP 拥有 Java 编程语言“一次编写,各处运行”的特点。当客户端请求一个 JSP 网页
15、时,JSP Engine 会检查所请求的 JSP 网页是否已经处于被载入执行的状态,如果没有,它会先读取 JSP 程序文件,将它换成 Servlet 程序代码编译载入,然后才执行请求的服务。也是就说,只有当客户端第一次请求 JSP 网页时,才需要被转换、编译和载入,做到了一次执行,处处执行。JSP 的 Servlet Class 是 JSP Engine 自动帮我们编译产生的,不像 Servlet 需要手动编译,另外,在 JSP 程序中建立新的对象和 Java Bean 非常方便容易。Java Servlet 是 JSP 技术的基础,JSP 本身就是预先被编译成 Servlet,然后再运行的,
16、而且大型的 Web 应用程序的开发需要 Java Servlet 和 JSP 配合才能完成,Servlet这个名称大概源于 Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用 Servlet 这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序” 。Servlet 其实和传统的 CGI 程序和 ISAPI、NSAPI 等 Web 程序开发工具的作用是相同的,在使用 Java Servlet 以后,用户不必再使用效率低下的 CGI 方式,也不必使用只能在某个固定 Web 服务器平台运行的 API 方式来动态生成 Web 页面。许多 Web 服务器都支持Servlet,即
17、使不直接支持 Servlet 的 Web 服务器也可以通过附加的应用服务器和模块来中国矿业大学 2013 届本科生毕业设计(论文) 第 4 页支持 Servlet。得益于 Java 的跨平台的特性,Servlet 也是平台无关的,实际上,只要符合 Java Servlet 规范,Servlet 是完全平台无关且是 Web 服务器无关的。由于 Java Servlet 内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此 Java Servlet 效率非常高。但 Java Servlet 也不是没有缺点,和传统的 CGI、ISAPI、NSAPI
18、 方式相同,Java Servlet 是利用输出 HTML语句来实现动态网页的,如果用 Java Servlet 来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么 SUN 还要推出 Java Server Pages 的原因。2.2 SQL Server数据库简介SQL Server 是由 Microsoft 开发和推广的关系数据库管理系统(DBMS) ,它最初是由Microsoft、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个OS/2 版本。最新的版本是 SQL Server 2008 R2,已经在 2010 年 4
19、月 12 日发布。SQL Server 数据库的内置语言是由美国标准局(ANSI)和国际标准组织(ISO)所定义的 SQL 语言,微软公司对它进行了部分扩充而成为作业用 SQL(Transact-SQL) 。SQL Server 几个初始版本适用于中小企业的数据库管理,但是近年来它的应用范围有所扩展,已经触及到大型、跨国企业的数据库管理。SQL 是英文 Structured Query Language 的缩写,意思为结构化查询语言。SQL 语言的主要功能就是同各种数据库建立联系,进行沟通。按照 ANSI(美国国家标准协会)的规定,SQL 被作为关系型数据库管理系统的标准语言。SQL Serv
20、er 作为中型数据库系统,非常适用与 WEB 开发,本次开发采用的数据库系统是 SQL Server2008 R2。SQL Server 2008 比起以往版本存在以下优势: (1)保护数据库查询;(2)在服务器的管理操作上花费更少的时间; (3)增加应用程序稳定性; (4)系统执行效能最佳化与预测功能。2.3 MyEclipse简介MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对 EclipseIDE 的扩展,利用它我们可以在数据库和 Java EE 的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它
21、是功能丰富的 Java EE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持 HTML, Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。在结构上,MyEclipse 的特征可以被分为 7 类:(1) Java EE 模型(2) WEB 开发工具(3) EJB 开发工具(4) 应用程序服务器的连接器(5) Java EE 项目部署服务(6) 数据库服务(7) MyEclipse 整合帮助中国矿业大学 2013 届本科生毕业设计(论文) 第 5 页对于以上每一种功能上的类别,在 Eclipse 中都有相应的功能部件,并通过一系列的插件
22、来实现它们。MyEclipse 结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse 是 Eclipse 的插件,也是一款功能强大的 Java EE 集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0 以前版本需先安装Eclipse。MyEclipse6.0 以后版本安装时不需安装 Eclipse。本次开发使用的是最新的 MyEclipse 10,该版本使用最高级的桌面和 Web 开发技术,包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0、Eclipse link 2.1 以及
23、Open JPA 2.0。2.4 Dreamweaver简介Dreamweaver 是美国 MACROMEDIA 公司开发(后被 Adobe 公司收购)的集网页制作和管理网站于一身的所见即所得网页编辑器。在网页领域,Dreamweaver 是目前最流行的网页设计与开发工具之一。Dreamweaver 目前最新版本 CS4(10.0,于 2008 年 9 月发布) ,支持将 PSD 文件作为智能对象导入网页,并使网页中的图像随智能对象的改变而更新;同时,增强了代码提示引擎的功能,方便用户编写各种脚本程序。在 Dreamweaver CS4 中,还新增了实时视图工具,通过 Presto 引擎模拟网
24、页浏览器,执行各种网页脚本,大幅提高了网页脚本开发和调试的效率。另外,Dreamweaver CS4 还可以方便地编写各种XML、JavaScript、CSS、Action Script 以及 XSLT 文档,并和 Flash、Fireworks 等软件一起加入了 AIR 编写功能。用户可使用 Dreamweaver 开发富互联网应用程序。Dreamweaver CS4 使用了全新的用户界面,大幅改良了工作区布局工具,用户可根据网页开发的需要,选择不同的工作区布局方式,最大限度提高工作效率。2.5 Apache Tomcat简介Tomcat 是 Apache 软件基金会(Apache Soft
25、ware Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现,Tomcat 5 支持最新的 Servlet 2.4 和 JSP 2.0 规范。因为 Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。目前最新版本是 7.0。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开
26、发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应对 HTML 页面的访问请求。实际上Tomcat 部分是 Apache 服务器的扩展,但它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。这里的诀窍是,当配置正确时,Apache 为 HTML 页面服务,而 Tomcat
27、实际上运行JSP 页面和 Servlet。另外,Tomcat 和 IIS、Apache 等 Web 服务器一样,具有处理 HTML中国矿业大学 2013 届本科生毕业设计(论文) 第 6 页页面的功能,另外它还是一个 Servlet 和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。不过,Tomcat 处理静态 HTML 的能力不如 Apache 服务器。2.6 WEB系统层次结构简介2.6.1 客户机/服务器模式本系统结构没有一个标准的固定的组成方案,结构上可塑性很强,每个用户都可提出适合自己部门的网路结构方案;有两层和三层结构两种,如图 2.1 所示。数 据 库
28、/ w e b 服 务 器管 理 员访 问 者 访 问 者网 络 访 问 网 络 访 问 网 络 访 问图 2.1 两层浏览器/服务器模型在双层结构中,由于现在服务器性能较高,而且有些用户出于成本考虑将 WEB 服务器与数据库服务器合二为一,直接处理用户终端的请求;这种模式是基于 WEB 的 B/S 结构,在提供信息服务时,需要服务器端与客户端保持稳定连接和同步工作。此结构中客户机只需要浏览器即可以完成对服务器端的访问,所有功能大多集中于服务器端,在不稳定的 Internet 环境或者性能较差的服务器上,B/S 结构系统的服务能力和服务质量较低。2.6.2 三层结构模式在三层结构中(图 2.2),解决了浏览器/服务器模式面临的许多问题。通过划分网络应用服务器与数据库服务器之间的功能,将数据与应用分离,实现了数据库服务器的隔离,保证了数据安全。也降低了网络应用服务器的负载,提高了响应速度,同时对敏感信息的访问也可以得到很好的控制。采用分布式计算有着多方面的技术优势,包括:(1)封装性 (2)性能在分布式计算模式中,由于网络应用服务器与数据库服务器分离,网络管理人员可以在不影响系统运行的情况下运用适当的备份对数据服务器进行维护。这可以大大简化管理员对系统的管理,减轻系统维护的工作量,并确保系统的可靠运行。数 据 库 服 务 器网 络 应 用 服 务 器内 部 线 路互联网互联网