您的当前位置:首页毕业设计(论文)-基于asp的博客网站设计与实现[管理资料]

毕业设计(论文)-基于asp的博客网站设计与实现[管理资料]

来源:小侦探旅游网


毕业设计(论文)中文摘要

基于ASP的博客网站设计与实现 摘 要:博客简单来说就是“网络日记”,本课题研究的博客网站就是可以让用户零成本、较少维护地创建自己的网络媒体。本课题开发实现博客的通用功能:发表日志,上传图片,管理博客,阅读博客,发表评论等几大功能。另外系统页面风格的可变性是本博客系统一大优势。 本课题遵循了“放眼于系统,按功能分快”的原则,巧妙地将开发一个完整的博客网站的过程分解成各个模块,然后逐一的实现各个功能模块,最后把所有的模块连在一起就构成了一个完整的博客系统。 本系统的页面设计主要是在Dreamweaver环境下完成的,通过引入ASP技术和数据库技术使得博客系统的动态功能得以很好的实现,本系统的成功开发可以说是Dreamweaver结合ASP技术开发动态网站的成功体现。 关键词: 博客 ASP 数据库 Dreamweaver 毕业设计(论文)外文摘要

The Design and Realization of Blog Website Based on ASP Abstract: This project studies a web blog, with which users can create their own web media without any cost and any maintenance. It develops and realizes commonplace functions of a blog, such as publishing blogs, uploading pictures, administrating blogs, reading blogs, publishing comments and so forth. This project goes with the principle that we regard the system as a whole but break up the whole into parts when realizing it. So we divide the whole system into several parts called modules and then we develop the system one by one and finally we combine all the parts together and get a complete blog system. The system is developed mainly with Dreamweaver. And with the adoption of database technology and ASP, dynamic functions of the blog system perfectly come true. We can see the successful development of this system as a reflection of excellent combination of Dreamweaver and ASP technology when developing dynamic websites. Keywords: blog; ASP; database; Dreamweaver

目 录

1 引言 ..................................................................... 1

课题的研究背景与意义 .................................................. 1

课题的研究背景 ..................................................... 1 课题的研究意义 ..................................................... 1 问题定义和简介 ........................................................ 1

课题的定义 ......................................................... 1 课题简介 ........................................................... 2 课题调研与可行性分析 .................................................. 2

课题调研 ........................................................... 2 可行性分析 ......................................................... 2 论文各章内容介绍 ...................................................... 3 2 系统需求分析 ............................................................. 4

需求调研 .............................................................. 4 业务流程分析 .......................................................... 4 系统数据流图 .......................................................... 5 系统功能需求分析 ...................................................... 6

功能划分 ........................................................... 6 功能描述 ........................................................... 6 系统功能需求分析 ...................................................... 8

创建用例图 ......................................................... 8 详细描述用例 ....................................................... 9 数据字典 ............................................................. 11 3 系统设计 ................................................................ 15

系统总体结构设计 ..................................................... 15 系统数据模型设计 ..................................................... 16 数据库表的设计 ....................................................... 19 系统开发与运行环境确定 ............................................... 21

系统开发环境 ...................................................... 21 系统运行环境 ...................................................... 22 系统实现的若干关键技术 ............................................... 22

UML建模技术 ...................................................... 22 ASP与IIS技术 .................................................... 23 利用ADO访问数据库技术 ............................................ 24

4 数据库连接函数 .......................................................... 26 5 详细设计 ................................................................ 27

系统登录模块模块简介 ................................................. 28 模块体系结构 ......................................................... 28 运行图 ............................................................... 29 设计说明 ............................................................. 29

新用户注册子模块 .................................................. 29 管理员登陆子模块 .................................................. 31

6 博客管理系统模块 ........................................................ 32

6.1 博客管理子模块 ................................................... 33

模块简介 .......................................................... 33 模块体系结构 ...................................................... 33 设计说明 .......................................................... 33 6.2 系统管理子模块 ................................................... 36

模块简介 .......................................................... 36 模块体系结构 ...................................................... 36 设计说明 .......................................................... 36

7 博客浏览系统模块 ........................................................ 40

7.1 博客浏览模块 ..................................................... 40

模块简介 .......................................................... 40 模块体系结构 ...................................................... 40 运行流程 .......................................................... 40 设计说明 .......................................................... 40 访问量统计模块 ....................................................... 41 8 用户手册 ................................................................ 41

8.1 系统运行环境 ..................................................... 42

硬件要求 .......................................................... 42 软件环境 .......................................................... 42 8.2 系统的安装 ....................................................... 42 8.3 系统页面及其功能 ................................................. 42 8.4 系统的使用 ....................................................... 43

常用操作说明 ...................................................... 43 各模块的使用说明 .................................................. 43

结 论 ...................................................... 错误!未定义书签。 致 谢 ...................................................... 错误!未定义书签。 参 考 文 献 ................................................. 错误!未定义书签。

1 引言

课题的研究背景与意义

课题的研究背景

第一批中文博客是在2002年出现的,早些时候博客只是一个新的网络名词并无特殊之处,。就在不经意间,博客竟如雨后春笋般冒出来,博得越来越多网民的欢心,并在互联网上引发了一股博客热潮。

博客的发展现状呈现出以下特点:发展速度惊人;从精英向大众人群迅猛扩展;博客人群主体更加多元化;博客服务商激增,出现群雄争霸局面;博客资源争夺激烈,博客服务商面临市场洗牌。

博客发展到今天已经取得了相当规模的成就,以新浪、搜狐、网易为代表的三大门户网站都已经推出了自己的博客服务,还有一些著名的专业博客网站都已经对博客资源展开了激烈的争夺。在规模扩大的同时博客技术也在不断的进步和完善,目前博客技术已经取得的成果包括:发表日志,发表评论,相册等一些通用功能。

但是现在的博客技术还不够完善,要想永久确立它的网络地位必须不断开发并推出新的博客技术来满足人们的需要。本课题的研究正是基于这样一种追求博客新技术的基础上而展开的。

课题的研究意义

从上面的背景知识我们已经了解到博客在互连网上已经具有相当的规模,可以说它已经被人们所接受,博客改变着人们的交流方式和情感体验和表达形态,改变着人们聚散的方式;它无限放大着人们对于未来信息世界的预想,它影响着整个中国互联网的发展走向,甚至可能在今后一个时期,波及或影响着现实社会的民主决策过程。

无疑博客这样一种影响力颇大的媒介将有利于我们好的思想好的事物的传播,有利于社会的进步。所以我们要把这种好的影响力发挥到最大,怎样提高博客影响力必然就要求开发博客新技术来获得更多人的认可。

一旦博客研究取得关键性技术的新突破,将会在网络世界掀起一股前所未有的博客浪潮,介时将会有更多的人拥有自己的博客,博客影响力也将倍增。这时通过博客一些新的科学技术将更容易推广,好的政策好的思想也会更加容易传播,如果这样相信社会的进步将会是显而易见的。

问题定义和简介

课题的定义

本课题开发的博客网就是为用户提供一个网络空间,用户可以在这个空间上发表日

志、上传图片等操作。同时为浏览者提供浏览日志、发表评论的权力,并通过系统管理员对整个系统的博客账号、博客内容以及评论进行管理。 根据以上定义,本博客系统主要研究以下几个模块。

(1) 博客访问者:参与博客阅读、发表评论。

(2) 博客管理员:参与登陆、修改自己信息、管理日志、管理图片、管理链接。 (3) 系统管理员:管理博客账号、博客内容、系统博客分类。

课题简介

本课题主要开发以下几个功能:用户组件和样式的设计,账号管理和验证,管理内容,阅读博客,系统功能页面等。

