个人 BLOG 系统分析
1. 概 述
对个人而言,博客可以调动个人的积极性,充分发挥个人的创造性。从 2002 年开始,
国内博客开始迅猛发展起来,从最初的只有几千个尝鲜者到现在的各式各样的博客,圈子。
在这三年的发展过程中,主要呈现出如下几个特点:1.博客是可以将个人信息完整呈现在
互联网上的载体。2.博客具有“准实名制”趋势,有助于信任机制的建立。本文就此探讨
了我国博客发展的几个要素。
1.1 个人 BLOG 的概念
BLOG 是 WEB LOG 的缩写,简单来说就是网络日记。它是 1997 年 12 月由美国的
Jorn Barger 最早提出的,这些年全球博客获得了突飞猛进的发展。据博客搜索 Technorati
统计,目前全球平均每 5.8 秒钟诞生一个博客。它是一个新型的个人互联网出版工具,博
客使用者可以很方便地用文字、链接、影音、图片建立起个性化的网络世界。
在 Internet 飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,
它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在 Internet 应用
上的地位显而易见,倍受人们的重视。为了树立个人在网络上的形象,通过设计一个个人
博客网站,以达到个人推荐、展现自我的一个平台,个人博客网站为交流提供综合的网络
环境,同时也为个人的宣传,发展,提供了一个平台。
博客秉承了个人网站的自由精神,但是综合了激发创造的新模式,使其更具开放和建
设性。它作为一种新表达的方式,它的传播不仅情绪,包括大量的智慧、意见和思想。某
种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,
标志着互联网发展开始步入更高的阶段。
1.2 个人 BLOG 具有的特点和主要功能
实现一个博客网站,通常是由简短而且经常更新的帖子构成,所有文章都是按照年份
和日期排列,有些类似斑竹的日记。看上去平淡无奇,毫无可炫耀之处,但它可以让每个
人零成本、零维护地创建自己的网络媒体,每个都可以随时把自己的思想火花和灵感更新
到博客站点上。
零机制:博客属于个人所有,是自发建立和非正式的建设。BSP 不能对博客发号施令。
零技术:博客不需要作网站的专业知识,可以像发邮件一样简单地实现博客网页的呈现。
技术的极度简化,包括架构和申请博客网站、编辑、上传和修改内容等。
零成本:任何一个人都可以像申请免费邮件般免费申请自己的博客网站。不需要注册域名
的成本,不需要租用服务器空间的成本,不需要许多软件工具的成本。
零形式:博客页面的表现形式和文章内容的表现方式十分灵活,没有特定形式。
1
与个人主页相比较,博客是使用方便的、交互性强。与传统的电子邮件、BBS 和 ICQ 这三
种互联网沟通方式相比,博客是一种较严肃的沟通平台。BBS 公共匿名性很强,而个人性
很弱,因此缺乏约束。电子邮件和 ICQ 则是多用于个人间的通讯,而博客是个人性和公共
性的结合。博客是个人在网上展示自己、与别人沟通交流的综合平台,它的管理比 BBS 简
单的多。
2. 需求分析
信息时代的今天,网络已经成为人们工作、学习的一部分,不断充实和改变着人们的
生活。在网络中,构建一个个个性化的博客,可以充分地表达自己的思想,通过发布文章
展示个人才能,舒服个人情感;网友则可以根据主题发表个人的意见,表达自己的想法,
与博主进行思想交流,乐在其中。
2.1 可行性研究
2.1.1 经济可行性
博客通过“我的文章”和“相册上传”等功能模块,吸引更多的浏览者,增加网站的
访问量,提升网站的影响力;不断更新网站信息内容,使网站信心更加多元化,适合不同
的访问群体;通过网站展现个人魅力,愉悦身心;通过与来访者的交流,不断积累经验,
吸收新的知识,使网站始终充满新鲜活力。
2.1.2 技术可行性
本系统主要应用 Servlet 技术开发。Servlet 技术带给程序员最大的帮助是它可以处理客
户端传来的 HTTP 请求,并返回一个响应。Servlet 是一个 Java 类,Java 语言能够实现的功
能,Servlet 基本上都可以实现(图形界面以外)。总的来说,Servlet 技术具有以下特点。
(1)高效
在服务器上仅有一个 Java 虚拟机在运行,它的优势在于当多个来自客户端的请求进行
访问时,Servlet 为每个请求分配一个线程而不是进程。
(2)方便
Servlet 提供了大的实用工具例程,例如处理很难完成的 HTML 表单数据、读取和设置
HTTP 头、处理 Cookie 和跟踪会话功能。
(3)跨平台
Servlet 时用 Java 类编写的,它可以在不通过的操作系统平台和不同的应用服务器平台
下运行。
(4)功能强大
2
在 Servlet 中,许多使用传统 CGI 程序很难完成的任务都可以用 Servlet 技术轻松完成。
例如,Servlet 能够直接和 Web 服务器交互,而普通的 CGI 程序则不能,Servlet 还能够在各
个程序之间共享数据,使得数据库连接池之类的的功能很容易实现。
(5)灵活性和可扩展性
采用 Servlet 开放的 Web 应用程序,由于 Java 类的继承性、构造函数等特点,使得应
用灵活,可随意扩展。
(6)共享数据
Servlet 之间可通过共享数据很容易的实现数据库连接池。它能方便的实现管理用户的
请求,简化 Session 和获取前一页面信息的操作,而在 CGI 之间通信则很差。由于每个 CGI
程序的调用都开始一个新的进程,调用间通信要通过文件进行,因而相当缓慢。同一台服
务器上的不同 CGI 程序之间的通信业相当麻烦。
(7)安全
有些 CGI 版本存在明显的安全弱点,即使是使用最新的标准和 PERL 等语言,系统也没
有基本安装框架。而 Java 定义有完整的安全机制,包括 SSL\CA 认证、安全政策等规范。
3. 系统设计
3.1 系统目标
本系统主要实现网站建设者与访问者之间的交流,展现网站建设者的思想。主要实现
如下目标:
全面展示博客网站的主题思想
通过发表“我的文章”,表达作者的想法和观点,实现与访问者的相互交流。
通过上传个人相册,使访问者对网站建设者有进一步的了解。
用户可以查看文章,并可以对文章发表意见。
展现最新的的博客列表,方便访问浏览。
提供网站统计信息,使访问者了解网站的基本信息。
对文章信息进行管理。通过选择文章类别名称添加文正内容,并可以查询、修改和删
除文章内容。
对相册信息进行管理。通过选择相册类别名称上传相册图片信息,并可以查看和删除
相册内容。
可以修改管理员登陆信息。
3.2 系统功能结构
3
博客网站分为前台和后台。其中,根据博客前台的特点,可以将其分为博主信息、网
络日历、文章查询、公告查询及相册查询等 13 部分,其中各个部分及其包括的具体功能模
块如图 3.1 所示。
博客网前台
网
络
日
历
邮
箱
联
系
查
看
博
主
信
息
查
看
网
站
说
明
文章查询
公告查询
文章详细
查询
文章留言
公告详细
查询
图 3.1 博客网前台功能结构
朋
友
查
询
友
情
链
接
相
册
查
询
用
户
投
票
根据博客网站后台的特点,可以将其分为用户设置、公告管理、个人相册管理、博客
文章管理、投票管理、朋友信息管理及博主信息修改 7 部分,其中各个部分及其包括的具
体功能模块如图 3.2 所示。
博客网后
公告管理
个人相册管
博客文章管
投票管理
朋友信息管
用
户
设
置
公
告
添
加
公
告
设
置
相
册
添
加
相
册
设
置
文
章
分
类
设
置
内
容
添
加
投
票
内
容
设
置
朋
友
信
息
添
加
朋
友
信
息
设
置
博
主
信
息
修
改
发
表
博
客
文
章
博
客
文
章
设
置
图 3.2 博客网站后台功能结构
3.3 系统流程图
4
为了更加清晰的表达系统的业务功能模块,下面给出博客网的系统流程图。对于不同
的角色,其所承担的任务也各自不同,流程图也不一样,包括面向用户的客户端流程图和
面向系统管理员的的流程图。面向用户的客户端流程图如图 3.3 所示。
开
始
用户登
用户登
录判断
博客网站
首页
用户注
相册查
看
邮件联
系
博客说明查
看
朋友查看
博主信息查看
投票
投票结果查看
公告信息查看
公告信息详细
查看
文章
分类
文章
查看
文章
详细
文章
回复
面向系统管理员的流程图如图 3.4 所示。
图 3.3 面向用户的客户端流程图
5
开
始
用户登录
用户登录判断
(是否为系统
管理员)
博客网前台页
面
博客网后台页
面
博客文章管理
个人相册管理
朋友信息管理
公告管
理
投票管
理
用户管
理
博主个人信息修改
图 3.4 面向系统管理员的流程图
3.4 开发环境
在开发博客网系统时,需要具备下面的软件环境。
服务器端:
操作系统:Windows xp
Web 服务器:Tomcat 6.0
Java 开发包:JDK 1.5 以上
数据库:SQL Server2000
浏览器:IE6.0
分辨率:最佳效果为 1024*768 像素
客户端:
浏览器:IE6.0
分辨率:最佳效果为 1024*768 像素
6
4 数据库设计
4.1 数据库需求设计
创建博客数据库的第一步是制定实施计划,该计划可以在实现数据库时做向导,也可
以在数据库实现完成后,用做数据库的功能说明。数据库设计的复杂性和细节由数据库的
应用程序的复杂性、大小及用户使用情况确定。这里介绍的博客数据库是一个相对简单的
数据库,尽管如此,数据库设计还是需要经过如图 4.1 所示的基本步骤。
采集信
息
表示对
象
创建对象实体
表示对象之间的关
系
表示每个对象的信息类
型
图 4.1 数据库设计的基本步骤
下面详细介绍将数据库设计的基本步骤。
4.1.1 采集信息
在创建博客数据库之前,必须对博客信息有一个透彻的理解。与博客网中所涉及的每
个人进行交流,以找出他们所作的工作及他们需要从数据库中获得的内容,这是很重要的。
另外,了解该博客系统是否符合实际要求及找出相关系统的问题、限制和屏蔽也很重要。
4.1.2 表示对象
在采集信息的过程中,必须标识将由博客数据库管理的主要对象或实体。对象可以是
一个有形的实体(如用户),也可以是一个无形的项目(文章、相册等)。通常会有几个
主要对象,在标识了这些对象之后,相关的项目就会变得清晰。数据库中每个不同的项目
都应有一个对应的表。
4.1.3 建立对象实体
标识了博客系统中的对象后,使用该博客系统的一种直观表示方式对这些对象进行记
录是很重要的。在数据库实现期间,可以使用数据库实体作为参考。
4.1.4 标识每个对象的信息类型
标识必须为各对象存储的信息类型,这些信息是对象的表中的列(实际上就是数据表
字段的类型)。
7
4.1.5 标识对象之间的关系
关系数据库的一个优势是它具有联系或关联数据库中各种项目有关信息的能力。可以
单独地存储独立的信息类型,但数据库可以在必要时组合数据。在设计过程中,表示对象
间的关系需要查看各种表,以确定它们逻辑相关的方式及添加管系列以建立表与另一个表
间的关系。
4.2 数据库概念的设计
根据以上对系统所作的需求分析和系统设计,规划出本系统中使用的数据库实体信息
分别为用户信息实体、公告信息实体、个人相册信息实体、朋友信息实体、投票信息实体、
博客文章信息实体及文章回复实体。下面将介绍几个关键实体的 E-R 图。
用户信息实体
用户信息实体包括用户名、密码、姓名、性别、QQ 号码、主页、兴趣、E-mail 地址、
管理级别属性,用户信息实体的 E-R 图如图所示。
用户名
密码
姓名
管理级别
用户
性别
E-mail 地址
QQ 号码
主页
兴趣
个人相册信息实体
图 4.2 用户信息实体属性 E-R 图
个人小相册信息实体包括相册存放服务器端地址、相册描述信息及相册上传时间属性,
个人相册信息实体的 E-R 图如图所示。
8