




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 Web 的 BBS 系统 开发报告 管理科学与工程学院 息 072 实验第四小组 组长 史孟玲 组员 方卫卫 刘宇 黄锐 黄德正 时间 2010 年 6 月 13 日 星期日 1 目录 前言前言 3 基于基于 WEBWEB 的的 BBSBBS 系统开发计划系统开发计划 4 一 技术支持 4 二 系统定义 5 2 1 系统功能定义 5 2 1 1 基于 Web 的通用 BBS 系统技术可行性分析 5 基于基于 WEBWEB 的的 BBSBBS 系统需求分析报告系统需求分析报告 8 一 系统的综合要求 8 二 系统的数据要求 9 三 系统的逻辑模型 10 四 系统实体联系 12 基于基于 WEB 的的 BBS 系统设计报告系统设计报告 13 一 系统概要设计 13 二 系统结构的设计 14 三 基于 UML 建模 14 四 系统详细设计 16 软件实现测试与评估文档软件实现测试与评估文档 19 一 实现方法 19 二 ASP 网页数据库的操作 21 三 网页安全性的实现方法 24 四 软件设计小结 27 BBS 系统基于系统基于 UML 建模建模 28 一 用例图 28 二 时序图 30 三 协作图 35 四 系统行为图 41 五 系统组件图 43 六 系统配置图 44 七 系统类图 44 2 实验第四小组 姓名学号角色备注 组长史孟玲 079094302 管理者制定软件开发计划 系统定义 分配人员任 务 组员方卫卫 079094288 开发人员负责系统的程序开 发 组员黄德正 079094292 分析人员需求分析 组员黄锐 079094293 测试人员测试软件性能 前言 随着网络科技的不断发展 人们与网络的联系也越来越紧密 而网络也在无形之中改变 着我们的生活 我们从过去那种万事恭亲的生活方式中仿佛一下子得到了解脱 看如今我们 的生活 买东西要上网 聊天要上网 查阅资料要上网 通信要上网 朋友团聚要上网 甚 至找个人生伴侣也要上网 暂且抛开它的负面影响 就单单在改变人们生活习惯 缩短时空 距离 增进交流等方面网络所做出的贡献也使不可磨灭的 甚至于现在网络技术的发展状况 也成了计算机科技的发展一个重要衡量标准了 互联网的浪潮席卷了我们生活的每一寸空间 从全球咨询 到奇闻异事 从时事要闻到 衣食住行 只有我们想不到没有在网络上找不到 怪不得现在逢人必说的一句话 今天你上 网了吗 由此可见网络给我们工作 生活 学习所带来的翻天覆地的变化 网络一个很重要 的方面就是使信息交流多样化 多层次化 我们不仅能在这里获取自己所急需得东西 更能 和网路上的朋友来就某一方面来进行探讨 研究 交流 所以互联网更为我们提供了我们一 个互动式的平台 有句话叫 没有比脚更长的路 没有比人更高的山 现在我们要说 没有 比互联网更广阔的空间 网络可以使我们与世界走得更近 打破国界隔阂 打破了文化樊篱 无论在亚西亚 还是在欧罗巴 无论在美利坚 还是在古埃及 同时网络可以使我们开阔视 野 更新观念 取长补短 激发创造力 BBS 论坛系统是一个多人参与 多向交流的网络大论坛 它将世界上各个角落的具有相 同兴趣 相同需求的人联系了起来 交流自己的看法 分享有益的经验 或为有困难的人提 供帮助 通过 BBS 系统可随时取得各种最新的信息 并且随着社会的不断发展更多的人开始 注意它 校园里有校园 BBS 用它来开阔校园空间 给同学门自己发挥的天地 公司有 BSS 通过它让更多人认识自己 认识自己的产品 从而创造出更多的效益 政府也有 BBS 有了 3 它能了解民意 体察民情 从而更好的为人民服务 国家也有 BBS 有了它能加强与世界各 国的联系 来增进彼此之间的联系 促进经济社会的发展 所以我选择了 基于 Web 的 BBS 系统设计与实现 作为毕业设计课题 通过对 BBS 的设计和实现 为大家提供一个了解和交 流校园生活的平台 基于 Web 的 BBS 系统开发计划 关键词关键词 BBS ASP ADO Access2003 Html JavaScript VBScript RegExp 摘要摘要 本文是一篇讨论基于 Web 的数据库管理的本科毕业论文 它详细地讲述了开发一个基于 Web 的通用 BBS Bullitin Board System 网站系统所用到的技术和方法 其中运用了 ASP 技术 Avtive Server Page ADO 技术 ActiveX Data Object Access2003 数据库技术 RegExp 技 术 Regular Expression 正则表达式 网页制作 Html VBScript 及 JavaScript 脚本语言技术 等等 并从几个不同的方面来对上述技术的实现方法进行了讨论 一 一 技术支持技术支持 进入二十一世纪 计算机技术迅速向着网络化 集成化方向发展 传统的单机版应用软 件正在逐渐退出舞台 取而代之的是支持网络 支持多种数据信息 多媒体 的新一代网络 版应用软件 而目前网络版软件中似乎存在着两种不同的趋势 一种是称为客户端 服务 器的 C S 结构应用系统 这类软件具有结构严谨 运行效率高 服务器端压力小 安全性好 等优点 被广泛运用于局域网中 而另一种 是称为浏览器 服务器的 B S 结构应用系统 它的特点是在客户端直接采用了功能强大的浏览器软件作为界面 其优点在于软件开发效率 高 客户端不受操作平台的限制 也不受地域的限制 网络传输量少 即适用于局域网 更 适用于 Internet 而且投资小 见效快 用户可以不必进行服务器方面的投资 而是去租用 4 甚至是免费使用 ISP 的服务器资源 因而受到越来越多中小型单位的青睐 本文讨论的是一个基于 Web 的通用 BBS 网站 它具有 BBS 网站应该具有的所有功能 二 系统定义二 系统定义 2 2 1 1 系统系统功能定义功能定义 BBS 系统就是提供给注册用户一个平台 会员用户可以通过 Internet 接入 注册登录本 系统 在这个平台上发表帖子 阅读 回复 词条搜索 更改信息 管理帖子和个人信息等 等 此类系统通常有以下四种类型的操作用户 匿名用户 普通用户 版面管理员 超级管 理员 每类用户有其不同的操作集 系统通常提供一个统一的登录页面 此页面应能自动识 别不同级别的用户 并提供不同的操作界面 与之相应 此类系统通常应具有以下功能 用 户注册 用户登录 发表帖子 阅读帖子 回复帖子 分页查找 主题查找 作者查找 个 人资料维护 找回密码 版面管理 版主管理 用户管理 友情链接管理等等 所有操作都 可以由用户在客户端浏览器中完成 而服务器端程序会按用户的要求来完成对系统数据的操 作 并将结果传给 Web 服务器 再由 Web 服务器处理成 HTML 文件后发送到客户端浏览器 这就是所谓的 B S 结构应用系统 B S 结构即 Browser Server 浏览器 服务器 结构 是随着 Internet 技术的兴起 对 C S 结构的一种变化或者改进的结构 C S 结构 即 Client Server 客户机 服务器 结构 是大家熟知的软件系统体系结构 通过 将任务合理分配到 Client 端和 Server 端 降低了系统的通讯开销 可以充分利用两端硬件环 境的优势 早期的软件系统多以此作为首选设计标准 2 2 1 1 1 1 基于基于 WebWeb 的通用的通用 BBSBBS 系统技术可行性分析系统技术可行性分析 B S 结构下 用户界面完全通过 WWW 浏览器实现 一部分事务逻辑在前端实现 但是 主要事务逻辑在服务器端实现 形成所谓 N Tier 结构 B S 结构 主要是利用了成熟的 WWW 浏览器技术 结合浏览器的多种 Script 语言 VBScript JavaScript 和 ActiveX 技术 用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能 并节约了开发成本 是 一种全新的软件系统构造技术 将应用程序分成好几个离散逻辑组件 就是多层式结构 N Tier 应用程序 最常见的选 择是分成三个部分 表示层 事务逻辑层和数据层 3 Tier 不过也有其它的组合 多层式 结构应用程序 在一开始是解决某些与传统客户端 服务器 主从式 应用程序相关的问题 但是随着 Web 的出现 此结构已经成为主导新程序之开发的结构 下面就是 3 Tier 结构各 层功能以及经常采用的技术作个简介 表示层主要运行于客户端浏览器 采用 Script 脚本 语言编写 HTML JavaScript VBScript 是此类应用系统中展示层最常用的脚本编制语言 结合 CCS 以 及 ActiveX 技术 能设计出交互相当灵活功能又相当强大的客户端网页 事务逻辑层设计通常有三个选择 ASP 网页 COM 或 COM 组件 DBMS 中所执行的 预存程序 将程序代码的一部分 建立成执行于数据库管理系统 DBMS 中的预存程序 使数据与程序代码储存在相同的位置 有助于最佳化执行效率 但是 预存程序都依赖于特 定的数据库系统 在编写和侦错方面都相当复杂 只适宜于大型的商业应用系统 以 COM 对象的方式 编写中间层 Middle Tier 事务逻辑 可以使用全功能的语言 来产生经过编译 的执行程序 执行效率也相当高 此外 在 COM 对象中包装事务逻辑 还可以清楚地将此 5 程序代码与网页内含的展示程序代码分隔 这样可以使应用程序更易于维护 但是 COM 对象的部署也有一定的麻烦 新编写的组件对象 只有在服务器重新启动后才能被应用程序 调用 用 ASP 网页设计事务逻辑相对来说比较简单 但是 ASP 网页采用脚本语言来编写 事务逻辑 比如 VBScript 程序代码只有在执行时才被翻译 这样会降低执行效能 此外 ASP 网页中的程序代码也是难以维护的 因为事务逻辑程序代码与建立使用者接口的展示程 序代码彼此混杂在一起 数据层较为灵活 视系统规模可选择 Sybase Oracle My SQL SQL server 或者 Access 综上所述 结合本系统实际需要 本 BBS 系统采用 B S 结构 使用微软公司的技术解决 方案 开发环境采用微软的 Dreamwear8 Firework8 引入 Windows DNA 概念 将 Windows DNA 应用到系统开发中 采用 3 Tier 软件结构 表示层采用 HTML JavaScript 或 VBScript 结合 CSS ActiveX 技术来编写 事务逻辑层 考虑到本系统为通用 BBS 系统 系统应该具 备较大的可伸缩性 应该能适应最基本应用最广泛的 WEB 平台 特别是个人用户想在一些 免费主页空间搭建自已的论坛 而这类免费主页空间通常只支持 ASP 来处理服务器端数据或 数据库 另外 本系统事务逻辑层设计采用 ASP 网页 至于数据层 本系统采用最基本的 Access2003 数据库系统 视需要 系统作较小的改动就可以移植到其它大型数据库系统 6 基于基于 WebWeb 的的 BBSBBS 系统需求分析系统需求分析报告报告 一 一 系统的综合要求系统的综合要求 1 1 系统界面要求系统界面要求 系统的初始界面假定用户是匿名登录 用户可以通过初始界面提供的统一的用户登录接 口 注册或登录进入各自的操作界面 2 2 系统功能要求系统功能要求 本系统应具有通常 BBS 网站应该具有的所有功能 包括用户注册 用户登录 匿名登录 发表帖子 阅读帖子 回复别人的帖子 分页查找 主题查找 作者查找 个人资料修改 在线人数统计等 此外 用户在发表帖子时 能输入带格式文本 用户在发表或回复一篇帖 子时 能获得相应的积分 其积分能反应此用户在本论坛的活跃程度 3 3 各级别用户功能各级别用户功能 本系统操作用户按不同级别依次可分为 匿名用户 普通会员用户 版主会员用户 超级用 户 高级别的用户可以继承低级别用户的公用功能 同时 各级别用户具有一定的只有以本 级别身分登录才具有的私有功能 匿名用户功能要求 通用功能 查看各版面文章 查看系统版主列表 查看系统会员列表 私有功能 注册为系统正式会员 会员找回遗失密码 登录为正式会员 普通会员功能要求 通用功能 发表或回复帖子 个人资料维护 退出或重新以匿名身分登 录 私有功能 申请为版面版主 注销会员资格 版主会员功能要求 通用功能 帖子管理 张贴公告 友情链接管理 超级用户功能要求 通用功能 论坛基本设定 版面管理 版主会员管理 普通会员管理 4 4 系统性能要求系统性能要求 对于帖子查看 发表帖子以及回复帖子这类频繁发生的系统操作 要采取适当的技术优 化这类数据操作 以提高数据存取效率 5 5 安全性保密性可靠性等其它方面的要求安全性保密性可靠性等其它方面的要求 高级别用户的所有管理操作要有针对低级别用户的身分识别功能 以防止低级别的用户 越权执行高级别用户才具有的操作功能 二 系统的数据要求二 系统的数据要求 根据系统的功能需求 本系统管理和维护以下几种数据元素 实体 Entity 会员 管 理员 论坛 论坛版面 帖子 友情链接 日志 1 1 会员实体 会员实体 会员用户包含这样一些基本属性 用户名 用户密码 用户密码提示问题 用户密码提 示问题答案 用户 EMAIL 用户真名 性别 出生年月日 主页 URL 联系方式 积分 其中 用户名为用户唯一标志 不允许重名 积分为此用户在本论坛发表文章以及文章被其它用户 关注程度所累积的分数 作为衡量此用户在本论坛活跃程度的一个标志 7 2 2 管理员 管理员 管理员实际上派生于会员用户 意味着只有会员用户才有资格申请本论坛各版面的管理 权限 因此 他除了包含会员用户所有的基本属性以外 还应包含以下几属性 申请管理版 面 申请理由 申请被批准状态 一个管理员可以管理几个版面 一个版面可以由几个管理 员管理 所以 应该有一个管理员序号来唯一标志这个实体 3 3 论坛 论坛 论坛基本信息比较稳定 只能为超级管理员所维护 此实体包括以下一些基本属性 论 坛名称 论坛版权信息 论坛公告 公告内容 4 4 版面 版面 论坛版面包含这样一些基本属性 中文名称 英文名称 版面简介 版面公告 此外 论坛版面实体与管理员实体有联系 与帖子实体也有联系 5 5 帖子 帖子 帖子包含以下一些基本属性 所属版面 作者 标题 帖子类型 所属主帖 回复数量 点击次数 标题图像 帖子内容 帖子书写时间 最后一次更新帖子时间 帖子包括两种类 型 主贴和回复 帖子序号为此帖子唯一标志 6 6 友情链接 友情链接 友情链接实体包含以下一些基本属性 添加本链接管理员 链接名 链接 URL 链接说 明 一个管理员可以添加多条友情链接 除超级管理员外 已添加的友情链接只能由添加作 者修改或删除 链接名 链接 URL 不可重复 可作主键 7 7 日志 日志 日志包括以下一些基本属性 登录会员 登录 IP 登录时间 退出时间 三 三 系统的逻辑模型系统的逻辑模型 匿名用户 普通会员 版主会员 超级会员 论坛 论坛版面 友情链接 帖子 日志 论坛 数据 信息 处理 系统 基本 Web 的通用论坛系统数据流图 8 系统逻辑模型数据流简要说明 1 匿名用户与信息处理系统之间 系统的输入数据流 注册资料 登录数据 找回密码数据 系统的输出数据流 用户遗失密码 某篇帖子内容 会员列表 版主列表 版面列表 人气 帖子列表 热门话题列表 加工逻辑 注册加工 登录加工 用户找回密码加工 2 会员用户与信息处理系统之间 系统的输入数据流 版主资格申请 注册资料修改 发表帖子 回复帖子 系统的输出数据流 某帖子内容 会员列表 版主列表 版面列表 人气帖子列表 热门话 题列表 加工逻辑 版主资格申请 注册资料修改 发表帖子 回复帖子 3 版主与信息处理系统之间 系统的输入数据流 注册资料修改 发表帖子 回复帖子 友情链接维护 发布公告 管理 版面帖子维护 系统的输出数据流 某帖子内容 会员列表 版主列表 版面列表 人气帖子列表 热门话 题列表 加工逻辑 注册资料修改 发表帖子 回复帖子 友情链接维护 发布公告 管理版面帖子 维护 4 超级会员与信息处理系统之间 系统的输入数据流 注册资料修改 发表帖子 回复帖子 友情链接维护 添加版面 论坛 基本信息维护 论坛所有帖子维护 版主申请批复 系统的输出数据流 某帖子内容 会员列表 版主列表 版面列表 人气帖子列表 热门话 题列表 加工逻辑 注册资料修改 发表帖子 回复帖子 友情链接维护 添加版面 论坛基本 信息维护 论坛所有帖子维护 版主申请批复 四 系统实体联系四 系统实体联系 本系统实体之间主要有以下几类联系 Relation 用户与论坛版面之间存在管理联系 M N 用户与帖子之间 1 M 用户与友情链接 1 M 用户与日志 1 M 论版面 与帖子 1 M 基本实体 联系图 ER 图 如下 图转下页 管理 申请管 理理由 批准否 用户名密码EMAIL性别生日其它 用户 M 论坛版面 版面名简介公告 N 用户与版面之间管理关系 ER 图 9 基于基于 Web 的的 BBS 系统设计系统设计报告报告 一 系统概要设计一 系统概要设计 1 数据结构的设计 参照用户与版面之间管理关系 ER 图 可以将用户 版面转换成三个关系模式 设计如下 论坛版面关系模式 版面 ID 版面中文名 版面英文名 版面简介 用户关系模式 用户名 用户密码 用户密码提示问题 问题答案 用户 EMAIL 用户真名 用户性别 用户出生年月 用户主页 用户联系方式 用户积分 管理员关系模式 管理员 ID 用户名 申请管理版面 ID 申请管理理由 申请被批示状 态 参照用户与帖子之间 ER 图 可以将其转换成二个关系模式 设计如下 用户关系模式 用户名 用户密码 用户密码提示问题 问题答案 用户 EMAIL 用户真名 用户性别 用户出生年月 用户主页 用户联系方式 用户积分 帖子关系模式 帖子 ID 标题 帖子类型 主帖子 ID 回复数量 点击次数 标题图像 帖子内容 帖子书写时间 按照上述转换方法 再结合系统一些功能以及性能方面的需要 系统所有关系模式设计如下 论坛基本信息 论坛信息 ID 论坛名 版权说明 论坛公告标题 公告内容 最后一次修 改时间 论坛版面信息 版面 ID 版面中文名 版面英文名 版面简介 用户基本信息 用户名 用户密码 用户密码提示问题 问题答案 用户 EMAIL 用户真名 用户性别 用户出生年月 用户主页 用户联系方式 用户积分 管理员基本信息 管理员 ID 用户名 申请管理版面 ID 申请管理理由 申请被批示状 态 帖子基本信息 帖子 ID 版面 ID 用户名 标题 帖子类型 主帖子 ID 回复数量 点 击次数 标题图像 帖子内容 帖子书写时间 最后一次更新帖子时间 友情链接基本信息 链接 ID 用户名 链接名 链接 URL 链接说明 用户访问日志信息 日志 ID 用户名 用户登录 IP 登录时间 退出时间 注 第一个带 标志的属性为本关系模式的主键 其它为外键 10 二 系统结构的设计二 系统结构的设计 系统主页面自动进行身份判别 按照访问者的身份自动进入其相应的操作界面 其流程如下所 示 三 基于三 基于 UMLUML 建模建模 1 1 语义规则 语义规则 用例模型 use cases view 用例视图 的基本组成部件是用例 use case 角色 actor 和 系统 system 用例用于描述系统的功能 也就是从外部用户的角度观察 系统应支持哪些功能 帮助分析人员理解系统的行为 它是对系统功能的宏观描述 一个完整的系统中通常包含若干个 用例 每个用例具体说明应完成的功能 代表系统的所有基本功能 集 角色是与系统进行交互 的外部实体 它可以是系统用户 也可以是其它系统或硬件设备 总之 凡是需要与系统交互的 任何东西都可以称作角色 系统的边界线以内的区域 即用例的活动区域 则抽象表示系统能够 实现的所有基本功能 在一个基本功能 集 已经实现的系统中 系统运转的大致过程是 外部 角色先初始化用例 然后用例执行其所代表的功能 执行完后用例便给角色返回一些值 这个值 可以是角色需要的来自系统中的任何东西 UML 是一种标准的图形化建模语言 它是面向对象分析与设计的一种标准表示 它不是一 种可视化的程序设计语言而是一种可视化的建模语言 不是工具或知识库的规格说明而是一种建 开始 版主会员 超级会员操作界面 版主会员操作界面 普通会员操作界面 匿名用户操作界面 超级会员 普通会员 结束 N Y Y Y N N 11 模语言规格说明是一种表示的标准 不是过程也不是方法但允许任何一种过程和方法使用它 用例 use case 参与者 actor 2 2 UMLUML 模型模型 四 四 系统详细设计系统详细设计 基于 WEB 的通用 BBS 系统其系统定义部分采用面对对象的系统分析方法 并结合传统的结构 化分析方化 设计出其系统模型 如果采用面向对象的程序设计语言开发系统 则可以很方便地 从系统分析阶段平滑地过渡到设计阶段 但是 本系统采用 ASP 技术 我们知道 ASP 不支持继承 和强类型转换等面向对象程序设计所必需的功能 只能采用一定的技术措施 用传统的结构型程 序设计方式实现诸如继承等这类功能 下面就部分系统实现做一下简要说明 1 系统主页面 Main asp 这是 BBS 网站的 HomePage 程序首先进行用户身份判断 本系统用户身份信息经登录后保存在 SESSION 对象的 USERNAME 和 ADMINBOARD 两个变量里 匿 名用户 既 Guest 这两个变量为空或没有定义 普通用户 USERNAME 变量有用户在本系统注册的 会员昵称 但其 ADMINBOARD 变量没有定义或为空 版主用户其 ADMINBOARD 变量保存有他管理版 面的 ID 如果 ADMINBOARD 变量为 0 则为超级会员 依据程序对用户所做的判断 插入相应用户的功能操作菜单 这就实现了不同层次对象的同一 12 方法的不同功能 譬如 Guest main asp 载入的功能菜单为 genhead asp Super main asp 载入 的功能菜单则为 superhead asp 注意 功能菜单文件其实就是普通的 HTML 文件 按照各自所属 的操作对象列示其相应的功能链接 2 各级别用户私有功能的实现方法 私有功能是不能为比其级别高的用户所继承的功能 因此 私有功能 ASP 网页应进行具体某个 级别身份的识别 非这个级别层次的用户则被拒绝访问 3 各级别用户公有功能的实现方法 公有功能是可以为比其级别高的用户所继承的功能 因此 公有功能 ASP 网页只进行比其级别 低的用户身份的识别 如果此用户级别低则拒绝继续访问 此外 高级别的用户可以进行功能重 载 譬如 匿名用户只能查看本系统会员列表 但是 超级会员在查看的同时 还可以进行管理 操作 如修改 删除等 下面是所有公用功能的重载列表 Guest useradmin asp 查看本论坛注册会员列表 Super useradmin asp 查看并管理本论坛注册会员列表 Guest adminorlist asp 查看本论坛版主列表 Super adminorlist asp 查看并管理本论坛版主列表 Adminor articleadmin asp 自已管理辖版面范围内的贴子维护 Super articleadmin asp 本论坛所有版面贴子维护 Adminor linkadmin asp 添加或维护自已曾添加的友情链接 Super linkadmin asp 维护所有友情链接列表 Adminor newpost asp 在自已管理版面发布公告 Super newpost asp 在任一版面发布公告 4 会员用户积分的计算模型 会员用户每提交一篇文章 可以积十分 回复某篇文章 则可以积五分 同时原文作者积三分 5 版主申请条件以及计算模型 版主申请条件 为正式注册会员 一个会员最多管理二个版面 一个版面最多五个管理员 计算机模型 用户提出申请 超级用户审批 审批完成前此会员不能再次就同一版面申请版主 权限 6 超文本信息输入 具有普通会员身份以上级别的用户 发表贴子或回复贴子时 可以在其贴子内插入诸如滚动文 字 字体大小颜色不同的文字 以及超链接等等 系统接受用户输入时对带格式文本应进行相应 的编码 Encode 系统显示带超文本信息的贴子时则应进行相应的解码 Decode 13 软件实现测试与评估文档软件实现测试与评估文档 一 一 实现方法实现方法 1 1 ASPASP 网页数据库的连接网页数据库的连接 网页数据库的连接方法有两种 一种是 DSN 数据源 另一种是 DSN less 方式 即不建 立 DSN 连接数据 我们考虑最简单的 BBS 系统应用环境 使用互联网上免费资源 通常互 联网上免费主页空间只支持简单的 ASP 应用以及 Access 数据库应用 Access 数据库通常要 求放置在固定的虚拟目录位置 譬如 db 目录位置 数据库的连接也只支持 DSN less 方式 这也是自然的 既然是免费资源 总不能要求人家还特别帮你设置一个 DSN 数据源 另外 BBS 通常只作为 Web 应用的一部分 或者说作为你个人主页或商业网站提供的一个附加功 能 这个时候 你的 BBS 论坛系统通常都安装在主页空间一个单独的目录下 我们假定为 BSS 所有要进行数据库存取的 ASP 网页都要以 DSN less 方式进行数据库连接 由此我们可 以将执行数据库连接的 ASP 代码单独形成一个插入文件 通常插入文件都是以 inc 作为扩展 名 考虑到安全性的需要 防止用户直接输入文件名下载此插入文件 所以我们仍然以 asp 作为插入文件的扩展名 比如 我们将一个用作数据读操作的数据库连接插入文件名命名为 dbconr asp 下面就是其典型代码 注意 其中的 objDBConn Mode 既为我们所做的数据库连接将用于操作的模式是读 写 或是读写 至于为什么需要设置 Mode 属性 设置 Mode 属性可以节省 ADO 组件的处理时间 14 另外 数据用户的权限管理十分重要 设置 Mode 属性能够有效率地规划整个 Web 应用程序 的用户权限 所以 从安全性和代码执行效率方面考虑 我们将读与写数据库连接插入文件 分别开来 分别命名为 dbconr asp 和 dbconrw asp 数据库连接操作是一个相当频繁的操作 我们可以采用适当的技术来进行数据库连接优 化 以提高数据库连接性能 在 ASP 的数据库编程中 connection 对象是我们不可能离开的 一个对象 在对数据库进行任何的操作 比如更新记录 插入 删除 检索等 都必须借助 于 connection 对象来完成 形象地来说 connection 对象就是程序与数据库沟通的管道 所 有对数据库的操作 都必须经过它 因此 无论我们以何种方式连接数据库前 总是少不了 执行下列的代码 Set objDBConn Server CreateObject ADODB Connection 建立一个 connection 对象的实例变量 然后才能在它的基础上建立 recordset 对象或是 command 对象来操作数据库 既然 connection 对象是如此的重要 那么如何优化和管理好 connection 对象对数据库程序来说是极其重要的 它关系到程序的性能 每当一个客户执行数据库操作时 就需要借助一个 connection 对象 而每个 connection 对象就会占用服务器的一部分资源 而数据库的同时连接数不可能是无限的 因此 在考滤 要提供高性能的数据库 Web 程序时 我们需要考虑如何去减少服务器的开销 一般来说 每 个 ASP 页面中建立一个 connection 对象 都会在服务器中产生一个对数据库的连接 而不同 的页面的 connection 对象是不能共享的 那么 我们可不可以使同一个用户所访问的不同页 面共享一个 connection 连接通道呢 我们来回顾一下 ASP 六大内置对象的 session 对象 它可以为某个特定的用户来保存私 有的数据 如果我们把 connection 对象保存在 session 对象中 是否可以使不同的 ASP 页面 都使用同一个连接通道呢 看看下面的这段程序 在这个数据库连接中 我们使用了 session 对象 首先 建立一个 objDBConn 的连接对 象 然后连接到数据表 userlist 中 取得连接句柄后 把它保存在 session dbconn 这个 session 变量中 在打开记录集前 从 session dbconn 中取出句柄 借助于 session 对象 我 们可以使不同的 ASP 页面共用一个连接对象 减少了对服务器内存的开销 而我们也不需要 担心 当一个客户因为错误操作导致服务器不能释放该被占用的 session 连接对象 因为我们 知道每个客户的 session 对象是有一定的生存期限的 过了这个期限 服务器就会自动把它释 放掉 然而 数据库连接性能的提高是以一定的服务器资源消耗为代价的 所以 我们就要在 其中权衡利弊 通常 利用别人的主机空间来作为自已 BBS 系统的平台 就应该尽谅避免使 用过多的服务器资源 诸如 APPLICATION 以及 SESSION 变量 反之 主机资源丰富 而 应用系统相对较少 则可以考虑采用上述优化方式 15 二 二 ASP 网页数据库的操作 关于网页数据库的操作 ASP 拥有三种方法 ADO 组件的 Connection 对象配合 SQL 语 法 ADO 组件的 Command 对象执行 SQL 语法 使用 ADO 组件的 RecordSet 每种方法各 有特点 1 ADO 组件 Connection 对象配合 SQL 语法 在网页上使用 SQL 指令处理数据的访问 需要使用 ADO 组件的 Connection 对象建立数 据连接 以便让我们下达 SQL 指令到服务器端的数据库 处理表中的记录 参照 3 2 3 1ASP 网页数据库的连接所介绍的方法 首先建立一个 Connection 对象 然后再打开 DSN less 同 时 根据将要进行数据操作的类型 设置其 Mode 属性 最后 使用 Connection 对象的 Execute 方法下达 SQL 指令 通常在使用 Execute 方法执行 SQL 指令前 应该指定其 CommandTimeOut 属性 以会员注册为例 用户填写完注册资料以后 提交系统 系统进行 用户资料插入操作 这是最基本的数据库操作方式 特别是对于表的插入 删除和更新记录以及单条数据的 查询操作 是三种方式中最为简单有效的一种 本系统中 用户身份验证 发表贴子以及回 复贴子等相关数据库操作相当频繁 对数据存取效率有相当的要求 至于在数据存取的灵活 性方面要求不高 因此 大部分都是采取 ADO 组件 Connection 对象配合 SQL 语法这种数据 库操作方式 2 ADO 组件的 Command 对象执行 SQL 语法 Command 对象和 Connection 对象的 Execute 方法一样能够执行 SQL 指令 在建立 Command 对象前一样需要建立和打开数据连接 假设活动连接 objDBConn 已经建立好 其 16 后步骤如下所示 Step1 建立 Command 对象 其程序代码如下 Set objDBCommand Sever CreateObject ADODB Command Step2 接着指定 ActiveConnection 属性为目前打开的数据连接 代码如下 ObjDBCommand AvtiveConnection objDBConn Step3 指定 CommandText 属性为要执行的 SQL 指令 程序代码如下 ObjDBCommand CommandText Select from userlist Step4 使用 Execute 方法执行 SQL 指令 objRS 就是取得的记录集合 代码如下 Set objRS objDBCommand Execute 上述步骤可以取得所有注册会员的详细注册资料 至于添加 删除和更新记录只需下达 不同的 SQL 指令 需要注意的是 Command 对象并不支持 Close 方法 所以关闭 Command 对象 只需设为 Nothing 即可 建立复杂的 SQL 语句 通常得事先进行许多复杂的数据类型转换 使用 Command 对象 配合 Parameters 数据集合建立 SQL 指令则相对来说比较简单 因为对象本身就能够自已处理 复杂的数据类型转换 另外 比较 Connection 对象直接执行 SQL 语句来说 操作要灵活 Command 对象主要的目的是用在存储程序 Store Procedure 简单地说 存储程序是一 些默认的处理程序 这个部分需用要数据源本身拥有指令处理的能力 象 MS SQL Server 就 支持存储程序 但 MS Access 这类中小型数据库系统就不支持存储程序 应该说 使用存储程序来操作数据库 具有较其它方式较明显的优点 首先 数据存取 效率最高 因为存储过程经过了优化和编译 并且在第一次执行以后 就驻留在缓存中 另 外 用户不必在网络上发送有时数以百计的 SQL 语句 只需通过执行一个简单的存储过程 就能够完成复杂的操作 减少了客户和 DB 服务器间传递的请求数目 减少了网络通信量 本系统采用 MS Access 数据库 所以本方法作为未来系统扩展升级时数据库操作的首选 方法 三 三 网页安全性的实现方法 我们知道在用浏览器浏览 HTML 网页时 浏览器会将 HTML 文件原封不动地全部下载 下来 然后再由浏览器解释执行 因而很容易就能看到 HTML 文件的全部源代码 这对于那 些含有保密内容的网页来说是十分不安全的 为了提高网页的安全性 我们采用了 ASP 网页 前面说过 ASP 网页是一种动态网页 它是由服务器中的 ASP 程序运行产生的动态页面 而 ASP 的源代码又是全部保存在服务器上的 所以从客户端的角度 ASP 源代码是保密的 所 以 我们可以利用 ASP 网页 ASP 源代码的保密性来实现 ASP 网页只能被具有相应权限的合 法用户访问 本 BBS 论坛系统有会员身份权限限制的功能网页相当多 频繁地要求用户输入用户名以 及密码 然后比较数据库中会员注册表数据以确认用户身份 再根据用户的身份来确定是否 具有本网页的访问权 将会消耗大量的服务器资源 极大地增加 Web 服务器的负担 此时 我们可以利用 ASP 的内置对象 Session 当一位尚未建立 Session 对象的用户浏览到 WEB 站点的 ASP 程序时 ASP 就会自动产 生一个新的 Session 对象 并且指定唯一的 SessionID 编号 此后 在浏览此 ASP 程序和即 将在站点内浏览其它 ASP 程序的过程 我们称为一个 Session 期间 WEB 服务器可以凭借读 取 ASP 程序时传送的 SessionID 判断用户是否仍在 Session 期间 直到 Session 对象 TimeOut 属性所设置的时间 默认为 20 分钟或执行 Abandon 方法 每当读取新的 ASP 程序后 TimeOut 属性都会归零 重新计算 所以除非没有浏览站点 否则 Session 期间绝对超过 20 分钟 每一位用户都可以拥有一组专用的 Session 变量 虽然每位用户的 Session 变量名称相同 17 但是其内容可就不同 而且只有该用户拥有权利读写自已的 Session 变量 我们可以利用 Session 的这个特性来实现 ASP 网页的安全保护 在本系统设计了一个 ASP 网页 userlog asp 如果用户想以普通会员的身份发表贴子 或 以版主身份管理版面 或以超级管理员身份进行论坛管理 则用户在进入系统之前必须通过 userlogin asp 进行登录 login asp 会将用户输入的用户名及密码拿来与数据库中的资料相对比 以确定用户的合适身份 否则 用户只能以匿名用户身份浏览本论坛贴子 却不能发表贴子 或回复贴子 当然更不能进行论坛的相关管理操作了 用户的身份将被写入 Session 对象的 username 以及 adminboard 变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论