(1)帐号管理和验证:帐号申请、权限分配、帐号注销;区分博客管理员和系统管理员;能够通过帐号正确的验证和标识用户,防止非博客用户盗用他人名义发表内容。

(2)管理内容:为每个博客管理员提供博客的内容管理平台,提供日志、留言、评论、链接、四大类的信息管理内容。除评论外,每种信息均可自行管理信息分类,以及管理这种信息。

(3)阅读博客:系统首页为博客访问者提供了博客分类列表,浏览者可以选择自己喜欢的博客专题。另外首页还包括最新日志列表、访问率最高的日志列表、最新注册的用户列表和博客排行榜。

(4)系统功能页面: 日志和博客关键字搜索,列出日志、评论、留言的总数。

课题调研与可行性分析

课题调研

为了出色的完成本课题的开发,对当前博客技术的应用状况展开了调查分析。通过

对部分博客用户的调查和查阅大量的相关资料,发现博客技术从出现到现在一直在不断的发展中,博客的功能也从最初的只有简单的文章发表到现在集日志发表、评论、留言、相册等多功能于一身。有博客用户反映这些功能已经不能完全满足他们的需求,他们期待技术更成熟,功能更全面的新的博客技术的出现。

把握博客技术的发展动态对更好的开发设计本课题有很大的帮助,在调研过程中反映出来的对博客新技术的迫切需求更加激励了我要出色的完成本课题的设计。 调研还发现目前的博客系统存在局限性,例如现在博客用户使用的网页模板都是系统提供的固定格式,这就一定程度上限制了用户博客网页个性的发挥,因此能够让用户自己随意的设计自己喜欢的能够体现用户个性的模板将是博客技术发展的必然要求。

可行性分析

本系统主要从经济可行性和技术可行性两个角度对其可行性进行分析:

(1)技术可行性

本系统使用ASP技术进行开发,现在有很多企业及技术人员选择它来作为开发平台。因此,在技术上ASP是完全可以胜任这个平台的开发。

使用Dreamweaver结合ASP技术已经成为现代开发动态网站的首选技术,许多已经开发成功的经典项目足以证明此技术的可行性。 (2)经济可行性

由于本项目的特殊性,无需投入额外的设备购买及人员培训费用,所以在经济上本系统的开发是可行的。

博客系统一旦开发成功投入运行,将会吸引很多的博客用户,网站的知名度迅速上升,访问量也会大幅度提高到时将会带来可靠的经济效益。

按上述两方面进行可行性分析、研究后,我们认为该项目在技术上是可行的,在经济上是可合理的,可以进行开发。

论文各章内容介绍

第一章是绪论,这一章主要是对本次毕业设计所开发的系统进行问题的定义,通过问题的定义明白需要做些什么,并且对开发内容简单的介绍了一下;同时本章还对课题的研究背景与研究意义进行分析,对开发本系统的可行性分析还有对论文各章内容的简要介绍。

第二章是系统需求分析。主要内容是系统的性能要求及功能需求分析,最后按面向对象的分析方式给出了系统的用例模型、流程图以及数据字典。

第三章是系统设计部分,本章主要针对系统进行总的体系结构的设计,这部分设计是从用例模型及活动图导出的;系统数据模型设计包括了核心的E-R图、关系模型和一些重要的数据表;最后确定了系统的开发和运行环境以及开发本系统所涉及的一些关键技术。

第四章介绍的是系统的数据库连接文件,以后系统需要连接数据库的只要直接调用这个文件就可以了。

第五章从这章将开始本系统的详细设计阶段,本章介绍的是注册登陆模块,包括这个模块的体系结构,运行图,以及代码设计中的要点。

第六章介绍的管理系统模块,同样通过模块体系结构,运行图和代码设计分别对博客管理和系统管理两个子模块进行了比较详细的设计。

第七章介绍的是博客浏览系统模块,包括这个模块的体系结构、运行流程图和详细代码设计以及访问量统计子模块的关键代码描述。

2 系统需求分析

根据第一章所定义的课题研究方向及目标,本章将对系统功能进行具体的需求分析,具体分析博客网所要实现的功能及欲达到的效果。

需求调研

从需求调查开始博客系统的研究,我们决定从下面几个来源进行收集资料。 主流博客网:对当前人气高的博客网进行认真的调查。

博客用户:对正在使用博客的用户进行面对面的探访,请教他们对博客的认识和使用意见。

做一个自己的博客:最好的需求调研就是深入到业务过程中,在主流博客网注册自己的帐号,亲自体会博客的强大功能然后记录下来。

博客系统需求管理规划表如表2-1

表2-1 博客系统需求分析表

NO 1 特征与前景 2 3 功能性需求 4 5 非功能性需求 6 操作方式 浏览器 中 低 阅读内容 平台限制 预算 管理内容 需求分类 需求名称 系统目标 描述 给用户提供一个展现自我的空间 成本控制在3万元以下 通过后台管理系统进行文章、留言、图片、链接的管理 阅读文章、评论、留言,查看图片,访问链接 基于Windows 2003 Server 优先 高 中 中 中 中 难度 中 中 中 中 低

业务流程分析

本系统是将现代化的计算机技术与博客服务技术相结合,按照博客技术的服务流程设计完成的。为了使系统在实际运行中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下系统开发目标:

其工作流程为:系统启动并调用默认的博客模版类型,所有用户浏览博客主页面,之后的操作通过权限判断。普通用户只能浏览、评论和查询博客信息。管理员分为系统管理员和博客管理员,前者可以对系统管理的所有功能进行操作,后者只有对博客进行写入、修改和删除的权限,并且其权限也受到系统管理员的限制,他只能在自己的权限范围内进行对博客的管理操作。

具体目标如下:

(1)操作简单、界面友好:完全控件式的页面布局,使得用户写博客的工作更简便;

许多选项包括博客类别、作者等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。

(2)即时可见:对博客的处理(包括写入、修改、删除)将立即在主页的对应栏目显示出来,达到\"即时发布、即时见效\"的功能。

(3)功能完善:不仅包括常见网站的博客功能的各个方面:写日志、浏览、删除、修改、检索等各个方面,而且,还能进行对会员的管理,对用户推荐的博客进行审核,以及上传文件的管理。同时,为了能有效方面的更新系统的界面,系统还增加了调用博客界面模版的功能。

(4)动态管理:对系统数据库实行动态操作,能实现对数据库信息的动态查询、动态更新修改和动态录入数据。

系统数据流图

本系统主要完成博客的浏览与管理的功能,因此,在逻辑上可以将系统分为博客浏览系统和博客管理系统两部分,同时,系统的所有数据都需通过一个数据库系统来实现查询、更新和输入,所以在总体上可将总系统分为博客浏览系统、博客管理系统和数据库系统三个系统,对本系统操作的数据源有普通浏览者、博客用户和管理员三种。

根据上述对新系统的初步分析和开发目标的分析,初步分析了一套博客系统的总体流图,如下图所示:

博客信息 浏览者 新用户注册信息 用户信息 博客浏览系统 登陆信息 注册用户 博客信息 站点信息 新用户注册信息 数据库系统 管理员信息 系统信息 用户信息 修改信息 博客信息 管理员信息 管理员 登陆信息 博客管理系统 修改信息 系统数据流图 登陆后的管理员

由于系统数据较多现举出用户登陆数据流如下:

系统功能需求分析

功能划分

根据上一节的流程图,把系统划分成两个大的模块来完成:前台模块和后台管理模块。模块划分如表所示。

序号 1 功能模块类别 前台模块 功能模块 阅读日志功能块 博客列表功能块 注册功能块 登陆功能块 公共模块 2 3 博客管理模块 系统管理模块 用户模板管理功能块 博客管理功能快 用户管理功能块 系统模板管理功能块 公告管理功能块 系统参数设置功能块 数据库管理功能块 备注 功能描述 上面两节把建立一个博客系统的流程图和功能模块的划分进行了介绍,下面将各个功能模块的功能做详细的描述,即对上述的模块功能进行设计与细化,以便我们下一步的开发。系统功能的详细描述如下:

