Chinaunix首页 | 论坛 | 博客
  • 博客访问: 452751
  • 博文数量: 403
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -70
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-05 12:45
文章分类

全部博文(403)

文章存档

2014年(3)

2013年(1)

2012年(3)

2011年(21)

2010年(13)

2009年(64)

2008年(9)

2007年(36)

2006年(253)

分类:

2006-09-16 18:00:09

HTML语言参考(1)
 
1. HTML 标 签
  这 些 标 签 用 于 建 立 具 有 文 本、 标 题 和 列 表 的 HTML 页 面。
1.1 注 释
〈! --...-- 〉生 成 注 释
 
1.2 结 构 标 签
〈 HTML 〉 ... 〈 /HTML 〉 括 住 整 个 HTML 文 档。
可 以 包 含:〈 HEAD 〉〈 BODY 〉 标 签
 
〈 HEAD 〉 ... 〈 /HEAD 〉括 住 HTML 文 档 的 页 头。
可 以 包 含:〈 TITLE 〉〈 ISINDEX 〉〈 BASE 〉〈 LINK 〉〈 META 〉〈 SCRIPT 〉〈 STYLE 〉
可 以 包 含 在:〈 HTML 〉
 
〈 BODY 〉 ... 〈 /BODY 〉括 住 HTML 文 档 的 主 体( 文 本 和 标 签)。
属 性  说 明 
BACKGROUND 用 于 页 面 背 景 的 图 像 的 名 称 或 URL
BGCOLOR 页 面 的 背 景 颜 色 
TEXT 页 面 的 文 本 颜 色 
LINK 未 查 看 的 链 接 的 颜 色 
ALINK 激 活 的 链 接 的 颜 色 
VLINK 已 查 看 的 链 接 的 颜 色 
可 以 包 含:〈 H1 〉〈 H2 〉〈 H3 〉〈 H4 〉〈 H5 〉〈 H6 〉〈 P 〉〈 OL 〉〈 UL 〉〈 DIR 〉〈 MENU 〉〈 DL 〉〈 PRE 〉〈 BLOCKQUOTE 〉〈 FORM 〉〈 ISINDEX 〉〈 HR 〉〈 ADDRESS 〉
可 以 包 含 在:〈 HTML 〉
 
 
〈 BASE 〉 当 前 文 档 的 URL 全 称
属 性  说 明 
HREF 该 文 档 的 URL 全 称 
可 以 包 含 在:〈 HEAD 〉
 
〈 ISINDEX 〉 表 明 该 文 档 是 一 个 可 用 于 检 索 的 网 关 脚 本
属 性  说 明 
PROMPT 查 询 域 的 提 示 h061.htm#top
 
可 以 包 含 在:〈 BLOCKQUOTE 〉〈 BODY 〉〈 DD 〉〈 FORM 〉〈 HEAD 〉〈 LI 〉
 
〈 LINK 〉
从 该 文 档 到 其 它 文 档 的 链 接。 一 般 是 由 HTML 生 成 程 序 使 用 的。 与 能 够 在 文 档 中 建 立 多 重 链 接 的〈 A 〉 不 同。〈 LINK 〉 表 示 将 文 件 作 为 一 个 整 体 进 行 链 接, 并 不 常 用。
属 性  说 明 
HTEF 链 接 到 该 文 档 的 URL 。 
NAME 如 果 将 文 档 作 为 一 个 锚 点, 该 锚 点 的 名 称。 
REL 链 接 文 档 和 该 文 档 之 间 的 关 系, 如“ TOC ”( 目 录) 或“ Glossary ”( 词 汇 表) 等。 
REV 该 文 档 和 链 接 文 档 之 间 的 关 系。 
URN 资 源 编 号, 用 于 不 同 于 HREF 中 的 URL 的 唯 一 标 识。 
TITLE 链 接 文 档 的 标 题。 
METHODS 获 取 文 档 的 方 式, 如: FTP , Gopher, 等 等。 
可 以 包 含 在:〈 HEAD 〉
 
 
〈 META 〉
有 关 文 档 本 身 的 元 信 息; 例 如, 用 于 查 询 的 关 键 词, 用 于 获 取 该 文 档 的 HTTP 标 题, 有 效 期, 等 等。 元 信 息 通 常 以 关 键 字 / 值 的 方 式 成 对 出 现。
属 性  说 明 
HTTP-EQUIV 生 成 一 个 HTTP 标 题 域, 它 的 取 值 与 另 一 个 属 性 相 同, 例 如 HTTP-EQUIV=Expires. 实 际 取 值 由 CONTENT 确 定。 
NAME 如 果 元 数 据 是 以 关 键 字 / 取 值 的 形 式 出 现 的, NAME 表 示 关 键 字, 如 Author 或 ID 。 
CONTENT 关 键 字 / 取 值 对 的 内 容( 或 由 HTTP-EQUIV 给 出 的 HTTP 标 题)。 
可 以 包 含 在:〈 HEAD 〉
 
 
〈 NEXTID 〉
用 于 表 示 下 一 个 文 档( 可 以 供 管 理 HTML 的 工 具 使 用)。〈 NEXTID 〉 实 际 已 经 废 弃 不 用 了。
 
1.3 标 题 和 题 头
所 有 标 题 标 签 都 有 以 下 特 点:
属 性  说 明 
ALIGN=CENTER 标 题 居 中。
 
可 以 包 含:〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉〈 CITE 〉 〈 TT 〉 〈 B 〉〈 I 〉
可 以 包 含 在:〈 BLOCKQUOTE 〉〈 BODY 〉〈 PRE 〉〈 ADDRESS 〉〈 FORM 〉 〈 TH 〉〈 TD 〉
 
〈H1 〉 ... 〈 /H1 〉 1 级 标 题
〈H2 〉 ... 〈 /H2 〉 2 级 标 题
〈 H3 〉 ... 〈 /H3 〉 3 级 标 题
〈 H4 〉 ... 〈 /H4 〉 4 级 标 题
〈 H5 〉 ... 〈 /H5 〉 5 级 标 题
〈 H6 〉 ... 〈 /H6 〉 6 级 标 题
〈 TITLE 〉 ... 〈 /TITLE 〉 文 档 的 题 目
可 以 包 含 在 : 〈 HEAD 〉
 
 
1.4 段 落
〈 P 〉 ... 〈 /P 〉 普 通 段 落 , 结 束 标 签 ( 〈 /P 〉 ) 是 可 选 的 .
属 性  说 明 
ALIGN=CENTER 段 落 居 中 
可 以 包 含 : 〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉 〈 TT 〉 〈 B 〉 〈 I 〉
可 以 包 含 在:〈 BLOCKQUOTE 〉 〈 BODY 〉 〈 DD 〉 〈 FORM 〉 〈 LI 〉
 
 
1.5 链 接
〈 A 〉 ... 〈 /A 〉
包 含 HREF 属 性 是 建 立 到 另 一 个 文 档 或 锚 点 的 链 接 ; 包 含 NAME 属 性 时 生 成 一 个 可 被 链 接 的 锚 点 .
属 性  说 明 
HREF 链 接 到 文 档 的 URL.
NAME 锚 点 的 名 称 .
REL 链 接 文 档 和 该 文 档 之 间 的 关 系 , 如 "TOC"( 目 录 ) 或 "Glossary"( 词 汇 表 ) 等 . 不 常 用 .
REV 该 文 档 和 链 接 文 档 之 间 的 关 系 . 不 常 用 .
TITLE 链 接 文 档 的 标 题 . 不 常 用 .
可 以 包 含:〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉 〈 TT 〉〈 B 〉 〈 I 〉
可 以 包 含 在:〈 ADDRESS 〉 〈 B 〉 〈 CITE 〉 〈 CODE 〉 〈 DD 〉 〈 DT 〉 〈 EM 〉 〈 H1 〉 〈 H2 〉 〈 H3 〉 〈 H4 〉 〈 H5 〉 〈 H6 〉 〈 I 〉 〈 KBD 〉 〈 LI 〉 〈 P 〉 〈 PRE 〉 〈 SAMP 〉 〈 STRONG 〉 〈 TT 〉 〈 VAR 〉 〈 TH 〉 〈 TD 〉
 
 
1.6 列 表
〈 OL 〉 ... 〈 /OL 〉 有 序 ( 编 号 ) 列 表
属 性  说 明 
TYPE 用 于 列 表 编 号 的 数 字 类 型 . 可 以 取 A,a,I,i,1 等 值 .
START= 标 号 的 起 始 .
可 以 包 含:〈 LI 〉
可 以 包 含 在:〈 BLOCKQUOTE 〉 〈 BODY 〉 〈 DD 〉 〈 FORM 〉 〈 LI 〉 〈 TH 〉 〈 TD 〉
 
 
〈 UL 〉 ... 〈 /UL 〉 无 序 ( 圆 点 ) 列 表 .
属 性  说 明 
TYPE 用 于 列 表 的 项 目 标 记 . 可 以 取 值 DISC, CIRCLE, SQUARE
可 以 包 含:〈 LI 〉
可 以 包 含 在:〈 BLOCKUOTE 〉 〈 BODY 〉 〈 DD 〉 〈 FORM 〉 〈 LI 〉 〈 TH 〉 〈 TD 〉
 
