目 录
2.1.2 基于Web的通用BBS系统技术可行性分析... 4
3.2.2.4 VBScript及JavaScript脚本语言... 28
3.2.3.4 在贴子中实现超文本信息输入和显示... 51
基于Web的通用BBS系统的建立与维护
作者:
关键词
BBS、ASP、ADO、MS Access、JavaScript、VBScript、RegExp
本文是一篇讨论基于Web的数据库管理的本科毕业论文,它详细地讲述了开发一个基于Web的通用BBS(BullitinBoard System)网站系统所用到的技术和方法。其中运用了ASP技术(Avtive Server Page)、ADO技术(ActiveX Data Object)、MS Access数据库技术、RegExp技术(RegularExpression 正则表达式)、VBScript及JavaScript脚本语言技术等等,并从几个不同的方面来对上述技术的实现方法进行了讨论。
一、前言
进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。
本文讨论的是一个基于Web的通用BBS网站,它具有BBS网站应该具有的所有功能。
二、系统定义
2.1 系统分析
2.1.1 Internet以及Web技术的发展
Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。
最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由TimBerners Lee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW,俗称“万维网”。
所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。进入的网页通常不会只有一页,而是整个网站的内容。
“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自已对社会对生活的理解和建议。
2.1.2 基于Web的通用BBS系统技术可行性分析
BBS系统就是提供给注册用户一个平台,会员用户可以通过Internet接入,登录本系统,在这个平台上发表文章、阅读文章、回复文章等等。
此类系统通常有以下四种类型的操作用户:匿名用户、普通用户、版面管理员、超级管理员。每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。与之相应,此类系统通常应具有以下功能:用户注册、用户登录、发表文章、阅读文章、回复文章、分页查找、主题查找、作者查找、个人资料维护、找回密码、版面管理、版主管理、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器。这就是所谓的B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。
B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
将应用程序分成好几个离散逻辑组件,就是多层式结构 (N-Tier) 应用程序。最常见的选择是分成三个部分:表示层、事务逻辑层和数据层(3-Tier),不过也有其它的组合。多层式结构应用程序,在一开始是解决某些与传统客户端/服务器 (主从式) 应用程序相关的问题,但是随着 Web 的出现,此结构已经成为主导新程序之开发的结构。下面就是3-Tier结构各层功能以及经常采用的技术作个简介:
表示层主要运行于客户端浏览器,采用Script (脚本)语言编写。HTML、JavaScript、VBScript是此类应用系统中展示层最常用的脚本编制语言,结合CCS以及ActiveX技术,能设计出交互相当灵活功能又相当强大的客户端网页。
事务逻辑层设计通常有三个选择:ASP网页、COM或COM+组件、DBMS中所执行的预存程序。将程序代码的一部分,建立成执行于数据库管理系统 (DBMS) 中的预存程序,使数据与程序代码储存在相同的位置,有助于最佳化执行效率,但是,预存程序都依赖于特定的数据库系统,在编写和侦错方面都相当复杂,只适宜于大型的商业应用系统。以 COM 对象的方式,编写中间层 (Middle Tier) 事务逻辑,可以使用全功能的语言,来产生经过编译的执行程序,执行效率也相当高,此外,在 COM 对象中包装事务逻辑,还可以清楚地将此程序代码与网页内含的展示程序代码分隔,这样可以使应用程序更易于维护,但是,COM对象的部署也有一定的麻烦,新编写的组件对象,只有在服务器重新启动后才能被应用程序调用。用ASP 网页设计事务逻辑相对来说比较简单,但是,ASP网页采用脚本语言来编写事务逻辑,比如VBScript,程序代码只有在执行时才被翻译,这样会降低执行效能,此外,ASP 网页中的程序代码也是难以维护的,因为事务逻辑程序代码与建立使用者接口的展示程序代码彼此混杂在一起。
数据层较为灵活,视系统规模可选择Sybase、Oracle、My SQL、SQLserver或者MS Access。
综上所述,结合本系统实际需要,本BBS系统采用B/S结构,使用微软公司的技术解决方案。开发环境采用微软的FrontPage2000+PWS。引入Windows DNA 概念,将Windows DNA 应用到系统开发中。采用3-Tier软件结构:表示层采用HTML、JavaScript或VBScript结合CSS、ActiveX技术来编写;事务逻辑层,考虑到本系统为通用BBS系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的WEB平台,特别是个人用户想在一些免费主页空间搭建自已的论坛,而这类免费主页空间通常只支持ASP来处理服务器端数据或数据库,另外,通用系统应该具备较大的可扩展性,目前,ASP.NET技术发展较快,未来应该能以较小的成本用ASP.NET重写本系统,因此,本系统事务逻辑层设计采用ASP网页;至于数据层,本系统采用最基本的MS Access数据库系统,视需要,系统作较小的改动就可以移植到其它大型数据库系统。
本系统要求客户端支持IE4.0以上或与之兼容的浏览器软件,客户端硬件最低要求对应于IE4.0的硬件平台要求。服务器端要求支持ASP以及MS Access数据库。
本系统的开发环境和开发工具为:Windows98,PWS,FrontPage2000,MSAccess。
2.2 需求分析
2.2.1 系统的综合要求
1、 系统界面要求
系统的初始界面假定用户是匿名登录,用户可以通过初始界面提供的统一的用户登录接口,登录进入各自的操作界面
2、 系统功能要求
本系统应具有通常BBS网站应该具有的所有功能,包括用户注册、用户登录、匿名登录、发表文章、阅读文章、回复别人的文章、分页查找、主题查找、作者查找、多种方式排序、个人资料修改、在线人数统计等,此外,用户在发表贴子时,能输入带格式文本,用户在发表或回复一篇贴子时,能获得相应的积分,其积分能反应此用户在本论坛的活跃程度。
本系统操作用户按不同级别依次可分为:匿名用户、普通会员用户、版主会员用户、超级用户。高级别的用户可以继承低级别用户的公用功能。同时,各级别用户具有一定的只有以本级别身分登录才具有的私有功能。
匿名用户功能要求---通用功能:查看各版面文章、查看系统版主列表、查看系统会员列表;私有功能:注册为系统正式会员、会员找回遗失密码、登录为正式会员。
普通会员功能要求---通用功能:发表或回复贴子、个人资料维护、退出或重新以匿名身分登录;私有功能:申请为版面版主、注销会员资格。
版主会员功能要求---通用功能:贴子管理、张贴公告、友情链接管理
超级用户功能要求---通用功能:论坛基本设定、版面管理、版主会员管理、普通会员管理
3、 系统性能要求
对于贴子查看、发表贴子以及回复贴子这类频繁发生的系统操作,要采取适当的技术优化这类数据操作,以提高数据存取效率。
4、 安全性保密性可靠性等其它方面的要求
高级别用户的所有管理操作要有针对低级别用户的身分识别功能,以防止低级别的用户越权执行高级别用户才具有的操作功能。
2.2.2 系统的数据要求
根据系统的功能需求,本系统管理和维护以下几种数据元素(实体Entity):会员、管理员、论坛、论坛版面、贴子、友情链接、日志。
1、会员实体
会员用户包含这样一些基本属性:用户名、用户密码、用户密码提示问题、用户密码提示问题答案、用户EMAIL、用户真名、性别、出生年月日、主页URL、联系方式、证件名称、证件号码、积分。其中,用户名为用户唯一标志,不允许重名。积分为此用户在本论坛发表文章以及文章被