ASP技巧
创 建 一 个 简 单 的 ASP 页学 习 ASP 页 的 最 佳 途 径 是 动 手 编 写 自 己 的 ASP 页 。 创 建 ASP 页 其 实 很 简 单 , 只
要 使 用 文 本 编 辑 器 将 脚 本 命 令 插 入 到 HTML 页 中 就 行 了 。 将 这 个 主 页 以 .asp 为
文 件 扩 展 名 保 存 , ASP 服 务 器 就 知 道 处 理 其 中 的 脚 本 命 令 了 。 若 要 查 看 脚 本 的 结
果 , 只 要 使 用 HTTP 协 议 在 Web 浏 览 器 中 请 求 查 看 该 页 就 行 了 。 也 就 是 键 入 ht
tp://localhost/iishelp/iis/htm/tutorial/filename.asp 。 在 本 课 中 , 您 将 创
建 流 行 的 “ Hello World! ” 脚 本 , 方 法 是 从 教 程 中 将 HTML 和 ASP 脚 本 命 令 复 制
到 文 本 编 辑 器 中 。 当 您 在 文 本 编 辑 器 中 保 存 文 件 后 , 就 能 用 浏 览 器 查 看 脚 本 的 输
出 效 果 了 。
下 面 的 HTML 创 建 一 个 简 单 的 主 页 , 其 中 只 有 以 大 字 体 显 示 的 文 字 “ Hello Worl
d! ” :
〈 HTML 〉
〈 BODY 〉
〈 FONT SIZE=7 〉
Hello World! 〈 BR 〉
〈 /FONT 〉
〈 /BODY 〉
〈 /HTML 〉
如 果 您 想 将 这 段 文 字 重 复 几 次 , 并 且 每 次 字 体 越 来 越 大 。 一 种 方 法 是 重 复 字 体 标
记 和 HTML 文 本 , 每 次 重 复 分 别 给 出 不 同 的 字 体 大 小 。 当 浏 览 器 打 开 这 个 HTML
页 的 时 候 , 这 行 文 字 将 被 显 示 好 几 次 。
另 一 种 方 法 是 , 使 用 ASP 来 生 成 相 同 的 内 容 , 不 过 方 式 将 更 加 灵 活 。
创 建 并 保 存 主 页
启 动 文 本 编 辑 器 ( 如 “ 记 事 本 ” ) 或 字 处 理 软 件 ( 如 Microsoft? Word ) 。 在 屏
幕 上 调 整 一 下 编 辑 器 窗 口 和 浏 览 器 窗 口 , 以 便 能 够 同 时 看 到 它 们 。
将 下 列 HTML 标 记 复 制 并 粘 贴 到 文 件 的 开 头 :
〈 %@ LANGUAGE = "VBScript" % 〉
〈 HTML 〉
〈 BODY 〉
注 意 第 一 个 标 记 是 一 个 特 殊 的 ASP 标 记 , 用 来 将 您 的 默 认 脚 本 语 言 设 置 为 VBS
cript 。 一 定 要 将 该 标 记 添 加 到 您 所 有 .asp 文 件 的 第 一 行 。
将 文 件 以 Hello.asp 保 存 到 localhost Web 服 务 器 的 Tutorial 目 录 (C:\WIN
NT\Help\iis\htm\tutorial) 中 。 如 果 您 使 用 的 是 字 处 理 软 件 ( 包 括 “ 写 字 板 ”
) , 请 确 保 以 纯 文 本 方 式 保 存 该 文 件 。 ASP 页 必 须 以 .asp 作 后 缀 才 能 正 常 工 作
。
如 果 在 此 之 前 , 另 一 个 用 户 已 经 创 建 了 Hello.asp 文 件 并 且 学 完 了 教 程 的 这 一 部
分 , 您 就 可 以 覆 盖 旧 的 Hello.asp 文 件 了 。
在 〈 BODY 〉 标 记 后 另 起 新 行 , 将 下 列 脚 本 命 令 复 制 并 粘 贴 过 去 :
〈 % For i = 3 To 7 % 〉
脚 本 命 令 用 〈 % 和 % 〉 符 号 括 起 来 , 这 两 个 符 号 通 常 叫 做 起 止 符 ) 。 起 止 符 中 的
文 字 将 作 为 脚 本 命 令 处 理 。 右 侧 起 止 符 以 后 的 任 何 文 字 都 将 作 为 HTML 文 本 显 示
在 浏 览 器 中 。 上 面 这 段 脚 本 命 令 开 始 了 一 个 VBScript 循 环 , 用 于 控 制 显 示 “ He
llo World ” 的 次 数 。 循 环 的 第 一 次 , 计 数 器 变 量 (i) 被 设 置 为 3 。 循 环 的 第 二
次 , 计 数 器 被 设 置 为 4 。 循 环 将 继 续 下 去 , 直 到 计 数 器 大 于 7 为 止 。
按 下 回 车 键 , 然 后 复 制 并 粘 贴 下 列 行 :
〈 FONT SIZE= 〈 % = i % 〉 〉
在 每 次 循 环 中 , 字 体 大 小 都 设 置 为 计 数 器 变 量 (i) 的 当 前 值 。 因 此 , 文 字 第 一 次
显 示 的 时 候 , 字 体 大 小 是 3 。 第 二 次 , 字 体 大 小 是 4 。 最 后 一 次 , 字 体 大 小 是 7
。 注 意 脚 本 命 令 是 可 以 包 含 在 HTML 标 记 中 的 。
按 下 回 车 键 , 然 后 复 制 并 粘 贴 下 列 行 :
Hello World! 〈 BR 〉
〈 /FONT 〉
〈 % Next % 〉
〈 /BODY 〉
〈 /HTML 〉
VBScript 的 Next 命 令 重 复 循 环 , 直 到 计 数 器 大 于 7 为 止 。
完 整 的 Hello.asp 文 件 还 必 须 包 含 以 下 文 字 :
〈 %@ LANGUAGE = "VBScript" % 〉
〈 HTML 〉
〈 BODY 〉
〈 % For i = 3 To 7 % 〉
〈 FONT SIZE= 〈 % = i % 〉 〉
Hello World! 〈 BR 〉
〈 /FONT 〉
〈 % Next % 〉
〈 /BODY 〉
〈 /HTML 〉
保 存 文 件 。 注 意 要 以 纯 文 本 格 式 保 存 , 并 且 文 件 名 后 缀 必 须 是 .asp 。
在 某 些 文 本 编 辑 器 中 , 当 您 在 “ 保 存 ” 对 话 框 中 选 择 “ 纯 文 本 ” 格 式 时 , 编 辑 器
会 自 动 将 文 件 名 后 缀 更 改 为 .txt 。 如 果 出 现 了 这 种 情 况 , 需 要 先 将 .txt 后 缀 改
为 .asp , 然 后 再 单 击 “ 保 存 ” 按 钮 。
退 出 文 本 编 辑 器 。 因 为 当 HTML 页 被 文 本 编 辑 器 打 开 时 , 浏 览 器 可 能 无 法 再 访 问
它 。
若 要 查 看 您 的 工 作 成 果 , 请 将 您 的 浏 览 器 导 向 [url]http://localhost/iishelp/iis/[/url]
htm/tutorial/hello.asp 。 ( 此 后 若 要 返 回 本 教 程 , 只 要 在 浏 览 器 中 单 击 “ 上 一
页 ” 或 “ Back ” 按 钮 即 可 。 )
您 将 看 到 一 个 主 页 显 示 了 5 次 “ Hello World ” , 每 次 的 字 体 都 越 来 越 大 。
祝 贺 您 ! 您 已 经 完 成 了 您 的 第 一 个 ASP 主 页 。 正 象 您 已 经 学 过 的 内 容 一 样 , 创 建
ASP 主 页 的 过 程 就 是 如 此 简 单 。 您 可 以 使 用 任 何 文 本 编 辑 器 来 创 建 HTML 内 容 ,
将 ASP 脚 本 命 令 写 在
〈 %
和
% 〉
起 止 符 之 间 , 然 后 将 文 件 以 .asp 后 缀 名 保 存 。 若 要 测 试 ASP 页 并 看 一 看 结 果 ,
只 要 在 浏 览 器 中 请 求 该 主 页 即 可 ( 若 该 主 页 已 经 被 打 开 , 只 要 刷 新 即 可 ) 。 创 建 HTML 表 格
Intranet 和 Internet 服 务 器 应 用 程 序 的 一 个 常 用 功 能 , 是 处 理 浏 览 器 提 交 的 表
格 。 以 前 , 您 需 要 编 一 个 程 序 来 处 理 表 格 提 交 的 数 据 。 有 了 ASP , 您 可 以 将 VBS
cript 脚 本 直 接 嵌 入 到 HTML 文 件 中 来 处 理 表 格 。 ASP 服 务 器 将 处 理 脚 本 命 令 并
将 结 果 返 回 给 浏 览 器 。
在 本 课 中 , 您 将 创 建 一 个 ASP 主 页 , 用 来 处 理 用 户 通 过 HTML 表 格 提 交 的 数 据 。
若 要 查 看 .asp 文 件 是 如 何 工 作 的 , 请 首 先 填 写 下 面 的 表 格 。 使 用 Tab 键 可 以 在
表 格 中 移 动 。 然 后 单 击 提 交 按 钮 , 将 您 的 数 据 发 送 到 Web 服 务 器 并 交 给 ASP
处 理 。
----------------------------------------------------------------------
----------
表 格 样 本
请 提 供 下 列 信 息 , 然 后 单 击 “ 提 交 ” :
名 字 :
姓 氏 :
称 呼 : 先 生 女 士
创 建 表 格
我 们 已 经 创 建 了 一 个 表 格 来 询 问 用 户 信 息 , 您 可 以 在 Tutorial 目 录 (/iishelp
/iis/htm/tutorial) 下 的 Form.htm 文 件 中 找 到 它 :
〈 HTML 〉
〈 HEAD 〉 〈 TITLE 〉 Order 〈 /TITLE 〉 〈 /HEAD 〉
〈 BODY 〉
〈 H2 〉 示 范 订 购 表 格 〈 /H2 〉
〈 P 〉
请 提 供 以 下 信 息 , 然 后 单 击 “ 提 交 ” :
〈 FORM METHOD="POST" ACTION="response.asp" 〉
〈 P 〉
姓 氏 : 〈 INPUT NAME="lname" SIZE="48" 〉
〈 P 〉
名 称 : 〈 INPUT NAME="fname" SIZE="48" 〉
〈 P 〉
称 谓 : 〈 INPUT NAME="title" TYPE=RADIO VALUE="mr" 〉 先 生
〈 INPUT NAME="title" TYPE=RADIO VALUE="ms" 〉 女 士
〈 P 〉 〈 INPUT TYPE=SUBMIT VALUE=" 提 交 " 〉 〈 INPUT TYPE=RESET VALUE=" 重 置 " 〉
〈 /FORM 〉
〈 /BODY 〉
〈 /HTML 〉
象 所 有 HTML 表 格 一 样 , 这 个 表 格 将 数 据 按 变 量 和 数 值 成 对 发 送 到 Web 服 务 器 。
例 如 , 用 户 在 “ 名 ” 文 字 框 中 键 入 的 内 容 将 赋 值 给 变 量 “ fname ” 。 ASP 提 供 内 建
的 对 象 , 您 能 够 使 用 这 些 对 象 来 访 问 表 格 提 供 的 变 量 的 名 称 和 数 值 。
创 建 ASP 响 应 页
现 在 要 学 习 的 内 容 是 如 何 处 理 Web 服 务 器 从 HTML 表 格 收 到 的 数 据 。 在 本 课 中 ,
我 们 已 经 创 建 了 一 个 .asp 文 件 Response.asp , 它 将 处 理 并 显 示 从 Form.asp 收
到 的 数 据 , 不 过 需 要 您 添 加 一 些 额 外 的 脚 本 命 令 才 行 。
使 用 您 的 文 本 编 辑 器 , 打 开 localhost Web 服 务 器 Tutorial 目 录 (C:\WINNT\
Help\iis\htm\tutorial) 下 的 Response.asp 文 件 。
查 找 文 字 “ Define Scripting Language ” , 将 以 下 脚 本 复 制 并 粘 贴 到 这 一 行 下 面
:
〈 %@ LANGUAGE = "VBScript" % 〉
请 记 住 将 这 个 标 记 作 为 第 一 行 脚 本 添 加 到 您 的 .asp 文 件 中 , 这 样 Web 服 务 器 才
知 道 您 的 脚 本 是 用 哪 种 语 言 编 写 的 。
现 在 查 找 文 字 “ Tutorial Lesson ” , 将 以 下 脚 本 复 制 并 粘 贴 到 找 到 的 行 后 面 :
〈 %
Title = Request.Form("title")
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 此 脚 本 命 令 就 已 经
在 “ Tutorial Lesson ” 命 令 行 下 了 。 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使
用 过 的 Response.asp 从 Template 目 录 复 制 到 Tutorial 目 录 中 。
您 的 表 格 向 ASP 提 交 了 3 个 不 同 的 变 量 或 值 :
fname
lname
title
ASP 将 HTML 表 格 提 供 的 信 息 存 储 在 Request 对 象 的 Forms 集 合 中 。 若 要 进 一
步 学 习 表 格 和 对 象 的 知 识 , 请 参 阅 使 用 HTML 表 格 和 内 建 的 ASP 对 象 。
若 要 从 Request 对 象 获 取 信 息 , 您 只 需 键 入 : Request. 集 合 名 称 ( 或 属 性 名 称
) 。 所 以 , Request.Form ("title") 将 得 到 mr 或 ms , 依 用 户 提 交 的 值 而 定 。
复 制 以 下 脚 本 , 并 粘 贴 到 第 2 步 中 插 入 的 行 之 后 :
LastName = Request.Form("lname")
If Title = "mr" Then
% 〉
〈 %= LastName % 〉 先 生
〈 % ElseIf Title = "ms" Then % 〉
〈 %= LastName % 〉 女 士
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 这 些 脚 本 就 已 经 存
在 了 。 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使 用 过 的 Response.asp 从 Tem
plate 目 录 (C:\WINNT\Help\iis\htm\tutorial\template) 复 制 到 Tutorial 目
录 中 。
VBScript 语 句 If...Then..Else 语 句 将 依 据 “ 称 谓 ” 的 值 执 行 3 种 不 同 的 操 作
。 如 果 称 谓 是 mr , 将 称 用 户 为 “ 先 生 ” 。 如 果 称 谓 是 ms , 将 称 用 户 为 “ 女 士 ”
。 否 则 , 将 称 用 户 的 全 名 。 使 用 表 达 式 〈 %= 变 量 名 % 〉 可 以 显 示 变 量 的 值 。
如 果 需 要 当 用 户 没 有 选 择 称 谓 时 显 示 全 名 , 请 将 以 下 脚 本 复 制 并 粘 贴 到 在 第 3 步
插 入 的 行 之 后 :
〈 % Else % 〉
〈 %= LastName & Request.Form("fname") % 〉
〈 % End If % 〉
再 说 一 遍 , 如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 则 这 些 脚 本
就 已 经 存 在 了 。 请 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使 用 过 的 Response.
asp 从 Template 目 录 ( C:\WINNT\Help\iis\htm\tutorial\template) 复 制 到
Tutorial 目 录 中 。
其 中 的 “ 并 ” 号 (&) 将 变 量 的 值 合 并 到 一 个 字 符 串 中 。 最 后 的 End If 语 句 表
明 条 件 语 句 结 束 了 。
保 存 文 件 Response.asp 并 退 出 文 本 编 辑 器 。 注 意 文 件 后 缀 .asp 不 要 被 文 本 编
辑 器 替 换 。
若 要 验 证 您 创 建 的 表 格 是 否 正 常 运 行 , 请 将 您 的 浏 览 器 导 向 [url]http://localhost/[/url]
iishelp/iis/htm/tutorial/form.htm 。 ( 此 后 若 要 返 回 本 教 程 , 只 要 在 浏 览 器 中
单 击 “ 上 一 页 ” 或 “ Back ” 按 钮 即 可 。 )
祝 贺 您 ! 您 的 第 一 个 能 将 结 果 发 送 到 .asp 文 件 的 HTML 表 格 已 经 运 行 了 。 若 要
学 习 ActiveX 服 务 器 组 件 , 请 转 到 模 块 2 : 使 用 ActiveX 组 件 。
----------------------------------------------------------------------
----------
模 块 2 : 使 用 ActiveX 组 件
请 选 择 本 课 的 脚 本 语 言 。
ActiveX 服 务 器 组 件 增 强 了 脚 本 语 言 的 功 能 , 它 提 供 简 洁 、 可 重 用 和 安 全 的 方 法
来 访 问 信 息 。 例 如 , ASP 的 Database Access ( 数 据 库 访 问 ) 组 件 , 使 得 脚 本 可
以 查 询 数 据 库 。 因 此 , 无 论 何 时 要 从 脚 本 查 询 数 据 库 , 您 都 可 以 使 用 Database
Access 组 件 , 而 不 必 编 写 复 杂 的 脚 本 。 您 还 能 从 任 何 脚 本 或 支 持 Automation 的
编 程 语 言 来 调 用 这 些 组 件 ( ActiveX 服 务 器 组 件 就 是 Automation 服 务 器 ) 。 在
本 模 块 中 , 您 将 使 用 插 入 到 ASP 中 的 ActiveX 组 件 , 来 运 行 一 个 示 范 Web 节 点
。
现 在 , 您 通 常 应 该 具 备 了 编 写 .asp 文 件 的 基 本 知 识 。 如 果 您 还 不 具 有 , 请 首 先
学 完 本 教 程 的 “ 模 块 1 ” 。
要 点
要 保 存 并 查 看 您 在 本 模 块 中 的 工 作 结 果 , 必 须 在 localhost Web 服 务 器 上 对 /i
ishelp/iis/htm/Tutorial 虚 拟 目 录 具 有 “ 写 (Write) ” 和 “ 改 编 Web 服 务 器
(Script Web server) ” 权 限 , 当 然 必 须 已 经 安 装 了 Active Server Pages 。
第 二 课 演 示 了 一 个 动 态 HTML 脚 本 小 程 序 。 这 个 脚 本 小 程 序 显 示 了 一 系 列 交 替 显
示 的 广 告 图 像 , 每 幅 图 像 之 间 都 动 态 过 渡 。 若 要 运 行 这 个 脚 本 小 程 序 并 查 看 效 果
, 您 必 须 使 用 Internet Explorer 4.0 或 更 高 版 本 。 关 于 Internet Explorer
的 详 细 信 息 , 请 访 问 Microsoft 的 Web 节 点 [url]http://www.microsoft.com[/url] 。 使 用 Ad Rotator ( 广 告 轮 换 器 ) 组 件
Internet Web 节 点 通 常 提 供 广 告 空 间 。 要 让 节 点 看 起 来 有 趣 , 并 且 要 在 有 限 的 空
间 内 显 示 好 几 个 客 户 的 广 告 , 您 也 许 希 望 循 环 显 示 不 同 的 广 告 。 Ad Rotator 组 件
简 化 了 按 顺 序 显 示 每 幅 广 告 的 任 务 , 并 且 让 添 加 新 广 告 的 工 作 变 得 更 轻 松 。 另 外
, 您 能 够 轻 松 地 添 加 或 更 改 广 告 的 超 级 链 接 , 这 样 用 户 就 可 以 通 过 单 击 广 告 来 访
问 广 告 客 户 的 Web 节 点 。 在 本 课 中 , 您 将 创 建 一 个 脚 本 , 通 过 调 用 Ad Rotator
组 件 来 轮 换 4 个 随 机 选 择 的 广 告 。 单 击 下 面 的 “ 演 示 (Show Me) ” 按 钮 , 可 以
看 到 一 个 示 例 广 告 , 然 后 再 次 单 击 该 按 钮 , 轮 换 到 另 一 个 广 告 。
----------------------------------------------------------------------
----------
----------------------------------------------------------------------
----------
创 建 广 告 文 件
我 们 已 经 为 一 项 虚 构 的 业 务 创 建 了 一 个 Web 页 , 名 叫 “ Bayshore Travel ” , 您
将 在 该 页 中 插 入 广 告 轮 换 脚 本 。 您 可 以 创 建 一 个 简 单 的 文 本 文 件 来 告 诉 Ad Rota
tor 组 件 要 插 入 哪 些 广 告 以 及 每 个 广 告 显 示 时 间 的 百 分 比 。 我 们 已 经 为 您 创 建 了
一 个 包 含 广 告 的 文 件 。 要 查 看 它 , 请 用 文 本 编 辑 器 打 开 localhost Web 服 务 器 上
Tutorial 目 录 (C:\WINNT\Help\iis\htm\tutorial) 中 的 Adrot.txt 文 件 。
文 件 第 一 行 设 置 的 脚 本 文 件 ( 此 处 是 Redirect.asp ) 将 在 用 户 单 击 广 告 时 被 调 用
。 通 过 修 改 Redirect.asp 文 件 , 可 以 在 链 接 到 广 告 客 户 的 Web 节 点 之 前 执 行 指
定 的 操 作 , 比 如 追 踪 广 告 受 欢 迎 的 程 度 。 后 面 3 行 规 定 了 广 告 图 像 的 宽 、 高 和 边
框 。
redirect /iishelp/iis/htm/tutorial/redirect.asp
width 180
height 180
border 1
接 下 来 , 文 件 包 含 了 广 告 数 据 。 对 每 一 个 广 告 , 都 包 括 使 用 的 图 像 、 用 户 单 击 时
转 向 的 URL ( 此 处 是 调 用 Redirect.asp 之 后 ) 、 图 像 的 说 明 文 字 以 及 广 告 显 示
时 间 的 百 分 比 :
/iishelp/iis/htm/tutorial/nyc.jpg
[url]http://www.microsoft.com[/url]
Big Deals in the Big Apple
35
通 过 在 分 离 的 文 件 中 维 护 广 告 信 息 , 您 单 位 中 的 不 同 小 组 就 能 够 更 新 Adrot.txt
文 件 , 而 不 用 您 来 更 新 ASP 页 。 不 同 的 小 组 能 够 维 护 节 点 中 不 同 部 分 的 广 告 文
件 。
创 建 脚 本
用 文 本 编 辑 器 打 开 localhost Web 服 务 器 上 Tutorial 目 录 (C:\WINNT\Help\i
is\htm\tutorial) 中 的 Bayshore.asp 文 件 。
在 Bayshore.asp 文 件 的 开 头 , 在 任 何 HTML 标 记 或 ASP 语 句 之 前 , 粘 贴 以 下 脚
本 :
〈 %@ LANGUAGE = "VBScript" % 〉
此 脚 本 是 一 个 ASP 指 令 语 句 , 告 诉 Web 服 务 器 您 的 脚 本 是 用 VBScript 编 写 的
。 这 个 指 令 语 句 必 须 位 于 ASP 文 件 的 第 一 行 。
查 找 文 字 “ Tutorial Lesson: Ad Rotator. ” , 您 的 脚 本 将 插 入 到 这 一 行 之 后 。
下 列 脚 本 命 令 创 建 一 个 Ad Rotator 组 件 实 例 , 然 后 将 其 赋 值 给 变 量 Ad 。 请 将 下
列 脚 本 命 令 复 制 并 粘 贴 到 文 本 编 辑 器 中 ( 在 上 一 步 找 到 的 文 字 行 之 下 ) :
〈 % Set Ad = Server.CreateObject("MSWC.Adrotator") % 〉
将 一 个 组 件 实 例 赋 值 给 一 个 变 量 , 这 样 就 能 在 随 后 的 脚 本 中 引 用 这 个 组 件 。
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 此 脚 本 命 令 就 已 经
存 在 了 。 请 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使 用 过 的 Bayshore.asp 从
Template 目 录 (C:\WINNT\Help\iis\htm\tutorial\template) 复 制 到 Tutorial
目 录 中 。
若 要 显 示 新 广 告 , 可 以 使 用 Ad Rotator 组 件 的 GetAdvertisement 方 法 。 将 以
下 命 令 添 加 到 您 的 脚 本 中 :
〈 %= Ad.GetAdvertisement("adrot2.txt")% 〉
GetAdvertisement 方 法 需 要 一 个 参 数 , 就 是 包 含 广 告 信 息 的 文 件 的 名 称 。 该 名 称
可 以 与 Adrot.txt 不 同 , 此 处 是 Adrot2.txt 。 以 该 参 数 为 基 础 , 此 方 法 返 回 一
个 全 格 式 的 HTML 〈 IMG 〉 标 记 , 其 中 包 含 适 当 的 广 告 。 您 赋 予 Ad Rotator 组 件
实 例 的 变 量 名 Ad 在 前 , 然 后 是 GetAdvertisement 方 法 , 最 后 是 文 件 路 径 Adr
ot2.txt 。 等 号 将 方 法 返 回 的 值 ( 真 正 的 广 告 ) 发 送 给 用 户 的 浏 览 器 。
以 纯 文 本 格 式 保 存 文 件 Bayshore.asp , 然 后 退 出 文 本 编 辑 器 。 注 意 文 件 后 缀 .a
sp 不 要 被 文 本 编 辑 器 替 换 。
若 要 验 证 您 创 建 的 ASP 页 是 否 正 常 运 行 , 请 将 您 的 浏 览 器 导 向 [url]http://localho[/url]
st/IISHelp/IIS/Help/Htm/Tutorial/Bayshore.asp 。 ( 此 后 若 要 返 回 本 教 程 , 只
要 在 浏 览 器 中 单 击 “ 上 一 页 ” 或 “ Back ” 按 钮 即 可 。 ) 使 用 Browser Capabilities ( 浏 览 器 性 能 ) 组 件
并 不 是 所 有 浏 览 器 都 支 持 现 今 Internet 技 术 的 方 方 面 面 。 有 一 些 特 性 , 某 些 浏
览 器 支 持 而 另 一 些 浏 览 器 却 不 支 持 , ActiveX 控 件 、 影 像 流 、 动 态 HTML 以 及 脚
本 小 程 序 就 是 这 样 的 。 使 用 ASP 的 Browser Capabilities 组 件 , 就 能 够 设 计 “
智 能 ” 的 Web 页 , 以 适 合 浏 览 器 性 能 的 格 式 呈 现 内 容 。 例 如 , 可 以 设 计 一 个 We
b 页 , 使 用 Browser Capabilities 组 件 来 检 测 用 户 的 浏 览 器 是 否 支 持 您 的 主 页
上 由 ActiveX 驱 动 的 徽 标 , 并 且 如 果 浏 览 器 不 支 持 , 可 以 在 替 代 的 表 格 中 显 示 该
徽 标 ( 如 静 态 图 像 ) 。
在 本 课 中 , 您 将 扩 展 在 第 一 课 中 创 建 的 Ad Rotator 脚 本 , 包 含 激 活 脚 本 小 程 序
的 脚 本 。 脚 本 小 程 序 是 一 些 简 单 的 Web 页 , 其 中 包 含 了 脚 本 和 HTML , Web 编 撰
人 员 可 以 将 它 创 建 为 可 重 用 的 客 户 端 对 象 。 若 要 在 Web 页 中 包 含 脚 本 小 程 序 , 只
需 要 插 入 一 个 HTML 〈 OBJECT 〉 标 记 , 其 中 包 含 脚 本 小 程 序 的 类 型 和 位 置 信 息 。 在
本 课 中 , 您 要 插 入 Ad Rotator 脚 本 中 的 脚 本 小 程 序 , 使 用 了 “ 动 态 HTML (DHT
ML) ” 来 创 建 一 个 激 动 人 心 的 广 告 轮 换 器 , 它 的 每 一 幅 图 像 之 间 都 进 行 动 态 过 渡 。
目 前 , 只 有 Microsoft Internet Explorer 4.0 或 更 高 版 本 才 支 持 脚 本 小 程 序 和
一 定 的 DHTML 特 性 。 这 就 意 味 着 , 您 的 Ad Rotator 脚 本 必 须 能 够 检 测 浏 览 器 类
型 : 如 果 浏 览 器 是 Internet Explorer 4.0 或 更 高 版 本 , 用 户 将 能 够 看 到 一 组 连
续 出 现 的 广 告 , 并 且 有 变 化 的 动 态 过 渡 。 如 果 浏 览 器 不 是 Internet Explorer 4
.0 或 更 高 版 本 , 每 当 用 户 刷 新 Web 页 时 都 将 看 到 交 替 显 示 的 静 态 广 告 ( 它 们 由
Ad Rotator 组 件 生 成 ) 。
单 击 “ 演 示 ” 按 钮 , 可 以 看 到 一 个 由 脚 本 小 程 序 方 式 生 成 的 DHTML 广 告 轮 换 器 示
例 。 ( 如 果 您 的 浏 览 器 不 是 Microsoft Internet Explorer 4.0 或 更 高 版 本 , 您
将 看 到 与 第 一 课 相 同 的 静 态 广 告 。 )
----------------------------------------------------------------------
----------
----------------------------------------------------------------------
----------
创 建 脚 本
要 点 开 始 本 课 以 前 , 您 必 须 学 完 第 一 课 。
启 动 文 本 编 辑 器 并 打 开 Tutorial 目 录 (C:\WINNT\Help\iis\htm\tutorial) 中
的 Bayshore.asp 文 件 。
查 找 文 字 “ Tutorial Lesson: Start Browser Capabilities. ” , 您 的 脚 本 将 插
到 这 一 行 之 后 。
下 列 脚 本 命 令 创 建 一 个 Browser Capabilities 组 件 的 实 例 , 并 且 将 它 赋 值 给 变
量 objBrowser 。 请 将 这 些 脚 本 命 令 复 制 并 粘 贴 到 Bayshore.asp 文 件 中 :
〈 % Set objBrowser = Server.CreateObject("MSWC.BrowserType") % 〉
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 内 容 , 那 么 这 些 脚 本 就 已
经 存 在 了 。 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使 用 过 的 Bayshore.asp 从
Template 子 目 录 (C:\WINNT\Help\iis\htm\tutorial\template) 复 制 到 Tuto
rial 目 录 中 。
使 用 VBScript 的 If...Then...Else 语 句 来 检 测 用 户 的 浏 览 器 是 不 是 Interne
t Explorer 4.0 或 更 高 版 本 。 如 果 是 , 将 使 用 脚 本 小 程 序 ; 如 果 不 是 , 则 不 支 持
脚 本 小 程 序 , 就 使 用 服 务 器 端 的 Ad Rotator 组 件 。 要 完 成 该 逻 辑 判 断 功 能 , 请
将 下 列 脚 本 复 制 并 粘 贴 到 第 2 步 插 入 的 〈 % Set objBrowser...% 〉 语 句 之 后 :
〈 % If objBrowser.browser = "IE" and objBrowser.majorver 〉 = 4 Then
% 〉
〈 OBJECT ID="scriptlet"
STYLE = " position:relative;height:200;width:200"
TYPE = "text/x-scriptlet"
DATA = "..\tutorial\rotate5.htm" 〉
〈 /OBJECT 〉
〈 % Else % 〉
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 这 些 脚 本 就 已 经 存
在 了 。 请 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使 用 过 的 Bayshore.asp 从 T
emplate 子 目 录 (C:\WINNT\Help\iis\htm\tutorial\template) 复 制 到 Tutori
al 目 录 中 。
Browser Capabilities 组 件 的 browser 和 majorver 属 性 可 以 检 测 用 户 的 浏 览
器 是 不 是 Internet Explorer 4.0 或 更 高 版 本 。 使 用 HTML 〈 OBJECT 〉 标 记 可 以
将 脚 本 小 程 序 插 入 到 Web 页 中 。 这 个 标 记 的 属 性 指 定 了 脚 本 小 程 序 的 类 型 (x-s
criptlet) 、 位 置 和 大 小 。 真 正 的 脚 本 小 程 序 源 文 件 名 叫 Rotate5.htm 。 如 果 您 感
兴 趣 , 可 以 在 Tutorial 目 录 (C:\WINNT\Help\iis\htm\tutorial) 中 找 到 它 。
您 可 以 用 “ 记 事 本 ” 或 任 何 HTML 编 辑 工 具 来 打 开 它 。
查 找 文 字 “ Tutorial Lesson - End Browser Capabilities. ” , 将 以 下 脚 本 命 令
复 制 并 粘 贴 到 找 到 的 文 字 行 之 后 , 以 结 束 If...Then...Else 语 句 :
〈 %End If % 〉
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 这 些 脚 本 命 令 就 已
经 存 在 了 。 请 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使 用 过 的 Bayshore.asp
从 Template 子 目 录 (C:\WINNT\Help\iis\htm\tutorial\template) 复 制 到 Tu
torial 目 录 中 。
以 纯 文 本 格 式 保 存 Bayshore.asp 文 件 , 并 且 退 出 文 本 编 辑 器 。 注 意 文 件 后 缀 .
asp 不 要 被 文 本 编 辑 器 替 换 。
若 要 验 证 您 创 建 的 ASP 页 是 否 正 常 运 行 , 请 将 您 的 浏 览 器 导 向 [url]http://localho[/url]
st/IISHelp/IIS/Help/Htm/Tutorial/Bayshore.asp 。 ( 此 后 若 要 返 回 本 教 程 ,
只 要 在 浏 览 器 中 单 击 “ 上 一 页 ” 或 “ Back ” 按 钮 即 可 。 )
注 意 Browscap.ini 文 件 ( 默 认 情 况 下 位 于 Winnt\System32\Inetsrv ) 包 含 了 必
需 的 数 据 , Browser Capabilities 组 件 用 该 文 件 识 别 浏 览 器 及 其 性 能 。 当 新 浏 览
器 开 发 出 来 后 , 需 要 将 新 数 据 添 加 到 该 文 件 中 。 如 果 正 使 用 的 浏 览 器 独 有 特 性 没
有 列 在 默 认 的 Browscap.ini 文 件 中 , 也 需 要 将 新 数 据 添 加 进 去 。 使 用 Database Access ( 数 据 库 访 问 ) 组 件
ASP 的 Database Access 组 件 使 用 ActiveX Data Objects (ADO) 提 供 一 种 轻 而
易 举 的 方 法 , 可 以 访 问 存 储 在 数 据 库 或 其 他 表 格 式 数 据 结 构 ( 如 电 子 表 格 ) 中 的
信 息 , 只 要 它 们 遵 循 Open Database Connectivity (ODBC) 标 准 即 可 。 在 本 课 中
, 您 将 连 接 到 一 个 Microsoft? Access 客 户 数 据 库 , 并 且 显 示 目 录 列 表 。 您 将 学
习 如 何 使 用 SQL SELECT 语 句 来 检 索 数 据 , 并 且 创 建 一 个 HTML 表 格 来 显 示 结 果
。
----------------------------------------------------------------------
----------
----------------------------------------------------------------------
----------
识 别 数 据 库
在 通 过 Database Access 组 件 使 用 一 个 数 据 库 之 前 , 必 须 在 “ 控 制 面 板 ” 的 OD
BC 程 序 中 识 别 这 个 数 据 库 。 在 本 例 中 , 您 将 使 用 本 教 程 提 供 的 一 个 Microsoft?
Access 数 据 库 。
在 运 行 Web 服 务 器 (localhost) 的 计 算 机 上 , 打 开 “ 控 制 面 板 ” 。
双 击 “ ODBC ” 图 标 , 然 后 单 击 “ 系 统 DSN ” 选 项 卡 。
DSN 将 告 诉 数 据 库 驱 动 程 序 ( 用 来 配 置 数 据 库 并 与 其 通 讯 的 程 序 ) 数 据 库 文 件 所
在 的 位 置 。 您 可 以 创 建 3 种 类 型 的 DSN: 用 户 DSN (User DSN) , 只 能 对 您 起 作
用 ; 系 统 DSN (System DSN) , 可 以 对 计 算 机 的 所 有 用 户 起 作 用 ; 文 件 DSN (F
ile DSN) , 将 DSN 信 息 保 存 为 文 件 , 并 且 允 许 所 有 用 户 使 用 相 同 的 数 据 库 驱 动 程
序 。 本 教 程 使 用 的 DSN 必 须 是 系 统 DSN (System DSN) 。
单 击 “ 添 加 ” , 选 择 “ Microsoft Access 驱 动 程 序 ” , 然 后 单 击 “ 完 成 ” 。
在 “ 数 据 源 名 称 ” 框 中 , 键 入 ASPTutorial , 然 后 单 击 “ 选 择 ” 。 选 择 BTCustm
r.mdb 文 件 ( 默 认 情 况 下 位 于 WINNT\Help\IIS\Htm\Tutorial 目 录 中 ) , 然 后 单
击 “ 确 定 ” 。
单 击 “ 确 定 ” 关 闭 对 话 框 。
创 建 组 件 实 例
用 文 本 编 辑 器 打 开 localhost Web 服 务 器 上 Tutorial 目 录 ( C:\WINNT\Help\
iis\htm\tutorial) 中 的 Database.asp 文 件 。
查 找 文 字 “ Define Scripting Language ” , 将 下 列 脚 本 插 入 找 到 的 文 字 行 之 后 :
〈 %@ LANGUAGE = "VBScript" % 〉
必 须 保 证 这 个 标 记 是 所 有 .asp 文 件 的 第 一 个 脚 本 行 。
查 找 文 字 “ Tutorial Lesson - ADO Connection ” , 脚 本 将 插 入 到 找 到 的 文 字 行
之 后 。
必 须 先 创 建 一 个 对 象 的 实 例 , 然 后 才 能 使 用 它 。 请 复 制 并 粘 贴 以 下 脚 本 命 令 :
〈 %
Set objConnection = Server.CreateObject("ADODB.Connection")
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 这 些 脚 本 命 令 就 已
经 在 “ Tutorial Lesson ” 注 释 行 以 下 了 。 请 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者
将 未 使 用 过 的 Database.asp 从 Template 子 目 录 (C:\WINNT\Help\iis\htm\tu
torial/template) 复 制 到 Tutorial 目 录 中 。
对 于 Database Access 组 件 来 说 , 您 必 须 指 定 ODBC 数 据 源 ( 要 从 其 中 检 索 数 据
的 数 据 库 ) , 方 法 是 打 开 一 个 到 数 据 库 的 连 接 。 复 制 并 粘 贴 以 下 脚 本 命 令 :
objConnection.Open "ASPTutorial"
使 用 Database Access 组 件 的 Execute 方 法 , 可 以 向 数 据 库 发 送 一 个 将 结 构 化
查 询 语 言 (Structured Query Language, SQL) 的 SELECT 命 令 , 并 且 将 返 回 的
记 录 保 存 到 结 果 集 合 (rsCustomersList) 中 。 请 将 下 列 脚 本 命 令 复 制 并 粘 贴 到
objConnection.Open 语 句 之 后 :
SQLQuery = "SELECT * FROM Customers"
Set rsCustomersList = objConnection.Execute(SQLQuery)
% 〉
如 果 将 SQL 查 询 字 符 串 直 接 传 递 给 Execute 方 法 , 而 不 是 先 给 变 量 SQLQuery
赋 值 , 就 可 以 将 这 两 行 合 并 。 当 SQL SELECT 行 比 较 长 时 , 为 使 脚 本 易 读 一 些 ,
可 以 将 字 符 串 赋 值 给 一 个 变 量 ( 如 SQLQuery ) , 然 后 将 变 量 名 传 递 给 Execute
方 法 。
显 示 返 回 的 结 果 集 合
您 可 以 将 结 果 集 合 视 为 一 个 表 格 , 这 个 表 格 的 结 构 由 SQL SELECT 语 句 中 的 字 段
决 定 。 显 示 检 索 返 回 的 行 , 就 象 在 结 果 集 合 中 按 行 数 执 行 循 环 一 样 简 单 。 在 本 示
例 中 , 返 回 的 数 据 显 示 在 HTML 表 格 行 中 。
在 Database.asp 文 件 中 , 查 找 文 字 “ Tutorial Lesson - Display ADO Data ”
, 将 以 下 脚 本 复 制 并 粘 贴 到 找 到 的 行 之 后 :
〈 % Do Until rsCustomersList.EOF% 〉
〈 tr 〉
〈 td bgcolor="f7efde" align=center 〉
〈 %= rsCustomersList("ContactFirstName")% 〉
〈 %= rsCustomersList("ContactLastName") % 〉
〈 /td 〉
〈 td bgcolor="f7efde" align=center 〉
〈 a href="mailto: 〈 %= rsCustomersList("ContactLastName")% 〉 " 〉
〈 %= rsCustomersList("ContactLastName")% 〉 〈 /a 〉
〈 /td 〉
〈 td bgcolor="f7efde" align=center 〉
〈 %= rsCustomersList("City")% 〉
〈 /td 〉
〈 td bgcolor="f7efde" align=center 〉
〈 %= rsCustomersList("StateOrProvince")% 〉
〈 /td 〉
〈 /tr 〉
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 这 些 脚 本 命 令 就 已
经 存 在 了 。 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使 用 过 的 Bayshore.asp 从
Template 目 录 复 制 到 Tutorial 目 录 中 。
当 条 件 为 “ 真 ” 时 , VBScriptDo...Loop 语 句 重 复 执 行 一 段 语 句 。 被 重 复 执 行 的
语 句 可 以 是 脚 本 命 令 或 HTML 文 本 和 标 记 。 因 此 , 在 循 环 的 每 次 重 复 中 , 您 都 可
以 用 HTML 画 出 表 格 行 , 并 且 用 脚 本 命 令 插 入 返 回 的 数 据 。
要 完 成 循 环 , 还 要 使 用 MoveNext 方 法 来 移 动 行 指 针 到 下 一 行 。 因 为 这 一 语 句 仍
然 在 Do...Loop 语 句 中 , 所 以 它 一 直 重 复 , 直 到 到 达 文 件 结 尾 才 停 止 。 请 复 制 以
下 脚 本 , 并 将 其 粘 贴 到 “ Tutorial Lesson - Retrieve Next Row ” 行 之 后 :
〈 %
rsCustomersList.MoveNext
Loop
% 〉
以 纯 文 本 格 式 保 存 Database.asp 文 件 , 并 且 退 出 文 本 编 辑 器 。 注 意 文 件 后 缀 .
asp 不 要 被 文 本 编 辑 器 替 换 。
若 要 验 证 您 创 建 的 ASP 页 是 否 正 常 运 行 , 请 将 您 的 浏 览 器 导 向 [url]http://localho[/url]
st/IISHelp/IIS/Help/Htm/Tutorial/Database.asp 。 ( 此 后 若 要 返 回 本 教 程 , 只
要 在 浏 览 器 中 单 击 “ 上 一 页 ” 或 “ Back ” 按 钮 即 可 。 )
自 学 参 考
如 果 您 正 使 用 Windows NT , 要 参 阅 更 完 整 的 Database Access 组 件 示 例 , 可 以
访 问 Exploration Air 示 范 节 点 。 单 击 Behind the Scenes 图 像 , 可 以 学 习 用
来 创 建 这 个 Web 节 点 的 脚 本 的 更 多 知 识 。 在 Bayshore Travel Web 页 上 也 有 指
向 Exploration Air 示 范 节 点 的 链 接 。
注 意 如 果 您 还 没 有 访 问 Exploration Air 示 范 节 点 , 上 面 的 链 接 将 把 您 带 到 E
xploration Air 主 页 。 此 后 若 要 返 回 本 教 程 , 只 要 在 浏 览 器 中 单 击 “ 上 一 页 ” 或
“ Back ” 按 钮 即 可 。
现 在 , 您 已 经 用 过 了 ActiveX 组 件 , 让 我 们 来 学 习 模 块 3 : 编 写 自 己 的 组 件 。
----------------------------------------------------------------------
----------
模 块 3 : 编 写 自 己 的 组 件
请 选 择 本 课 的 脚 本 语 言 。
在 模 块 2 中 , 您 已 经 熟 悉 了 ASP 提 供 的 组 件 , 现 在 该 创 建 自 己 的 组 件 来 满 足 自
己 的 特 殊 需 要 了 。
假 设 您 需 要 创 建 一 个 ASP 程 序 , 以 便 通 过 Web 节 点 提 供 特 定 的 财 务 功 能 。 ASP
没 有 直 接 提 供 这 样 的 功 能 , 不 过 您 可 以 通 过 创 建 自 己 的 Java 或 ActiveX 组 件 来
解 决 问 题 。 您 将 在 本 模 块 中 学 会 这 些 。
如 果 要 学 习 如 何 创 建 并 使 用 组 件 , 首 先 使 用 下 面 的 表 格 进 行 选 择 :
----------------------------------------------------------------------
----------
选 择 本 课 要 创 建 的 组 件 类 型 :
Visual Basic 5.0 ActiveX 组 件
Visual J++ 1.1 Java? 组 件
----------------------------------------------------------------------
----------
要 点
若 要 保 存 并 查 看 您 在 本 模 块 中 的 工 作 结 果 , 需 要 :
对 localhost Web 服 务 器 上 的 /iishelp/iis/htm/tutorial 虚 拟 目 录 具 有 “ 写
(Write) ” 和 “ 改 编 Web 服 务 器 (Script Web server) ” 权 限 。 详 细 信 息 , 请 参
阅 设 置 Web 服 务 器 权 限 。
您 的 Windows NT 帐 号 , 必 须 在 DriveLetter:\Winnt\System32\Inetsrv\ 目 录
及 其 子 目 录 上 具 有 Windows NT File System (NTFS) 的 读 、 写 和 运 行 程 序 权 限 (
此 处 的 DriveLetter 代 表 localhost Web 服 务 器 的 适 当 的 驱 动 器 号 , 如 果 您 没
有 安 装 到 默 认 目 录 下 , 请 用 您 的 安 装 目 录 代 替 \Winnt\System32 ) 。
要 完 成 本 模 块 , 必 须 在 localhost Web 服 务 器 上 安 装 :
Microsoft? Visual Basic 5.0 专 业 版 的 32 位 版 本 或 Visual Basic 5.0 企 业
版 开 发 系 统 。
如 果 已 经 禁 止 了 Web 浏 览 器 运 行 Java 程 序 功 能 , 请 在 开 始 教 程 以 前 启 用 该 功 能 创 建 ActiveX 财 务 组 件
组 件 将 包 含 一 组 相 关 的 方 法 ( 函 数 ) , 用 来 提 供 脚 本 语 言 所 不 具 有 的 功 能 。 由 于
VBScript 不 提 供 财 务 函 数 , 所 以 您 必 须 通 过 自 己 的 Finance 服 务 器 组 件 来 提 供
对 Visual Basic 财 务 函 数 的 使 用 能 力 。 该 服 务 器 组 件 能 提 供 所 有 的 Visual Ba
sic 财 务 函 数 , 包 括 DDB 函 数 ( 双 倍 余 额 递 减 法 ) 、 FV 函 数 ( 未 来 值 ) 、 IPmt
函 数 ( 支 付 利 息 ) 、 IRR 函 数 ( 内 部 回 报 率 ) 以 及 其 他 函 数 。 不 过 , 在 本 教 程 中
, 您 将 只 使 用 FV 函 数 , 基 于 固 定 利 率 及 等 额 定 期 支 付 方 式 , 返 回 一 笔 年 金 。
启 动 Visual Basic
单 击 “ 开 始 ” 按 钮 , 指 向 “ 程 序 ” , 然 后 指 向 “ Microsoft Visual Basic 5.0 ”
单 击 子 菜 单 中 的 “ Visual Basic 5.0 ” , 运 行 编 程 环 境 。
开 始 并 命 名 一 个 工 程
在 “ New Project ” 对 话 框 中 , 双 击 “ ActiveX DLL ” 。
在 “ Project ” 菜 单 上 , 单 击 “ Project1 Properties ” 。
在 “ General ” 属 性 页 的 “ Project Name ” 框 中 , 键 入 “ MS ” 。
选 择 “ Unattended Execution ” 。
注 意 选 择 该 选 项 表 明 这 个 工 程 运 行 时 不 需 要 用 户 交 互 , 并 且 将 不 具 有 用 户 交 互 的
基 础 。
单 击 “ OK ” 。
现 在 工 程 被 命 名 为 “ MS ” 。 以 后 , 您 将 从 ASP 脚 本 中 以 MS.Finance 的 形 式 引 用
Finance 服 务 器 组 件 。
将 Finance Class 添 加 到 工 程 中
在 Visual Basic 中 , 若 要 创 建 具 有 一 组 可 以 调 用 的 函 数 组 件 , 必 须 定 义 一 个 类
。 一 个 类 包 含 一 组 方 法 和 属 性 。 在 您 的 工 程 中 , 类 就 是 您 说 明 财 务 方 法 的 地 方 。
按 下 F4 键 打 开 类 模 块 的 “ Properties ” 窗 口 , 双 击 “ Name ” 属 性 并 键 入 “ Func
tion ” , 然 后 按 Enter 。
双 击 “ Instancing ” 。
单 击 箭 头 , 然 后 选 择 “ 5 - MultiUse ” 。
进 一 步 学 习 Visual Basic 财 务 函 数
Visual Basic 的 帮 助 系 统 描 述 了 可 以 使 用 的 财 务 函 数 。
单 击 “ Help ” 。
选 择 “ Microsoft Visual Basic Help Topics ” 。
选 择 “ Index ” 选 项 卡 , 然 后 键 入 “ financial functions ” 作 为 查 找 的 文 字 。
双 击 “ financial functions ” 索 引 条 。
单 击 “ FV Function ” , 学 习 该 函 数 。
学 习 完 财 务 函 数 后 , 关 闭 “ Visual Basic Help ” 对 话 框 。
将 CalcFV 函 数 添 加 到 Finance 类
Finance 服 务 器 组 件 需 要 一 些 代 码 。 这 些 代 码 让 使 用 您 组 件 的 语 言 可 以 调 用 Vis
ual Basic 内 建 的 未 来 值 函 数 。
将 下 列 行 复 制 并 粘 贴 到 Finance 类 的 代 码 窗 口 中 :
Public Function CalcFV(rate, nper, pmt, Optional pv, Optional whendue)
CalcFV = FV(rate, nper, pmt, pv, whendue)
End Function
添 加 组 件 的 入 口 点
所 有 服 务 器 组 件 都 需 要 一 个 入 口 ( 起 始 ) 点 。 这 是 当 对 象 第 一 次 可 用 于 一 种 语 言
时 , 将 被 调 用 的 代 码 。 在 VBScript 中 , 当 您 使 用 Server.CreateObject 时 , 将
创 建 对 象 的 一 个 实 例 。 当 执 行 Server.CreateObject 语 句 时 , ( 由 Visual Bas
ic 创 建 的 ) 服 务 器 组 件 上 的 Sub Main 过 程 将 被 调 用 。
当 您 的 财 务 组 件 被 调 用 时 , 它 不 需 要 任 何 特 殊 代 码 来 初 始 化 自 身 。 因 此 , 需 要 提
供 一 个 空 的 ( 没 有 Visual Basic 语 句 的 ) Sub Main 过 程 。
选 择 “ Project ” 菜 单 中 的 “ Add Module ” 。
在 “ Module 1 ” 对 话 框 中 , 双 击 模 块 图 标 。
在 Module 1 代 码 窗 口 中 , 键 入 Sub Main 。
按 下 Enter 键 。
将 自 动 进 入 如 下 代 码 :
Sub Main()
End Sub
保 存 Finance 工 程
当 保 存 所 作 的 工 作 时 , 将 询 问 您 是 否 保 存 Visual Basic 工 程 的 全 部 3 部 分 。 其
中 包 括 工 程 文 件 、 类 模 块 和 代 码 模 块 。
打 开 “ File ” 菜 单 。
选 择 “ Save Project ” 。
在 “ File name ” 文 本 框 中 , 键 入 “ Finance ” 。 选 择 localhost Web 服 务 器 上 的
如 下 路 径 : DriveLetter:\Winnt\System32\Inetsrv\ , 其 中 DriveLetter 是 适 当
的 驱 动 器 号 。 ( 如 果 您 没 有 接 受 默 认 的 安 装 目 录 , 请 用 您 的 安 装 目 录 替 换 \Winn
t\System32 。 )
单 击 “ Save ” 按 钮 。
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 将 出 现 一 条 消 息 , 提 示
文 件 已 经 存 在 。 请 用 您 的 文 件 覆 盖 旧 文 件 。
双 击 “ File name ” 文 本 框 中 的 值 “ Project1 ” , 选 中 它 。
为 工 程 文 件 键 入 名 称 “ Finance ” (.vbp) 。
单 击 “ Save ” 按 钮 保 存 工 程 。
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 将 出 现 一 条 消 信 息 , 提
示 文 件 已 经 存 在 。 请 用 您 的 文 件 覆 盖 旧 文 件 。
成 为 “ 进 程 内 (In-Process) ” 组 件
Visual Basic 允 许 您 创 建 进 程 内 ActiveX 组 件 ( 通 常 称 为 OLE 自 动 服 务 器 ) 和
进 程 外 ActiveX 组 件 。 一 个 进 程 内 ActiveX 组 件 是 一 个 动 态 链 接 库 ( 带 .dll
后 缀 ) , 由 调 用 它 的 进 程 进 行 加 载 。 一 个 进 程 外 ActiveX 组 件 是 一 个 可 执 行 文 件
( 带 .exe 后 缀 ) , 当 它 被 应 用 程 序 调 用 后 , 以 独 立 进 程 的 状 态 运 行 。 由 于 进 程
内 组 件 与 调 用 它 的 程 序 在 同 一 个 进 程 空 间 , 所 以 性 能 比 进 程 外 组 件 要 佳 。
使 Finance 服 务 器 组 件 成 为 进 程 内 ActiveX 组 件
打 开 “ File ” 菜 单 。
选 定 “ Make Finance.dll ” 。
单 击 “ Options ” 按 钮 。
选 定 “ Auto Increment ” 复 选 框 。
单 击 “ OK ” 。
键 入 DriveLetter:\localhost\Winnt\System32\Inetsrv\Finance , 其 中 Drive
Letter 是 适 当 的 驱 动 器 号 。 ( 如 果 您 没 有 接 受 默 认 的 安 装 目 录 , 请 用 您 的 安 装 目
录 替 换 \Winnt\System32 。 )
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 将 出 现 一 条 消 信 息 , 提
示 文 件 已 经 存 在 。 请 用 您 的 文 件 覆 盖 旧 文 件 。
退 出 Visual Basic 。
注 册 Finance 服 务 器 组 件
所 有 服 务 器 组 件 都 必 须 注 册 。 Windows NT 和 Windows 95 用 系 统 注 册 表 来 追 踪 哪
个 服 务 器 组 件 是 可 用 的 。 在 您 的 计 算 机 上 将 Finance 服 务 器 组 件 注 册 后 , 就 可 以
在 VBScript 和 所 有 兼 容 OLE 的 语 言 中 调 用 它 了 。
打 开 一 个 命 令 提 示 符 窗 口 。
在 命 令 提 示 符 后 键 入 cd Drive Letter:\localhost\Winnt\System32\Inetsrv ,
其 中 DriveLetter 是 适 当 的 驱 动 器 号 。 ( 如 果 您 没 有 接 受 默 认 的 安 装 目 录 , 请 用
您 的 安 装 目 录 替 换 \Winnt\System32 。 )
按 下 Enter 键 。
键 入 regsvr32 Finance.dll 。
按 下 Enter 键 。
当 出 现 一 个 对 话 框 显 示 “ DllRegisterServer in finance.dll succeeded ” 时 ,
请 单 击 “ OK ” 按 钮 。
关 闭 命 令 提 示 符 窗 口 。 从 脚 本 调 用 Finance 组 件
要 测 试 组 件 , 可 以 从 ASP 、 Visual Basic 、 Microsoft? Office 产 品 的 Visual
Basic for Applications 或 任 何 OLE 自 动 控 件 来 调 用 组 件 。
要 使 用 VBScript 从 ASP 调 用 Finance 组 件 , 可 以 使 用 一 个 HTML 表 格 作 为 输
入 来 计 算 某 人 存 款 计 划 的 未 来 值 。
所 需 的 HTML 表 格
我 们 将 使 用 一 个 HTML 表 格 后 , 就 能 用 Request("APR") 的 方 式 引 用 。 HTML 标 记
〈 INPUT TYPE=TEXT NAME=APR 〉 提 供 了 输 入 数 值 所 需 的 字 段 。
要 将 表 格 标 记 的 ACTION 属 性 指 定 的 网 页 。 “ Submit ” 按 钮 的 HTML 标 记 ( 〈 INP
UT TYPE=SUBMIT VALUE=" Calculate Future Value " 〉 ) 使 用 ACTION 的 值 , 从
HTML 表 格 标 记 ( 〈 FORM METHOD=POST ACTION="Finance.asp" 〉 ) 来 调 用 ASP 页
Finance.asp 。
我 们 已 经 为 您 创 建 好 了 表 格 。 用 文 本 编 辑 器 打 开 localhost Web 服 务 器 上 Tuto
rial 目 录 (C:\WINNT\Help\iis\htm\tutorial) 中 的 FVform.asp 文 件 即 可 。
脚 本
我 们 使 用 VBScript 来 调 用 您 的 Finance 服 务 器 组 件 。 脚 本 首 先 确 认 来 自 HTML
表 格 中 任 何 没 有 输 入 的 变 量 赋 默 认 值 。
Server.CreateObject 创 建 一 个 Finance 组 件 的 实 例 ( 也 就 是 使 组 件 可 用 ) , 名
为 MS.Finance 。 为 组 件 创 建 实 例 以 后 , 就 可 以 使 用 组 件 的 方 法 和 属 性 了 。 在 脚 本
中 紧 随 Server.CreateObject 之 后 , 使 用 了 CalcFV 方 法 来 计 算 存 款 计 划 的 未 来
值 。 计 算 结 果 将 出 现 在 请 求 这 个 信 息 的 浏 览 器 中 。
要 查 看 脚 本 , 请 用 文 本 编 辑 器 打 开 Tutorial 目 录 (C:\WINNT\Help\iis\htm\tu
torial) 中 的 Finance.asp 文 件 。
用 浏 览 器 进 行 测 试
要 运 行 Finance.asp ASP 页 , 请 打 开 FVform.asp 文 件 , 该 文 件 将 绘 制 一 个 表 格
并 调 用 Finance.asp 脚 本 来 计 算 表 格 中 描 述 的 存 款 计 划 的 未 来 值 。
要 打 开 FVform.htm , 请 将 浏 览 器 导 向 [url]http://localhost/iishelp/iis/htm/tut[/url]
orial/FVform.asp 。
在 “ Savings Plan ” 表 格 中 输 入 数 值 。
单 击 “ Calculate Future Value ” 按 钮 。 存 款 计 划 的 结 果 将 会 出 现 。
经 过 不 长 时 间 的 学 习 , 您 已 经 创 建 了 一 个 有 用 的 ActiveX 服 务 器 组 件 。 如 果 需
要 使 用 其 他 财 务 函 数 , 只 要 通 过 Visual Basic 将 其 他 方 法 添 加 到 Finance 服 务
器 组 件 中 , 就 可 以 执 行 其 他 财 务 函 数 了 。 我 们 鼓 励 您 进 行 尝 试 并 提 出 创 造 性 的 方
法 来 利 用 自 己 的 ActiveX 组 件 。 您 很 快 将 会 发 现 , 用 组 件 来 开 发 Web 应 用 程 序
几 乎 没 有 任 何 限 制 。
----------------------------------------------------------------------
----------
梵人太强了 加精,好难得看到Disillusion兄呀:) 写得太好了 看得头痛了 还要看 嘻嘻
回复: ASP技巧
这帖不顶不是人 基本看不懂,全部复制到Word里面了页:
[1]