〈 MENU 〉 .. 〈 /MENU 〉 菜 单 式 列 表
可 以 包 含:〈 LI 〉
可 以 包 含 在:〈 BLOCKQUOTE 〉 〈 BODY 〉 〈 DD 〉 〈 FORM 〉 〈 LI 〉 〈 TH 〉 〈 TD 〉
〈 DIR 〉   目 录 列 表 . 目 录 一 般 小 于 20 个 字 符
可 以 包 含:〈 LI 〉
可 以 包 含 在:〈 BLOCKQUOTE 〉 〈 BODY 〉 〈 DD 〉 〈 FORM 〉 〈 LI 〉 〈 TH 〉 〈 TD 〉
〈 LI 〉 用 于〈 OL 〉 , 〈 UL 〉 , 〈 MENU 〉 , 〈 DIR 〉 中 的 列 表 项
属 性  说 明 
TYPE 用 于 列 表 编 号 的 数 字 类 型 . 可 以 取 值 DISC,CIRCLE,SQUARE,A,a,I,i,1 等 .
VALUE 当 前 项 的 编 号 取 值 ( 在〈 OL 〉 中 影 响 该 项 目 以 及 以 下 的 项 目 )
可 以 包 含:〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉 〈 TT 〉 〈 B 〉 〈 I 〉 〈 P 〉 〈 OL 〉 〈 UL 〉 〈 DIR 〉 〈 MENU 〉 〈 DL 〉 〈 PRE 〉 〈 BLOCKAUOTE 〉
可 以 包 含 在:〈 DIR 〉 〈 MENU 〉 〈 OL 〉 〈 UL 〉
 
 
〈 DL 〉 ... 〈 /DL 〉 定 义 或 词 汇 列 表 .COMPACT 属 性 定 义 了 一 种 紧 凑 格 式 .
可 以 包 含:〈 DD 〉 〈 DT 〉
可 以 包 含 在:〈 BLOCKQUOTE 〉 〈 BODY 〉 〈 DD 〉 〈 FORM 〉 〈 LI 〉 〈 TH 〉 〈 TD 〉
〈 DT 〉 定 义 列 表 中 的 词 条 .
可 以 包 含:〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉〈 TT 〉 〈 B 〉 〈 I 〉
可 以 包 含 在:〈 DL 〉
 
〈 DD 〉 定 义 列 表 中 的 定 义
可 以 包 含:〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉〈 TT 〉 〈 B 〉 〈 I 〉 〈 P 〉 〈 OL 〉 〈 UL 〉 〈 DIR 〉 〈 MENU 〉 〈 DL 〉 〈 PRE 〉〈 TABLE 〉 〈 BLOCKQUOTE 〉 〈 FORM 〉 〈 ISIDEX 〉
可 以 包 含 在:〈 DL 〉
 
 
1.7 字 符 格 式
所 有 字 符 格 式 标 签 具 有 以 下 特 性 :
可 以 包 含:〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉 〈 TT 〉 〈 B 〉 〈 I 〉
可 以 包 含 在:〈 A 〉 〈 ADDRESS 〉 〈 B 〉 〈 CITE 〉 〈 CODE 〉 〈 DD 〉 〈 DT 〉 〈 EM 〉 〈 H1 〉 〈 H2 〉 〈 H3 〉 〈 H4 〉 〈 H5 〉 〈 H6 〉 〈 I 〉 〈 KBD 〉 〈 LI 〉 〈 P 〉 〈 PRE 〉 〈 SAMP 〉 〈 STRONG 〉 〈 TT 〉 〈 VAR 〉 〈 TH 〉 〈 TD 〉
〈 EM 〉 ... 〈 /EM 〉  强 调 ( 通 常 用 斜 体 )
〈 STRONG 〉 ... 〈 /STRONG 〉  加 重 强 调 ( 通 常 用 粗 体 )
〈 CODE 〉 ... 〈 /CODE 〉  代 码 ( 一 般 用 Courier)
〈 KEB 〉 ... 〈 /KEB 〉  输 入 文 本 ( 一 般 用 Courier)
〈 VAR 〉 ... 〈 /VAR 〉  变 量 或 其 它 占 位 符 
〈 SAMP 〉 ... 〈 /SAMP 〉  示 例 文 本 
〈 DFN 〉 ... 〈 /DFN 〉  (HTML3.2) 定 义 
〈 CITE 〉 ... 〈 /CITE 〉  引 用 
〈 B 〉 ... 〈 /B 〉  粗 体 字 
〈 I 〉 ... 〈 /I 〉  斜 体 字 
〈 TT 〉 ... 〈 /TT 〉  打 字 机 字 体 
〈 U 〉 ... 〈 /U 〉  下 划 线 
〈 STRIKE 〉 ... 〈 /STRIKE 〉  删 除 线 
〈 BIG 〉 ... 〈 /BIG 〉  加 大 字 体 
〈 SMALL 〉 ... 〈 /SMALL 〉  缩 小 字 体 
〈 SUB 〉 ... 〈 /SUB 〉  下 标 
〈 SUP 〉 ... 〈 /SUP 〉  上 标 
 
1.8 其 他 元 素
〈 HR 〉 水 平 尺 线
属 性  说 明 
SIZE 尺 线 的 粗 细 , 单 位 是 点 .
WIDTH 尺 线 的 宽 度 , 单 位 是 点 .
ALIGN 尺 线 的 对 齐 方 式 , 允 许 的 取 值 是 LEFT , RIGHT , CENTER 。 
NOSHADE 将 尺 线 画 为 一 条 实 线 .
可 以 包 含 在:〈 BLOCKQUOTE 〉 〈 BODY 〉 〈 FORM 〉 〈 PRE 〉
 
〈 BR 〉 换 行
属 性  说 明 
CLEAR 使 文 本 不 再 环 绕 图 像 . 允 许 取 值 RIGHT,LEFT,ALL, NONE
可 以 包 含 在:〈 A 〉 〈 ADDRESS 〉 〈 B 〉 〈 CITE 〉 〈 CODE 〉 〈 DD 〉 〈 DT 〉 〈 EM 〉 〈 H1 〉 〈 H2 〉 〈 H3 〉 〈 H4 〉 〈 H5 〉 〈 H6 〉 〈 I 〉 〈 KBD 〉 〈 LI 〉 〈 P 〉 〈 PRE 〉 〈 SAMP 〉 〈 STRONG 〉 〈 TT 〉 〈 VAR 〉
 
〈 NOBR 〉 ... 〈 /NOBR 〉 使 其 中 的 文 本 在 页 面 中 不 换 行
可 以 包 含 在:〈 A 〉 〈 ADDRESS 〉 〈 B 〉 〈 CITE 〉 〈 CODE 〉 〈 DD 〉 〈 DT 〉 〈 EM 〉 〈 H1 〉 〈 H2 〉 〈 H3 〉 〈 H4 〉 〈 H5 〉 〈 H6 〉 〈 I 〉 〈 KBD 〉 〈 LI 〉 〈 P 〉 〈 PRE 〉 〈 SAMP 〉 〈 STRONG 〉 〈 TT 〉 〈 VAR 〉
 
〈 WBR 〉 仅 在 必 须 时 才 在 其 中 不 换 行
可 以 包 含 在:〈 A 〉 〈 ADDRESS 〉 〈 B 〉 〈 CITE 〉 〈 CODE 〉 〈 DD 〉 〈 DT 〉 〈 EM 〉 〈 H1 〉 〈 H2 〉 〈 H3 〉 〈 H4 〉 〈 H5 〉 〈 H6 〉 〈 I 〉 〈 KBD 〉 〈 LI 〉 〈 P 〉 〈 PRE 〉 〈 SAMP 〉 〈 STRONG 〉 〈 TT 〉 〈 VAR 〉
 
〈 BLOCKQUOTE 〉 ... 〈 /BLOCKQUOTE 〉 用 于 大 段 的 引 用 .
可 以 包 含 在:〈 H1 〉 〈 H2 〉 〈 H3 〉 〈 H4 〉 〈 H5 〉 〈 H6 〉 〈 P 〉 〈 OL 〉 〈 UL 〉 〈 DIR 〉 〈 MENU 〉 〈 DL 〉 〈 PRE 〉 〈 BLOCKQUOTE 〉 〈 FORM 〉 〈 ISINDEX 〉 〈 HR 〉 〈 ADDRESS 〉 〈 TABLE 〉
〈 CENTER 〉 ... 〈 /CENTER 〉 中 间 的 所 有 内 容 都 居 中 .
可 以 包 含:〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉 〈 TT 〉 〈 B 〉 〈 I 〉
可 以 包 含 在:〈 BLOCKQUOTE 〉 〈 BODY 〉 〈 DD 〉 〈 FORM 〉 〈 LI 〉 〈 TH 〉 〈 TD 〉
〈 ADDRESS 〉 ... 〈 /ADDRESS 〉 用 于 文 档 作 者 的 签 名 和 其 它 信 息 .
可 以 包 含:〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉 〈 TT 〉 〈 B 〉 〈 I 〉
可 以 包 含 在:〈 BLOCKQUOTE 〉 〈 BODY 〉 〈 FORM 〉
〈 BLINK 〉 ... 〈 /BLINK 〉(Netscape) 使 之 间 的 文 本 不 断 闪 烁 .
 