前台功能列表

序号 1 功能列表 首页 功能明细 最新日志列表 热门日志列表 日志分类列表 2 阅读日志功能块 全部日志列表 日志内容页 日志评论功能(发表评论) 3 4 5 6 博客列表功能块 注册功能块 登陆功能块 公共模块 全部博客列表 博客内容页 用户注册页 验证用户权限 日志和博客关键字搜索 列出博客、日志、评论的总数 博客排行榜

博客管理功能列表

序号 1 功能列表 写博客 功能明细 写日志,管理日志 管理评论 专题分类管理 修改公告 修改个人博客信息 2 模板管理 添加、删除和修改用户模板

系统管理功能列表 1 2 3 4 有了这些功能明细后,我们就把整个系统的框架确定下来了,也就确定了系统数据的基本结构。

系统模板管理 管理用户 系统参数设置 数据库管理 添加、删除和修改系统模板 修改用户信息和密码 添加和删除用户 设置系统的一些名称和数据 数据库的备份和还原 系统功能需求分析

创建用例图

系统管理员,参与了管理博客账号、登陆、修改密码3个用例。

博客使用者,参与了登陆、修改密码、管理文章、管理连接、管理图片5个用例。 博客访问者,参与了阅读博客、发表评论2个用例。 博客系统参与者:

用户<><><>系统管理员博客管理员博客访问者

博客系统用例:

用户登陆管理博客账号修改账号信息删除博客内容管理模板系统管理员系统参数设置用户管理博客内容阅读博客内容博客管理员浏览博客目录博客访问者发表评论

详细描述用例

用例图是系统的高层试图,仅仅是用例图还不能支撑项目组进行设计工作,对于每一个用例,都需要确定用户如何使用这个系统,我们以用户的角度进行事件流设计,描述用例提供的价值和工作流程。我们按照主流博客网的模板进行设计。 ◆名称:表明用户的意图或用例的用途。

◆标识符:惟一表识,如UC1234,在项目的其他元素中可以用来引用这个用例。 ◆描述:概述用例的几句话。

◆参与者:与此用例相关的参与者列表。

◆状态:指示用例的状态。 ◆频率:参与者访问次用例的频率。

◆前置条件:一个条件列表,如果其中包含条件。则这些条件必须在访问用例之前得到满足。

◆后置条件:一个条件列表,如果其中包含条件。则这些条件必须在用例成功完成以后得到满足。

◆被扩展的用例:此用例所扩展的用例。 ◆被包含的用例:此用例所包含用例的列表。 ◆假设:对编写此用例时所创建的域的任何重要假设。 ◆基本操作流程:参与者在用例中所遵循的主逻辑路径。

◆可选操作流程:用例中很少用到的逻辑路径,那些在变更工作方式、出现异常或发生错误的情况下所遵循的路径。

◆修改历史记录:关于用例的修改时间、原因和修改人的详细信息。 ◆问题:如果存在,则为与此用例的开发相关的问题或操作项目的列表。

◆决策:关键决策的列表,这些决策通常由你的SME做出,并属于用例的内容。

用户登陆用例

用例名称 用例ID 参与者 描述 风险 优先级 难度 启动 前置条件 后置条件 用户登陆 UC-12 用户、管理员 用户登陆系统过程 低 高 低 主动进入用户登陆画面或会话超时转入用户登陆画面 用户需在登陆状态 将用户信息放入会话中 将用户相关的博客信息放入会话中 显示博客阅读主画面 主事件流 用户 系统 1.进入或转入用户登陆画面 2.用户输入用户名和密码 3.系统检查用户名和密码是否合法 异常流 系统 异常 4.系统检查用户名是否存在,密码是否正确 5.读取用户的基本信息、博客的基本信息放入会话中 6.转到管理博客的主画面 异常流 系统中不存在该用户或用户名错误 转入登陆画面 用户不存在或密码错误

修改密码用例

用例名称 用例ID 参与者 描述 风险 优先级 难度 启动 修改密码 UC-15 用户、管理员 用户、管理员进行密码修改 低 高 低 单击“用户修改密码” 主事件流 用户 系统 1.进入用户修改密码,输入2.检查密码格式是否相符 旧密码一次,新密码两次 3.检查旧密码是否正确 4.如果正确就进行密码修改,转入密码修改成功画面 异常流 异常流 密码检查不通过 系统 返回密码修改画面,提示旧密码不正确、新密码格式不符、两次不同等 异常 用户旧密码错误 规则 密码需要大于6位小于12位

管理博客账号用例

用例名称 用例ID 参与者 描述 用户 1.单击博客账号管理图标 管理博客账号 UC-25 管理员 管理员进行博客账号管理 主事件流 系统 2.显示博客账号管理主画面,包括博客账号的列表及删除按钮 可选事件流 删除博客账号 系统 2.提示确认删除 4.系统删除博客账号的信息,提示删除成功 用户 1.单击[删除]按钮 3.单击[确认]删除

表2-5 修改博客账号用例

用例名称 用例ID 参与者 描述 风险 优先级 难度 启动 前置条件 后置条件 修改博客信息 UC-28 博客使用者 修改博客账号信息 低 高 低 进入修改博客画面 博客使用者已登陆 更新Session中的博客信息 主事件流 用户 系统 1.单击修改博客2.系统显示修改博客画面,初始化该博客相关信息 信息链接 3.修改博客的相4.检查同名的博客是否存在、检查博客的名称、描述是否包含关信息,单击【保特殊字符 存】 5.保存博客的相关信息、提示保存成功 异常流 异常流 同名博客账号存在 系统 提示已有同名博客存在,提示用户重新输入博客的名称 系统 提示输入的信息不合法,提示用户重新输入博客的名称、描述 规则 博客名称不能包含特殊字符 博客的名称不能重复

数据字典

数据字典是系统分析阶段的重要文档,它清楚地定义与详细地解释了数据流程图上不能详细表达的内容,同时它也是同用户交谈的工具。

下面详细列出本系统中的数据字典:

名字:用户信息表 别名:博客用户信息表 描述:记录博客用户的注册信息表 定义:用户信息表=用户名+用户密码 位置:用户验证中心 名字:用户名 别名: 描述:标识用户的凭证 定义:用户名=1{字符}10 位置:用户验证中心 用户信息表 用户管理部分 名字:用户密码 别名: 描述:验证用户是否合法的唯一凭证 定义:用户密码=1{字符}10 位置:用户验证中心 用户信息表 用户管理部分

名字:博客信息表 别名: 描述:记录博客信息表 定义:博客信息表=博客名+博客作者+ 博客类别 位置:博客信息中心 名字:博客名 别名: 描述:博客网页的名称 定义:博客名=1{字符}20 位置:博客信息表 名字:作者 别名:博客用户 描述:博客网页的制作者和管理者 定义:作者=1{字符}20 位置:博客信息表 名字:博客类型 别名:博客分类 描述:标识博客内容所属的不同分类 定义:博客类型=1{字符}20 位置:博客信息表

名字:日志信息表 别名:文章信息表 描述:记录博客用户发表的文章的信息 表 日志信息表=日志主题+日志分类 定义:+发表日期 位置:日志管理部分 名字:日志主题 别名:文章题目 描述:标识日志的内容 定义:日志主题=1{字符}20 位置:日志管理部分 名字:日志分类 别名: 描述:日志内容所属的类型 定义:日志分类ID=1{字符}20 位置:日志信息表 名字:发表日期 别名: 描述:日志更新时间 定义:发表日期=1{字符}20 位置:日志信息表

