1 引言
“博客”(Blog 或 Weblog)一词源于“Web Log(网络日志)”的缩写,是
一种十分简易的傻瓜化个人信息发布方式。任何人都可以像使用免费电子邮件一
样,完成个人网页的创建、发布和更新。博客就是开放的私人空间,可以充分利
用超文本链接、网络互动、动态更新等特点,在网络中,精选并链接全球互联网
中最有价值的信息、知识与资源;也可以将个人工作过程、生活故事、思想历程、
闪现的灵感等及时记录和发布,发挥个人无限的表达力;更可以以文会友,结识
和汇聚朋友,进行深度交流沟通[1]。
“博客”当然是个大家都陌生的名词,博客的英文名词就是“Blog 或 Weblog”
(指人时对应于 Blogger),是一个典型的网络新事物,查阅最新的英文词典也
不可能查到。该词来源于“Web Log(网络日志)”的缩写,特指一种特别的网络
个人出版形式,内容按照时间顺序排列,并且不断更新。
博客是一种零编辑、零技术、零成本、零形式的网上个人出版方式。
博客概念一般包含了三个要素(当然,也不需要局限这些定义):
a)网页主体内容由不断更新的、个性化的众多日志组成。
b)按时间顺序排列,而且是倒序方式,也就是最新的放在最上面,最旧的
放在最下面。
c)内容可以是各种主题、各种外观布局和各种写作风格,但是文章内容以
“超链接”作为重要的表达方式。
因此,博客是个人性和公共性的结合体,其精髓不是主要表达个人思想,不
是主要记录个人日常经历;而是以个人的视角,以整个互联网为视野,精选和记
录自己在互联网上看到的精彩内容,为他人提供帮助,使其具有更高的共享价值。
博客精神的核心并不是自娱自乐,甚至不是个人表达自由,相反,是体现一
种利他的共享精神,为他人提供帮助。个人日记和个人网站主要表现的还是“小
我”,而博客表现的是“大我”。也许形式上很接近,但内在有着本质的差异。所
有优秀博客网站中,真正表达作者个人的内容非常有限,最多只是点缀,而不像
个人网站那样是核心。
1.1 系统开发的背景
博客的精神是:自由表达,开放宽容,个性张扬,专业精神。
在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信
软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让
人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的
博客上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考
只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有
了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释
放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,
甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成
观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样
就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己
的每一天上留下了一道浅浅的思考和划痕。
不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的:
a)记录生活,在自己的每一天上留下思考的划痕。
b)整理思路,固化知识,获得更多更好的想法。
c)分享,将自己的想法、经验与人分享。
d)交流、提高,通过交流产生更多的思维火花,相互提高。
e)交友,互相鼓励,一路同行。
如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有价
值的真实的一面展示在网络世界中,相互交流沟通; 如果博客仅仅为了写日志,
那么博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,
可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享[2]。
1.2 国内外现状
据不完全统计,到今天,全世界博客总量已超过一亿.其中中国的博客达到
1600 万。博客数量大约 6 个月翻一番,2006 年 4 月份每天新增博客 7 万 5 千人。
每天发贴 120 万篇,平均一小时 5 万贴。博客的影响力,早已超出了他作为个人,
甚至作为自己所在行业的原有范围。开始引起主流媒体的强烈关注。自 2006 年
以后,博客迎来了它的飞速发展时期,作为专业领域的知识传播模式,博客成为了
该领域最具影响力的方式之一,博客的影响力也将超越传统媒体。它将成为一种
全新的信息组织和传播方式,发挥更大的作用。
1.3 博客发展趋势
趋势一:博客现在正在形成个人的信誉机制,有了博客之后就确立了一个个
人虚拟身份,简单的来讲就是个人在互联网上是有名有姓的,而不再是一种匿名
的行为,网民从流浪汉变成了一个定居者。以前在互联网上的各种行为都是在匿
名状态中,相互之间是不认识的,但有了博客之后可以天天关注,而别的人也可
以通过博客找到这个人。这样随着时间的积累就会产生一个新的东西,概括叫做
“个人的信誉”,个人的信誉就是博客和博客之间发展各种关系的组合,这种信
誉对每个人来讲可能是不同的,但对每个博客来讲就产生了新的评价机制,这个
机制将是博客商业化的一个前提条件。
趋势二:博客越来越呈现出富媒体化,早期的博客是以文字为主,但随着多
媒体发展博客相册、博客图片已经成为博客的基本配置,而现在许多博客网站已
经提供了博客音频和博客视频。
趋势三:博客现在正在形成并完善精选机制,博客作为自媒体和个人媒体,
产生的信息非常巨大。其中难免产生信息垃圾,随着博客的发展,博客通过精选
机制精选出大家喜闻乐见的信息,像国内网摘、博客的评价系统等。
1.4 课题研究的意义
随着 Blog 人数的增加,Blog 作为一种新的生活方式、新的工作方式和新的
学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构。它使
交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有
效;个人出版变成人人都可以实现的梦想。Blog 正在影响和改变着我们的生活。
本系统采用 MVC 模式设计实现了一个简单的博客系统。MVC 模式极大地提高
了系统的灵活性、复用性、开发效率、适应性和可维护性,充分发挥了 JSP、
Servlet 等 J2EE 组件的特点[3]。从而,使更多的人们通过文字、图片、声音、视
频、无线等,尽情展示自我、分享感受、参与交流,美好你我生活。Show you, share
me,人人都可以博客,人人都需要博客。
1.5 系统设计目标分析
本系统是用 JSP 实现的一个完全基于浏览器的博客系统,任何注册个人博客
的人都拥有以下功能:
a)登录博客系统的后台管理平台。
b)更改博客账号的基本信息。
c)撰写日志。
d)日志管理。
e)评论管理。
f)留言管理。
博客访问者具有以下功能:
a)浏览博客系统中的日志、留言、评论。
b)发表评论及留言。
c)检索日志。
2 基本技术方案
2.1 JSP 中的各种技术
2.1.1 JSP 概述
JSP 即 Java Server Pages,是由 Sun Microsystem 公司于 1996 年 6 月推出
的新技术,是基于 Java Servlet 以及整个 Java 体系的 Web 开发技术[4]。JSP 已
经成为开发 Web 动态网页重要、快速和有效的工具,是全新的网络服务器编程环
境。JSP 充分利用了 Java 的强大功能,是一种优秀的服务器端技术。随着 Java
技术的日益成熟和流行,JSP 在网络编程中也变得越来越重要。JSP 基于强大的
Java 语言,具有极强的扩展能力,良好的缩收性,以及与平台无关的开发特性,
成为构建动态网站的主流技术之一,JSP 有着其他技术所不具备的优势[3]。其优
势在于:可以将内容的生成和显示进行分离、生成可重用的组件、采用标识简化
页面开发。JSP 能提供所有 Servlet 的功能[5]
2.1.2 Servlet 概述
Servlet 是 Java 编写的服务器端程序,是由服务器端执行和调用的 Java 类。
Servlet 是采用 Java 技术来实现 CGI 功能的一种技术,能够像 CGI 一样动态地
扩展 Web 服务器的功能,并采用请求——响应模式提供 Web 服务。Servlet 和 CGI
一样都是运行在 Web 服务器上,用来生成 Web 页面。Servlet 的主要功能在于交
互式地浏览和修改数据,生成动态 Web 内容。其工作流程图如图 2.1 所示。
Servlet 工作流程:
a)客户端发送请求信息至服务器。
b)服务器将请求信息发送至 Servlet。
c)Servlet 生成响应内容并将其传给 Servlet。响应内容动态生成,通常取
决于客户端的请求。
图 2.1
Servlet 工作流程图
d)服务器将响应信息返回至客户端
2.1.3 JavaBean 概述
JavaBean 是 Sun 公司为了进入因特网、企业网以及万维网上进行分布式计
算的组件结构入口。按照 Sun 公司的定义,JavaBean 是一个可重复使用的软件
部件。JavaBean 体系结构是第一个全面地基于组件的标准模型之一,该组件是
Java 类,这些类遵循一个接口格式,以便于使方法命名、底层行为以及继承或
实现的行为能够把类看做标准的 JavaBean 组件的方式进行构造[7]。
在 Java 模型中,通过 JavaBean 可以无限扩充 Java 程序的功能,通过
JavaBean 的组合可以快速生成新的应用程序。JavaBean 具有以下特点:
a)可以实现代码的重复利用。
b)易维护性、易使用性、易编写性。
c)可以在 Java 的任何平台上工作,不需要重新编译。
d)可以在内部网或者网络之间进行传输。
e)可以以其它部件的模式进行工作。
JavaBean 在 JSP 程序中常用来封装事务逻辑、数据库操作等,可以很好的
实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。
2.2 基于 B/S 的 WEB 应用体系结构
2.2.1 传统的两层体系结构
在 Web 发展的初期,Web 应用主要是通过静态页面在 Internet 上发布信息。
用户通过浏览器向服务器发送请求,服务器接收用户端的请求,向客户端浏览器
发送所请求的页面。在这种结构下,网站上的页面是静态的,无法根据用户的实
际使用情况做动态的变化。网站的信息提供者通过更新服务器上的网页来向用户
提供最新的信息。用户和浏览器之间只有有限的交互,而网站和用户之间几乎没
有交互。
2.2.2 三层体系结构
三层体系结构图如图 2.2 所示。
CGI,ASP,PHP 等技术的出现,使得开发动态交互式的 Web 应用得以实现。
用户通过浏览器向服务器发送请求,Web 服务器接收客户端发送来的请求,对请
图 2.2 三层体系结构图
求进行分析,如果请求是静态页面,那么就将所请求的页面发送到客户端;如果
请求的是动态页面,那么就执行此动态页面,并将执行结果发送给客户端。动态
页面中的脚本程序可以和数据库服务器进行交互。
Web 服务器可以根据用户的请求动态更新页面上的信息,Web 信息提供者可
以通过改变数据库中的数据向用户提供最新信息,而不需要逐个更改页面。用户
可以通过这些动态页面向数据库中输入信息,从而增强了用户和服务器之间的交
互性。
2.2.3 JSP 网站开发模式
目前,JSP 技术已经成为一种受大多数大型企业或中小型企业喜爱的动态网
页开发技术。越来越多的技术人员也逐步成为 JSP 技术的推崇者。JSP 技术正是
利用了 Java 的“一次开发,处处使用”的性能,成为了网站开发技术人员的首
选技术。当然,JSP 技术的最大优势在于能够将页面的表现形式和页面的商业逻
辑分开。
JSP 网站开发技术标准提供了两种开发模式:一种是 JSP+JavaBean 开发模
式;一种是 JSP+Servlet+JavaBean 开发模式[8,9]。
JSP+JavaBean 模型图如图 2.3 所示。
图 2.3
JSP+JavaBean 模型图
在这种模型中,JSP 页面独自响应请求并将处理结果返回给客户,所有的数
据通过 JavaBean 来处理,JSP 实现页面的显示。此模型常常会导致页面被嵌入
大量的脚本语言或者 Java 代码段,当处理大型业务时,页面程序将变得异常复
杂给开发和维护带来困难。
JSP+Servlet+JavaBean 模型图如图 2.4 所示。
图 2.4
JSP+Servlet+JavaBean 模型图
Servlet 技术是一种采用 Java 技术来实现 CGI 功能的一种技术。Servlet
是运行在 Web 服务器上,用来生成 Web 页面。Servlet 技术非常适于服务器端的
处理和编程。
在此种开发模式中,JSP 技术用来显示页面,该页面中没有任何的商业处理
逻辑,通过 Servlet 技术来完成大量的事物处理工作。Servlet 用来处理事务的
请求,充当着一个控制者的角色,并负责向客户发送请求,创建 JSP 需要的 Bean
和对象,根据用户的请求行为,决定将哪个 JSP 页面发送给用户。
从上面两种开发模式来说:第二种模式要好些,更适合于团队开发,速度相对
较慢,但是可维护性高[6]。
2.3 Eclipse 简介
Eclipse 最初由 OTI 和 IBM 两家公司的 IDE 产品开发组创建,起始于 1999
年 4 月。IBM 提供了最初的 Eclipse 代码基础,包括 Platform、JDT 和 PDE。
Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发
提供一个全功能的、具有商业品质的工业平台。由 Eclipse 项目、Eclipse 工具
项目和 Eclipse 技术项目三个项目组成[10]。
2.4 Tomcat 简介
如今,基于 Web 的应用越来越多,传统的 Html 已经满足不了如今的需求。
因此需要一个交互式的 Web,于是便诞生了各种 Web 语言。如 Asp,Jsp,Php 等。
当然,这些语言与传统的语言有着密切的联系,如 Php 基于 C 和 C++语言,Jsp
基于 Java 语言。Tomcat 即是一个 Jsp 和 Servlet 的运行平台。
Tomcat 是一个免费的开源的 Serlvet 容器,是 Apache 基金会的 Jakarta 项
目中的一个核心项目,由 Apache,Sun 和其它一些公司及个人共同开发而成[11]。
2.5 SQL Server 简介
Microsoft SQL Server 2000 是微软所推出的一套在 Windows 平台上执行的
功能强大的关系型数据库管理系统,用以作为应用程序的数据来源,存放各种数
据,并可以让用户很容易地达成所要进行的数据存取操作。同时,也提供了一些
可视化的管理工具,协助数据库系统管理者更方便快速地管理及设计数据库的内
容,以及对数据库进行维护。SQL Server 2000 不仅可以实现个人数据库的管理,
更适合企业级数据库的应用[12,13]。
2.6 MVC 设计模式
MVC 模式的基本形式图如图 2.5 所示。
图 2.5
MVC 模式的基本形式图
MVC(Model-View-Controller)模式并不是 J2EE 行业人士标新立异的。MVC
的核心就是要做到三级甚至多级的松散耦合,MVC 模式将系统分为三个部分,分
别是数据模型、视图和控制器,并定义了这三个部分之间实现通信的一种模式,
使每个部分不必
卷入到其他部分的状态表示和方法实现的细节中去。每个部分有自己的数据管理
规则,各个对象之间的通信只能使用自己定义的一个受限连接集合进行。保持这
种分离性通常是面向对象编程和设计要追求的目标,让各个对象只需专注于自己