1.9 字 号
〈 FONT 〉 ... 〈 /FONT 〉 改 变 字 号 .
属 性  说 明 
SIZE 字 体 的 大 小 . 从 1 到 7, 默 认 值 是 3. 也 可 以 设 为 当 前 的 相 对 值 , 如 +2.
可 以 包 含:〈 A 〉 〈 IMG 〉 〈 BR 〉 〈 EM 〉 〈 STRONG 〉 〈 CODE 〉 〈 SAMP 〉 〈 KBD 〉 〈 VAR 〉 〈 CITE 〉 〈 TT 〉 〈 B 〉 〈 I 〉
可 以 包 含 在:〈 A 〉 〈 ADDRESS 〉 〈 B 〉 〈 CITE 〉 〈 CODE 〉 〈 DD 〉 〈 DT 〉 〈 EM 〉 〈 H1 〉 〈 H2 〉 〈 H3 〉 〈 H4 〉 〈 H5 〉 〈 H6 〉 〈 I 〉 〈 KBD 〉 〈 LI 〉 〈 P 〉 〈 PRE 〉 〈 SAMP 〉 〈 STRONG 〉 〈 TT 〉 〈 VAR 〉
 
〈 BASEFONT 〉 (Netscape) 设 置 当 前 文 本 的 默 认 字 体 .
属 性  说 明 
SIZE 字 体 的 大 小 , 从 1 到 7, 默 认 值 是 3.
可 以 包 含 在:〈 A 〉 〈 ADDRESS 〉 〈 B 〉 〈 CITE 〉 〈 CODE 〉 〈 DD 〉 〈 DT 〉 〈 EM 〉 〈 H1 〉 〈 H2 〉 〈 H3 〉 〈 H4 〉 〈 H5 〉 〈 H6 〉 〈 I 〉 〈 KBD 〉 〈 LI 〉 〈 P 〉 〈 PRE 〉 〈 SAMP 〉 〈 STRONG 〉 〈 TT 〉 〈 VAR 〉
 
 
HTML语言参考(2)
 
2 图 像
〈IMG〉 在 文 档 中 插 入 图 像 .
属 性  说 明 
ISMAP  该 图 像 是 一 个 可 点 击 的 图 像 映 射 .
SRC 图 形 的 URL
ALT 在 不 支 持 图 形 的 显 示 器 中 显 示 该 字 符 串 .
ALIGN 图 形 的 对 齐 方 式 .LEFT 和 RIGHT(HTML3.2,Netscape) 使 图 像 向 左 或 向 右 对 齐 , 随 后 的 文 本 沿 图 像 排 列 .TOP,MIDDLE,BOTTEM 等 其 它 取 值 以 及 仅 用 于 Netscape 的 取 值 (TEXTTOP , ABSMIDDLE,BASELINE,ABSBOTTOM) 确 定 图 像 与 同 一 行 中 的 文 本 的 水 平 对 齐 方 式 .
VSPACE 图 像 与 其 上 下 文 本 的 距 离 .
HSPACE 图 像 与 其 左 右 文 本 的 距 离 .
WIDTH 图 像 的 宽 度 , 以 点 为 单 位 . 如 果 WIDTH 不 是 图 像 的 实 际 宽 度 , 图 像 会 进 行 伸 缩 .
HEIGHT 图 像 的 高 度 , 以 点 为 单 位 . 如 果 WIDTH 不 是 图 像 的 实 际 高 度 , 图 像 会 进 行 伸 缩 .
BORDER 在 图 像 周 围 以 点 为 单 位 画 边 框 . 如 果 图 像 是 一 个 链 接 , 可 改 变 默 认 的 边 框 高 度 .
LOWSCR 图 像 路 径 或 URL, 它 会 在 SRC 指 定 的 图 像 之 前 加 载 , 一 般 是 一 个 低 分 辨 率 的 小 图 .
可 以 包 含 在 : 〈A〉 〈ADDRESS〉 〈B〉 〈CITE〉 〈CODE〉 〈DD〉 〈DT〉 〈EM〉 〈H1〉 〈H2〉 〈H3〉 〈H4〉 〈H5〉 〈H6〉 〈I〉 〈KBD〉 〈LI〉 〈P〉 〈SAMP〉 〈STRONG〉 〈TT〉 〈VAR〉
 
 
3. 表 单
〈FORM〉...〈/FORM〉 表 单
属 性  说 明 
ACTION 处 理 表 单 输 入 的 脚 本 的 URL.
METHOD 将 表 单 送 入 服 务 器 的 方 式 . 可 以 取 值 为 GET 和 POST.
ENCTYP 只 能 取 值 为 application/x-www-form-unlencoded.
可 以 包 含 :〈H1〉 〈H2〉 〈H3〉 〈H4〉 〈H5〉 〈H6〉 〈P〉 〈OL〉 〈UL〉 〈DIR〉 〈MENU〉 〈DL〉 〈PRE〉 〈BLOCKQUOTE〉 〈ISINDEX〉 〈TABLE〉 〈HR〉 〈ADDRESS〉 〈INPUT〉 〈SELECT〉 〈TEXTAREA〉
可 以 包 含 在 :〈BLOCKQUOTE〉 〈BODY〉 〈DD〉 〈DL〉 〈TH〉 〈TD〉
 
 
〈INPUT〉 表 单 输 入 工 具 .
属 性  说 明 
TYPE 输 入 工 具 的 类 型 . 可 以 取 值 CHECKBOX, HIDDEN, RADIO, RESET, SUBMIT, TEXT, IMAGE.
NAME 该 项 的 名 称 , 作 为 名 称 / 取 值 对 的 一 部 分 发 送 到 服 务 器 .
VALUE 对 于 text 和 hidden 是 默 认 值 ; 对 于 checkbox 和 radio button 是 随 表 单 一 起 发 送 的 值 ; 对 于 Reset 和 Submit 按 钮 是 标 签 .
SRC 图 像 的 源 文 件 .
CHECKED 用 于 checkbox 和 radio button, 表 示 以 被 选 中 .
SIZE 文 本 域 的 宽 度 , 以 字 符 数 为 单 位 .
MAXLENGTH 文 本 域 的 最 大 可 输 入 字 符 数 .
ALIGN 确 定 表 单 中 图 像 与 文 本 的 对 齐 方 式 ( 与 〈IMG〉 标 签 相 同 ).
可 以 包 含 在 : 〈FORM〉
 
 
〈TEXTAREA〉...〈/TEXTAREA〉 多 行 文 本 输 入 域 .
属 性  说 明 
NAME 作 为 名 称 / 取 值 对 的 一 部 分 发 送 到 服 务 器 .
ROWS 该 文 本 域 的 显 示 行 数 .
COLS 该 文 本 域 ( 字 符 ) 的 显 示 宽 度 .
可 以 包 含 在 :〈FORM〉
 
 
〈SELECT〉...〈/SELECT〉 建 立 可 选 项 的 菜 单 或 可 滚 动 列 表 .
属 性  说 明 
NAME 作 为 名 称 / 取 值 对 的 一 部 分 发 送 到 服 务 器 .
SIZE 显 示 的 行 数 . 如 果 有 该 属 性 , 则 显 示 为 可 滚 动 列 表 ; 如 果 没 有 该 属 性 , 则 显 示 为 弹 出 式 菜 单 .
MULTIPLE 允 许 从 列 表 中 选 择 多 项 .
可 以 包 含 :〈OPTION〉
可 以 包 含 在 :〈FORM〉
 
 
〈OPTION〉 表 示 在 〈SELECT〉 域 中 的 一 个 可 能 的 选 项 .
属 性  说 明 
SELECTED 如 果 有 该 属 性 , 则 〈OPTION〉 作 为 列 表 中 的 默 认 选 项 .
VALUE 选 择 (OPTION) 时 发 送 的 服 务 器 的 值 .
可 以 包 含 在 :〈SELECT〉
 
 
〈FRAMESET〉...〈/FRAMESET〉 框 架 文 档 的 容 器 .
属 性  说 明 
COLS=" 栏 宽 列 表 " 框 架 栏 目 的 宽 度 , 用 点 数 , 百 分 比 , 或 相 对 比 例 表 示 .
ROWS=" 行 高 列 表 " 框 架 行 的 宽 度 , 用 点 数 , 百 分 比 , 或 相 对 比 例 表 示 .
   