名字:评论信息表 别名: 描述:记录对日志的评价信息 定义:评论信息表=评论主题+评论人+ 评论日期 位置:评论信息表 评论管理部分 名字:评论主题 别名: 描述:代表评论是对哪个日志而发表的 定义:评论主题=1{字符}20 位置:评论信息表 评论管理部分 名字:评论日期 别名: 描述:代表评论更新时间 定义:评论日期=1{字符}20 位置:评论信息表 评论管理部分 名字:评论人 别名: 描述:标识评论的作者 定义:评论人=1{字符}10 位置:评论信息表 评论管理部分

名字:管理信息表 别名:管理员信息表 描述:记录管理员的注册信息表 定义:管理信息表=用户名+用户密码 位置:用户验证中心 名字:用户名 别名: 描述:标识用户的凭证 定义:用户名=1{字符}20 位置:管理信息表 用户验证中心 名字:用户密码 别名: 描述:验证用户是否合法的唯一凭证 定义:用户密码=1{字符}50 位置:管理信息表 用户验证中心

名字:模板信息表 别名: 描述:记录制作博客的模板信息 定义:模板信息表=模板名称+提供者+ 模板代号 位置:模板信息表 名字:模板名称 别名: 描述:体现模板特色的名字 定义:模板名称=1{字符}20 位置:模板信息表 名字:提供者 别名: 描述:标识模板的制作者 定义:提供者=1{字符}10 位置:管理模板部分 名字:模板代号 别名: 描述:唯一标识某一个模板 定义:模板代号=1{字符}20 位置:模板信息表 管理模板部分

3 系统设计

系统总体结构设计

本系统主要包括三大模块组成:博客访问者模块、用户模块、系统管理员模块。 整个系统的结构框架如下图所示

博客系统 博客访问者模块 博客用户模块 博客系统管理员模块 注册/登陆模块 阅读日志功能块 博客列表功能块 公共模块 日志评论管理模块 修改个人博客信息 管理公告模块 管理用户模块 模板管理模块 系统参数设置模块 数据库管理模块

系统数据模型设计

由于博客系统中对博客内容的写入、修改和更新工作比较复杂,所以它的主要任务是进行大量的数据库操作,这就必然要存储和利用大量的、各种类型的数据。如何建立一个良好的数据库结构和文件组织形式,使其能够迅速、准确的查找所需要的数据,是衡量这个系统的主要指标之一。

(一)概念模型的建立

通过第二章中对系统数据流以及局部数据流和数据字典的分析,可以总结出系统中数据概念模型,如下图所示:

概念模型(E-R图):

博客名 名称 博客 提供者 模板 代号 代号 类别 选 用户 写 编号 用户名 用户密码

图3-2用户概念模型

用户密码 用户名 代号 用户 N 管理 1 提供者 分类名 系统管理员 用户权限 分类号 N 名称 模板 N 博客分类 用户名 用户密码 用户权限 图3-3系统概念模型

(二) 数据模型的建立

现根据上述概念模型,将它们转化为数据模型,由于数据较多,现举部分数据进行转换。根据关系模型的转换规则,转换方式分为如下几种:

(1) 一个实体型转换为一个关系模型

博客( 博客 ID、内容、标题、所属分类ID、相关博客连接关键字、总点击率、写入入时间、作者、来源、标题图片连接、所属专题ID、博客管理员ID、外部连接的Url);

注册会员(ID、姓名、密码、email、自我论述、注册日期、密码问题、密码答案、性别、生日、真实姓名、国家、省、市、电话、地址、qq);

管理员(ID、姓名、密码、系统标识、权限、管理的博客分类ID、发表的日志数、自我论述、email);

站点信息(热门日志、最新日志、博客总数、日志总数、评论总数、会员总数、专题数)

关键字(ID、关键字名、关键字连接Url、关键字连接alt);

模版(模版ID、模版名称、模版类型、模版文件名、模版缩略图、是否为默认模版); 系统风格(ID、名称、是否默认风格、css文件路径); (2) 一个1:n联系转换为一个关系模型

包含(日志 ID,内容,标题,所属分类ID,相关连接关键字,总点击率,发表时间,作者,来源,评论数,评论ID,评论内容,评论者姓名,评论时间,评论者ip地址,是所属专题ID,发表者的用户ID,上传文件ID,上传文件路径)

属于(注册用户ID,姓名,密码,email,自我论述,注册日期,密码问题,密码答案,性别,生日,真实姓名,国家,省,市,电话,地址,qq)

(3) 一个1:1联系可以转换为一个关系模型

链接(关键字ID,关键字名,关键字连接Url,博客ID,内容,标题) (4) 三个或三个以上实体间的一个多元联系转换为一个关系模式 评论(日志ID,评论者ID,博客分类ID) (三)数据模型的优化

数据库逻辑设计的结果不是唯一的。为了进一步提高系统数据库应用系统的性能,必须对数据模型进行优化。由于数据较多,只就部分数据举例如下:

1.确定数据依赖

新闻关系模型中存在如下数据依赖:

博客ID→内容,博客ID→标题,博客ID→所属分类ID,博客ID→相关博客连接关键字,新闻ID→录入时间,博客ID→作者,博客ID→来源,博客ID→日点击率,博客ID→评论ID,博客ID→标题图片连接,博客ID→所属专题ID,博客ID→发表者的管理员ID,博客ID→博客外部连接的Url,博客ID→上传文件ID,博客ID→上传文件路径,博客ID→评论数,上传文件ID→上传文件路径,评论ID→评论内容、评论ID→评论者姓名、

评论ID→评论图象、评论ID→评论时间、评论ID→评论者ip地址,(日志ID、评论ID)→评论数,评论ID→评论数

其中码有(博客ID,评论ID,上传文件ID,日志ID) 2.消除冗余关系

观察上述依赖发现如果一篇日志含有多个评论,那么日志的其他属性将重复存储很多次,因此可以将关系模型转化为:

日志(日志 ID、内容、标题、所属分类ID、总点击率、发表时间、作者、来源、评论数、标题图片连接、所属专题ID、发表者的用户ID、摘要、日志外部连接的Url、上传文件ID、上传文件路径、评论ID)

评论(日志ID、评论ID、评论数、评论内容、评论者姓名、评论图象、评论时间、评论者ip地址)

3.考查部分函数依赖、传递函数依赖等的存在性,以确定关系模型分别达到的范式 在“日志”关系模式中“评论ID”并不决定其他的非主属性,同时存在“日志ID→上传文件ID”,“上传文件ID→上传文件路径”这样的传递函数依赖,因此,在消除部分依赖和传递依赖后可以将关系转换为:

日志(日志ID、内容、标题、所属分类ID、相关日志连接关键字、总点击率、发表时间、作者、来源、评论数、是否头条新闻、标题图片连接、所属专题ID、发表者的用户ID、日志外部连接的Url)

评论(评论ID、评论内容、评论者姓名、评论图象、评论时间、评论者ip地址) 上传文件(上传文件ID、上传文件路径) 因此,可以确定这样的关系模型达到了第三范式。 4.确定是否分解

由于,关系模型的规范化程度并不是越高越好,在实际应用中高范式可能会带来程序查询时间的浪费,所以,在数据库文件设计上,本系统达到第三范式已经足够,无须在做分解。

数据库表的设计

数据库设计是项目开发中的系统设计中非常重要的另一个关键环节,在这里之所以特别强调数据库设计的重要性,上因为数据库设计就像在建设高楼大厦的根基一样,如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中,将会引起比较大的问题,会遇到非常大的困难,大量的工作将会重新进行。 下面根据前面列出的系统用例图,开始设计相关数据库。 (1) 数据库表及表之间的相互关系 本系统需要设计的数据库表如下 数据库表

