大学本科毕业设计论文_基于ASP大学校园BBS网站的设计
- 格式:pdf
- 大小:1.27 MB
- 文档页数:28
基于ASP大学校园BBS网站的设计
摘要
BBS已经成为人们获取信息、发表言论的重要场所。
它由论坛注册用户所发表的大量主题组成。
近些年来,随着校园网建设的发展,大学校园网BBS也越来越火,因此建设一个好的BBS显得越来越有必要了.本文论述了开发一个简单的BBS系统所用到的关键技术和方法。
其中运用了ASP技术、ACCESS数据库等等,
对上述技术的实现方法进行了详细的讨论,介绍了在WEB 服务器上,利用ASP技术和ADO 等技术,实现了一个简单的BBS系统的设计与开发,并详细讨论了该系统的实现过程及其结构。
关键字:论坛,基本功能,扩展功能,数据库,ASP
Abstract
Forum and chat room has become for people to obtain information and the important place of expression.It published a large number of registered users by the Forum of themes.In recent years, as the development of the campus network, Internet forums and chat rooms, university campuses have more fire.So building a good forum and a chat room are becoming increasingly necessary. This paper discusses the development of a simple system to use chat rooms, forums and the key technologies and methods.With the use of ASP, ACCESS database and so on.The realization of the above methods are discussed in detail, introduced a Web server.ASP and ADO, such as technology, a simple forums and chat rooms, the system design and development,and discussed in detail the structure of the system and its processes.
KeywordS:Forum basic functions, and expanded database, ASP
目录
摘要 (4)
Abstract (4)
1绪论 (5)
1.1BBS的发展背景 (5)
1.2 BBS对大学生学习生活的影响 (6)
1.2.1BBS提供了丰富的网络学习资源 (6)
1.2.2 BBS促进了协作学习 (6)
1.2.3 BBS提高了学生自主学习能力 (6)
2软件介绍及基本原理 (7)
2.1 ADO 技术 (7)
2.2开发环境及工具 (8)
2.3 ASP有关的内置对象的设置 (8)
2.3.1 Request 对象 (8)
2.3.2 Response 对象 (8)
2.3.3 Server 对象 (9)
2.3.4 Session 对象 (9)
2.4与ADO 有关的设置 (9)
3系统需求规划 (10)
3.1需求分析 (10)
3.2功能设计 (14)
3.2.1基本功能设计 (14)
3.2.2扩展功能设计 (15)
3.3设计可扩充功能的接口 (18)
4功能模块与数据库设计 (19)
4.1设计框架 (19)
4.2模块的划分及设计 (21)
4.3设计数据库 (23)
4.4创建数据库 (23)
5 系统实现与测试 (24)
5.1 验证性测试 (24)
5.2 添加、编辑和删除功能测试 (27)
6结束语 (29)
6.1 系统的特点与局限性 (29)
6.1.1 特点 (29)
6.1.2 局限性 (30)
6.2 实施过程中的一些体会 (30)
致谢 (32)
参考文献 (32)
1绪论
1.1BBS的发展背景
BBS是在1992年底随着国际互联网的开始流行而迅速发展起来的.互联网的产生使得以前只能在本地访问的BBS可以被全世界随意访问,
这对大多数人来说是极具诱惑力的.BBS
是一个有多人参加的讨论系统,在BBS上大家可以对一个共同感兴趣的问题进行讨论,自由地发表自己的意见与观点,并且能直接与其他的人进行沟通.按照网站的性质以及服务对象来分,迄今有以下几种类型:一是校园BBS.校园BBS作为主要的集中地,在BBS领域具有举足轻重的地位.
由于校园BBS的繁荣,吸引了很多的社会人士参与.二是专业BBS.一般是由各个著名的大公司组建,人们可以利用其交流自己对商品的看法,更为重要的是可以解决商品使用中的问题.三是商业BBS.它是由ISP建立的BBS站点,这类BBS站点各种信息比较多,内容相当丰富.
四是小型局域BBS.一般是由个人或小型集体建立,为小范围信息交流服务.
五是业余BBS.一般由BBS爱好者个人利用一些免费空间办的BBS,目的是为广大网友提供一个在某些专业上的交流场所.六是新闻媒体BBS.是由新闻媒体网站设立的,为广大网友提供对新闻信息进行评论、发表意见和观点的场所.
随着互联网事业的蓬勃发展.BBS,这个具有强大实时交互功能,信息交流的平台,使人们不再像电视观众、电台听众、报纸杂志读者一样只是被动地观看、收听、阅读,而是可以积极而及时地参与讨论,在了解他人观点意见的同时也可以发表自己的看法.
1.2 BBS对大学生学习生活的影响
1.2.1BBS提供了丰富的网络学习资源
论坛是一个经过学习者整理加工过的网络资源汇en集中心,从新闻、学习到娱乐、体育,从文字到视频、音频,BBS汇集了各种形式、内容的网络资源。
不少BBS都设有专门的Net Resources(网络资源)板块;FTP技术和BT技术的发展更是为BBS站内资源的更新、共享提供了方便。
如今,大部分大学的BBS论坛都有相应的FTP服务器,不少BBS还与网络新兴的BT技术、Blog(博客)技术等连接起来BBS水木清华站就有“水木Blog”的栏目)。
1.2.2 BBS促进了协作学习
基于网络的论坛社区也是各种学习资源组合的场所,为学习者提供了学习环境。
作为一个学生参与论坛的网络活动可包括许多种学习的意义,在特定板块内,论坛参与者围绕某个话题或者问题,通过发表、回复话题、版面讨论、站内信件等方式进行互动讨论、相互探讨,形成了一种以学习者为中心的学习方式。
从教育网内人气排名前十名的论坛的网友参与的情况来看,在各大学习板块里,基本上每张帖子提出的问题都可以得到网友友好的、认真的回复解答,有着浓郁的协作探讨的学习气氛和良好的学习效果。
1.2.3 BBS提高了学生自主学习能力
网络学习的本质是一种自主学习,论坛提供了丰富的网络学习资源,使学习者能自主选择和控制学习地点、学习时间、学习方法和学习内容。
在论坛里,学生可以自主地围绕学习问题,通过发帖、回复的形式提出讨论,寻求解答帮助,提高了学习的积极性和自主学习的能力。
2软件介绍及基本原理
2.1 ADO 技术
ADO (ActiveX Data Objects)
是微软公司提供给网页开发者在网页中存取数据库的最新技术,
它也是ASP内置的重要组件,ADO主要的目的是为了存取或修改数据源的数据、或增加数据到指定的数据源, 数据源不仅包括数据库,而且包括dBase、Excel、Foxpro、Access
或文本文件等一些小型的数据表, 所以, 只要是ODBC
驱动程序所能存取的数据源皆是ADO
存取的对象。
ADO主要是由Connection对象、Command对象、Paramete r对象、Dataset对象、Field对象、Property对象及Error对象等七个对象与Fields数据集合、Propertie s数据集合、Par ameters数据集合及Errors数据集合等四个数据集合所组合而成, 其功能概述如下:
ADO提供的七个对象:
(1)Connection对象负责对指定的数据源进行连接,除此之外,它还可以通过事物(Transaction)来确保在事物中所有的数据源变更的全部成功。
(2)Command对象负责对数据库提供请求,也就是传递指定的SQL使命,除此之外,也可能通过Command对象对数据库发出数据定义语言(DDL ,Data Definition Language)。
(3)Parameter对象负责传递Command对象所需要的SQL命令参数。
(4)DataSet对象负责浏览和操作从数据库取出的数据。
(5)Field对象表示指定DataSet对象的数据字段。
(6)Property对象表示ADO 的各项对象属性值。
(7)Error对象负责记录连接过程所发生的错误信息。
ADO的七个对象及四个数据集合相互的关系图如图
ActiveX Data Object关系图
2.2开发环境及工具
软件:Internet Information Server(IIS) 5. 0,
Dreamweaver MX,
ACCESS 2000。
2.3 ASP有关的内置对象的设置
2.3.1 Request 对象
HTTP
通讯协议是一种请求与响应(Request/Response)的通讯协议,因此通常由客户端向Web
服务器提出请求,Web服务器才会响应信息。
因此在ASP中,特别将“客户端提出的要求”与“Web 服务器响应的信息”等动作封装成Request 对象与Response对象。
换言之, Request
对象通常包含了用户端的相关信息,如浏览器的种类、表头信息、表单参数及cookies 等等。
2.3.2 Response 对象
每一种程序语言或开发工具一定都有与用户沟通的界面或函数, ASP
也不例外。
在ASP 中负责将信息传达到用户的对象就是Response 对象。
2.3.3 Server 对象
Server 对象允许用户取得服务器提供的各项功能,例如Server 对象CreateObject
方法允许客户端用户建立一个ActiveXServer
组件实例,其建立组件实例会随着服务器端完成ASP网页的处理而自动被释放。
如果希望
此对象实例可以跨多个ASP 网页,就要用到Session 对象保留该组件实例,直到Session
对象的运行时间到了,或是在其他ASP 网页调用 Session 对象的Abandon
方法,此组件实例才会被释放。
2.3.4 Session 对象
Session对象在ASP程序编写中占了相当重的份量, 由于网页是一种无状态的程序, 因此几乎无法知道用户的浏览状态。
必须通过Session对象记录用户的相关信息,
以供用户再次对此Web服务器提出要求时作确认, 例如, 在某些特定的网页中,
常需要用户输入确认的账号和密码, 假如这些身份确认的结果无法保留,
那岂不是每一个网页都需要重新输入一次密码。
必须说明, Session 对象只能适用于具备Cookie功能的浏览器。
2.4与ADO 有关的设置
在本BBS系统中主要对ADO提供的四个数据集合进行了设置:
(1)Connection对象包含Errors数据集合, 在Errors
数据集合中包含数据源响应失败时所建立的Errors对象.
(2) Command对象包含Parameters数据集合, 在Parameters数据集合中包括Command
对象所有的Parameters对象.
(3) DataSet 对象包含Fields数据集合, 在Fields数据集合中包含DataSet
对象的所有Field 数据字段对象.
(4)Connection对象、Command对象、DataSet对象与Field对象皆包含一个Properties
数据集合, 在Properties数据集合中包含所对应Connection对象、Command对象、DataSet 对象与Field 对象的Property对象.
3系统需求规划
用户使用论坛,有一定的流程:用户注册登陆进入论坛,就某个话题(主题帖)展开讨论,通过发帖功能发布新的话题,通过回帖的功能回复已有的话题,通过搜索功能查找已有的话题;管理员通过管理功能创建、编辑、删除论坛的板块,管理注册用户,管理帖子,设置
论坛基本参数。
这样的流程就决定了论坛的需求,如图所示:
论坛流程图
3.1需求分析
从流程图上可以看到论坛完成的走向,其实每一个流程的节点处都有许多功能,如下表:
论坛功能列表
论坛板块列表浏览帖子发帖回帖搜索帖子
编辑帖子删除帖子精华帖置顶帖子
转移帖子用户注册用户登陆控制用户权限
修改注册信息设置论坛参数管理板块管理用户
在这十六个凌乱无序的需求进行整理、归纳、再构建系统的整体框架,设计处数据实体、接
口、用户界面,最终将所有功能需求装化为可以编码实现的程序框架。
首先,通过观察论坛所有功能需求,可以发现在这十六个功能需求中,如果按照不同事务分类,可以分为四类对象:板块、帖子、用户和论坛。
这四类对象,可以设计为四个数据实体,如果用数据库存储它们,即可以设计四个基本数据表。
如图:
板块类有浏览列表和管理两个方法,管理方法又可以分为创建、修改和删除3个子方法
,如图:
板块对象的相关用例图
帖子类有浏览、发帖、回帖、搜索和管理5个方法,浏览方法又可以分为列表和查看2个
帖子对象的相关用例图
用户类有注册、登陆和管理3个子方法,管理方法又分为添加、删除和设置权限3个子方法,如图:
用户对象的相关用例图
论坛一般存在两种用户,分别为注册用户和管理员。
用户的权限是向下覆盖的,即上级权限包含下级权限,在本论坛中,管理员的权限是上级权限。
与注册用户相关的功能,其实就是论坛前台的主要功能。
论坛系统的前台,是用户讨论问题的平台,发帖、回帖一直贯穿用户整个的前台活动。
同时,由于论坛系统的帖子管理是管理员在帖子浏览时进行的,所
以编辑帖子、删除帖子、转移帖子、置顶帖子和指定精华帖等功能也安排在前台实现。
其他与管理员相关的功能,包括板块管理、用户管理和论坛设置等都是管理员在后台进行的操作。
3.2功能设计
3.2.1基本功能设计
通过需求分析,论坛的基本功能可以从众多的需求中筛选出来。
顾名思义,基本功能就是构成论坛系统的必要功能,具备这些功能的Web系统即是论坛。
基本功能:
●发帖。
论坛最初是为了相互讨论话题而诞生的,发表帖子就是表达自己的看法,与
他人进行讨论,因此发帖是论坛首要的功能。
●浏览帖子。
发表了帖子,就要供他人浏览查看,与他人分享自己的想法和经验。
●回帖。
浏览了他人发表的帖子,想要发表自己的想法,参与讨论,就可以回复这个
帖子。
其实,发帖→浏览帖子→回帖三大功能周而复始的循环进行,就构成论坛。
每个参与论坛的人,主要目的就是发帖,查看已经发表的帖子,针对自己感兴趣的帖子进行回帖,参与讨论。
三大基本功能的相互关系如图:
3.2.2扩展功能设计
除了基本功能之外,其他的论坛功能都是扩展功能。
●注册登陆。
原先的论坛在发帖回帖时,需要填写自己的笔名。
这样,经常发帖的人
总是要重复填写笔名,比较麻烦。
因此,论坛扩展了用户注册登陆功能,参与论坛
的注册自己的笔名以及个人信息,拥有论坛中的身份,发言时就不需要重复填写个人信息了。
●分板块浏览帖子。
随着论坛帖子数量的增多,讨论相同话题的帖子聚集在一起,引
出了论坛新的扩展功能,即分板块浏览帖子,属于同一板块的帖子讨论同样的话题。
这样,就使得对某一话题感兴趣的用户不会被其他帖子干扰,也有利于相同兴趣
的用户相互间讨论,不易跑题。
●编辑帖子。
发帖回帖的用户,如果需要修改更新自己发表的帖子内容,就引出了编
辑帖子内容这个扩展功能,提供给用户更新自己发言的选择。
对于论坛管理员,可以编辑任何帖子的内容,也算是提供给管理员进行管理的选择。
●删除帖子。
如果用户发表了不符合论坛规则的帖子,则需要管理员删除这些帖子,
这就引出了删除帖子的扩展功能。
●转移帖子。
论坛划分了板块,如果帖子内容不属于所在板块的关注话题,那么管理
员可以选择将此帖移动到所属话题的板块中去,这就引出了移动帖子的扩展功能。
这个功能是随着板块功能的出现而出现的,板块将帖子进行了分组,从而提出了随板块移动帖子的要求。
●置顶帖子。
帖子一般是根据发表以及回复时间到序排列的,这样先发的帖子就慢慢
排到后面,管理员如果需要强调某些帖子重要,又必看性,就要打乱默认的排列顺序,将这些帖子放在列表的最前端,不再按照时间进行顺序的变化,但是还要保证其他帖子按照时间变化顺序进行排列,这就引出了置顶帖子的扩展功能。
●指定精华帖。
如果管理员认为某个帖子的内容非常好,可以打上标记,推荐给看帖
的用户,这就引出了指定精华帖的扩展功能。
用户可以选择只看打上标记的精华帖。
●搜索帖子。
论坛中的帖子越来越多,用户需要从大量的帖子中找到自己需要的内容
,这就引出了搜索帖子的扩展功能。
●管理板块。
论坛板需要先创建,才能被使用,管理员还可以删除修改板块的相关信
息,因此管理板块是管理员使用的扩展功能。
●设置参数。
论坛一般有一些初始化信息,比如论坛名称,每页显示帖子数量等参数
信息,管理员也可以在后台界面自行设置,这页属于扩展功能。
●管理用户。
管理员可以对论坛的注册用户进行管理,直接添加用户,赋予相关权限
,也可以修改已注册用户权限,对违规用户可以删除,这个扩展功能便于管理员对论坛用户的管理。
论坛的扩展功能如图:
3.3设计可扩充功能的接口
列出了所有基本的和扩展功能之后,在设计时需要考虑以后扩充的余地,即在给论坛添加新的功能的时候,原有的功能正常可用,不受影响。
或者丰富扩展某个功能时,能够方便衔接。
这就要求在设计程序时,每个功能保留开放的接口,通过接口可以对功能进行扩充,也可以与新功能进行挂接。
其实现的原理及思路如图:
功能的可扩充接口实现原理
4功能模块与数据库设计
4.1设计框架
在确定了论坛系统的设计思路之后,还需要归纳成系统的相关模块,每个模块实际上就是功能的合理组合。
由于已经将功能做了前台与后台的分类,因此模块也应该分为两大类:前台模块和后台模块。
用户在前台的注册、登陆,以及修改个人的注册信息组合成注册信息组合成注册登陆模块。
用户浏览板块、浏览主题帖列表、查看帖子组合成浏览模块。
用户发帖、回帖、编辑自己发布的帖子组合成发帖回帖模块。
管理员编辑帖子、删除帖子、转移帖子、置顶帖子和精华帖子组合成管理帖子模块。
以上4个模块是前台模块。
后台模块都是与管理员相关的,设置论坛参数单独为论坛设置模块;创建、修改和删除板块为管理板块模块;添加、删除和
设置权限为管理用户模块。
BBS的模块体系图:
从用户角度分析问题,首先区分系统中有几种用户,目前的论坛系统,为了使其清楚易懂,简化了用户体系,论坛中只有两种用户:注册用户和管理员。
一般论坛中的版主权限,划分为管理员,这也是为了使读者容易分清论坛的使用者和管理者。
对于注册用户,在论坛中的行为可归纳如下:
●注册个人身份,登陆论坛,登陆成功后可以修改自己的注册信息。
这些行为只与用户自
身相关,功能独立,设计成注册登陆模块。
●浏览板块列表,选择某板块,浏览其下的主题帖列表,查看帖子内容,搜索需要的帖子。
这些行为是用户读取论坛的板块及其帖子的相关信息,设计成浏览模块。
可以发表新帖子,也可以回复已有的帖子,同时可以编辑自己写的帖子内容。
这些行为是用户参与论坛讨论,发表自己见解的行为,设计为发帖回帖模块。
管理员需要负责整个论坛的正常运转,因此他需要更多的管理功能,可以归纳为如下行为:●具备注册用户的所有功能。
因为管理员也是论坛用户,可以参与论坛中的讨论。
●管理帖子。
管理员对论坛的帖子有监督的权利,好的帖子要奖励,捣乱的帖子要删除,
标识精华帖,置顶帖子,转移发错板块的帖子,这些行为都是针对帖子的操作,设计成管理帖子模块。
●管理板块。
论坛中的板块,需要管理员进行创建、管理板块信息,这些针对板块的操作
,设计成管理板块模块。
管理用户。
用户注册成功后,需要管理员赋予权限,才能使用论坛的相关功能。
同时,管理员可以自主添加、删除用户,这些针对用户信息的操作,设计成管理用户模块。
4.2模块的划分及设计
每个模块的功能都真实反映需求,通过对需求的认真分析,可以设计出符合要求的单独模块。
但是,对于一个论坛系统来说,要很好地把握系统地构架,把零散地功能模块用一条主线串连起来,构建完整的系统。
对论坛系统来说,联系各个模块的主线是使用者的权限,用户能够使用论坛的哪些功能是由用户的权限决定的。
论坛的每个功能都与相应的权限对应。
例如,注册用户具有浏览帖子、发帖、回帖的权限,那么他就能使用论坛中的浏览、发帖、回帖功能。
同一类用户使用的功能模块,是以使用者为中心连接起来的。
另外,操作同类事务的功能模块,也是有相互关系的。
因此,浏览模块与发帖回帖模块、管理帖子模块关联,是由论坛的系统流程决定的,如图:
帖子相关模块关系图
管理板块模块与浏览模块关联,是由帖子与板块的父子关系决定的。
帖子依附于板块
,先有板块,后有帖子,帖子必须发表在某个板块中,如图:
管理板块模块于浏览模块关系图
管理用户模块与注册登陆模块关联,是由同一类对象——
用户决定的。
注册后获得论坛的身份,成为用户,所有的用户需要接受管理员的管理,用户登陆证明自己在论坛中的身份,如图:
管理用户模块与注册登陆模块关系图
弄清楚模块间的相互关系,就可以设计出论坛系统的整体架构了,如图:
系统整体架构图
系统因入口的不同而分为前台系统与后台系统。
前台系统包括注册登陆模块、浏览模块、发帖回帖模块、管理帖子模块;后台包括管理用户模块、管理板块模块。
之所以要把属于管理员权限的管理帖子模块归属于前台,是因为,对于一个论坛系统,帖子是最主要的,为了方便管理,管理员需要一边浏览查看一边进行管理,管理时需要了解帖子的详细内容,以及相关回帖信息,因此将帖子的管理界面融合在前台的浏览界面中。
至于其他的模块则比较清楚,是根据用户的权限划分的。
4.3设计数据库
本系统所使用的数据库服务器为ACCESS 2000,它在ACCESS 2000的基础上,
扩展了ACCESS的总体功能与性能、工具界面更加方便合理、全面的数据完整性保护、系统
安全性更高。
ACCESS 2000的数据库空间不会受限于Device空间大小,
方便了数据空间的扩展, 使ACCESS
2000作为一个网络数据库管理系统,其扩展已超出了单个物理计算机的限制,并且多服务器“分布式”事物的内在支持更加充分.本系统主要使用了存储过程S tored Procedure,
所谓Stored Procedure实际上就是一段保存在数据库中的程序,
通过一个名称的命名,其中包含有处理数据库存取与运算的SQL语句,
并且将这样的程序文件紧密结合在数据库中,这样我们的前台应用系统在执行过程中,可
以直接执行数据库中设置好的Stored Procedure,甚至可以传递参数。
4.4创建数据库
ACCESS 2000 的Manager管理工具是一个非常好用的可视化管理工具, ACCESS 2000中提供的datetime和text两种字段类型,其中datetime是用来保存日期和时间数据的,text 是用来保存不定长度的备注说明内容的, 有了这两个数据类型,
应用系统中就不用再为输出格式和限制字符串长度而增加额外代码了。
数据表间关系:
序号数据表名称说明
1T_Operator操作员(用户)表
2T_Forum论坛回帖表
3T_Topic论坛主题表
4T_UserPara系统参数表
5T_Mark积分头衔表
6T_OperatorFunction用户功能权限关联表
7T_Function功能表
之所以这样设计数据表间关系,主要是考虑论坛中各个对象得相互关系,帖子属于板块,回复帖从属于主题帖,帖子的作者属于用户,因此板块、主题帖、回复帖是一层层的从属依赖关系,帖子的作者必须是论坛的用户,帖子不能脱离板块、用户而单独存在。
5 系统实现与测试
本论坛系统完成之后,就必须设计许多的测试用例来验证本系统的正确性,容错能力/恢复能力,信息安全性,可靠性等,尽可能多地找出系统的错误所在。
5.1 验证性测试
在登录论坛之前,论坛首页上显示
“您的当前状态是:未登录!”(如图1)此时,该用户除了能够进行用户注册之外,没有任何权限访问论坛的任何一个模块。
当点击任何一个功能按钮时,页面将会显示:“您没有登录,请返回!”
当用户点击“注册”按钮,页面便跳转到用户注册界面(如图
2),若注册成功,则显示“注册成功”(如图3),否则显示“发生错误···返回”。
图 1
图 2 图 3
当点击登录按钮,则页面跳转到登录界面(如图
4)用户成功登陆之后,页面即显示您的当前状态为“已登录”(如图
5)。
只有当用户登录之后才能够修改该用户的信息,否则,当用户点击“修改注册信息”
按钮时,页面会显示“没有登录,取不到用户信息。
请返回”。