〈FRAME〉...〈/FRAME〉 框 架 的 定 义
属 性  说 明 
MARGINHEIGHT="value" 框 架 的 高 度 , 以 点 为 单 位 .
MARGINWIDTH="value" 框 架 的 宽 度 , 以 点 为 单 位 .
NAME="window_name" 框 架 名 , 可 从 其 它 文 档 中 进 行 链 接 ( 可 选 ).
NORESIZE 不 能 改 变 框 架 大 小 .
SCROLLING="yes|no|auto" 确 定 框 架 是 否 具 有 滚 动 条 .
SRC 在 框 架 中 显 示 的 文 档 的 URL.
 
〈NOFRAMES〉...〈/NOFRAMES〉
用 于 不 支 持 框 架 的 浏 览 器 的 显 示 内 容 . 支 持 框 架 的 浏 览 器 将 忽 略 这 之 间 的 内 容 .
 
 
ASP基础
当我们访问微软的网站时,我们会注意到有很多页面的后缀为.asp,那就是所谓的ActiveX Server Page.那它有什么用处呢?你总应该知道CGI吧?简单点说,它是对WWW 服务器的增强,让原来的那种仅仅由浏览器从服务器取得W3页面的工作方式有所改变,它可以让服务器接收来自浏览器的信息,也就是所谓的动态主页。以前的动态主页主要用CGI和Javascript来实现。至于CGI,我不是好熟,因为CGI盛行的时代,我还在学校念书呢,这些东西于我有什么相干?不过Windows下的CGI,我在那些参考书上看到,好复杂呀,一大堆代码,不仅要懂得CGI的工作原理,还要是个编程高手,我最烦那些枯燥的代码了。
后来呢,微软为我们编了一个通用的“CGI”,叫ISAPI,听说要调用dll,哎呀,那就更麻烦了,简直要专家才能懂得它那东西。微软看到这个样子,便编了一个更简单的玩意,叫IDC( Internet Database Connector),这是个好东西,我用过,只要你会写几条SQL语句就行了,做点数据库查询,真是愉快。不过后来,我逐渐逐渐对它不满意了,功能太有限了,而且,我在网上没有看到用它的例子,没有人使用的东西,肯定不是好东西:)
做动态主页的技术,还有Java,Java Script,还相当流行呢,不过同样功能有限(见鬼的安全问题),而且,他们都需要浏览器支持,否则,你将得到消息:"Your browser don't suport Java"。
我现在要极力推荐给大家的就是ActiveX Server Page,ActiveX,听起来挺神秘的,不过其实很简单(当然,我也是初学,所以,让我们一道来学习吧),我将在这里做些简单的介绍,文字上,就请大家不要对我太苛刻了:),还有,这方面的高手就不要继续往下看了,你们来到这里的任务是给我们大家传传道,而不是看我的东西来消磨时间:)
我看到许多讲语言的书上都是以"Hello World"作为第一个例子,那么,就先让我们给世界问一声好吧。
第一步,打开一个文本编辑器(比如,Notepad),粘贴下面的代码到里边去:
Hello World!
然后以文件名Hello.asp存盘,注意:如果用Notepad,存盘时选择文件类型为所有类型,否则,你的文件名将变成Hello.asp.txt(该死的长文件名)。然后,---就行了吗?哦NO!如果你直接用浏览器来打开它,浏览器一定问你要不要下载它。怎么回事呢?原来ASP文件要由服务器端的ASP部件来解释,所以,
 
第二步,你必须将他放在W3服务器的目录下,比如NT上的IIS,就放在\Inetpub\wwwroot下的某个目录下,Windows 上的 Personal WebServer,就放在\webshare\wwroot下的某个目录下,然后,哦,还不行,你必须确保你的服务器上安装了ASP,否则,服务器才不知道ASP是什么东西呢。ASP这块东西有9M多,我的主页空间有限,所以........不过,大家可以到深圳在线去下,地址是:    或者:      (哈,这里有一个使用IDC的例子)。不要嫌麻烦,这是个好东西。另外,有些Office 97(更正,应是Front Page 98, 9.26)的光盘里有一个60 Minute  Intranet Kit目录,下面也有这个(这下简单了)。它是一个可执行文件,双击,一切就OK了。(进一步说明,如果您用的是IIS40,那就什么也不用下了,9.26)
第三步,现在,你打开浏览器,输入 "",asp是你在wwwroot下建立的目录,"Hello World",就这么简单。
(NEW !  9.23)大家可以点击这里,看一看效果。(说明:这里的例子是用 Perl 作为脚本做的,因为太阳城的ASP目前只支持 Perl)。点这里看 Hello.asp的Perl 脚本。
现在,让我们回过头来,分析一下上面的脚本,你会发现同HTML脚本比较,它多了两个符号,对了,这就是ASP的定界符,他将一般的HTML脚本同ASP代码分隔开来,他中间的代码就是ASP“语言”,你会说,怎么这么眼熟,当然了,他的语法跟Visual Basic差不多嘛。ASP的脚本语言可以是任何Script语言,不过你得提供相应的引擎,ASP本身支持VBscript 和JavaScript,到底使用哪一种,可以由你决定。你只需在使用ASP脚本前用一句
这个表单是一个简单的定单例子,它接收客户的姓名,称呼,然后用POST方法将数据提交.我们知道,表单(Form)提交数据常有两种方法,一种是GET,一种是POST,对于GET提交的数据,WWW服务器将把数据放在环境变量QUERY_STRING中,对于POST方法,数据被送到WWW服务器的STDOUT中,然后CGI从自己的STDIN中读取.传统的CGI方法必须自己处理这些数据.可是在ASP中,采用了面向对象的思想,所有从浏览器来的数据都被封装进了对象Request中.Request有方法Form和Querystring,分别返回用POST方法和GET方法提交的数据.我们要得到表单提交的数据,只需用
Request.Form("表单域名") 或
Request.Querystring("查询参数名")
就可以了.
好了,接下来就让我们建立.asp文件Response.asp来处理上面的表单提交的数据吧,这里,我们只是简单的将用户提交的数据返回给用户.
<%
Title = Request.Form("title")
LastName = Request.Form("lname")
If Title = "先生" Then
%>
 
<%= LastName %>先生
<% ElseIf Title = "女士" Then %>
<%= LastName %>女士
<% Else %>
<%= Request.Form("fname") & " " & LastName %>
<% End If %>
恩,上面这段代码有些难懂吧,不要怕,一会儿之后,你就会说,好简单啊.那,我们来分析一下它吧.首先,他的开头和结尾都和普通的HTML代码没有什么两样,关键是中间.如果略去定界符<%和%>,然后将前面没有东西的等号换成 Print ,它就变成了:
Title=Request.Form("title")
LastName=Request.Form("lname")
If Title="先生" Then
print LastName 先生
ElseIf Title="女士" Then
print LastName 女士
Else
print Request.Form("fname")&" "& LastName
End If
这是不是VB?很简单吧?
有一点说明的是,.asp文件中,不在定界符之内的字符,当成普通的HTML解释.如上面的"先生","女士".ASP自己的输出用一个等号加上对象名来实现(当然,ASP的代码在定界符之内).如上面的<%=LastName%>.其实,在.asp文件中,任何对象要作用到定界符之外就要用这种形式:<%=对象名%>.
至于IF..THEN判断分支,就不用我解释了吧:)
上面我们用<%=对象名%>来实现ASP向页面的数据输出,使得.asp文件看起来比较接近HTML文件,下面我们用另一种方法来实现:
 
<%
Title = Request.Form("title")
LastName = Request.Form("lname")
If Title = "先生" Then
Response.Write LastName & "先生"
ElseIf Title = "女士" Then
Response.Write LastName & "女士"
Else
Response.Write Request.Form("fname") & " " & LastName
End If %>
除了开头和结尾,这看起来是不是更像一个VB程序?对了,我们用了另一个ASP内置对象Response的Write方法来输出数据.
到底用哪一种方法,那要看你的喜欢了,不过,要是有许多格式控制指令,都当成串用Write来输出,确实很麻烦的.我偏爱第一种方法:)
上面我们学了用ASP处理用POST方法提交的数据,那么,对于用GET方法提交的数据,又怎样处理呢?其实,处理都是一样的,只不过取得表单数据的方法不同罢了,比如我们要取得"title"的值,就用:
Request.Querystring("title")
对于如下方法调用.asp文件,也要用这种方法处理:
(其实,表单的GET方法最后也被转换成了这种形式.)
大家一定要注意,用什么方法调用的.asp文件,就应当用相应的方法接收查询数据,不然,你老是被报告查询参数为空,我就遇到过许多次^_^
 
朋友们,再见^_^