序 号 1 2 3 4 5 6 7 user classname blog sysskin comment userskin admin 数据库表 数据库表存储内容 存储用户信息、权限及用户的博客信息 存储分类信息 存储日志信息 存储系统模板信息 存储评论信息 存储用户模板信息 存储系统管理员信息 上表列出了本系统所用到的数据表,并根据流程和功能表示出数据各表之间的关系,具体如下。

管理员表 Admin 分类表 Classname 用户表 User 日志表 Blog 评论表 Comment 模板表 Skin

数据库表关系(简化关系图)

(2) 数据库表结构的详细设计

下面开始对上一节列出的数据表逐一做出详细说明。

存储用户信息、权限及用户的博客信息的表如下。

博客用户信息表Blog 序号 字段名 字段类型 说明 1 BlogID int 博客编号 2 Subject Varchar 主题 3 Username Varchar 用户登陆名 4 Password Varchar 用户密码 5 Description Varchar 描述 6 Email Varchar 用户电子邮件 7 EntryNum Varchar 被访问次数 8 Name Varchar 博客名 9 Role Varchar 角色级别 10 11 12 EssayCount ArticleCount FeedCount int int Int 随笔数 文章篇数 评论数 备注 键 惟一 0=系统管理员 1=普通用户

栏目分类表 classname 序号 字段名 字段类型 1 ID Int 2 name Varchar 3 blogID int 4 type Varchar 5 description Varchar

日志信息表 Blog 序号 字段名 字段类型 1 ID Int 2 subject Varchar 3 content Varchar 4 classID Int 5 blogID Int 6 uptime Datetime 7 view Varchar 8 comment Varchar

说明 编号 栏目名 博客编号 类型 描述 备注 键 说明 编号 主题 内容 所属分类号 博客编号 更新时间 被访问次数 评论数 备注 键

模板信息表 Skin 序号 字段名 字段类型 说明 1 ID Int 模板编号 2 skinname Varchar 主题 3 skinmian Varchar 样式 4 auther Varchar 提供者 5 isdefault Int 是否是默认模板 6 time Datetime 更新时间 评论信息表 Comment 序号 字段名 字段类型 说明 1 feedBackID Int 评论编号 2 subject Varchar 主题 3 content Varchar 内容 4 blogID Int 博客编号 5 categoryID Int 分类号 6 contentID Int 排序号 7 category Varchar 所属分类 8 time Datetime 更新时间 9 username Varchar 评论人名 10 url Varchar 路径

系统管理员信息表 admin 序号 字段名 字段类型 说明 1 ID Int 编号 2 usename Varchar 用户名 3 passward Varchar 路径 4 lastloginip Int 最后登陆的IP 5 lastlogintime Int 最后登陆时间

备注 键 备注 键 备注 键 系统开发与运行环境确定

系统开发环境

系统开发环境及开发工具

开发工具对一个系统的成败具有决定性作用。由于本系统是应用于网络的,因此,我们选择了Asp技术进行开发,同时,选用Access作为系统后台数据库,开发中将用到以下主要几款开发工具:

开发工具名称 Microsoft visio 2003 Microsoft Access ASP Dreamweaver MX 2004 软件用途 系统设计,UML建模等 建立系统的后台数据库 编写代码实现网站动态功能 静态页面的设计、制作 使用Asp作为系统开发工具的优点 ASP就是由服务器端脚本、对象以及组件拓展过的标准网页(也可以理解为在普通的网页中嵌入了一些扩展的指令),另一方面,ASP也可以理解为一种支持ASP扩展的Web服务器环境。它最终显示在浏览器中的网页并不是在建立初期就存在的,而是当某个浏览器向服务器提出请求时,它才根据需要产生需要的标准网页,这克服了过去HTML编写的网页不能更改的缺点,从而使网页上可以存在许多动态的信息。 系统运行环境

硬件环境:

服务器端: 推荐配置为512M内存,CPU为Intel Pentium Ⅳ 1700MHZ,硬盘容量为80G

的微机。

通信网络: Internet网 软件环境: 服务器端:

➢ 操作系统: Windows 2000 Server /NT/2003 Server/XP ➢ 数据库: ACCESS ➢ Web服务器:Internet

➢ Microsoft .NET 框架:.NET Framework 客户端:

➢ 操作系统: Windows 2000/XP/2003 ➢ 浏览器: Internet Explore ➢ 推荐分辨率:1024*768或以上

系统实现的若干关键技术

UML建模技术

1997年,OMG组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。UML是一种可以应用于任何软件开发过程的标记法和语义语言,UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业人员期待多年的统一的标准建模符号,通过使用UML,这些人员能够阅读和交流系统架构和设计规划--就像建筑工人多年来所使用的建筑设计图一样。

UML之所以被称为统一建模语言,是因为它:

➢ 统一了多种建模方法

➢ 统一了软件产品开发的整个过程 ➢ 统一了实现语言和平台

UML适用于以面向对象技术来描述任何类型的系统,可以用UML对软件密集型系统的制品进行可视化、详述、构造和文档化,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护,它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。

最常用的UML图包括:用例图、类图、序列图、状态图、活动图、组件图和部署图。 因为本系统开发设计所涉及的范围,以下仅对用例图、类图、活动图三种UML图给出简要说明: ➢

用例图

用例图是使用UML设计新系统的起点,说明谁要使用系统以及他们使用该系统可以做什么,描述的是外部执行者所理解的系统功能。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的\"角色\"(也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。用例图一般表示出用例的组织关系--要么是整个系统的全部用例,要么是完成具有功能(例如,所有安全管理相关的用例)的一组用例。要在用例图上显示某个用例,可绘制一个椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位置。要在用例图上绘制一个角色(表示一个系统用户),可绘制一个人形符号。 ➢

活动图

活动图表示在处理某个活动时,两个或者更多类对象之间的过程控制流。活动图可用于在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。根据我的经验,活动图最适合用于对较高级别的过程建模,比如公司当前在如何运作业务,或者业务如何运作等。这是因为与序列图相比,活动图在表示上\"不够技术性的\",但有业务头脑的人们往往能够更快速地理解它们。

活动图的符号集与状态图中使用的符号集类似。像状态图一样,活动图也从一个连接到初始活动的实心圆开始。活动是通过一个圆角矩形(活动的名称包含在其内)来表示的。活动可以通过转换线段连接到其他活动,或者连接到判断点,这些判断点连接到由判断点的条件所保护的不同活动。结束过程的活动连接到一个终止点(就像在状态图中一样)。 ASP与IIS技术

IIS简介

Wsb服务器是Web应用程序的心脏。IIS(Internet Information Server)是微软推出的Windows NT Option Pack的主要成员,作为Win2000server的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的Web服务器之一。,具有服务器端脚

本开发调试,内容管理和站点分析,崩溃防护,内置JAVA虚拟机及全面支持ASP等强大功能。

IIS与ASP的结合

在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构()的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。

利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面: 减少构建和维护成本 加快联机过程

应用软件集中在服务器端开发管理

前端可使用任何浏览器(IE、Netscape…..) 后端可存取任何数据库 (SQL、Access…..)

可使用任何脚本语言开发 (VBScript、JavaScript、PERL…..)

利用ADO访问数据库技术

