《基于jsp的博客系统.doc》由会员分享,可在线阅读,更多相关《基于jsp的博客系统.doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录1 引言12 概 述12.1 博客的概念22.2 博客的发展现状22.3 Web技术的发展32.4 研究现状32.5 开发技术43 需求分析63.1 系统目标63.2 系统的功能要求73.3 系统的性能需求83.4 系统的数据需求93.5 系统开发工具94 总体设计114.1 系统功能模块图114.2 系统模块功能描述134.3 数据库设计145 主要模块详细设计215.1 博客首页模块215.2 个人博客主页模块305.3 后台管理功能模块356 遇到的难点和解决方法376.1 JAVA环境的配置376.2 图片上传37结 论39致 谢40参考文献411 引言在网络技术逐渐渗入社会生活
2、各个层面的今天,传统的交流方式也面临着变革,而网络博客则是一个很重要的方向。基于Web技术的博客系统可以借助于遍布全球的Internet进行,因此交流既可以是本地进行,也可以是异地进行,大大拓展了沟通与交流的灵活性。博客在现如今这个飞速发展的网络时代已经成为人们不可或缺的一部分,博客,又译为网络博文、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。许多博客专注在特定的课题上提供评论或新闻,其他则被作为比较个人的日记。能够让读者以互动的方式留下意见,是许多博客的重要要素。大部分的博客内容以文字为主。博客是社会媒体网络的一部分
3、。博客是WEBLOG的缩写,是继Email、BBS、ICQ之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,代表着新的生活方式和新的工作方式,更代表着新的学习方式。具体说来,博客(Blogger)这个概念解释为使用特定的软件,在网络上出版、发表和张贴个人文章的人。 一个Blog其实就是一个网页,它通常是由简短且经常更新的帖子所构成,这些张贴的文章都按照年份和日期倒序排列。许多Blogs是个人心中所想之事情的发表,其它Blogs则是一群人基于某个特定主题或共同利益领域的集体创作。 博客秉承了个人网站的自由精神,但是综合了激发创造的新模式,使其更具开放和建设
4、性。它作为一种新表达的方式,它的传播不仅情绪,包括大量的智慧、意见和思想。某种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高的阶段。博客在中国发展很迅速,建立一个专业的博客管理系统已经很重要。2 概 述对个人而言,博客可以调动个人的积极性,充分发挥个人的创造性。从2002年开始,国内博客开始迅猛发展起来,从最初的只有几千个尝鲜者到现在的各式各样的博客,圈子。在这三年的发展过程中,主要呈现出如下几个特点:1) 博客是可以将个人信息完整呈现在互联网上的载体。2) 博客具有“准实名制”趋势,有助于信任机制的建立。本文就此探讨了我国博客发展的几
5、个要素。2.1 博客的概念博客是WEBLOG的缩写,简单来说就是网络日记。它是1997年12月由美国的JornBarger最早提出的,这些年全球博客获得了突飞猛进的发展。据博客搜索Technorati统计,目前全球平均每5.8秒钟诞生一个博客。它是一个新型的个人互联网出版工具,博客使用者可以很方便地用文字、链接、影音、图片建立起个性化的网络世界。博客秉承了个人网站的自由精神,但是综合了激发创造的新模式,使其更具开放和建设性。它作为一种新表达的方式,它的传播不仅情绪,包括大量的智慧、意见和思想。某种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步
6、入更高的阶段。2.2 博客的发展现状2006年11月3日,全球中文博客站点数量达到5230万,博客用户数达到1987万,平均每个博客用户拥有大约2.6个博客,博客站点数和博客用户数均比前一年有一定程度的增长,人均拥有博客数与前一年相比也略有上升。2006年,拥有独立域名的博客站点,在博客站点总数中占约0.43%,这表明,绝大多数的用户将博客服务商作为他们的博客站点首选。而这一年,中国大陆博客服务商(BSP)持续大幅增长,博客服务商数量达到1460家,与去年同期相比增长近55%;大型网络公司如搜狐、百度纷纷推出相应的博客服务,而新兴的博客服务站点如也开始崭露头角。过去一年中,中国博客发展速度整体
7、趋缓,博客用户增长数较之去年有小幅上升,博客服务商之间的市场竞争日趋激烈,与早期提供博客服务的运营商相比,传统门户及大型公司的博客服务已占据市场主导地位。总体而言,2006年中国博客发展呈现5大特点:专业博客如医药类、教育类等增长较快,博客圈成为社区发展新方向;博客服务商(BSP)死亡比例逐渐增高,2005年Top100服务商中,近20%的站点已经关闭或终止服务;博客服务商(BSP)开始逐渐支持手机访问和发贴,发展迅速;综合博客服务商(BSP)增长很快,越来越多的服务商开始提供音频、视频博客等功能;利用博客进行排名作弊的站点越来越多,06年出现爆炸性增长,其中小型博客服务商(BSP)尤为突出。
8、现今,博客网站已经由06年的风风火火变的平淡,通过各种方式融入了我们的生活,成为了我们表现自己的主要方式。它们大部分是由简短而且经常更新的帖子构成,所有文章都是按照年份和日期排列。看上去平淡无奇,毫无可炫耀之处,但它让每个人零成本、零维护地创建自己的网络媒体,每个都可以随时把自己的思想火花和灵感更新到博客站点上。个人博客目前面临的主要问题:由于文化市场监督的不利,势必会造成一些淫秽的内容广泛传播于网路,这就需要文化部门的有力监督。2.3 Web技术的发展1991年,欧洲粒子物理研究所(CERN)的软件工程师Tim Berners-Lee发布了他的万维网(World Wide Web)。从此以后
9、,通过互联网看到的将不仅仅是文字,互联网有了图片,后来又有了音频、动画甚至视频。WWW的成功在于它制定了一套标准的,易于掌握的超文本标记语言HTML、信息资源的统一定位格式URL和超文本传输协议HTTP,用超链接和超媒体把Internet上各种相关数据有机地链接起来,使互联网上的资源实现了共享。你只需要点击鼠标就可以浏览来自世界各地的丰富的、直观的信息,一个不懂电脑的人也可以很快成为Internet 行家。开始的web页面都是静态文本,页面呆板,互动性不强,但是随着技术的发展,很快各种各样的动态网页技术涌现出来,这其中包括CGI、ASP、PHP、Java,脚本语言如:JavaScript, V
10、BScript等等。JavaScript 和 VBScript可以嵌入在HTML中实现一些客户端的动态功能;CGI大大扩展了Web服务的功能,可以实现web服务器与数据库及文件系统、应用程序的通信,动态生成超文本,于是网页活了起来。但CGI的运用需要具有一定的编程能力及算法技巧,而且与HTML要分开编写,维护和编写都比较困难,效率和安全性也不好。 ASP, PHP克服了这些缺点,获得了广泛的应用。Java的出现给Web带来了新的活力。它具有完全的平台无关性,一次编写处处运行,用Java可以编写web页中执行的小程序Applet。它简单、面向对象、安全、健壮、分布式等优点特别适合开发web应用。
11、在美国,JSP+ Servlet+ EJB已经成为电子商务网站的开发标准。2.4 研究现状现今,博客网站已经由06年的风风火火变的平淡,通过各种方式融入了我们的生活,成为了我们表现自己的主要方式。它们大部分是由简短而且经常更新的帖子构成,所有文章都是按照年份和日期排列,有些类似斑竹的日记。看上去平淡无奇,毫无可炫耀之处,但它可以让每个人零成本、零维护地创建自己的网络媒体,每个都可以随时把自己的思想火花和灵感更新到博客站点上。现在的博客网站的主要特点:零机制:博客属于个人所有,是自发建立和非正式的建设。BSP不能对博客发号施令。 零技术:博客不需要作网站的专业知识,可以像发邮件一样简单地实现博客
12、网页的呈现。技术的极度简化,包括架构和申请博客网站、编辑、上传和修改内容等。 零成本:任何一个人都可以像申请免费邮件般免费申请自己的博客网站。不需要注册域名的成本,不需要租用服务器空间的成本,不需要许多软件工具的成本。 零编辑:博客用户就是编辑,即时写作、即时发布、自我检查。这形成了与传统写作截然不同的“体验”,真正实现了作者“零磨损”的开放式写作。 零形式:博客页面的表现形式和文章内容的表现方式十分灵活,没有特定形式。 与个人主页相比较,博客是使用方便的、交互性强。与传统的电子邮件、BBS和ICQ这三种互联网沟通方式相比,博客是一种较严肃的沟通平台。BBS公共匿名性很强,而个人性很弱,因此缺
13、乏约束。电子邮件和ICQ则是多用于个人间的通讯,而博客是个人性和公共性的结合。博客是个人在网上展示自己、与别人沟通交流的综合平台,它的管理比BBS简单的多。2.5 开发技术一些人可能已经对微软的Active Server Pages(ASP)很熟悉了;JSP在多数方面与ASP功能相同但是具有平台无关特性。他们都用来帮助Web内容的开发者们使用相对少的代码创建动态的网页。JSP页面的内置脚本语言基于Java编程语言,而且所有的JSP页面都被编译成为Java Servlet,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性;作为Java平台的一部分,JSP拥有Java编程语言“
14、一次编写,各处运行”的特点。当客户端请求一个JSP网页时,JSP Engine会检查所请求的JSP网页是否已经处于被载入执行的状态,如果没有,它会先读取JSP程序文件,将它换成Servlet程序代码编译载入,然后才执行请求的服务。也是就说,只有当客户端第一次请求JSP网页时,才需要被转换、编译和载入,做到了一次执行,处处执行。JSP的Servlet Class是JSP Engine自动帮我们编译产生的,不像Servlet需要手动编译。2.5.1 JSP的基础Servlet 技术Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应
15、用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求
16、都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet也不是没有缺点,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出Java Server Pages的原因。2.5.2 MVC设计模式MVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制(Controller)。 MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或
17、EJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。1) 视图视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia
18、 Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。2) 模型模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模
19、型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。3) 控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。2.5.3 EL表达式EL 全名为Expression Language,它原本是JSTL1.0为方便存取数据所自定义的语言。JSP 2.0 之后,EL 已经正式纳入成为标准规范之一,因此,只要是支持Servlet 2.4 / JSP2.0 的Container,就都可以在JSP 网页中直接使
20、用EL 了。1) EL 语法结构$expression2) 与.运算符 EL 提供“.”和“ ”两种运算符来存取数据。当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“ ”。例如: $user. My-Name应当改为$userMy-Name ,如果要动态取值时,就可以用“ ”来做,而“.”无法做到动态取值。例如: $sessionScope.userdata中data 是一个变量。3) 变量EL存取变量数据的方法很简单,例如:$username。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它会依序
21、从Page、Request、Session、Application范围查找。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。属性范围在EL中的名称:Page:PageScopeRequest:RequestScopeSession SessionScope Application ApplicationScope3 需求分析3.1 系统目标博客网站系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,开发一个具有开放体系结构的、具有良好人机交互界面的博客网站,为网络用户提供进行在线交流的网络平台。通过博客网站可以结交更
22、多的朋友,表达更多的想法,它随时可以发布文章。具体的要求如下:1) 博主可以简单的添加和删除文章和照片。2) 独立于具体的数据库平台。对于与数据库交互的部分充分考虑兼容性。3) 中间基础平台的无型性。尽量采用开放的标准技术,达到跨平台运行的效果。为了达到以上的开发目的,博客网站应遵循一定的设计和开发与原则:1) 模块接口定义清晰。2) 基础类库和接口设计合理,尽量建立叮扩展的接口和抽象类。3) 数据库操作使用标准SQL语句,如果一定要使用有差别的SQL语句,则尽量集中在一起,以减少将来维护和移植的难度。4) 采用开放的标准和工具等。3.2 系统的功能要求博客系统通常提供六类服务:信息服务,它可
23、分为:文章显示,热点文章推荐,博主风采。查询服务:可以根据博主的信息进行模糊查询。评论服务:登录用户可以对博文进行发表看法意见。好友服务:登录用户可以添加博客系统中的其他用户为好友。相册服务:登录用户可以上传自己的照片,展示自己的风采。管理服务:各个用户可以对自己博客进行管理;系统管理员可以对整个系统进行管理。在此,我参考现有的几大博客网站如QQ空间,新浪博客等,将博客网站划分为两个子系统:前台,后台。下面分析各个子系统的功能需求。3.2.1 前台在前台的功能实现上,可以分为以下几个部分:1) 用户登录:博客用户用个人注册的帐号、密码登录到博客。系统检测用户的帐号、密码并给予其相应的权限对网站
24、进行操作。2) 用户注册:游客进去该博客系统,可以填写注册信息,将个人的信息存储到博客网站的数据库中,成为本博客的正式用户。3) 用户修改个人信息:成功注册后的用户,可以登录到博客系统中,进入存储用户信息的页面,修改自己的信息。方便用户对个人信息进行更新。4) 博文查看:游客、登录用户可以任意查看博主的文章,也可使用查询功能。5) 博文管理:登录用户可以发表博文、修改博文,与好友分享喜怒哀乐。6) 好友管理:登录用户可以进去所有好友页面,对其他用户进行模糊查询,并加其为自己的好友。添加为好友后,可以在博客中查看到好友的博文信息。7) 上传照片:登录用户可以创建自己的相册,并往相册中上传自己的近
25、照。游客、其他登录用户进入该博客时可以查看。3.2.2 后台通过计算机网络将前台与后台的数据库相连,网站管理员将从前台得到的信息进行处理,实现对系统的管理。返回首页:点击“返回首页”即可返回博客首页。博客信息管理:管理员可以该博主的权限进行修改。博客模板管理:管理员可以增加、修改和删除博客模板。博客博文管理:管理员可以停止显示或者删除非法博文。博文回复管理:管理员可以停止显示或者删除非法回复。回复举报管理:管理员可以查看、忽略、删除回复举报信息。博客相册管理:管理员可以查看、删除相册。点击查看,可以查看该相册中的所有照片。3.3 系统的性能需求博客网站的特性要求博客网站系统需要具备以下几个主要
26、特性:1) 多样性: 博客网站在设计时必须遵循的一个重要原则,就是以用户为系统设计的中心。具体来说,应用系统应能实现用户特定的需求,操作界面友好、方便,功能设置符合用户的习惯和要求。2) 易维护:随着博客网站信息的变更或增加、数据规模的增大,系统升级、维护应易于操作;各子系统、功能模块的设计应具有良好的灵活性,保证在博客网站系统建设过程中后期系统功能的实现不影响前期已投入使用的系统功能。3) 安全性:系统应充分考虑信息、设备、运行和管理的安全性,建立完善的多层次的安全保障体系,保证用户的个人信息等资料的数据安全。4) 可扩展: 博客网站的用户从事着各种行业,他们的需求各不相同,系统在设计时应充
27、分考虑到用户需求不断变化的需要,降低系统在扩展新的业务功能时的复杂度。3.4 系统的数据需求系统的数据需求包括如下几点:1) 数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是用户的手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对用户操作进行实时的跟踪和错误提示。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。2) 数据的一致性与完整性由于网站的数据是共享的,所以如何保证这些数据的一致性,是网站必须解决的问题。要解决这一问题,要有一定的人员维护数
28、据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,网站应该拒绝该数据。3) 数据的共享与独立性整个博客网站的数据是共享的。然而,从网站开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。3.5 系统开发工具3.5.1 MyEclipse+ DreamweaverMyEclipse企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是对Ecl
29、ipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、Javascript、Spring、SQL、Hibernate。在结构上,MyEclipse的特征可以被分为7类:JavaEE模型 、WEB开发工具 、EJB开发工具、应用程序服务器的连接器、JavaEE项目部署服务、数据库服务、MyEclipse整合帮助。简单而言,MyEclipse是Eclipse的插件。Dreamweaver是一款专业的 HTML
30、 编辑器,用于对 Web站点、Web页和 Web应用程序进行设计、编码和开发。无论您喜欢直接编写HTML代码的驾驭感还是偏爱在可视化编辑环境中工作,Dreamweaver 都会为您提供帮助良多的工具,丰富您的Web创作体验。利用 Dreamweaver中的可视化编辑功能,您可以快速地创建页面而无需编写任何代码。不过,如果您更喜欢用手工直接编码,Dreamweaver还包括许多与编码相关的工具和功能。并且,借助Dreamweaver,您还可以使用服务器语言(例如 ASP、ASP.NET、ColdFusion 标记语言 (CFML)、JSP 和 PHP)生成支持动态数据库的 Web 应用程序。3.
31、5.2 数据库MySQLMySQL是一个小型关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的特性如下:1) 使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植。2) 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。3) 为多种编程语言提
32、供了API。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。 4) 支持多线程,充分利用CPU资源。 5) 优化的SQL查询算法,有效地提高查询速度。 6) 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。4 总体设计4.1 系统功能模块图该博客系统主要由博客首页模块、个人博客主页模块和后台管理模块组成。其只要功能结构图如图4.1所示:个人博客主页博客系统博客首页后台管理图4.1 博
33、客系统功能结构图4.1.1 博客首页功能结构图博客首页模块主要用于有查询博客、查询博文、显示博客列表、显示精彩博文列表、用户注册、登录以及关于我们等功能。其中,博客首页的查询功能主要采用模糊检索的方式,根据用户的选择和输入来检索结果。博文列表以用户发表博文的日期降序排列,将用户的博文信息以列表形式显示。博客列表以用户发表博文的日期降序排列显示,将用户的博客信息以列表形式显示。首页的设计具体功能如下,如图4.2所示:关于我们博客列表博客首页查询功能博文列表登录注册图4.2 博客系统(博客首页)功能结构图4.1.2 个人博客主页功能结构图登陆成功后,可点击右上角链接进入自己的个人博客主页,个人博客
34、主页的主要功能有:博文管理,相册管理,友情博客管理,查看回复,查看好友动态,个人信息管理等功能,在浏览别人博文的情况下,还可以对其博文进行评论。其中,博文管理包括查看最新博文、发表博文、修改博文功能;相册管理包括新建相册、修改相册名称、删除相册、上传照片、修改照片描述、删除照片功能;友情博客管理包括添加好友、删除好友和查询好友功能;个人信息管理包括修改博客信息和修改登录密码等功能。其具体功能图如图4.3所示:相册管理精彩博文博客首页博主信息好友动态友情博客退出系统发表博文最新回复添加好友删除好友查找好友查看博文编辑博文删除博文查看博主编辑博主个人博客主页创建相册修改相册删除相册上传照片修改照片
35、删除照片图4.3 博客系统(个人博客主页)功能结构图4.1.3 后台管理功能结构图用户登录后,系统检查登陆信息是否为管理员,若为管理员则在导航栏显示“管理员入口”链接,点击可进入后台管理界面,后台管理界面主要用于博客管理员系统地管理各个用户,若发现系统中某个用户有不和谐的言论与行为,可及时对文章、评论、举报等作出响应,以维护整个系统正常和谐的运行。后台管理的主要功能有:博客管理、博文管理、回复管理、举报管理、相册管理。其中对不同管理员附有不同的权限,对于权限为“1”的管理员,即超级管理员,他有改变其他用户权限的功能,而对于权限为“3”的用户,即普通管理员来说,他对其他用户的博客信息没有改变的权
36、限,其他功能同超级管理员一致。其具体功能图如图4.4所示:修改博客举报管理类别管理博客管理回复管理博文管理删除博客修改类别删除类别忽略举报删除举报查看回复删除回复查看博文查看举报后台管理删除博文相册管理查看照片删除相册图4.4博客系统(后台管理)功能结构图4.2 系统模块功能描述4.2.1 系统管理员系统管理员负责整个博客的日常运行和维护,博客系统给管理员提供的主要功能有: 返回首页:点击“返回首页”即可返回博客首页。博客信息管理:管理员可以该博主的权限进行修改。博客模板管理:管理员可以增加、修改和删除博客模板。博客博文管理:管理员可以停止显示或者删除非法博文。博文回复管理:管理员可以停止显示
37、或者删除非法回复。回复举报管理:管理员可以查看、忽略、删除回复举报信息。博客相册管理:管理员可以查看、删除相册。点击查看,可以查看该相册中的所有照片。4.2.2 使用者使用者可以管理自己的博客,博客系统给他们提供了以下主要功能:博客注册:在博客主页中输入个人注册信息,并完成注册,注册成功后,能够进入个人博客主页,进行博客管理。博客登录:当用户输入用户名和密码后,能够进入到个人博客主页。管理博文:用户在个人博客可以发表新博文、修改博文或者删除博文。管理评论:用户在个人博客可以修改评论或者删除评论。友情博客管理:用户可以增加、修改或者删除友情博客。博客注册信息修改:用户可以修改博客的标题、简介,及
38、其它信息。博客登录密码修改:用户可以修改博客的登录密码,保障信息安全。查看最新回复:用户可以查看收到的最新博文回复以及历史回复。浏览博文及评论:用户可以查看具体每篇博文的详细内容,以及对该博文的所有评论。查看博客统计信息:用户可以查看博客的注册时间、博文数、评论数等统计信息。发表评论:用户可以对感兴趣的博文进行评论。举报:用户可以对其他用户的非法回复进行举报,交由管理员处理。管理相册:用户可以在自己的博客创建相册,修改相册信息,以及删除相册。管理照片:用户可以进入某个相册,为该相册上传照片,修改照片描述,以及删除照片。4.2.3 浏览者通过局域网,任何人通过局域网都可以访问该博客系统,我们把他
39、们通称为浏览者,系统给浏览者提供了以下功能:浏览博客:浏览者访问该博客主页,通过该主页提供的各种导航连接,能浏览到每用户的博客,然后在个人博客中查看具体博文内容。浏览博文及评论:浏览者可以查看具体每篇博文的详细内容,以及对该博文的所有评论。浏览相册及照片:浏览者可以查看用户的相册信息,并可以查看每个相册中的照片。查看博客统计信息:查看博客的注册时间、博文数、评论数等统计信息。4.3 数据库设计一个设计良好的数据库,可以使系统的实现变得非常的简单。同时,也可以使系统的执行速度变得很快。反之,一个设计混乱的数据库,不仅增加了吸引的管理实现过程,同时在系统的执行过程中,使得检索变得很慢,降低效率。所
40、以数据库的设计是一个系统设计很重要的步骤。 4.3.1 数据表设计的E-R图E-R图也即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。实体型(Entity):具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;属性(Attribute):实体所具有的某一特性,一个实体可由若干个属性来刻画。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;联系(Relationship):联系也称关系,信息世界中反映实体内部或实体之间的
41、联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。本系统属于小型的博客管理系统,根据前面的需要分析及总体设计。博客系统实体间关系E-R图,如图4.5所示:管理员管理员管理员管理员N管理博客博客管理员MNM博文回复1NN1相册照片N1N上传照片1友情博客N1加好友图4.5博客系统实体间关系E-R图4.3.2 数据表相关信息实体图博客类别表实体图如图4.6所示:类别ID类别博客类别图4.6博客类别表实体图博客信息表实体图如图4.7所示:用户名申请时间登录密码性 别博客ID用户头像博客名博客描述权 限博客信息图4.7博客信息表实体图博文表实体图如图4
42、.8所示:博文名博客ID修改时间博文ID类别ID博文内容发表时间博文信息图4.8博文表实体图博文回复表实体图如图4.9所示:发表时间回复名博客ID修改时间回复ID类别ID回复内容博文回复是否查看标记图4.9博文回复表实体图友情博客表实体图如图4.10所示:博主ID友情博客ID友情博客图4.10友情博客表实体图举报表实体图如图4.11所示:博文回复ID举报信息图4.11举报类别表实体图相册表实体图如图4.12所示:相册名用户ID相册ID创建日期博文信息图4.13相册类别表实体图照片表实体图如图4.14所示:照片ID上传日期照片描述相册ID照片博文回复图4.14照片表实体图4.3.3 主要数据表的
43、结构本系统的数据库一共涉及到8张表,分别为博客信息表、博文类别表、博文表、博文回复表、友情博客表、回复举报表、相册表和照片表,其中各表的结构如下:1) 名称:博客信息表表名称标识:tb_blog表的作用:用于保存用户及博客的详细信息,用户名、密码等。博客信息表,如表4.1所示:表4.1 博客信息表字段名数据类型长度主键否描述uIdint11主键(自增)博客IDuNamevarchar20否用户名uNickNamevarchar50否博客名discribevarchar1000否博客描述uPassvarchar20否登录密码headvarchar100否用户头像regTimedatetime否博
44、客申请时间gendersmallint6否性别quanXianint11否权限(默认值为5)2) 名称:博文类别表表名称标识:tb_board表的作用:用于保存博客博文的类别信息。博客类别表,如表4.2所示:表4.2博文类别表字段名数据类型长度主键否描述boardIDint11主键(自增)类别IDboardNamevarchar50否类别3) 名称:博文表表名称标识:tb_diary表的作用:用于保存博文的详细信息,博文名称、博文内容等。博文表,如表4.3所示:表4.3 博文表字段名数据类型长度主键否描述topicIDint11主键(自增)博文IDtitlevarchar50否博文名称cont
45、entvarchar1000否博文内容publishTimedatetime否发表时间modifyTimedatetime否修改时间uIdvarchar10否用户IDboardIdfloat8否博文类别ID4) 名称:博文回复表表名称标识:tb_reply表的作用:用于保存博文回复列表的信息。博文回复表,如表4.4所示:表4.4 博文回复表字段名数据类型长度主键否描述replyIDint11主键(自增)回复IDtitlevarchar50否回复名称contentvarchar1000否回复内容publishTimedatetime否回复时间modifyTimedatetime否修改时间uIdint11否用户IDtopicIdint11否博文IDflagint1否是否查看标记5) 名称:友情博客表表名称标识:tb_friend表的作用:用于保存友情博客关系信息。友情博客表,如表4.5所示:表4.5友情博客表字段名数据类型长度主键否描述HostIdint11否博主IDFriendIdint11否友情博客ID6) 名称:举报表表名称标识:tb_accuse表的作用:用于保存非法回复进行举报信息。