用ASP连接数据库
原文作者:Alan Saldanha
微软公司的ASP加上IIS3.0就能为网站建设、INTRANET应用提供一个灵活的构建方法,他可以方便地访问ODBC兼容的数据库。
这篇文章中,我们将学到数据库的基本操作,比如建立、添加记录、删除记录、编辑记录等。
使用ASP建立的动态主页与浏览器无关,也就是说,你不论用哪种浏览器都能浏览ASP的页面,使用JSCRIPT和VBSCRIPT加上一些其他ASP元件,你就能在你的INTRANET应用中使用ASP。使用ASP不仅意味着您可以读取ACCESS和SQL SERVER的数据库,同时也意味着你可以读取其他ODBC兼容的数据库。 使用ASP将比编写CGI快的多,对于那些习惯VISUAL BASIC的人来说, ASP将是最好的选择。
其他的如 Chili!ASP 功能上与ASP差不多,可以用在许多WWW平台上,甚至一些UNIX服务器(比如重庆太阳城,Linux ,ASP脚本用的是PERL语言。译注)。
在调试ASP代码时,我没有使用调试器,我发现大多数错误都是由于我的拼写错误引起的,或者是在HTML中嵌入变量时没有使用?敗#ü赜谠贖TML中引用ASP变量值,或者输出,我在第一篇文章中有说明。译注)。
 
 
这里提供的代码仅是一个例子,不能用做一个应用。如果在没有记录时,您尝试删除记录或编辑记录,程序并没有处理这种情况。这个例子是在NT4.0上建立的,数据库用MS Access 7,你必须有32位的ODBC驱动程序。(如果你安装了IIS3。0或ACCESS,那自然是已经有了,译注)
下面的例子包含了数据库的基本操作,但是这些操作可能每一个用ASP访问数据库的人都会用到。你可以往数据库中添加记录,编辑或删除记录。
 
图一:数据库Microsoft Access
 
数据库
我用ACCESS的数据库做,建立一个数据库user.mdb
他包含两个表:TblUser,TblUserAccess.
TblUSer, 包含用户的一些信息,有以下字段: -用户名,用户登录名 ,用户口令,登录时间和访问级别 (USERNAME, USERLOGIN, USERPASSWORD, USERENTRYDATE, and ACCESSID). ACCESSID, 用户级别指向表TblUserAccess中的 ACCESSID字段. 表 TblUserAccess 用来定义访问级别- ACCESSDESC
 
DSN
一旦你建好了数据库,你需要为数据库建立一个DSN入口,不防给他取名叫:UserDB1. 照下面的步骤去做:(关于DSN,我将在本文末做介绍,译注)
单击摽?紨,选设置控制面板。
双击图标 "32位 ODBC",将弹出一个对话框,选标签 "System DSN"
单击 "Add" 添加一个 DSN 入口, 选择 "Microsoft Access Drive".确认。
在 "Data Source Name" 栏里输入 "UserDB1", 然后单击"Select" 选择数据库,你可以按"Browse" 来选中 users.mdb.你可以把数据库放在任何位置,比如建立一个目录来放吧: c:\inetsrv\wwwroot\users\users.mdb
 
图二:连接数据库,方法一
<% Conn.Open "ADOSamples" Set RS = Conn.Execute("SELECT * FROM TblUser") Do While Not RS.EOF . Response.Write(rs("USERNAME")) . . RS.MoveNext Loop RS.Close Conn.Close %>
连接数据库 方法一
ASP提供两种方法来访问数据库。在第一中方法中,你首先必须建立一个连接,之后,你可以加载任何合法的SQL语句。最后,关闭连接。 一些代码你可以直接拿来用。图二中,用揢serDB1斪鯠SN,建立连接后,可以用Execute加载任何合法的SQL语句。之后,在一个循环中引用数据。必须注意的是,在最后一定要记住关闭连接。
 
 
图三:连接数据库 方法二
SUB Session_OnStart
'---- Open ADO connection to database
Conn.Open "UsersDB1", "userdblogin","userdbpassword"
END SUB
 
图四:文件Global.asa 中用于连接的串
Conn.Open "UserDB1", "userdblogin","userdbpassword"
连接数据库 方法二:
另外一种方法是在用户的SESSION中建立连接。当SESSION结束时,关闭连接。这要用到文件Global.asa.每一个基于ASP的INTRANET应用都可以有一个global.asa,它应当存放在这个应用的根目录下。在 global.asa 文件中可以定义四个事件处理程序,四个事件是:- Application-Start , Session-Start, Application-End 和 Session-End. 你可以在事件session-Start 中打开数据库连接,在事件Session-End 中关闭连接。
在图四中,用用户名搖serdblogin",口令"userdbpassword"建立了一个到DSN "UserDB1"的连接。在整个SESSION中都可以使用连接"Conn".
大家可以看例子default.asp 和文件global.asa.
 
 
图五:取得表单元素的值.
Action = Request.Form("Action")
 
从表单中取得信息
在基于ASP的应用中,你可以将ASP的例程代码放在一个专门的文件中,然后在需要的地方用"include"包含进来。图五中取得表单元素"Action"的值
图六:生成控制条
 
if Action = "" or Action= "ADD" then
CBar=CBar & " < td valign=top>"
CBar=CBar & "< td valign=top>"
CBar=CBar & ""
end if
 
 
生成控制条
依照action的值,可以显示不同的控件,发送不同的HTML文本到浏览器,图六中的代码表示,如果Action的值为空或为"ADD",就显示控件撎砑訑,摫嗉瓟,撋境龜。
图七:插入记录
sqlstr= "INSERT INTO TblUser " sqlstr= sqlstr & "(USERNAME, USERLOGIN, USERPASSWORD," sqlstr= sqlstr & " USERENTRYDATE, ACCESSID )VALUES " sqlstr= sqlstr & "('" & USERNAME & "','" & USERLOGIN & "','" sqlstr= sqlstr & "& USERPASSWORD & "',#" & datetoday & "#," & ACCESSID & ")"
插入记录
在检查了用户输入的各个表单域都合法时,就可以往数据库里插入记录。我们使用的是SQL语句来完成这件事。注意我们用了VBSCRIPT的函数 ForMatDateTime 来转换日期成 "mm/dd/yy" 格式(见default.asp,译注)。
图八:查出所有记录
sqlstr="SELECT * FROM TblUser ORDER BY USERNAME ASC" set rsUsers=Conn.Execute(sqlstr)
编辑记录
为了编辑记录,我用两步实现。首先,查询出所有记录(只显示姓名),并在每一条记录旁显示一个单选扭,当用户选了要编辑的记录后,提交表单,然后才开始修改记录。图八中表示如何查询出所有记录。
图九:更新记录
size="4">
sqlstr= "UPDATE TblUser "
sqlstr= sqlstr & "SET USERNAME ='" & USERNAME & "', "
sqlstr= sqlstr & "USERLOGIN ='" & USERLOGIN & "', "
sqlstr= sqlstr & "USERPASSWORD ='" & USERPASSWORD & "', "
sqlstr= sqlstr & "USERENTRYDATE =#" & datetoday & "#, "
sqlstr= sqlstr & "ACCESSID =" & ACCESSID
sqlstr= sqlstr & " WHERE USERID=" & USERID & ";"
 
更新记录
实际的修改是在图九中用SQL实现的。
图十:控制程序流向
<% if Action="EDI" or Action="DEL" then '---- Edit Mode do until rsUsers.EOF strUsers=strUsers & "
<% end if %>
 
删除记录
为了删除记录,必须知道一个用户的 USERID,图十的代码生成了一个下拉菜单供选择。
下面是以上例子中用到的源代码:(default.asp中的注释已经译成中文,译注)
default.asp global.asa
 
附:DSN(以下为译者加上的)
在用ODBC时,经常见到DSN这个名词,那它是什么意思呢?DSN即Data Souce Name的意思,数据源名。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如,我们系统中有ACCESS的ODBC驱动程序,那我们不需要有ACCESS软件,就可以在我们的程序,如VB编的,VC编的等,中间往一个ACCESS的MDB数据库中加、删、改记录。而且我们根本不用知道这个数据库是放在那里的。我们只要写一些SQL语句就可以了。ODBC驱动程序会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,用的即是DSN来告诉他到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQL SERVER的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。我们的程序还根本不知道已经换了人为他服务了呢。
由此可见,DSN是应用程序和数据库之间的桥梁,要通过ODBC访问数据库,前提就是,我们必须配置好DSN(即架好桥梁),从以上的我们可以看出,一个DSN必须包含一些信息,
DSN的名字,就是给这座桥取个名字,我们的程序中访问数据库时,给系统传的就是这个名字,而不是数据库的实际名字。
用的是哪种ODBC驱动程序,这样子,在我们要操作数据库时,系统才会知道调哪个ODBC驱动程序来服务。
数据库,你必须指定这座桥到底连接的是哪个数据库,这好象不用多说哦:),但不同的数据库系统,指定数据库的名字方法有些不同,ACCESS的就是让你选一个MDB文件。
这座桥是架在系统之中的,所以WIN95(NT)提供了一个工具来完成这件事,即是控制面板中的32 BIT ODBC,有三类DSN,用户DSN,系统DSN,文件DSN,我们一般就用系统DSN,因为这样可以让所有人都使用这个DSN。
不用DSN,如何访问数据库?
原作者:Charles Carroll
任何一个要访问数据库的ASP脚本都必须首先在服务器上打开数据库,
我们有两种方法:
.通过DSN建立连接
.不用DSN建立连接
一个DSN连接需要服务器的系统管理员在服务器上用控制面板中的ODBC
工具设置一个DSN,或者使用一个第三方的服务器组件,让你的ASP脚本
在需要时通过修改注册表建立DSN.我将提供一个DSN建立组件供下载.
一个DSN连接通常需要的参数有:DSN名,用户名,口令,例如我们用用户名
"student",口令"magic",通过DSN"student"建立连接:
1. set conntemp=server.createobject("adodb.connection")
2. conntemp.open "DSN=Student; uid=student; pwd=magic"
3. set rstemp=conntemp.execute("select * from authors")
如果我们没有DSN,该怎么做呢?
但是我们知道文件名(比如,Access,Paradox,FoxPro的数据库)或者数
据源名(例如,SQLserver的数据库).这里有一个方法,我们不要DSN就
可以访问数据库.注意,你必须知道实际的文件路径!
比如: "C:\thatserver\account17\nwind.mdb".
幸好,方法 server.mappath 可以返回服务器上的地址.
1. set conntemp=server.createobject("adodb.connection")
2. cnpath="DBQ=" & server.mappath("yourtable.mdb")
3. conntemp.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath
4. set rstemp=conntemp.execute("select * from authors")