ADO(ActiveX Data Objects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(Server Component),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:

1.创建数据库源名(DSN) 2.创建数据库链接(Connection) 3.创建数据对象 4.操作数据库 5.关闭数据对象和链接

浏览器 ActiveX Server 前端浏览器 ActiveX Server元件 程序和计算逻辑 数据库服务器 后端数据库 Microsoft IIS + ASP 每一步的作法如下: 一、创建数据源名

DSN(Date Source Name)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序中对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQL Server的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。

二、创建数据库链接(Connection)

链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:

set Conn=(“”)

这条语句创建了链接对象Conn,接下来: connstr=\"Provider=;=\"&(\"\"&db&\"\") connstr

这条语句打开链接,用到了DSN,本例为“connstr”。

以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。

三、创建数据对象(Record Set)

ADO中的数据对象通常保存的是查询结果。Record Set是ADO中最复杂的对象,有许多属性和方法。Record Set保存的是一行行的记录,并标有一个当前记录。以下是创建方法:

Set Record Set=(sqtStr)

这条语句创建并打开了对象Record Set,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:

rs=“SELECT * FROM shop_books” Set Record Set=(rs)

这条语句执行后,对象Record Set中就保存了表tab1中的所有记录。 四、操作数据库

我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:

rs=“INSERT INTO tab1 VALUES(1,2)” (rs)

/执行插入操作

五、关闭数据对象和链接对象

在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。

Record

Set Record Set=Nothing /关闭创建的数据对象

Set mConn=Nothing /关闭创建的链接对象

4 数据库连接函数

为什么要将本部分列出来呢?因为在整个博客系统的开发过程中,数据库连接是必不

可少的,是公用的,我们可以把这一部分先拿出来,单独做成一个函数,在需要的时候只需调用就可以了,而不用每次都去写连接数据库的程序,这种做法叫做复用。

本系统使用的是Access数据库,在ASP中同数据打交道的主要是ADO,对数据进行操作处理,要让ADO对像能够存取数据库,最重要的东西就是OLE DB及ODBC驱动程序。任何一种数据库,必须具备对应的驱动程序,ADO对象才能存取。

本系统连接Access数据库使用的是微软的OLE DB机制,博客系统数据库连接的关键代码如下:

Dim Db

'access数据库连接参数: Db = \"data/\"

ConnStr = \"Provider = ;Data Source = \" & (db) else

'sql数据库连接参数:数据库名、用户密码、用户名、连接名(本地用local,外地用IP)

Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName SqlDatabaseName = \"oblog\" SqlPassword = \"oblog\" SqlUsername = \"oblog\" SqlLocalName = \"(local)\"

ConnStr = \"Provider = Sqloledb; User ID = \" & SqlUsername & \"; Password = \" & SqlPassword & \"; Initial Catalog = \" & SqlDatabaseName & \"; Data Source = \" & SqlLocalName & \";\"

第四行为ConnStr赋值。这是连接数据库中很关键的一步,这里声明的是OLE DB连接数据库的方式。

再看Data Source部分,它的后面跟的就是数据库文件所在的路径。,它是ASP内置的Server对象的一个函数,用来获得网站目录下文件的绝对路径。

一般来说,凡是涉及到具体目录的地方,都不要直接使用目录名,。 使用上面的驱动程序,只要保证数据库路径的正确就不会出现问题。

5 详细设计

根据对系统所需实现功能的分析和系统结构设计,现将对系统进行详细设计。但由于系统模块的代码较多,现就系统的几个重要模块的部分设计在以下的几章中进行举例,其中在第五章中将介绍注册登陆系统中的部分模块,而在第六章中会介绍博客管理系统中的部分模块。

系统登录模块模块简介

该模块是博客系统中的一个重要组成,用于完成对用户权限的判定。当启动系统时,系统即将用户视为一般用户,因此一般用户直接能进行博客浏览和博客阅读。注册用户需提交密码和用户名登陆系统,之后不仅可以完成以上功能,还能建立自己的博客并进行管理;倘若忘记了密码,可以进行密码查询,此时系统会根据用户填写的用户名查找密码的问题以提示用户,用户输入正确密码后可修 改密码。一般用户若想注册,可以进行资料登记,资料提交后系统审核通过后系统会提醒你注册成功,通过首页登陆即可进入自己的博客管理页面。管理员(无论是系统管理员,还是博客管理员都一样)需提交用户名和密码,系统管理员还需输入系统随机产生的校验码进行登陆,之后进入管理页面。

模块体系结构

为实现上述功能,将该模块分为了三个子模块:新用户注册子模块、注册用户登陆子模块、系统管理员登陆子模块。各模块之间关系如下:

系统登陆模块 新会员注册 注册会员登陆 管理员登陆 填写注册资料 提交审核 登陆成功 登陆系统管理页面 进入博客管理界面 注册成功 系统登陆模块图

运行图

新用户注册 系统初始管理登陆 注册用户登陆 是否同意网站条例 管理登陆页面 提交密码用户名 用户资料登记 忘记密码 产生校验码 填写会员名 系统查询 否 是否符合 提交数据 系统查询 否 提交成功 填写用户名密码和校验码 显示问题 查询admin表 数据存入表中 登陆成功 填写答案 否 是否符合 否 是否符合 登记新密码 管理登陆页面 存入数据库 修改成功 图5-2登陆系统运行图

设计说明

新用户注册子模块

用户注册,首先要检查的就是用户填写的信息,其中包括:

1. 字段是否空白,若空白则不接受。 2. 输入的E-mail是否正确。 3. 两次输入的密码是否一致。 4. 用户名是否被使用 5. 电子邮件是否被使用。 注册页面如图:

(“name”)来获取前端提交的name文本框的值。Form是Request的一个获得表单的集合。

为了检测用户名的长度,这里用到了VBScript的一个函数Cint( )。下面是它的用法: Cint( expression) 我们要把信息写入数据库,而数据库对一些特殊的字符无法正确处理,所以我们使用函数InStr( )来判断那些字符不能在用户名中存在。用法如下:

InStr([start,]string1,string2[,compare] ) 验证完用户名还要对密码进行处理,密码是一个用户在博客中比较隐秘的部分,这里我们采取了MD5加密的方式,。

接着要对电子邮件地址进行验证,电子邮件地址的验证比较困难,因为电子邮件的用户名可以五花八门,后面的域名也是多种多样,但还是有一定的规律可循,本系统写了一个函数来检验电子邮件地址。

邮件地址“用户名@域名”是最简单的,在域名中包含的后缀有很多种。在程序name=Split(email,”@”)里又用到一个VBScript的函数Split( ),它的主要功能是返回基于0的一维数组,其中包含指定数目的子字符川。函数用法如下:

Split(expression[,delimiter[,count[,compare]]] ) Split在这里的应用很明显,用@符号来拆分电子邮件地址,形成数组,然后判断数组长度。

验证完毕后,就要把数据写到数据库里了,但是在写入数据库之前我们还要验证一些 信息,我们要保证用户名的唯一性,还要保证E-mail的唯一性,这些都是数据库内验证比较简单。

在注册模块中要向数据库中写入信息,这里将用到数据库有关的对象RecordSet,。

管理员登陆子模块

管理员登陆模块由管理员登陆页面组成,它是博客管理部分的登陆页面。 1.登陆页面流程图:

2.登录页面代码程序的实现部分:

登陆界面如上图所示。

管理员在前台输入并提交信息,每一个提交程序都会用到Form容器,在这个容器里含有两个输入对象,一个是用户名,一个是用户密码,系统的验证主要依靠这两个对象输入框来完成。

用户在在前台输入信息后,系统在后台要进行验证,以便管理员用户登陆,管理博客系统,.

这个程序的主要功能就是接受用户输入的参数,对用户输入的参数进行判断,判断通过后向数据库系统提交,返回数据库查询结果,当有相应的合法数据后,系统将把此用户的ID号赋给系统进行验证的Session变量,然后系统将直接到达博客系统的管理首页。

3.校验码产生的实现部分:

我们发现用户每次登陆时的验证码都不一样,这样做的目的是为了防止有人利用破解 程序暴力破解用户的密码。

程序设计由系统产生的随机数形成校验码,并绘成图片以显示数据于页面上,将其变为用户可视的校验码,生成此码的同时,将其数据存入系统缓存中,以便系统对数据的核实。

为实现此功能,引入

Randomize初始化随机数生成器,使用说明如下:

Randomize[number]

Number参数可以是任何有效的数值表达式。

Randomize使用number参数初始化Rnd函数的随机数生成器,赋给它新的种子值。如果省略number,则使用系统计时期返回的值作为新的种子值。

数字的产生主要依靠以下程序语句:

<%Set Ados=(“”)%>

6 博客管理系统模块

该模块是博客管理系统中的重要模块,它也是博客管理系统的主模块,该模块的功能

丰富,管理员对本系统的后台管理与操作都将由该模块来完成。

该模块有如下几项功能:

博客管理(添加/管理日志、管理评论、管理博客公告) 会员管理(修改用户信息) 用户管理(添加/管理管理员)

系统管理(设置系统参数、备份数据库文件、添加/管理模版文件、管理上传文件、统计站内数据)

分类管理(添加/管理博客分类、添加/管理日志专题) 因此为实现各部分的功能,为每部分功能设计了相应的子模块。 现举部分子模块的详细设计:

6.1 博客管理子模块

模块简介

该模块用于对系统中所有的博客进行管理,该模块可以说是博客系统中最主要的模块,博客用户就是在这个模块中创建自己的博客发表自己的日志的。这个模板主要实现的功能有:发表/管理日志、管理评论。 模块体系结构

本模块分成六个子模块:写新日志模块、管理日志模块、管理评论模块、专题分类模块、公告管理模块、模板管理模块。各模块之间关系如下:

博客管理模块 写新日志模块 专题分类模块 管理日志模块 管理评论模块 管理模板模块 公告管理模块

图6-1模块体系结构图

设计说明

(1) 发表新日志子模块

写新日志是新闻管理页面的组成部分,为此设计了一个日志信息编辑录入页面,为了

实现这个功能而设计了相应的数据库文件blog(日志信息表)表。此部分的信息是由博客用户提交的,当管理员提交新的日志信息时,系统会将数据存入blog表中。 1.发表新日志程序流程图:

系统就是根据下面的运行流程把新的日志信息写入数据库的。 程序流程如下左图

管理员要求发表新日志 提交 系统将数据写入blog表 否 成功 显示成功信息

2.发表新日志程序的实现部分:

设计页面如上右图。

从图中可知发表新日志主要是填写标题、内容、和分类等信息,然后提交把日志信息保存在数据库中。

在这个模块中主要涉及到文件的上传,这里我们采用POST的信息传输方式,相对于GET 方式POST比较灵活传输的数据量的大小不受限制,下面看一句关键的程序代码: enctype=”multipart/form-data” 这一句说明用户要上传多种格式的文件,大家在上传文件时一定要加上这一句,否则无法上传成功。

(2) 管理日志子模块

管理日志子模块是博客管理页面的组成部分,该模块的数据库文件为blog(日志信息表)表。此部分的信息是由博客管理员提交的,当博客管理员提交对日志的修改/删除信息时,系统会将修改数据存入blog表中或删除表中数据。 1.管理日志页面运行流程图:

管理员要求管理日志 系统查询blog表 修改日志 系统查询blog表 成功 提交修改 显示成功信息 将修改内容写入blog表 否 成功 删除日志 在blog表中删除日志信息 否 显示成功信息

2.日志管理功能程序的实现部分

日志管理主要就是对日志的修改、删除的管理,其中日志修改的程序跟我们上一节讲的发表新日志的程序是类似的,都是普通的表单提交/接受。

删除日志程序中首先利用FileExists方法判断要删除的文件是否存在。FileExists是FSO的一个方法,可以用来判断指定文件是否存在,如果指定的文件存在则返回True,否则返回False。FileExists的语法如下:

object. FileExists(filespec) 其中object是必选项,因为FileSystemObject对象的名称。Filespec也是必选项,为文件名,表示要确定是否存在的文件。如果文件不在当前的文件夹中,则必须提供完整的路径名。

如果文件存在我们就要删除它,我们采用File对象的Delete方法,通过FSO的GetFile方法获得对文件的所有属性的访问,并建立File对象。建立对象后就可以直接操作获得的文件对象了,使用Delete删除指定的文件的程序代码:

Set f2=(MyPathRoot) 除了采用File对象的Delete方法删除文件外,我们还可以利用FSO对象的DeleteFile方法删除指定的文件。DeleteFile方法的语法为:

filespec[,force] Filespec为必选项,为要删除的文件名。

当使用DeleteFile时如果没找到匹配的文件,则会出现错误。DeleteFile方法在遇到出现的第一个错误时停止,该方法不会撤消错误发生前所做的任何更改。

6.2 系统管理子模块

模块简介

该模块用于对系统设置进行管理,这些设置包括系统的风格、系统的上传文件、系统的数据库文件、博客浏览页面的模版类型文件、系统的站点信息。因此,在管理上就包括如下功能:

设置系统的风格()

备份系统的数据库文件和上传的文件 添加/管理系统模版类型文件 管理(即决定删除与否)上传文件

统计站内信息数据(即系统的日志总数和系统用户数) 模块体系结构

为实现上述功能并且便于管理,设计时将该模块分为了六个子模块分别实现上述功能。这些模块包括:设置系统风格模块、备份数据库文件模块、添加模版模块、管理模版模块、统计站内数据模块、获取调用脚本模块、管理上传文件模块。

各模块之间关系如下:

设计说明

1 管理博客系统页面模板子模块

管理系统模板子模块是博客管理的组成部分,,,和相应的数据库文件style(系统模板数据表)表。此部分的信息是由系统管理员提交的,当管理员提交相应的模版样式文件时,系统会修改数据库表中模板的数据。 (1).管理系统模板运行过程

系统管理员在后台页面中可以直接修改系统模板样式文件的代码,再通过文件上传的方法将管理员提交的模板信息数据存入style系统模板数据表中。

程序流程如下左图:

设置系统模板 系统查询sysskin表

修改 修改sysskin表中的字段否 删除 删除sysskin表中的数据 否 操作成功 成功信息 (2).管理系统模板程序的实现部分:

添加新模板和修改模板就是上传一个文件到服务器上去,因为要上传文件,所以要将前台表单ENCTYPE属性设置成multipart/form-data值。这样就把表单的MIME编码设置成了允许上传文件的格式。

为了能够适应各种服务器,我们的博客系统采用了无组件上传的方式。所谓的无组件上传就是不需要在服务器安装什么上传足见,而是通过一个ASP页实现上传对象,。

,我们就可以通过:

Set upload=new upload_blog 建立上传对象了。上传对象通过Stream对象得到后台传来的二进制数据流,并且将其保存成相应的文件。

2 数据库备份与还原子模块

数据备份对于一个博客网来说很重要。当博客系统运行了一段时间之后不小心数据库被删除了,或者数据被破坏了,这时候备份数据库就非常的重要了,所以本系统要时刻注意数据库的备份。

(1).数据库备份与还原功能运行图:

在这个模块系统管理员发出对数据库的操作命令,。

管理员要求管理数据库 备份 否 操作成功 还原 否 成功信息

(2) .管理数据库程序的实现部分: 数据库备份程序() Dim fso, Engine, strDBPath

strDBPath = left(dbPath,instrrev(DBPath,\"\\\")) Set fso = (\"\") If (dbPath) Then

Set Engine = CreateObject(\"\")

\"Provider=;Data Source=\" & dbpath,\" Provider=;Data Source=\" & strDBPath & \"\" strDBPath & \"\(strDBPath & \"\") Set fso = nothing Set Engine = nothing

这是一段关键的代码,从中我们可以看到一个处理文件上非常重要的对象——FSO,也就是FileSystemObject对象。

FileSystemObject对象提供对计算机文件系统的访问。

下面的代码是使用FileSystemObject对象返回一个TextStream对象,此对象可以被读取或写入:

Set fso = (\"\") Set a=(“c:\\”,True)

在以上代码中,CreateObject函数返回FileSystemObject对象(fs)。使用CreateTextFile方法创建一个文件,作为TextStream对象(a),然后使用WriteLine方法在此文件中写入一

行文本。最后使用Close方法刷新缓冲区并关闭文件。

在这个模块中为了实现对数据库的管理功能在程序中使用了FSO对象的大量方法:BuildPath方法在现有路径后附加名称;CopyFolder方法将文件夹从某位置递归复制到另一位置;CreateFolder方法创建文件夹;CreateTextFile方法创建指定文件并返回TextStream对象;DeleteFile方法删除指定的文件;DeleteFolder方法删除指定的文件夹和其中的内容; GetAbsolutePathName方法从提供的指定路径中返回完整且含义明确的路径;GetFile方法返回与指定路径中某文件相应的File对象;GetTempName方法返回随机生成的临时文件或文件夹的名称,用于执行要求临时文件或文件夹的操作;MoveFile方法将一个或多过文件从某位置移动到另一位置;OpenTextFile方法打开指定的文件夹并返回一个TextStream对象,可以读取此对象或将其追加到文件。

7 博客浏览系统模块

博客浏览系统提供了浏览日志、阅读和搜索、系统登陆功能,因此在系统设计上将此模块分为了四个模块来完成这些功能,即系统登陆模块、博客浏览模块、日志阅读模块和搜索模块。现在就博客浏览模块和搜索模块介绍如下:

7.1 博客浏览模块

模块简介

此模块提供了给所有用户浏览博客的功能。系统启动后即可进入该模块,因此用户在系统启动时即可使用该模块浏览系统中的日志列表和博客列表。在设计上分为了两部分,一部分为系统所有博客列表和日志列表的总体浏览,另一部分为具体类型的博客浏览。

模块体系结构

博客浏览 整体浏览 分类浏览 浏览博客列表 浏览日志列表 分类博客 最新日志 热门日志

运行流程

系统启动 系统查询sysskin表 获取模板文件路径 系统调用模板 用户操作分类 博客列表 日志列表 最新列表 显示页面 显示页面 显示页面 设计说明

浏览模块是博客访问者接触最多的部分,为此设计了几个浏览页面,有系统主页面,博客列表浏览页面,日志列表浏览页面,同时为了实现这个功能而设计了相应的数据库文件sysskin(系统模版表)表,classname(博客专题表)表,blog(日志信息表)表,usertype(用户类型表)表。系统启动时会从sysskin表中查找博客系统的模版类型,然后启动主页面,之后的操作信息是由用户提交的,当用户点击相应的链接时,系统会从相应的表中查找数据,若有符合条件的博客信息则将结果显示于客户端的页面上。比如:点击日志,系

统则从blog表中查找日志内容,然后显示在页面上。

。在这个页面里,用户可以看到列表显示的日志题目和发表时间。

这个模块中采用RecommendColumn而不是Columaid作为文章所属关系的判断,因为在这个系统里一篇日志可以被推荐到多个栏目,为了使数据结构清晰,我们认为日志实际属于的栏目也是一个被推荐的栏目,并且是一个被推荐到的栏目,因此本系统采用RecommendColumn作为日志所属关系的判断。

,,。

访问量统计模块

对博客系统管理员来说,要想准确的知道浏览者喜欢哪类博客不喜欢哪类博客从而更

好的管理好博客系统,就必须获得页面访问的准确数据,虽然可以利用网络日志得到这些数据,但毕竟不太方便,所以要为博客系统设计访问量统计的功能。

下面是一段增加日志访问数的程序:

Function AddVistCount(blogID) Dim sqlAddVistCount sqlAddVistCount = “update tbl_PubBlogInfo set BlogTotalVisit = BlogTotalVisit + 1 where BlogID = ” & BlogID (sqlAddVistCount) end Function

这个函数非常简单,就是一个update语句,前台显示页面调用一次即将日志的访问量增加一。

8 用户手册

系统开发完成后,如何正确投入使用是一个系统成功运行的重要条件,因此,下面一

章将介绍系统的使用方法。

8.1 系统运行环境

由于系统开发是使用ASP技术,因此,在系统的配置上有一些要求,现就系统硬件和软件的配置要求说明如下。 硬件要求

CPU:Intel Pentium Ⅳ 1700MHZ 内存:256MB 磁盘空间:250MB

显示:800x600,256colors 软件环境

Microsoft Windows 2000或者Microsoft Windows XP Microsoft Internet Explorer

数据库:ACCESS

8.2 系统的安装

将本系统源代码目录下的所有文件和目录拷贝到想建立Web站点的目录下,如在D:\\blog目录下,然后打开IIS管理器,设置D:\\blog为虚拟目录,这样就可以运行该博客系统了。

8.3 系统页面及其功能

………………………………………添加系统模板页面 ……………………………………添加用户模板页面 …………………………………管理员管理页面 …………………………………………管理日志分类页面 …………………………………………系统数据统计 …………………………………………管理数据库 ……………………………………系统管理首页 …………………………………系统管理员登陆页面 …………………………………………修改首页公告 …………………………………修改用户名页面 …………………………………………修改注册条款页面 ………………………………………网站配置页面 ……………………………………系统模板样式表 ……………………………………系统模板管理 …………………………………上传文件管理页面 ………………………………………注册用户管理

…………………………………………用户模板管理 …………………………………………管理博客分类 …………………………………数据库连接文件 ……………………………网站数据统计 ……………………………………编辑框

……………………………………………博客帮助页面 ………………………………………系统首页 ……………………………………日志列表 ……………………博客列表

………………………………………流言板 ………………………………………加密文件 …………………………………………更新数据 ………………………………………上传文件 …………………………………添加日志页面 ……………………………………管理日志页面 …………………………………管理评论页面 …………………………………博客管理首页 ………………………………………修改博客信息页面 ………………………………………用户登陆页面 ……………………………………设定用户模板 …………………………………添加专题页面

…………………………………………………管理上传文件

8.4 系统的使用

常用操作说明

本系统操作简单、界面清晰、使用方便,由于本系统是基于Web开发的,因此只要在浏览器IE的地址栏中键入http://服务器IP域名即可启动本系统。 各模块的使用说明

博客浏览:系统启动后的界面如下图所示,此时,用户(包括所有用户)即可浏览本系统的博客内容,包括博客列表,日志列表,热门日志,最新日志等等。

系统登陆:在页面的“会员登录”版面上,注册用户输入正确的用户名和密码后,即可进入用户权限操作。点击“注册”按钮即可进行新会员的注册,之后的每一步操作都有相应的提示。登陆成功后,“会员登录”版面会变为如下图所示:

会员可以点击“更改资料”进行个人资料的修改。

点击主页面右上角的“管理登录”超链接即可进入管理员登录子模块。此时出现如下图所示的登陆页面:

系统管理员登录时,还必须填写系统产生的验证码,登录成功后即进入博客系统管理模块,在该模块中管理员可添加、修改、删除系统的各种设置。管理主页面如下图所示:

博客管理:博客用户通过首页几可以进入自己的博客管理界面如下图所示:

博客搜索:该模块设置在系统首页,用户只要在下图所示的搜索栏中输入所要查找的博客信息(如日志标题、日志内容、博客名称)后点击搜索按钮,就可进行查询。系

统也会以页面形式返回查找的结果。

阅读博客:点击如下所示的博客信息的链接即可进入阅读页面。

日志评论:如下图所示的日志评论页面,用户可以在此发表评论。

因篇幅问题不能全部显示,请点此查看更多更全内容