基于JSP的个人博客系统设计与实现【毕业论文 文献综述 任务书 开题报告】.doc_第1页
基于JSP的个人博客系统设计与实现【毕业论文 文献综述 任务书 开题报告】.doc_第2页
基于JSP的个人博客系统设计与实现【毕业论文 文献综述 任务书 开题报告】.doc_第3页
基于JSP的个人博客系统设计与实现【毕业论文 文献综述 任务书 开题报告】.doc_第4页
基于JSP的个人博客系统设计与实现【毕业论文 文献综述 任务书 开题报告】.doc_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于JSP的个人博客系统设计与实现【毕业论文+文献综述+任务书+开题报告】 ( 2011 届) 本科毕业论文(设计) 题 目: 基于JSP的个人博客系统设计与实现 学 院: 专 业: 信息管理与信息系统 班 级: 学 号: 姓 名: 指导教师: 完成日期: 教 务 处诚 信 声 明 我声明,所呈交的论文设计是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,论文设计中不包含其他人已经发表或撰写过的研究成果,也不包含为获得_或其他教育机构的学位或证书而使用过的材料。我承诺,论文设计中的所有内容均真实、可信。 论文设计作者签名: 签名日期:年月 授 权 声 明 学校有权保留送交论文(设计)的原件,允许论文(设计)被查阅和借阅,学校可以公布论文(设计)的全部或部分内容,可以影印、缩印或其他复制手段保存论文(设计),学校必须严格按照授权对论文设计进行处理,不得超越授权对论文(设计)进行任意处置。 论文设计作者签名: 签名日期: 年 月 日基于JSP的个人博客系统设计与实现 摘要:随着计算机网络的高速发展,博客迅速崛起,博客系统成为了潮流风头的网络新兴文化系统。课题的主要内容便是基于JSP的个人博客系统的设计与实现。系统的前台用户操作模块实现用户查看博客文章、查看评论、评论文章等操作,而后台博主操作模块则是博主登陆、解决用户文章管理、文章类别管理、相册管理、留言管理等功能问题。 系统采用JSP技术实现个人博客系统的设计与实现,搭建“My Eclipse + Dreamweaver”开发平台和“JavaBeans + Servlet”的开发技术结构,使用“MySQL+Navicat”数据库工具,并应用CSS进行系统美化,采用CKEditor进行博客系统的文章编辑。 关键词:博客;博客系统;JSP技术;My EclipseDesign and Implementation of Personal Blog SystemBased On JSP TechnologyAbstract: Nowadays, blogs rise rapidly as computer networks develop so fast. Then blog system has become a new cultural trend of the limelight of network systems. The main topic of this article is about the design and implementation of personal blog system based on JSP technology. In this system , the operation module for user in front-end implement such operations like viewing blog post, viewing comments, commenting articles and so on, while the optional module for blogger in back-end is used to login ,solve article management , article category management, photos management ,message management and other functional problems. This system uses JSP technology to achieve design and implement of the personal blog system, and build My Eclipse + Dreamweaver development platform and JavaBeans + Servlet the development of technical structure. It uses MySQL + Navicat database toolsIt uses CSS scripts to landscaping application systems. It uses CKEditor to edit the blog post.Key words: Weblog, Blog System, JSP technology, My Eclipse 目 录1 绪论11.1 课题研究的背景、意义11.1.1 历史背景11.1.2 研究现状11.1.3 意义31.2 课题的研究内容31.3 课题的研究方法32 系统分析52.1 需求分析52.1.1 需求定义52.1.2 数据流程图52.1.3 数据字典62.2 开发工具分析82.2.1 JSP概述82.2.2 MyEclipse概述102.2.3 Severlet与 Javabean102.2.4 MySQL113 数据库设计133.1 概念设计133.2 逻辑设计133.3 物理设计144 系统设计164.1 系统总体结构图164.2 系统功能模块设计164.3 系统主界面设计175 系统实现185.1 系统前台主页的实现185.2 文章显示模块的实现195.3 系统后台主页的实现195.4 发表文章模块的实现215.5 系统详细代码215.5.1 前台主页实现代码215.5.2 文章显示模块主要代码255.5.3 后台主页实现代码275.5.4 发表文章模块主要代码286 总结307 致谢318 参考文献321 绪论 1.1 课题研究的背景、意义1.1.1 历史背景 进入21世纪信息时代后,随着计算机网络的高速发展,人类进入了计算机网络世界,人与人之间也出现了多种多样的交流方式,从早期的ICQ,到后来的E-Mail和BBS,都是在计算机网络的基础上诞生的。它们的出现让人类的交流变得更加的方便和快捷。之后,博客迅速崛起。 在博客风靡全球的过程中,越来越多的人投入了博客系统的开发研究。主流开源博客系统包括WordPress,Pivotx, PJBlog, Z-Blog, oBlog, Sablog-X站上了博客发展技术尖端。博客系统的开发语言与技术平台的搭建方案层出不穷,基于各种技术语言开发的博客系统呈现百花争鸣的局面。博客系统成为了潮流风头的网络新兴文化系统。1.1.2 研究现状 博客,即Weblog1,后简称blog,又译为网络日志等2,是一种通常由个人管理、不定期张贴新文章的网站3。在台湾,人们认为Blog本身有社群群组的涵义,通常被音译成“部落格”4。Blog就是以网络作为载体,简易迅速便捷地发布个人心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台5。这些博客撰写人就叫做Blogger或Blog writer6。 Blog一露面,立刻与Email、BBS、ICQ并列四大网络交流方式7,并逐渐发展成网络时代的个人“读者文摘”8。这种以超级链接为武器的网络日记,给人们带来了生活方式和工作方式的创新,标志着一种新的学习方式9。另外,由于blog的沟通方式比电子邮件、讨论群组更为简易和方便,它逐渐被应用在企业内部网络Intranet中10。 据有关调查数据11显示,2006年11月3日,全球中文博客站点数量达到5230万,博客用户数达到1987万。有些调查数据12还显示出,2006年,中国大陆博客服务商持续大幅增长,大型网络公司如搜狐、百度纷纷推出相应的博客服务,博客服务商之间的市场竞争日趋激烈。有关调查机构还发现,博客的发展规律类似于新兴科技企业发展规律中的Hype Cycle模型13,开始被媒体和从业者大为炒作,后来市场预期不断下降,直到现在的理性稳步发展,成为互联网的基本应用14。 博客依赖的基础平台?博客系统也随即进入开发热潮15。目前主流开源博客系统主要有这么几种16:WordPress ,一种支持用户在 PHP 和 MySQL 数据库的服务器上建立自己的 Blog的引擎;Pivotx, blog CMS,以 PHP 编写,管理者接口采用AJAX模式运作,SEO友好,支持MySQL数据库以及文本数据库等;PJBlog,一套开源免费的中文个人博客系统程序,采用asp+Access的技术,支持简繁中文,UTF-8编码,相对于其他系统具有相当高的运作效能以及更新率,也支持目前Blog所使用的新技术;Z-Blog,一款小巧而强大的基于Asp平台的Blog程序,支持界面主题及样式更换,采用Web Standards网页设计标准,静态生成日志,支持自定义目录配置,支持FierFox、Opera、Safari等浏览器,支持Wap、Windows Live Writer等离线写作软件;oBlog,一套经过完善设计的多用户博客建站程序,是Windows NT服务环境下多用户博客程序的最佳解决方案;Bo-Blog,一款基于PHP的、以MySQL为数据库支持的免费blog程序,基于XHTML+CSS+div 布局的模板结构,可自由定制的页面模块、插件与模板,部分基于Ajax的新体验,多语言包化与UTF-8国际编码,强大的spam信息防御机制,RSS、XML-RPC、Tags支持,内置留言本、天气、表情、置顶、验证码、头像等; Sablog-X,一个采用PHP和MySQL构建的博客系统,在代码质量、运行效率、负载能力、安全等级、功能可操控性和权限严密性等方面都比较好。 而从这些主流开源博客系统的实现技术来看,最主要的还是以PHP,ASP和JSP技术为主17。三种技术中,相比之下,JSP具有一次编写到处到处运行18,系统多平台支持19,强大的可伸缩性20,多样化和功能强大的开发工具支持等强势21。JSP应该是未来发展的趋势,尤其是电子商务类的网站,多采用JSP,世界上一些大的电子商务解决方案提供商都采用JSP/Servelet22。但是, JSP也存在不可忽视的弱势23。与ASP一样,Java的一些优势正是它的致命问题所在,正是由于为了跨平台的功能,为了极度的伸缩能力,所以增加了产品的复杂性24。此外,Java的运行速度使用class常驻内存来完成的,所以在一些情况下有些“最低性价比”了25。 博客系统的架构则是C/S和B/S这两种开发模式技术架构的主流技术26。C/S架构软件的优势主要有两点27,一是应用服务器运行数据负荷较轻,二是数据的储存管理功能较为透明。但C/S架构的劣势是需要高昂的维护成本且投资大。B/S架构软件的优势主要也是两点,一是维护和升级方式简单,二是成本降低,选择更多。但是,和C/S相反,B/S的劣势在于应用服务器运行数据负荷较重。此外,它们的区别还在于,C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。B/S 建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行28。 博客系统的开发平台主要有MyEclipse,Netbean,ASP.NET三种29。MyEclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台,主要由Eclipse Platform、JDT、CDT和PDE组成。NetBeans是一个全功能的开放源码Java IDE,可支持Java 2平台标准版J2SE应用的创建、采用JSP和Servlet的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上30。 除此以外,主流开源博客系统颇青睐于SQL Server、Oracle、Access及MySQL为主的数据库,其他辅助工具则有Dreamweaver31,CSS32,CKEditor等33。1.1.3 意义 博客具有知识过滤与积累的作用,还是一种深度交流沟通的网络新方式。基于博客的众多功能特点,在计算机网络高速发展的当代,认识网络的新事物,学习网络的新知识,深入了解博客,是非常有必要的。博客系统作为博客的承载体,其设计与实现也具有重要的意义。博客系统的功能、安装与使用、运行,博客系统的支持平台技术、数据库连接等等,都影响着博客的质量及博客发表的便捷性。综合开发语言、技术与平台搭配的效果来看,JSP技术功能较为强大,基于JSP的博客系统开发较有发展前景并且功能更为完善,但是目前各种主流开源博客系统却偏爱于PHP技术方面的开发研究,JSP技术使用并不多。因此,采用JSP技术完成个人博客系统的设计与实现是值得挑战的事情。因此,毕业系统设计最终决定应用JSP技术,搭建“MyEclipse + Dreamweaver”开发平台和“JavaBean+Servlet”的开发技术结构,使用“MySQL+Navicat”数据库工具,并应用CSS进行系统美化,采用CKEditor进行博客系统的文章编辑。 1.2 课题的研究内容 课题的主要内容是基于JSP的个人博客系统的设计与实现。系统的前台用户操作模块实现用户查看博客文章、查看评论、评论文章等操作,而后台博主操作模块则是博主登陆、解决用户文章管理、文章类别管理等功能问题。 1.3 课题的研究方法 (1)文献研究法,即通过调查文献来获得资料,从而全面地、正确地了解掌握所要研究问题。在文献研究过程中,将会大量阅读与博客知识与博客系统开发技术相关的文献资料,了解国内外相关研究成果,在通过对文献的分析、归纳和综合,在现有研究成果的基础上形成本系统的相关理论和功能结构,并借助计算机进行信息的搜集、整理和加工,形成对论文设计有用的信息。 (2)理论与实际应用相结合的方法,分析系统的用户需求,在对各种系统开发平台、开发技术、开发环境、数据库技术等各方面的比较下,选择相对较佳方案. (3)利用UML建模方法进行分析建模以及设计建模,并进行实际操作调试,从而实现本系统的具体功能。 (4)系统分析与逻辑辩证分析相结合的方法。系统分析方法是用系统的观念来研究和处理有关对象和联系的科学方法;逻辑辨证分析法是按照事物自身的发展规律,运用判断推理的方法揭示事物内在规律及概念与概念之间联系的一种复合的科学分析方法。2 系统分析 2.1 需求分析 系统分析的任务是在文献资料阅读的基础上,通过对现行管理业务的分析,提出系统的目标要求和功能分析的总体逻辑模型。2.1.1 需求定义 (1)功能需求:系统是一个基于JSP与数据库技术的个人博客,前台用户操作模块完成用户查看博客文章、查看评论、评论文章以及博主登录等操作,而后台博主操作模块解决用户文章管理、文章类别管理、分类管理等功能问题。 (2)性能需求:安全性,即通过设置权限,防止博主数据遭篡改;正确性,即数据的操作和读取应该正确,不会出现连接错误。 (3)开发环境需求:应用JSP技术,搭建“My Eclipse + Dreamweaver”开发平台和“JavaBean+Servlet”的开发技术结构,使用“MySQL+Navicat”数据库工具,并应用CSS进行系统美化,采用CKEditor进行博客系统的文章编辑。2.1.2 数据流程图 根据系统调查阶段的数据资料,并依据博客用户的要求,确定系统的数据流程图如下图: 图2?1 数据流程图2.1.3 数据字典 数据字典是对描述数据流程图中的数据项、数据流、数据存储、加工处理逻辑等组成部分的严格定义,下面是本系统的数据字典(由于篇幅原因,在此仅给出部分)。 (1)数据项的定义 数据项编号:1-01 数据项名称:文章编号 别 名:无 简述:某篇文章的编号 类 型:字符型 长 度:11字节 数据项编号:1-02 数据项名称:文章类型编号 别 名:无 简述:某种文章类型的编号 类 型:字符型 长 度:6字节 数据项编号:1-03 数据项名称:文章题目 别 名:题目 简述:某篇文章的题目 类 型:字符型 长 度:255字节 数据项编号:1-04 数据项名称:文章正文 别 名:正文 简述:文章的正文内容 类 型:字符型 长 度:不限 数据项编号:1-05 数据项名称:发表时间 别 名:无 简述:发表文章的时间 类 型:时间日期型 长 度:18 (2)数据流的定义 数据流名称:文章 编 号:F1 简 述:博主发表的文章 数据流来源:博主 数据流去向:文章信息表 数据流组成:文章编号+文章题目+文章正文+发表时间 数据流名称:留言 编 号:F3 简 述:访客发表的留言 数据流来源:访客 数据流去向:留言信息表 数据流组成:留言编号+留言内容+留言时间+访客名称 (3) 数据存储的定义 数据存储的名称:文章信息表 数据存储编号:D1 简 述:存放博主发表的文章 数据存储组成:文章编号+文章题目+文章正文+发表时间 关键字: 文章编号 数据存储的名称:留言信息表 数据存储编号:D3 简 述: 访客的留言 数据存储组成:留言编号+留言内容+访客名称 关键字: 留言编号 数据存储的名称:博主信息表 数据存储编号:D4 简 述:存放博主的个人资料 数据存储组成:博主的所有个人资料 关键字: 博主姓名 数据存储的名称:文章类别表 数据存储编号:D5 简 述:存放文章类别 数据存储组成:文章类别编号+文章类别名称 关键字: 类别编号 数据存储的名称:评论信息表 数据存储编号:D6 简 述:存放文章评论信息和照片评论信息 数据存储组成:评论类型+评论编号+评论信息+访客名称+评论时间 关键字:评论类型+评论编号 2.2 开发工具分析2.2.1 JSP概述 毕业系统的实现技术为JSP。JSP具有将内容的生成和显示进行分离,强调可重用的组件,采用标识简化页面开发Web页面,使用JSP标识或者小脚本来生成页面上的动态内容。JSP技术内置脚本语言基于Java编程语言,且所有的JSP页面都被编译成为Java Servlet,“一次编写,各处运行”。 JSP与ASP,PHP均为动态网页开发技术,都提供在6HTML代码中混合某种程序代码、有语言引擎解释执行程序代码的能力。在ASP、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通HTML页面只依赖于Web服务器,而ASP、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP、PHP、JSP三者都是面向服务器的技术,客端浏览器不需要任何附加的软件支持。但JSP代码被编译成Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生,因此采用JSP技术的页面执行速度较快。 从应用范围来看,ASP是动态网页语言,也继承了微软产品的一贯传统,只能执行于微软的服务器产品,IIS和PWS上。在UNIX下也有ChiliSoft的组件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的群组合来扩充,在UNIX的COM实现起来非常困难。 PHP是免费的、开放源代码的、HTML嵌入其中的脚本语言,可在Windows,UNIX,Linux的Web服务器上正常运行,还支持IIS,Apache等一般的Web服务器。用户更换平台时,无需变换PHP代码,可即拿即用。 JSP与PHP几乎都可以执行于所有平台,如Windows NT、Linux、UNIX。在Windows NT下IIS通过一个外加服务器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在Windows NT,UNIX和Linux上,因此JSP有更广泛的执行平台。虽然现在WNT操作系统占了很大的市场份额,但是在服务器方面,UNIX的优势仍然很大,而新崛起的Linux更是来势不小。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。JSP的动态部分用已经在联网、数据库访问、分布式对象等方面拥有广泛的API的Java编写,而PHP需要学习全新的、应用相对广泛的语言。两者相比,JSP拥有极为广泛的工具和服务器提供商的支持。另外,由于PHP本身存在的一些缺点,如PHP缺乏规模支持,缺乏多层结构支持等,使得它不适合应用于大型电子商务站点,而更适合于一些小型的商业站点。 这三种技术相比之下,JSP系统多平台支持,强大的可伸缩性,多样化和功能强大的开发工具支持等强势。JSP应该是未来发展的趋势,尤其是电子商务类的网站,世界上一些大的电子商务解决方案提供商都采用JSP/Servelet。但是, JSP也存在不可忽视的弱势。与ASP一样,Java的一些优势正是它的致命问题所在,正是由于为了跨平台的功能,为了极度的伸缩能力,所以增加了产品的复杂性。此外,Java的运行速度使用class常驻内存来完成的,所以在一些情况下有些“最低性价比”了。2.2.2 MyEclipse概述 根据博客系统开发技术,本系统选择了MyEclipse开发平台。 MyEclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成?Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。 MyEclipse企业级工作平台(MyEclipse Enterprise Workbench)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。2.2.3 Severlet与 Javabean 理论上,JSP并没有提供Servlet不能完成的功能。实际上,JSP文档在后台被自动转换成Servlet。 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。Servlet是使用Java Servlet应用程序设计接口及相关类和方法的Java程序,它在Web服务器上或应用服务器上运行并扩展了该服务器的能力。Java Servlet对于Web服务器就好像Java Applet对于Web浏览器。Applet装入Web浏览器并在Web浏览器内执行,而Servlet则是装入Web服务器并在Web服务器内执行。Java Servlet API定义了Servlet和服务器之间的一个标准接口,这使得Servlet具有跨服务器平台的特性。Servlet通过创建一个框架扩展服务器的能力,采用请求-响应模式提供Web服务。 与传统的CGI公用网关接口和许多其他类似CGI的技术相比,Java Servlet有许多优点。Servlet具有很高的效率;更容易使用;功能更强大;具有更好的可移植性。Java Servlet是JSP技术的基础,大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。 在系统实现中,和单独使用servler相比,JSP与Servlet的配合更为有效。一方面,JSP中HTML的编写与维护更为简单。JSP中可以使用常规的HTML,没有额外的反斜杠,没有额外的双引号,也没有暗含的Java语法。另一方面,它们的结合使得我们能够使用标准的网站开发工具。即使对那些对JSP一无所知的HTML工具,我们也可以使用,因为它们会忽略JSP tags。 相关文献显示,JavaBean+Servlet架构在博客系统实现中有很大的好处。 JavaBean是描述Java的软件组件模型,JavaBean就是一个Java类,是一种Java语言写成的可重用软件组件,它在内部有接口或有与其相关的属性,以便不同人在不同时间开发的bean可以询问和集成。非可视化的JavaBean与JSP结合起来使用,在JSP程序中常用JavaBean来封装事务逻辑(功能实现部分)如数据运算、数据处理、数据库操作等,然后在JSP网页中调用,而JSP文本着重的是网页界面设计,实现了业务逻辑和前台显示部分的分离,这样不仅使JSP网页变得清晰,而且可以节省软件开发时间和降低以后维护的难度,使系统变得健壮和灵活。 JavaBean遵从一定的设计模式,使它们易于和其他开发工具和组件一起使用,它是一种JAVA 语言写成的可重用组件。要编写JavaBean,类必须是具体类和公共类,并且具有无参数的构造器(NON-ARGS CONSTRUCTOR)。JavaBean通过提供符合一致性设计模式的公共访问方法将内部字段暴露称为属性。众所周知,属性名称也符合这种模式,其他JAVA 类可以通过自省机制发现和操作这些JavaBean 属性。 用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。采用JavaBean+Servlet结构来进行开发设计可以灵活处理网页中的数据交换,能够很好的体现MVC的设计思想,将表示层、业务层和数据层分离,并且通过Servlet来控制页面的流向,使得整个系统设计思路比较清晰。2.2.4 MySQL 博客系统使用的网络数据库管理系统是MySQL。 MySQL,是一个快速、多线程、多用户和强壮的SQL数据库服务器。SQL是世界上最流行的标准化的数据库语言。MySQL是具有客户机/服务器体系结构的分布式数据库管理系统,是完全网络化的跨平台关系型数据库系统,是目前运行速度较快的SQL语言数据库。MySQL功能强,使用简便,管理方便,运行速度快,安全可靠性强。由于MySQL是命令行形式的,为了提高开发效率,可以选择了Navicat MySQL辅助管理数据库。Navicat是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何3.21或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户,等等。它不仅对专业开发人员来说是非常尖端的技术,而且对于新手来说也易学易用。 由于MySQL是命令行形式的,为了提高开发效率,在本系统设计中还选择了Navicat MySQL辅助管理数据库。Navicat是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何3.21或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户,等等。它不仅对专业开发人员来说是非常尖端的技术,而且对于新手来说也易学易用。其精心设计的图形用户界面(GUI),Navicat MySQL可以让用户用一种安全简便的方式快速并容易地创建,组织,访问和共享信息。 此外,本博客系统中与数据库有大量的交互操作,为进一步提高数据库操作效率,毕业系统中使用了Dbutils操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 Dbutils的使用大量减少了代码开发量。3 数据库设计 数据库是数据库应用程序的核心。数据库设计是建立一个应用程序最重要的步骤之一。数据库设计一般要在需求分析和数据分析的基础上进行概念设计、逻辑设计和物理设计。 3.1 概念设计 系统中的实体类型有:博主、访客、文章、照片等,这些实体之间的相互关系有: 博主与文章之间存在“发表”联系,是一对多关系; 博主与评论信息表之间存在“回复”联系,是一对多关系; 博主与留言板存在“回复”联系,是一对多关系; 访客与文章之间存在“浏览”联系,是多对多关系; 访客与评论信息表之间存在“评论”联系,是多对多关系; 访客与留言板存在“留言”联系,是多对多关系。 每个实体的属性分别是: 博主(姓名,性别,年龄,学历,其他信息); 访客(访客ID,其他信息); 文章(文章编号,文章题目,文章正文,发表时间); 留言板(留言编号,留言内容,访客名称); 评论信息表评论类型,评论编号,评论信息,访客名称,评论时间;画出个人博客系统的E-R图如图4-1所示。图3-1个人博客管理E-R图 3.2 逻辑设计 依据DBMS的特征,把概念结构转换为相应的逻辑结构,这就是逻辑设计的任务。概念设计中设计的E-R模型独立于DBMS,这里的转换就是把表示概念结构的E-R图转换成关系模型的逻辑结构。将上图转换为规范的关系模式为: 文章信息表(文章编号,文章题目,文章正文,发表时间) 留言信息表(留言编号,留言内容,访客名称 博主信息表(博主ID,昵称,性别,年龄,其他信息) 文章类别表(文章类别编号,文章类别名称) 评论信息表评论类型,评论编号,评论信息,访客名称,评论时间 3.3 物理设计 在系统的数据库设计中,由对具体DBMS特征的分析来确定数据库的物理结构(也称为存储结构),这就是物理设计的目的是。关系数据库的物理设计任务有两个,一是确定所有数据库文件的名称、数据库所含字段的名称、类型与宽度;二是确定各数据库文件需要建立什么索引,在什么字段上建立索引等。 根据系统功能设计要求和模块划分,本站的数据库主要包括文章信息、文章类别、照片信息、文章评论信息、留言信息。数据表结构图如下:表1 tb_article表表2 tb_articleType表表3 tb_master表表4 tb_review表表5 tb_word表4 系统设计 4.1 系统总体结构图 绘制系统结构图的过程,实际上就是对系统功能模块进行分解设计的过程,即合理地将数据流程图转变为所需要的系统结构图。系统结构图将会使读者和用户能直观的了解系统的结构模式,理解系统的各个功能的结构,能很好地方便用户使用和理解整个系统。 个人博客系统结构图如图4-1所示: 图4-1 博客网站功能结构图 4.2 系统功能模块设计 根据需求分析的结果,个人博客系统功能模块主要分为前台用户操作子模块(访客访问博客系统)和后台博主操作子模块。 (1)前台用户操作子模块 前台用户操作子模块所要实现的功能主要是博客系统的访客访问系统从而访问博客、浏览博文、查看评论、评论博客文章、分享博文等操作。 (2)后台博主操作子模块 系统的后台博主操作模块主要实现博主登陆与管理功能。 博主登陆。博主输入正确的用户名与密码后便可对系统进行正常浏览与管理。 文章管理。主要实现发表博文、修改博文、删除博文等功能。 文章类别管理。博主可以对博客文章进行分类,也可以增加、删除文章类别或修改文章类别名称。 评论管理。对于访客评论,博主浏览过后可以对其进行回复、删除操作。 4.3 系统主界面设计 主界面是一个系统的门面,如同公司的形象,特别注重设计和规划。为此,系统设计过程中从以下几个方面对主界面进行了设计考虑: (1)在色彩搭配上,系统选择了较明快的色彩为基调,前台以红色为主,后台以蓝色为主,力求简洁明了。 (2)在字体选用上,大小适当,尽量使用常用字体,适当配用艺术字。 (3)在网页制作上,采用框架式结构,在框架中嵌入子页,将大表化小,图片压缩,尽量减少页面响应时间。 (4)在用户操作上,简化用户操作,删去那些空洞的环节。5 系统实现 5.1 系统前台主页的实现 系统前台的主页通过使用styles.css进行美化和实现,并在各个信息显示区调用Servlet的过程或获取JavaBean的值来完成最终页面的生成。 前台主页的布局与前台主页分别如图5-1,图5-2所示: 图5-1 前台的布局设计图5-2 前台主页 5.2 文章显示模块的实现 在博客系统中,文章显示模块,主要功能是用户查看文章的详细内容,文章显示功能需要显示的信息包括文章标题、发表时间、所属分类、来源、评论等。文章的显示需要先到GetBlogServlet中读取文章内容及评论,然后完成最终的显示。如图5-3所示: 图5-3 文章显示模块图 5.3 系统后台主页的实现 在系统的后台中,博主可以进行发博文、博文管理、分类管理、评论管理、添加分类等操作,每一个操作用一个jsp页面来执行。由于使用了css代码,为了降低代码冗余,系统专门写了一个header.jsp和footer.jsp来提供公用的一部分代码,然后在各个jsp页面中include进来。系统后台布局如图5-4所示。图5-4 后台的布局设计 进入后台之前需要先进行身份验证,如图5-5所示。图5-5 后台的身份验证 输入用户名及密码如admin : admin然后点击“登录”按钮,登录成功后即可见到后台的界面,如图5-6所示。图5-6 后台界面效果图 最终的文章发表界面如图5-7所示图5-7 文章发表界面 5.4 发表文章模块的实现 一个完善的博客系统应该提供一个功能强大的编辑器来实现文章的编辑和发表。因此,系统在博客中添加了强大的HTML编辑器?CKEditor来辅助完成文章编辑。使用CKEditor之前先得对其进行一些配置,包括添加中文字体、工具栏定制等。经过摸索,本人编写了一个配置方案。详细代码见5.5系统详细代码。 5.5 系统详细代码5.5.1 前台主页实现代码% page languagejava contentTypetext/html; charsetUTF-8% page import/.t% page importmyblog.*% page import/.e% page import/.pleDateFormat%!DOCTYPE html PUBLIC -/W3C/DTD XHTML 1.0 Transitional/EN /0.html xmlns/.meta http-equivContent-Type contenttext/html; charsetUTF-8 /X部落格link relstylesheet typetext/css href/Blog/style.css /div idcontainerdiv idbanner a href/Blog/font face雅黑X部落格div idcenterdiv classcontent!- list blog begin -%List list List request.getAttributeblogs;for int i 0; i list.size; i+ Blog blog Blog list.geti;SimpleDateFormat sdf new SimpleDateFormatyyyy-MM-dd HH:mm:ss;Date dt /.sdTime;sdf new SimpleDateFormatyyyy-MM-dd;String date sdf.formatdt;sdf new SimpleDateFormatHH:mm:ss;String time sdf.formatdt;%date%div classentrya i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论