nwind.asp

<%
set conntemp=server.createobject("adodb.connection")
' 不用DSN建立连接
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("nwind.mdb")
conntemp.Open DSNtemp
' 不用DSN建立连接
set rstemp=conntemp.execute("select * from customers where country='germany'")
howmanyfields=rstemp.fields.count -1
%>


<% 'Put Headings On The Table of Field Names
for i=0 to howmanyfields %>
      
<% next %>

<% ' Now lets grab all the records
do  while not rstemp.eof %>

<% for i = 0 to howmanyfields%>
      
<% next %>

<% rstemp.movenext
loop
rstemp.close
set rstemp=nothing
conntemp.close
set conntemp=nothing%>
<%=rstemp(i).name %>
<%=rstemp(i)%>



下面是典型的DRIVER参数值:
{Microsoft Access Driver (*.mdb)}
driver=SQL Server; server=127.0.0.1
                          ^ SQLServer的IP地址
 
  
ASP的对象结构
前面我们学习了ASP的基础应用,现在我们要系统地了解一下ASP的对象结构,然后,大家就可以举一反三,不用我过多解释每一个例子了。这一部分,可能有些困难,不过,要学习东西,是不能怕的,是不是?
Request对象
Response对象
Application对象
Session对象
Server对象
一、Request
Request对象把客户信息保存在几个集合中,供ASP应用使用。通用的访问方法为:
Request.Collection("membername")
当你不指定集合名时,以(1)QueryString,(2)Form,(3)Cookie和(4)ServerVariable
的顺序搜索所有集合,当发现第一个匹配的变量时,就认定他是要引用的成员。当然,为了提高效率,你最好显式指定是那个集合中的成员。
QueryString集合
当HTML表单使用GET方法向ASP文件传递数据时,数据被保存在集合QueryString中。其成员可以具有与之相关的多个值,也就是说,同一个表单中,多个元素可以有相同的名字,下面的代码访问这些数据:
<%For each item in Request.QueryString("Name")
Response.write Item &"
"
Next %>
Form集合
当表单用POST方法时,数据被保存在Form集合中。
ServerVariable集合
保存了随HTTP请求一起传送HTTP头的信息,可以通过他获取有关浏览器的信息,主要成员有:
REMOTE_ADDR 远程主机IP地址
REMOTE_HOST 远程主机名称
REMOTE_USER 客户名称
REQUEST_METHOD 请求方法(如POST,GET,HEAD)
SERVER_NAME 服务器名
SERVER_PROTOCOL 服务器版本号(如HTTP/1。0)
 
二、Response对象
用来控制向客户返回的HTML的内容,有若干属性和方法。下面介绍我认为重要的:
Buffer属性
如果为True,则Response的内容要写入缓冲区,当脚本处理完时再发给客户。
Status属性
传递HTTP Response报文的状态。服务器返回的状态代码由三位数字组成,可以用于测试阶段和转换控制到其他站点(即Forward)
Write方法
向客户输出HTML,可以是任何合法的HTML脚本。
Redirect方法
使浏览器重新定向到另外一个URL上,如:
<%browsetype=Request.ServerVariables("HTTP_USER_AGENT")
IF Left(browsetype,11)="Mozilla/2.0" then
Response.Redirect "FancyStart.asp"
Else
Response.Redirect "OldStart.asp"
End if%>
Clear方法
如果设Buffer属性为True,则Clear方法清楚所有缓冲区内容。
Flush方法
将缓冲内容立即发送给客户。
End方法
当Active Server遇到该方法时,立即停止处理ASP文件,如果有缓冲,立即发送内容到客户。
BinaryWrite方法
输出二进制数据
 
三、Request对象和Response对象的Cookies集合
1.写入Cookies
Response.Cookies("Cookie名称")[("键名称").属性]=值
如果该Cookie已经存在,则值被新值替代,否则,创建该cookie
例如:
<% Response.Cookies("NewCookie")="New Cookie Value" %>
2.读取Cookies
如:
<%=Request.Cookies("NewCookie")%>
Cookie还有一些属性,请参见有关资料。
 
四、Application对象
Active Server应用程序是虚拟目录及其子目录下的所有文件,即一个WEB。可以使用Application对象在应用软件的所有用户中共享信息,并可以在服务器运行期间持久地保存数据。他有一些控制访问应用层数据的方法和事件。
Application本身没有内置属性,可以有用户定义:
Application("属性名")=值
保存在Application对象中的数据可以被Application的所有用户读取。如用来做访问记数:
Application("aVisits")=Application("aVisits")+1
方法有两个:
Lock:
当用户调用Lock时,只有当前用户能够编辑或增加Application对象的属性。
Unlock:
一定要记住,调用了Lock,完成时一定要调用Unlock.
事件也有两个:
Application_OnStart事件:应用程序启动时调用。
Application_OnStart事件:应用程序终止时调用。
这两个事件再加上Session的两个事件的处理程序都放在文件Global.asp中,一个Web应用只有一个Global.asa文件,且放在该应用的根目录下。一个Global.asp文件的例子如下:
   Application与session的区别在于,网上的用户都可以使用Application的对象,因而是需要加锁的;而session只是针对一个客户而已。如定义一个Application变量为Application("name")="1234"。
   Asp的功能仅此而已?当然不是,Asp更高级的应用还包括它内建有一些ActiveX控件和可调用其它的控件等功能,暂不在本文讨论。如果希望获取更多的信息,可以访问下面的站点:
  
  
  
  
  2.Asp的编程实例
  为了使大家对上面提到的功能有一个感性的认识,下面我们将以一个非常简单的用asp编写的chatroom(交谈室)作为例子。为了尽量简化,我们这里只采用四个文件,一个是主文件main.asp和enter.asp(让用户输入用户名),一个是资料输入文件input.asp,一个是显示文件show.asp。原理是定义一个application变量show,然后每次有人说话,我们都把它加到前面;另外显示文件show.asp每三秒钟刷新一次,用于显示show变量.全部工作仅此而已,用其它语言或方法可能需要更复杂的工作,在这里则变得非常简单和明了。(这里没有使用Global.asa文件。)
  
  2.1 main.asp文件
  <%
  if session("sname")="" then
   response.redirect "enter.asp"
  end if
  ;如果用户没有输入名字,则将重新回到名字输入界面
  %>
  
  
  
  
  
   </DIV> <DIV>   <body> </DIV> <DIV>   <p>This page uses frames, but your browser doesn't support them.</p> </DIV> <DIV>   </body> </DIV> <DIV>  
  
  
  
  2.2 enter.asp文件
  <%
  nickname=request.form("nickname")
  ;读取用户输入的名字
  if nickname="" then
   msg=msg+"请输入您的名称
"
  else
   response.cookies("whoami")=nickname
  ;把用户名字写到cookies中
   application.lock
   application("show")="" _
  &"
来至" & request.servervariables("remote_addr") _
  & "的" & request.cookies("whoami") & "大驾光临...
" _
  & application("show")
  ; _是分隔符,与VB一样
   application.unlock
   session("sname")=nickname
   response.redirect "main.asp"
  end if
  %>
  
  
  
   你的姓名:
  
  
  
  
  
  
  2.3 show.asp文件
  
  
  
  ;设置每三秒钟刷新一次
  
  聊天的内容
  
  
  <%=application("show")%>
  
  
  
   2.4 input.asp文件
  <%
  mytalk=trim(request.form("txtbox"))
  ;读取用户写的信息,trim用于去掉后面的空格
  application.lock
  application("show")="" & request.cookies("whoami") & _
   ":" & mytalk & "
" & application("show")
  ;把新的信息添加到application变量show的前面,其中request.cookies("whoami")是从
  ;cookies中读出该用户的名字。
  application.unlock
  %>
  
  
  
  
  输入界面
  
  
  
  
  

<%=request.cookies("whoami")%>

   输入:
  
  
  
  
 
