作者:[转载]  文章来源:http://www.alixixi.com/  更新时间:2005-12-13

— — 构 造 数 据 库 接 口 网 页 的 捷 径 北 京 信 息 技 术 应 用 研 究 所 蒋 晓 京
----------------------------------------------------------------------------
---- ----随 着internet/intranet 和web 技 术 的 迅 猛 发 展, 上 网 用 户 已 不 仅
仅 满 足 于 浏 览 静 态 的 网 页 内 容, 而 更 希 望 通 过 人 机 对 话 的 动
态 交 互 方 式 获 取 所 需 信 息; 而 对 于web 开 发 者 来 说, 静 态 网 页
也 存 在 占 用 磁 盘 空 间 多、 信 息 内 容 分 散、 维 护 更 新 困 难 等 问
题。 因 此, 在web 上 使 用 动 态 交 互 网 页 发 布 信 息 已 是 众 望 所 归 。
----传 统 的 生 成 动 态 网 页 的 方 式 — — 如cgi、 isapi 等 存 在 开 销 大
、 效 率 低、 开 发 困 难、 无 法 与html 语 言 紧 密 结 合 等 缺 陷。asp(ac
tive server pages, 中 文 译 作“ 动 态 服 务 器 网 页") 作 为 微 软 公 司
推 出 的 新 一 代 动 态 网 页 开 发 技 术, 正 好 弥 补 了 这 些 缺 陷, 它
具 有 易 于 生 成、 面 向 对 象、 可 扩 充、 安 全 性 好、 适 用 范 围 广 且
与html 完 全 融 合 等 特 点。 关 于 它 的 工 作 原 理 和 技 术 特 点,《 计
算 机 世 界》 已 作 过 深 入 详 细 的 专 题 报 道, 本 文 不 再 重 复。
----由 于 开 发asp 需 要 编 程, 往 往 使 初 学 者 望 而 却 步。frontpage98
作 为 时 下 最 流 行 的 网 站 开 发 工 具, 具 有 使 用 简 便, 可 视 化 等
特 点。 有 人 以 为frontpage98 只 能 起 组 织、 管 理 网 站 和 修 饰 页 面 的
作 用, 对 开 发asp 帮 不 上 什 么 忙。 其 实 不 然,frontpage98 内 部 提 供
了 对asp 的 支 持, 使 得 开 发 者 不 须 编 程, 只 要 写 几 句sql 语 句,
就 能 快 速 生 成 与 后 台 数 据 库 接 口 的asp 页, 是 开 发asp 很 好 的 入
门 工 具。 本 文 就 将 介 绍 这 一 技 术, 并 对 这 一 技 术 的 优 缺 点、
与 手 工 编 写 方 式 的 结 合 等 加 以 阐 述。 用frontpage98 生 成asp 页 的 方 法
----一、 首 先 确 保 你 的 系 统 满 足 运 行asp 的 条 件, 即: 你 的web 服 务 器 是 以 下 几 种 中 的 一 种:
----microsoft internet information server 3.0/4.0 for windows nt ;
---- microsoft peer web services for windows nt ;
---- microsoft personal web server for windows 95/98 。
你 的 服 务 器 装 有 你 所 使 用 的 数 据 库 的32 位odbc 驱 动 程 序( 包 括a
ccess、sql server、oracle、foxpro 等, 总 之 是 所 有 支 持odbc 的 数 据 库)
, 如 果 没 有, 在 服 务 器 上 安 装 该 数 据 库 的 客 户 端 软 件 即 可。
你 的 服 务 器 上 安 装 了frontpage 98 server extensions(frontpage 98 服 务
器 扩 展, 安 装fp98 时 会 自 动 装 入)。
你 的 服 务 器 上 安 装 了asp 引 擎( 运 行 一 下iis 安 装 盘 或fp98 盘 中 的
asp.exe 文 件 即 可 安 装, 也 可 到 以 下 网 址 下 载: www.microsoft.com/m
sdownload/iis3/download2.asp?prod=1 )。
对 于iis4 或pws for win98, 上 述“3”、“4” 步 在 安 装 时 就 已 设 好, 不
用 另 装。 另 外,“1”、“3”、“4” 安 装 的 顺 序 不 能 打 乱。
----二、 在 控 制 面 板|odbc 中 定 义 好 你 要 使 用 的 数 据 库 的dsn 数 据
源, 注 意 要 定 义 成“ 系 统 数 据 源"。
----三、 建 立 数 据 库 查 询 页, 在frontpage 98 的 explorer 中 新 建 一 个
普 通html 网 页, 在 上 面 插 入 一 个form 对 象, 比 如 一 个 单 行 文 本
框, 并 命 名 为“t1", 在form 所 在 区 域 单 击 鼠 标 右 键, 在 弹 出 的 菜
单 中 点“form properties", 再 选 择“send to other : " 项, 在 下 拉 列 表
中 选 择“custom isapi , nsapi , cgi , or asp script" 项, 并 单 击options,
在 弹 出 对 话 框 的action 中 指 明 目 标asp 页 的 相 对 路 径 和 文 件 名,
如 “asp/list.asp", 这 样, 只 要 用 户 在 浏 览 器 中 一 按“ 提 交", 页 面 就 会 自 动 转 到 该asp 页。
----四、 建 立 数 据 库 查 询 结 果 显 示 页。
用frontpage 98 的explorer 在 网 站 中 新 建 一 个 目 录, 命 名 为“asp" (
也 可 以 是 其 他 名 字), 赋 予 该 目 录 允 许 执 行 程 序 的 属 性, 并 取
消 该 目 录 的 可 读 属 性, 在 此 目 录 下 新 建 一 个 网 页, 并 命 名 为
list.asp。asp 网 页 的 文 件 名 后 缀 必 须 为“.asp", 这 是 规 定 的。 最
好 把 所 有asp 文 件 放 在 同 一 目 录 下。
用frontpage editor 打 开 此 页, 通 过 选 取 菜 单insert | database | databa
se region wizard, 进 入wizard。
在“odbc data source name(dsn)" 中 输 入dsn 数 据 源 名( 即 前 面 第 “ 二
” 步 在odbc 中 定 义 好 的), 如 果 数 据 库 有 用 户 名 和 密 码, 请 选
中“username" 和“password" 复 选 框 并 输 入 内 容。 输 完 后 点“next "。
在“enter the sql string for the query" 中 输 入sql 查 询 语 句, 如“select
* from table where name = ‘ % %t1 % %'”(table 为 数 据 库 中 的 表
名, name 为 字 段 名), 如 果 语 句 中 有 从form 中 提 交 的 数 据, 请 在
其 前 后 都 加 上“ % %", 如“t1" 应 改 为“ % %t1 % %"。 如 果 你 点
击“insert form field parameter" 来 加 入form 提 交 的 数 据,“ % %" 会
被 自 动 加 上。 你 也 可 以 用“paste sql from clipboard" 从 剪 贴 板 贴 入
sql 语 句。 输 完 后 点 “next "。
点“add field", 输 入 字 段 名, 在“enter the query field names" 中 加 入
要 在 结 果 中 显 示 的 字 段( 至 少 要 输 入 一 个)。 如 果 想 以 表 格 方
式 输 出 结 果, 请 选 中“show the query in a table" 复 选 框。 最 后 单 击
“finish", 这 样, 一 个asp 页 就 生 成 了。
进 一 步 调 整 输 出 结 果 的 外 观, 直 到 满 意 为 止。 注 意, 表 头 的 文
字 可 随 意 修 改, 但 有 机 器 人 控 制 的“database : xxxx" 部 分 不 能 修 改, 不 过 可 移 动 或 删 除。
如 果 你 需 要 修 改 前 面 输 入 的dsn 数 据 源、sql 语 句 或 增 减 在 结 果
中 显 示 的 字 段, 把 鼠 标 移 到wizard 生 成 的 部 分, 当 鼠 标 变 成 一
个 小 机 器 人 时 单 击 右 键, 在 弹 出 的 菜 单 中 选 中“database region
properties" 或“database column value properties" 来 进 行 修 改。
用frontpage98 生 成asp 页 的 优 缺 点
----根 据 笔 者 的 使 用 经 验, 用database region wizard 生 成asp 页, 具 有 以 下 优 点:
----一、 不 用 编 写 代 码, 快 速 高 效, 简 便 易 行, 适 合 于 初 学 者 和
非 专 业 人 员。 你 只 须 构 造 好 你 的sql 查 询 语 句, 其 他 的 事 大 可
放 心 地 交 给wizard 去 做, 比 自 己 手 工 编 写 快。
----二、 程 序 对 输 入 控 制 严 格, 有 效 避 免 非 法 字 符 入 侵。 用data
base region wizard 生 成 的 程 序, 通 过 对 表 单 提 交 的 数 据 前 后 加“
% %" 并 在 执 行 过 程 中 检 验, 以 及 对 所 提 交 数 据 中 的 “ " ”、
“ ' ”( 即 单 双 引 号) 等 符 号 进 行 层 层 过 滤 的 做 法, 避 免 了 表
单 提 交 非 法 数 据 引 起 的 程 序 运 行 错 误。 而 手 工 编 写asp 页 时 这 些 都 要 自 己 处 理。
----三、 可 以 通 过frontpage editor 对 输 出 结 果 的 格 式 进 行 直 观 的
调 整, 使 输 出 结 果 更 为 美 观。 通 常, 由 于asp 页 是 动 态 生 成 的,
手 工 编 写 的asp 页, 在frontpage editor 中 由 于 未 经 运 行, 所 以 看 不
到 输 出 结 果 的 样 式, 也 就 无 法 调 整; 而wizard 生 成 的asp 页, 通
过frontpage webbot( 机 器 人) 对 输 出 结 果 提 供 了 预 览, 你 可 以 像
调 整 任 何 静 态 文 字、 表 格 一 样 调 整 输 出 结 果 的 外 观。
----但 是, 过 于 自 动 化 的 处 理 有 时 也 往 往 意 味 着 灵 活 性 的 丧 失
。wizard 为 我 们 带 来 方 便 的 同 时, 也 削 弱 了asp 程 序 运 行 的 自 由
度, 为 我 们 细 致 入 微 地 控 制 程 序 带 来 了 一 些 麻 烦。 如 果 你 用
wizard 生 成 了 一 个asp 页, 然 后 又 在frontpage editor 中 点 击“html" 卡
片, 在html 编 辑 方 式 下 插 入 了 一 些 自 己 的asp 代 码, 比 如 自 动 分
页 的 代 码, 然 后 存 盘 退 出,frontpage editor 会 弹 出 一 个 “the cont
ents of a frontpage component have been modified . these contents will be ov
erwritten when you save this page " 的 提 示, 并 且 只 有 一 个“ 确 定" 按
钮, 这 样, 你 在 html 方 式 下 插 入 的asp 代 码 大 部 分 都 不 会 被 保
存。 笔 者 就 曾 犯 过 这 样 的 错 误, 结 果 辛 辛 苦 苦 编 写 的 大 段 代 码 都 付 诸 东 流。
与 手 工 编 写 的asp 代 码 相 结 合
----怎 样 才 能 使wizard 生 成 的 代 码 与 手 工 编 写 的asp 代 码 在 同 一a
sp 页 中 和 平 共 处 呢 ? 方 法 是: 先 用frontpage editor 打 开asp 页, 调
整 好 用wizard 自 动 处 理 的 部 分, 以 及 所 有 想 用 frontpage editor 处
理 的 部 分, 如 页 面 外 观 的 调 整 等, 存 盘 退 出。 在 frontpage explo
rer 的folders 视 图 右 击 该asp 页 的 图 标, 在 弹 出 的 菜 单 中 选“open
with …", 在 随 后 出 现 的 选 项 中 选“text editor(notepad.exe)", asp
页 将 以 记 事 本 方 式 打 开。 输 入 自 己 的asp 代 码, 请 注 意 以 下 诸 点:
----一、 在“" 中 的 部 分 是frontpage 机 器 人 自 动 处 理 的 部 分, 最 好
不 要 改 动, 但 你 可 以 改 动 下 面 这 一 句:“no record found!" , 把 凡
是 出 现 这 一 句 的 地 方 双 引 号 内 的 部 分 改 为:“ 对 不 起 ! 没 有
符 合 要 求 的 记 录。" 或 干 脆 连 双 引 号 一 起 删 掉, 这 样, 当 没 有
记 录 返 回 时, 就 不 会 显 示 英 文 “no record found!" 了。
----二、< % … … %> 中 的 部 分 即 是asp 的 代 码 部 分。 你 既 可 以 在
已 有 的< % … … %> 部 分 中 插 入 自 己 的asp 代 码, 也 可 以 在html 语
句 中 通 过 插 入< % … … %> 来 开 辟 自 己 的asp 代 码 区 域。 当 然,
你 首 先 应 读 懂 自 动 生 成 的asp 代 码, 理 解 它 的 流 程 控 制 和 主 要
变 量 的 含 义, 再 加 入 自 己 的 代 码, 比 如 分 页 控 制 等。 由 于 自
动 生 成 的asp 代 码 中 的 变 量 使 用 的 都 是 描 述 性 的 短 语, 应 该 不 难 理 解。
----三、 对 于 已 存 在 的html 和wizard 生 成 的asp 代 码, 也 可 以 根 据 需
要 稍 加 调 整。 比 如 运 行 由wizard 生 成 的asp 页 时, 如 果 你 是 以 表
格 方 式 输 出 结 果, 当 没 有 任 何 记 录 返 回 时, 页 面 上 也 会 出 现
一 行 孤 零 零 的 表 头, 很 不 美 观, 原 因 是wizard 把 生 成 表 头 的 那
几 行html 语 句 放 在 了 判 断 是 否 有 记 录 返 回 的asp 语 句 之 前, 你
可 以 把 它 挪 到 后 面, 使 表 头 只 在 有 记 录 返 回 时 才 显 示 出 来。
----四、 存 盘 退 出 后, 记 住 以 后 最 好 不 要 再 用 frontpage editor 打
开 此 页 了, 即 使 打 开 也 不 要 存 盘, 否 则 大 部 分 手 工 加 入 的asp
代 码 都 会 被 清 除。 如 果 要 编 辑, 用notepad( 记 事 本) 打 开。
----笔 者 曾 用 上 述 方 法 开 发 了 诸 如 用 户 意 见 反 馈、 图 书 资 料 库
查 询 等asp 应 用。 一 般 都 是 先 用database region wizard 生 成asp 程 序
框 架, 再 用frontpage editor 进 行 外 观 润 色, 最 后 用 text editor(note
pad) 加 入 自 己 的 个 性 化 控 制, 如 输 出 结 果 的 分 页 控 制 等。 在
时 间 有 限, 并 且 要 求 不 很 复 杂 的 情 况 下, 这 种 方 法 的 确 能 起
到 事 半 功 倍 的 效 果。 当 然, 如 果 你 有 更 多 的 时 间 和 精 力, 想 进
一 步 优 化 你 的asp 网 页, 建 议 你 最 好 使 用asp 的 专 用 开 发 工 具,
如interdev 等。 顺 便 提 醒 一 句 — — 它 可 是 很 占 地 儿 的。 <
网友评论
相关搜索
阿里西西Baidu.com搜索