关于inc文件
------------------------------------------------------
【what's inc file】
.inc 文件顾名思义是include file的意思。
实际上,文件的后缀对于文件包含是无所谓
你可以包含一个asp文件,也可以包含txt文。
一般我们使用inc作为后缀,是因为这样能体
现该文件的作用。
【why inc file】
.inc文件的作用有点类似于C/C++内的.H .HPP
头文件,使用inc文件可以使我们的程序,增
加可读性,更易于开发和维护。
【how to inc file】
使用SSI(Server Side Include)指令中的#Include
asp包含文件的写法是这样的:
在html中,写:
file和Virtual的区别在于file使用相对路径
而Virtual是你的web站点内虚拟目录的完整虚拟路径
比方:
就表示包含当前文件所在的虚拟目录路径下面的inc目录下的char.inc
写成 virtual就可能就需要这么写了
 

IE4 的 模 式 对 话 框 设 计
    在 开 发 Intranet Web Mis 的 过 程 中 , 大 家 发 现 如 果 运 用 模 式 对 话 框 , 程 序 的 流 程 将 更 为 清 楚 。 在 某 些 情 况 , 用 户 必 须 进 行 某 些 操 作 之 后 , 才 能 继 续 后 面 的 事 情 。 比 如 : 某 些 安 全 性 要 求 比 较 高 的 操 作 , 需 要 操 作 者 输 入 口 令 以 确 认 。 如 果 实 现 了 模 式 对 话 框 , 那 么 一 个 WEB 程 序 看 上 去 更 象 一 个 VB 或 DELPHI 开 发 的 应用 程 序 。 结 合 运 用 ASP 和 DHTML , 可 以 实 现 模 式 对 话 框 。
    本 文 以 msgbox 的 实 现 为 例 。 客 户 端 VBScript 有 一 个 函 数 Msgbox() ( 以 及 衍 生 出 来 的 Alert()、confirm() ) 。 我 们 常 常 需 要 msgbox 显 示 一 些 简 要 提 示 或 是 简 单 选 择 , 但 是 遗 憾 的 是 , Msgbox 功 能 有 巨 大 缺 陷 。如 果 是 中 文 句 子 , 在 西 文 系 统 下 , 只 怕 只 能 看 到 一 串 ???? ?即 使 安 装 了 中 文 平 台 ( 如 南 极 星 ) 。 客 户 端 Jscript 类 似 的 函 数Alert() 和 confirm() , 当 然 也 存 在 着 相 同 的 问 题 。
    幸 好 , 在 微 软 DHTML 说 明 书 找 到 了 一 个 函 数 : showModalDialog() 。 结 合 DHTML 和 ASP 便 可 实 现 MsgBox 的 功 能 , 并 且 无 操 作 平 台 CODEPAGE 不 同 的 烦 恼 。
<<<< showModalDialog 语 法 >>>>
    variant = object.showModalDialog(sURL [, vArguments [, sFeatures]])
参 数
描 述
 
sURL
指 定 要 装 载 和 显 示 的 文 件 的 URL 地 址
 
vArguments
可 选 . Variant 变 量 在 显 示 文 件 时 设 定 的 参 数 . 这 个 参 数 可 以 传 送 包 括 数 组 在 内 的 数 据 对 话 框 通 过 访 问 window 对 象 的 dialogArguments 属 性 , 来 获 得 这 些 属 性 。 ( 注 意 : 通 过 A S P 文 件 后 面 加 ? , 可 以 向 ASP 发 送 参 数 )
 
sFeatures
可 选 。 指 定 对 话 框 窗 体 的 参 数 , 可 有 下 列 内 容 。
语 法
描 述
 
dialogWidth:number
窗 口 宽 度
 
dialogHeight:number
窗 口 高 度
 
dialogTop:number
窗 口 上 部 坐 标
 
dialogLeft:number
窗 口 右 部 坐 标
 
center:{yes | no | 1 | 0 }
是否居中(缺省为yes)
 
 
<<<< 以 下 为 msg.asp 源 码 >>>>
    <%@ LANGUAGE="VBSCRIPT" %>
    <%
    dim title
    dim msg
    dim itype
    title=request("title")
    msg=request("msg")
    itype=request("type")
    %>
   
   
   
   
   
    <%=title%>
   
   
   
   
   
   
   


<%=msg%>

   
    <%if itype=0 then
    response.write ""
    elseif itype=1 then
        response.write "  "
        response.write ""
    elseif itype=2 then
        response.write "  "
        response.write ""
    end if%>
   
   
   
 
<<<< 调 用 范 例 >>>>
   
   
   
 
    Document Title
   
   
   
   
   

        onclick="alert(message('title','message is here',2))">

   
   
   
 

使用 ActiveX 组件
ActiveX 服务器组件增强了脚本语言的功能,它提供简洁、可重用和安全的方法来访问信息。例如,ASP 的 Database Access (数据库访问)组件,使得脚本可以查询数据库。因此,无论何时要从脚本查询数据库,您都可以使用 Database Access 组件,而不必编写复杂的脚本。您还能从任何脚本或支持 Automation 的编程语言来调用这些组件(ActiveX 服务器组件就是 Automation 服务器)。在本模块中,您将使用插入到 ASP 中的 ActiveX 组件,来运行一个示范 Web 节点。
要点
要保存并查看您在本模块中的工作结果,必须在 Web 服务器上对 虚拟目录具有撔?(Write)敽蛽改编 Web 服务器 (Script Web server)斎ㄏ蓿?比槐匦胍丫?沧傲?Active Server Pages。
第二课演示了一个动态 HTML 脚本小程序。这个脚本小程序显示了一系列交替显示的广告图像,每幅图像之间都动态过渡。若要运行这个脚本小程序并查看效果,您必须使用 Internet Explorer 4.0 或更高版本。关于 Internet Explorer 的详细信息,请访问 Microsoft 的 Web 节点 。
 

编写自己的组件
您已经熟悉了 ASP 提供的组件,现在该创建自己的组件来满足自己的特殊需要了。
假设您需要创建一个 ASP 程序,以便通过 Web 节点提供特定的财务功能。ASP 没有直接提供这样的功能,不过您可以通过创建自己的 Java 或 ActiveX 组件来解决问题。您将在本模块中学会这些。
如果要学习如何创建并使用组件,首先使用下面的表格进行选择:
要点
若要保存并查看您在本模块中的工作结果,需要:
对 Web 服务器上的 虚拟目录具有“写 (Write)”和“改编 Web 服务器 (Script Web server)”权限。详细信息,请参阅 设置 Web 服务器权限帮助iishelp。
您的 Windows NT 帐号,必须在 DriveLetter:\Winnt\Java 目录及其子目录上具有 Windows NT File System (NTFS) 的读、写和运行程序权限(此处的 DriveLetter 代表 Web 服务器上适当的驱动器号)。
DriveLetter:\Winnt\System32\Inetsrv\ 目录及其子目录上具有 Windows NT File System (NTFS) 的读、写和运行程序权限(此处的 DriveLetter 代表 Web 服务器的适当的驱动器号,如果您没有安装到默认目录下,请用您的安装目录代替 \Winnt\System32)。
要完成本模块,必须在 Web 服务器上安装:
Microsoft? Visual J++? 1.1. Microsoft? Visual Basic 5.0 专业版的 32 位版本或 Visual Basic 5.0 企业版开发系统。
如果已经禁止了 Web 浏览器运行 Java 程序功能,请在开始教程以前启用该功能。
第一课:创建 Java ActiveX 财务组件 
组件将包含一组相关的方法(函数),用来提供脚本语言所不具有的函数。由于 不提供财务函数,所以您必须在外部创建一个财务函数。在本教程中您将学习如何创建一个函数,这个函数在固定利率及等额定期支付的方式下,计算一笔投资的未来价值(也就是年金)。
启动 Visual J++
单击“开始”按钮,指向“程序”,然后指向 Microsoft Visual J++ 1.1
单击子目录中的“Microsoft Developer Studio”,启动编程环境。
开始并命名一个工程
单击“File”。
选择“New”。
单击“Project”选项卡。
选择“Java Project”。
在“Project Name”框中,键入“Finance”,然后单击 “OK”。
将 Finance Class 添加到工程中
选择“Insert”菜单中的“New Class”。
在“Name”框中,键入“Finance”,然后单击 “OK”。在文本编辑器中将出现下列文字:
class Finance {
 
}
注意 类的名称必须与 Java 服务器组件的工程名相同。
将 CalcFV Function 添加到 Finance Class 中
选择“ClassView”选项卡(默认)。
在树型控件中展开“Finance Classes”工程。
右键单击“Finance”类,然后选择“Add Method”。
在“Return Type”框中,键入“public double”。
在“Method declaration”框中,复制并粘贴下列文字:
CalcFV(double dblRate, double dblNPer,
double dblPMT, double dblPv, boolean bType)
在这一声明中,您定义了一个财务函数,它属于 Finance 类,
用于计算一笔投资的未来价值。
 
单击“OK”。下列文字将出现在 Visual J++ 的文本编辑器中:
class Finance {
public double CalcFV(double dblRate,
double dblNPer,
double dblPMT,
double dblPv,
boolean bType) {
 
}
}
在文本编辑器中,将下列 Java 代码复制并粘贴到上面最内层的括号中:
double dblRet, dblTemp, dblTemp2, dblTemp3;
if (dblRate == 0.0) {
dblRet = -dblPv - dblPMT * dblNPer;
} else {
dblTemp = (bType ? 1.0 + dblRate : 1.0);
dblTemp3 = 1.0 + dblRate;
dblTemp2 = Math.pow(dblTemp3, dblNPer);
dblRet = -dblPv * dblTemp2
- dblPMT * dblTemp * (dblTemp2 - 1.0) / dblRate;
}
return dblRet;
不要被这些代码所吓倒,它们不过是定义了计算投资未来价值的数学公式而已,当然使用的是 Java 语法。如果您感兴趣,可以在任何一本讲解财务计算或会计知识的书本上找到这个常用公式。
 
注意 Java 是大小写敏感的,所以如果您决定将上述代码行键入文本编辑器,请确保键入的文字与显示的内容完全一致。
 
构造 Finance 组件
选择“Build”菜单中的“Build Finance”。
确保在 Build 窗口中(位于 ClassView 和文本编辑窗口之下),构造过程没有产生任何错误或警告。
将 Finance 组件复制到 Trustlib 目录中
单击 Windows 的“开始”按钮,指向“程序”,然后单击“Windows 资源管理器”。
将 Finance.class 组件从 Program Files\DevStudio\MyProjects\Finance\ 目录复制到 Web 服务器的 Winnt\Java\Trustlib 目录中。
注册 Finance Java 类
您必须在计算机中注册 Finance Java 类,才能在 JScript 以及任何兼容 OLE 的语言中调用它。
 
打开“命令提示符”(“MS-DOS 方式”)窗口。
在命令提示符后键入 cd DriveLetter:\\Program Files\DevStudio\VJ\Bin\,其中,DriveLetter 是您的计算机上适当的驱动器号。(如果您没有接受默认的安装目录,请用您的安装目录替换 \Program Files\DevStudio\VJ\Bin\。)
按下Enter 键。
键入 javareg /register /class:Finance /progid:MS.Finance.Java。
按下 Enter 键
当出现一个对话框显示“Successfully Registered Java class "Finance" as CLSID”时,单击“OK”按钮。
关闭“命令提示符”窗口。
组件将包含一组相关的方法(函数),用来提供脚本语言所不具有的功能。由于 不提供财务函数,所以您必须通过自己的 Finance 服务器组件来提供对 Visual Basic 财务函数的使用能力。该服务器组件能提供所有的 Visual Basic 财务函数,包括 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”属性并键入“Function”,然后按 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 服务器组件需要一些代码。这些代码让使用您组件的语言可以调用 Visual 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 Basic 创建的)服务器组件上的 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”。选择 Web 服务器上的如下路径:DriveLetter:\Winnt\System32\Inetsrv\,其中 DriveLetter 是适当的驱动器号。(如果您没有接受默认的安装目录,请用您的安装目录替换 \Winnt\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:\\Winnt\System32\Inetsrv\Finance,其中 DriveLetter 是适当的驱动器号。(如果您没有接受默认的安装目录,请用您的安装目录替换 \Winnt\System32。)
如果在此以前,另一个用户已经学完了教程的这一部分,将出现一条消信息,提示文件已经存在。请用您的文件覆盖旧文件。
退出 Visual Basic。
注册 Finance 服务器组件
所有服务器组件都必须注册。Windows NT 和 Windows 95 用系统注册表来追踪哪个服务器组件是可用的。在您的计算机上将 Finance 服务器组件注册后,就可以在 VBScript 和所有兼容 OLE 的语言中调用它了。
打开一个命令提示符窗口。
在命令提示符后键入 cd Drive Letter:\\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 自动控件来调用组件。
要使用 从 ASP 调用 Finance 组件,可以使用一个 HTML 表格作为输入来计算某人存款计划的未来值。
所需的 HTML 表格
我们将使用一个 HTML 表格后,就能用 Request("APR") 的方式引用。HTML 标记 提供了输入数值所需的字段。
要将表格标记的 ACTION 属性指定的网页。“Submit”按钮的 HTML 标记 () 使用 ACTION 的值,从 HTML 表格标记 (
) 来调用 ASP 页 Financej.asp。
我们已经为您创建好了表格。用文本编辑器打开 Web 服务器上 Tutorial 目录 () 中的 FVform.asp 文件即可。
脚本
我们使用 来调用您的 Finance 服务器组件。脚本首先确认来自 HTML 表格中任何没有输入的变量赋默认值。一个自定义的函数 IsNumeric,用于检测 HTML 表格中每个框输入的数据是不是合法数字。
 
Server.CreateObject 创建一个 Finance 组件的实例(也就是使组件可用),名为 MS.Finance.Java。为组件创建实例以后,就可以使用组件的方法和属性了。在脚本中紧随 Server.CreateObject
Server.CreateObject 创建一个 Finance 组件的实例(也就是使组件可用),名为 MS.Finance。为组件创建实例以后,就可以使用组件的方法和属性了。在脚本中紧随 Server.CreateObject 之后,使用了 CalcFV 方法来计算存款计划的未来值。计算结果将出现在请求这个信息的浏览器中。
要查看脚本,请用文本编辑器打开 Tutorial 目录 () 中的 Financej.asp Finance.asp 文件。
用浏览器进行测试
要运行 Financej.asp Finance.asp ASP 页,请打开 FVform.asp 文件,该文件将绘制一个表格并调用 Financej.aspFinance.asp 脚本来计算表格中描述的存款计划的未来值。
要打开 FVform.htm,请将浏览器导向 。
在“Savings Plan”表格中输入数值。
单击“Calculate Future Value”按钮。存款计划的结果将会出现。
经过不长时间的学习,您已经创建了一个有用的 JavaActiveX 服务器 组件。如果需要使用其他财务函数,只要通过 Visual J++Visual Basic 将其他方法添加到 Finance 服务器组件中,就可以执行其他财务函数了。我们鼓励您进行尝试并提出创造性的方法来利用自己的 JavaActiveX 组件。您很快将会发现,用组件来开发 Web 应用程序几乎没有任何限制。
 

使用数据库成分
数据库成分使用Active Data objects(ADO)是你可以通过ODBC给
页面添加访问数据库的能力。在本课中,你可以将一个Access数
据库建立连接并将其中所有的内容显示出来。你将学到如何使用
SQL查询语言显示数据并用html的表格显示。
初始ODBC
在使用数据库成分之前,你必须在控制面版内对数据库ODBC初始
化。在本课中,你将用Access的数据库。
1 在你运行Web Server的计算机上,选择控制面版
2 双击odbc图标,并选择system dsn.
在这里有两个数据来源,
User:仅仅对于你是有效的
System:使任何一个使用该机器的人都可以使用。在WEB数据库
中,我们要选择system.
3 单击添加,选择access Driver,再选择结束。
4 在Data source Name对话框中,输入AWTutorial,选择Select.
请选择你的数据库所在的路径。
5 选择OK,关闭对话框。
建立成分实例:
1 请用你的文本编辑器打开Database.asp,这是教程自带的文件。
如果你没有安装Asp,请在这里下载Database.asp
2 查找字符串"Tutorial Lesson-ADO connection"
3 请将下面的语句剪贴到程序内:
<%Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
4 在数据库成分中,你还需要初始化你的ODBC数据库来源,这样
你就可以和数据库建立连接:
OBJdbConnection.Open "AWTutorial"
5 使用数据库成分的Execute方法可以提供SQL中的Select方法。
并且可以返回记录。
SQLQuery = "SELECT * FROM Customers"
Set RSCustomerList = OBJdbConnection.Execute(SQLQuery)
%>
显示返回的成果
你可以考虑用符合select语句中定义的字段组成表格来返回成果。
用的形式显示查询结果,可以预定义查询所返回的行。在本例中,
返回数据是用HTML的表格。
1 在Database.aps在"Turial Lesson-display ADO Data"后面剪
贴下面代码:
<% Do While Not RScustomerList.EOF %>
<%= RSCustomerList("CompanyName")%>
<%= RScustomerList("ContactLastName") & ", " %>
<%= RScustomerList("ContactFirstName") %>
<%= RScustomerList("ContactLastName")%>
<%= RScustomerList("City")%>
<%= RScustomerList("StateOrProvince")%>
Do..Loop结构在条件为真的时候返回一个元素块。返回的元素可
以是脚本命令或是Html标签。所以,在每次循环中,你定义了一
个table行(使用Html),并且插入了一个返回数据(用脚本命令)。
2 为了完成循环,请使用MoveNext。
<%
RScustomerList.MoveNext
Loop
%>
3 保存Database.asp,程序完成。
阅读(7674) | 评论(0) | 转发(0) |
0

上一篇:ASP教程

下一篇:ASP实现上传文件功能

给主人留下些什么吧!~~