第 十 六 章 W e b 服 务 器 的 细 节

第 十 六 章 W e b 服 务 器 的 细 节 - 图1第 十 六 章 W e b 服 务 器 的 细 节 - 图2第 十 六 章 W e b 服 务 器 的 细 节 - 图3第 十 六 章 W e b 服 务 器 的 细 节 - 图4如 果 您 仔 细 阅 读 了 前 面 一 章 的 内 容 并 实 际 创 建 了 一 个 W e b 服 务 器 应 用 程序 您 一 定 会 感 到 用 C+ + Bu ild e r 3 创 建 W e b 服 务 器 应 用 程 序 是 很 简 单 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图5第 十 六 章 W e b 服 务 器 的 细 节 - 图6第 十 六 章 W e b 服 务 器 的 细 节 - 图7第 十 六 章 W e b 服 务 器 的 细 节 - 图8第 十 六 章 W e b 服 务 器 的 细 节 - 图9第 十 六 章 W e b 服 务 器 的 细 节 - 图10第 十 六 章 W e b 服 务 器 的 细 节 - 图11第 十 六 章 W e b 服 务 器 的 细 节 - 图12第 十 六 章 W e b 服 务 器 的 细 节 - 图13第 十 六 章 W e b 服 务 器 的 细 节 - 图14第 十 六 章 W e b 服 务 器 的 细 节 - 图15第 十 六 章 W e b 服 务 器 的 细 节 - 图16C+

  • Bu ild e r 3 的 确 很 优 秀 实 际 上 前 面 一 章 还 只 是 简 单 的 介 绍 忽 略 了 很多 细 节 这 一 章 我 们 将 进 一 步 介 绍 细 节 包 括 W e b 模 块 和 W e b 调 度 器 动 作项 H TTP 请 求 消 息 响 应 客 户 HT M L 模 板 和 页 面 生 成 器 等 只 要 您 真 正掌 握 了 这 些 细 节 您 就 成 为 W e b 服 务 器 应 用 程 序 的 设 计 高 手

1 6. 1 We b 服 务 器 应 用 程 序 的 逻 辑 结 构

第 十 六 章 W e b 服 务 器 的 细 节 - 图17第 十 六 章 W e b 服 务 器 的 细 节 - 图18第 十 六 章 W e b 服 务 器 的 细 节 - 图19第 十 六 章 W e b 服 务 器 的 细 节 - 图20第 十 六 章 W e b 服 务 器 的 细 节 - 图21第 十 六 章 W e b 服 务 器 的 细 节 - 图22第 十 六 章 W e b 服 务 器 的 细 节 - 图23第 十 六 章 W e b 服 务 器 的 细 节 - 图24第 十 六 章 W e b 服 务 器 的 细 节 - 图25第 十 六 章 W e b 服 务 器 的 细 节 - 图26W e b 服 务 器 应 用 程 序 实 际 上 是 W e b 服 务 器 在 功 能 上 的 扩 展 就 好 象 W ind ow s 应 用 程 序 是 W ind ow s 在 功 能 上 的 扩 展 一 样 当 W e b 服 务 器 收 到 客 户 的 H TTP 请 求 时 W e b 服 务 器 应 用 程 序 能 够 从 W e b 服 务 器 检 索 到 一 个 H TTP 请 求 消 息 W e b 服 务 器 应 用 程 序 要 做 的 就 是 分 析 H TTP 请 求 消 息 然 后 作 出 不 同 的 响应 更 准 确 地 说 就 是 生 成 HT M L 页 面 传 递 给 W e b 服 务 器 再 由 W e b 服 务 器 传递 给 客 户 除 此 以 外 W e b 服 务 器 应 用 程 序 还 可 以 象 一 般 的 应 用 程 序 一 样做 任 何 事 情

第 十 六 章 W e b 服 务 器 的 细 节 - 图27C+ + Bu ild e r 3 用 T W e b R e que s t对 象 来 描 述 H TTP 请 求 消 息 用 T W e b R e sp o n se

第 十 六 章 W e b 服 务 器 的 细 节 - 图28第 十 六 章 W e b 服 务 器 的 细 节 - 图29第 十 六 章 W e b 服 务 器 的 细 节 - 图30第 十 六 章 W e b 服 务 器 的 细 节 - 图31第 十 六 章 W e b 服 务 器 的 细 节 - 图32第 十 六 章 W e b 服 务 器 的 细 节 - 图33对 象 来 描 述 W e b 服 务 器 应 用 程 序 作 出 的 反 应 W e b 服 务 器 应 用 程 序 中 的 一 个关 键 部 件 是 W e b 模 块 它 收 集 和 管 理 着 一 组 动 作 项 ( T W e bA c tionIte m 对 象 ) 并 根 据 H TTP 请 求 消 息 来 指 派 其 中 一 个 动 作 项 去 响 应 客 户 的 请 求 实 际 上 就是 填 写 T W e b R e s pons e 对 象 的 C on te n t特 性 W e b 服 务 器 应 用 程 序 的 逻 辑 结 构如 图 16 .1 所 示

第 十 六 章 W e b 服 务 器 的 细 节 - 图34

图 16 .1 W e b 服 务 器 应 用 程 序 的 逻 辑 结 构

1 6. 2 W e b 模 块

第 十 六 章 W e b 服 务 器 的 细 节 - 图35第 十 六 章 W e b 服 务 器 的 细 节 - 图36第 十 六 章 W e b 服 务 器 的 细 节 - 图37第 十 六 章 W e b 服 务 器 的 细 节 - 图38当 您 用 C+ + Bu ild e r 3 创 建 W e b 服 务 器 应 用 程 序 时 它 会 自 动 包 含 一 个 空 白 的W e b 模 块 W e b 模 块 是 W e b 服 务 器 应 用 程 序 的 核 心 部 件 它 在 H TTP A P P 单元 中 是 这 样 声 明 的

c la s s P A S C A L IM P L E M EN TA T IO N TW e b M o d u le : p u b lic H ttp a p p ::T C u s to m W e b D is p a tc h e r

{

_pu b lis h e d:

_p rop e r ty A c t ions ;

_p rop e r ty B e fo re D is p a tc h ;

_p rop e r ty A f te r D is pa tc h ;

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图39第 十 六 章 W e b 服 务 器 的 细 节 - 图40第 十 六 章 W e b 服 务 器 的 细 节 - 图41第 十 六 章 W e b 服 务 器 的 细 节 - 图42第 十 六 章 W e b 服 务 器 的 细 节 - 图43第 十 六 章 W e b 服 务 器 的 细 节 - 图44第 十 六 章 W e b 服 务 器 的 细 节 - 图45可 以 看 出 W e b 模 块 的 直 接 上 级 是 T C u s to m W eb D is p atch e r 而T C u s to m W eb D is p a tch e r 又 是 从 T D a ta M odu le 继 承 下 来 的 因 此 W e b 模 块 也象 传 统 的 数 据 模 块 一 样 可 以 放 一 些 非 可 视 的 元 件 如 T S e ssio n TTa b le

第 十 六 章 W e b 服 务 器 的 细 节 - 图46第 十 六 章 W e b 服 务 器 的 细 节 - 图47T P ag e P ro d u cer T D a ta S e t T a b le P roduc e r等

第 十 六 章 W e b 服 务 器 的 细 节 - 图48第 十 六 章 W e b 服 务 器 的 细 节 - 图49第 十 六 章 W e b 服 务 器 的 细 节 - 图50第 十 六 章 W e b 服 务 器 的 细 节 - 图51第 十 六 章 W e b 服 务 器 的 细 节 - 图52第 十 六 章 W e b 服 务 器 的 细 节 - 图53第 十 六 章 W e b 服 务 器 的 细 节 - 图54第 十 六 章 W e b 服 务 器 的 细 节 - 图55第 十 六 章 W e b 服 务 器 的 细 节 - 图56W e b 模 块 不 仅 仅 是 个 容 器 更 主 要 的 它 还 是 W e b 服 务 器 应 用 程 序 的 调 度 中心 它 收 集 和 管 理 着 一 组 动 作 项 由 它 决 定 指 派 哪 个 动 作 项 去 响 应 客 户 的请 求 要 说 明 的 是 如 果 应 用 程 序 中 已 经 有 了 W e b 模 块 就 没 必 要 也 不 允许 再 把 T W e b D is p atch e r 元 件 加 到 W e b 模 块 上 因 为 W e b 模 块 已 经 包 含 了T W e b D is p atch er 元 件 即 W e b 调 度 器 的 功 能 事 实 上 W e b 模 块 和

第 十 六 章 W e b 服 务 器 的 细 节 - 图57第 十 六 章 W e b 服 务 器 的 细 节 - 图58T W e b D is p atch er元 件 都 是 从 T C u s to m W eb D is p atch e r继 承 下 来 的 注 意 一 个

第 十 六 章 W e b 服 务 器 的 细 节 - 图59W e b 服 务 器 应 用 程 序 只 能 有 一 个 W e b 模 块 或 调 度 中 心

A c tio n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图60声 明 _prope r ty T W e b A c tionIte m * A c t ion[ in t In d e x];

第 十 六 章 W e b 服 务 器 的 细 节 - 图61第 十 六 章 W e b 服 务 器 的 细 节 - 图62第 十 六 章 W e b 服 务 器 的 细 节 - 图63第 十 六 章 W e b 服 务 器 的 细 节 - 图64第 十 六 章 W e b 服 务 器 的 细 节 - 图65第 十 六 章 W e b 服 务 器 的 细 节 - 图66第 十 六 章 W e b 服 务 器 的 细 节 - 图67通 过 这 个 只 读 的 特 性 可 以 访 问 由 W e b 模 块 收 集 和 管 理 的 每 个 动 作 项 ( T W e bA c tionIte m 对 象 ) Inde x 是 动 作 项 的 索 引 ( 序 号 ) 0 代 表 第 一 个 动 作 项1 代 表 第 二 个 动 作 项 依 次 类 推 如 果 要 通 过 名 称 来 访 问 动 作 项 请 调 用A c tio n B y N a m e 函 数

A c tio n s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图68声 明 _prope r ty T W e b A c tionIte m s * A c tions ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图69第 十 六 章 W e b 服 务 器 的 细 节 - 图70第 十 六 章 W e b 服 务 器 的 细 节 - 图71这 个 特 性 用 于 管 理 动 作 项 如 增 加 删 减 动 作 项 等

第 十 六 章 W e b 服 务 器 的 细 节 - 图72第 十 六 章 W e b 服 务 器 的 细 节 - 图73第 十 六 章 W e b 服 务 器 的 细 节 - 图74第 十 六 章 W e b 服 务 器 的 细 节 - 图75第 十 六 章 W e b 服 务 器 的 细 节 - 图76第 十 六 章 W e b 服 务 器 的 细 节 - 图77在 设 计 期 您 可 以 单 击 这 个 特 性 边 上 的 省 略 号 按 钮 打 开 动 作 项 编 辑 器 在运 行 期 您 可 以 调 用 T W e b A c tio n Ite m s 对 象 的 A d d A ssig n C le a r等 函 数

R e que s t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图78声 明 _prope r ty T W e b R e que s t* R e qu e s t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图79第 十 六 章 W e b 服 务 器 的 细 节 - 图80第 十 六 章 W e b 服 务 器 的 细 节 - 图81第 十 六 章 W e b 服 务 器 的 细 节 - 图82这 个 只 读 的 特 性 返 回 W e b 模 块 正 在 处 理 的 H TTP 请 求 消 息 即 T W e b R e que s t 对象 W e b 调 度 器 根 据 这 个 特 性 指 派 相 应 的 动 作 项 去 响 应 客 户 的 请 求 至 此读 者 应 该 能 够 理 解 为 什 么 在 处 理 T P ag e P ro d u cer元 件 的 O n HT M L T a g 事 件 时 能够 直 接 引 用 R e que s t

R e s p o n s e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图83声 明 _prope r ty T W e b R e s pons e * R e s pons e ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图84第 十 六 章 W e b 服 务 器 的 细 节 - 图85第 十 六 章 W e b 服 务 器 的 细 节 - 图86第 十 六 章 W e b 服 务 器 的 细 节 - 图87这 个 只 读 的 特 性 返 回 响 应 H TTP 请 求 消 息 的 T W e b R e s pons e 对 象 在 W e b 服 务器 应 用 程 序 中 经 常 要 对 T W e b R e s pons e 对 象 的 C on te n t特 性 赋 值 读 者 可 以参 见 上 一 章 的 示 例

A c tio n B y N a m e 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图88声 明 T W e b A c t ionIte m * _fa s tc a ll A c t ionB y N a m e ( c ons t S y s te m : : A ns i S tr in g AN a m e ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图89这 个 函 数 返 回 一 个 动 作 项 ( T W e bA c tionIte m 对 象 ) AN a m e 参 数 指 定 动 作 项 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图90名 称

构 造 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图91声 明 _fa s tc a l l v ir tua l T W e b M odu le ( C la s s e s :: T C o m pon e n t* AOw n e r ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图92第 十 六 章 W e b 服 务 器 的 细 节 - 图93第 十 六 章 W e b 服 务 器 的 细 节 - 图94第 十 六 章 W e b 服 务 器 的 细 节 - 图95第 十 六 章 W e b 服 务 器 的 细 节 - 图96第 十 六 章 W e b 服 务 器 的 细 节 - 图97第 十 六 章 W e b 服 务 器 的 细 节 - 图98第 十 六 章 W e b 服 务 器 的 细 节 - 图99构 造 函 数 用 于 创 建 T W e b M odu le 对 象 的 实 例 然 后 触 发 O n C reate 事 件 这 样您 就 有 机 会 对 W e b 模 块 初 始 化 要 说 明 的 是 一 般 情 况 下 并 不 需 要 调 用 构造 函 数 来 创 建 W e b 模 块 因 为 当 您 用 C+ + Bu ild e r 3 创 建 W e b 服 务 器 应 用 程 序时 它 会 自 动 创 建 一 个 空 白 的 W e b 模 块 一 个 W e b 服 务 器 应 用 程 序 只 允 许 有一 个 W e b 模 块

析 构 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图100声 明 _fa s tc a l l v ir tua l ~ T W e bM odu le ( vo id) { }

第 十 六 章 W e b 服 务 器 的 细 节 - 图101第 十 六 章 W e b 服 务 器 的 细 节 - 图102第 十 六 章 W e b 服 务 器 的 细 节 - 图103第 十 六 章 W e b 服 务 器 的 细 节 - 图104第 十 六 章 W e b 服 务 器 的 细 节 - 图105第 十 六 章 W e b 服 务 器 的 细 节 - 图106第 十 六 章 W e b 服 务 器 的 细 节 - 图107析 构 函 数 用 于 删 除 W e b 模 块 的 实 例 由 W e b 模 块 收 集 和 管 理 的 动 作 项 也 将 一并 删 除 同 时 将 触 发 O n D e s tro y 事 件 不 过 一 般 情 况 下 并 不 需 要 调 用 析 构函 数 因 为 当 W e b 服 务 器 应 用 程 序 关 闭 时 会 自 动 删 除 W e b 模 块 的 实 例

O n C re a te 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图108声 明 _prope r ty C la s s e s :: T N o tif y E v e nt O n C re a te ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图109第 十 六 章 W e b 服 务 器 的 细 节 - 图110第 十 六 章 W e b 服 务 器 的 细 节 - 图111第 十 六 章 W e b 服 务 器 的 细 节 - 图112第 十 六 章 W e b 服 务 器 的 细 节 - 图113第 十 六 章 W e b 服 务 器 的 细 节 - 图114第 十 六 章 W e b 服 务 器 的 细 节 - 图115第 十 六 章 W e b 服 务 器 的 细 节 - 图116第 十 六 章 W e b 服 务 器 的 细 节 - 图117正 在 创 建 W e b 模 块 时 将 触 发 这 个 事 件 这 样 您 就 有 机 会 对 W e b 模 块 初 始 化例 如 假 设 W e b 模 块 上 包 含 一 个 TTa b le 元 件 此 时 就 可 以 打 开 数 据 集 记 住一 点 W e b 服 务 器 应 用 程 序 中 的 W e b 模 块 就 相 当 于 一 般 应 用 程 序 中 的 Fo rm 因 此 W e b 服 务 器 应 用 程 序 的 所 有 初 始 化 工 作 都 可 以 在 处 理 O n C reate 事 件 的句 柄 中 进 行

O n D e s tro y 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图118声 明 _prope r ty C la s s e s :: T N o tif y E v e nt O n D e s tro y ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图119第 十 六 章 W e b 服 务 器 的 细 节 - 图120第 十 六 章 W e b 服 务 器 的 细 节 - 图121第 十 六 章 W e b 服 务 器 的 细 节 - 图122第 十 六 章 W e b 服 务 器 的 细 节 - 图123当 W e b 正 在 删 除 的 时 候 将 触 发 这 个 事 件 这 样 您 就 有 机 会 做 一 些 清 场的 工 作 以 保 证 先 前 占 用 的 资 源 能 得 到 释 放

O n B e fo re D is p a tc h 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图124声 明 _prope r ty T H T T P M e thodE ve nt B e fo re D is p a tc h ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图125第 十 六 章 W e b 服 务 器 的 细 节 - 图126其 中 T H T T P M e thodE ve n t是 这 样 声 明 的

ty pe de f v o id _ fa s tc a l l (_ c losure ∗ T H T T P M e th o d E v e n t)( S y s te m ::T O b je c t∗ Se n d e r, T W eb R e q u es t∗ R e q u es t , T W eb R e s p o n se ∗ R e sp o n s e , b ool & H a n d le d ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图127第 十 六 章 W e b 服 务 器 的 细 节 - 图128第 十 六 章 W e b 服 务 器 的 细 节 - 图129第 十 六 章 W e b 服 务 器 的 细 节 - 图130当 W e b 模 块 检 索 到 一 个 H TTP 请 求 消 息 时 就 触 发 这 个 事 件 这 样 您 就 有 机 会在 指 派 具 体 的 动 作 项 之 前 先 对 H TTP 请 求 消 息 作 一 个 总 的 处 理 然 后 再 响应 动 作 项 的 O n A c tio n 事 件 对 H TTP 请 求 消 息 作 具 体 的 处 理

第 十 六 章 W e b 服 务 器 的 细 节 - 图131第 十 六 章 W e b 服 务 器 的 细 节 - 图132第 十 六 章 W e b 服 务 器 的 细 节 - 图133第 十 六 章 W e b 服 务 器 的 细 节 - 图134第 十 六 章 W e b 服 务 器 的 细 节 - 图135第 十 六 章 W e b 服 务 器 的 细 节 - 图136第 十 六 章 W e b 服 务 器 的 细 节 - 图137第 十 六 章 W e b 服 务 器 的 细 节 - 图138第 十 六 章 W e b 服 务 器 的 细 节 - 图139第 十 六 章 W e b 服 务 器 的 细 节 - 图140第 十 六 章 W e b 服 务 器 的 细 节 - 图141第 十 六 章 W e b 服 务 器 的 细 节 - 图142如 果 不 需 要 区 分 H TTP 请 求 消 息 您 可 以 在 响 应 O n B e fo re D is p a tc h 事 件 的 句柄 中 填 充 R e s pons e 参 数 ( T W e bR e s pons e 对 象 ) 同 时 把 H a nd le d 参 数 设 为 T ru e 表 示 消 息 已 处 理 过 这 样 W e b 模 块 就 不 再 把 H TTP 请 求 消 息 传 递 给 任 何 一个 动 作 项 换 句 话 说 就 是 不 再 触 发 动 作 项 的 O n A c tio n 事 件 如 果 您 并 没 有填 充 R e s pons e 参 数 却 把 H a nd le d 参 数 设 为 T ru e W e b 模 块 也 不 把 H TTP 请 求消 息 传 递 给 任 何 一 个 动 作 项 但 将 触 发 O n A fte r D is p a tc h 事 件 这 样 您 还 有一 次 机 会 对 H TTP 请 求 消 息 进 行 处 理

O n A fter D is p a tc h 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图143声 明 _prope r ty T H T T P M e thodE ve nt A f te r D is pa tc h;

第 十 六 章 W e b 服 务 器 的 细 节 - 图144第 十 六 章 W e b 服 务 器 的 细 节 - 图145第 十 六 章 W e b 服 务 器 的 细 节 - 图146第 十 六 章 W e b 服 务 器 的 细 节 - 图147第 十 六 章 W e b 服 务 器 的 细 节 - 图148第 十 六 章 W e b 服 务 器 的 细 节 - 图149当 W e b 模 块 指 派 了 某 个 动 作 项 并 且 已 经 填 充 了 H TTP 响 应 消 息 ( T W e bR e s pons e 对 象 ) 就 触 发 这 个 事 件 此 时 H TTP 响 应 消 息 还 没 有 发 出 这 样 您 就 有 机 会 对 T W e b R e s pons e 对 象 作 最 后 的 修 改 如 果 您 把 H a nd le d 参 数设 为 Fa ls e 表 示 不 发 出 H TTP 响 应 消 息

1 6.3 We b 调 度 器

第 十 六 章 W e b 服 务 器 的 细 节 - 图150第 十 六 章 W e b 服 务 器 的 细 节 - 图151第 十 六 章 W e b 服 务 器 的 细 节 - 图152第 十 六 章 W e b 服 务 器 的 细 节 - 图153第 十 六 章 W e b 服 务 器 的 细 节 - 图154从 上 一 节 可 以 看 出 W e b 模 块 不 仅 仅 是 个 容 器 更 主 要 的 它 是 W e b 服 务 器 应用 程 序 的 调 度 中 心 起 着 举 足 轻 重 的 作 用 不 过 有 时 候 您 可 能 还 得 用 传

第 十 六 章 W e b 服 务 器 的 细 节 - 图155第 十 六 章 W e b 服 务 器 的 细 节 - 图156第 十 六 章 W e b 服 务 器 的 细 节 - 图157第 十 六 章 W e b 服 务 器 的 细 节 - 图158第 十 六 章 W e b 服 务 器 的 细 节 - 图159第 十 六 章 W e b 服 务 器 的 细 节 - 图160第 十 六 章 W e b 服 务 器 的 细 节 - 图161第 十 六 章 W e b 服 务 器 的 细 节 - 图162第 十 六 章 W e b 服 务 器 的 细 节 - 图163第 十 六 章 W e b 服 务 器 的 细 节 - 图164第 十 六 章 W e b 服 务 器 的 细 节 - 图165统 的 数 据 模 块 这 是 因 为 过 去 可 能 已 经 为 数 据 模 块 写 了 很 多 代 码 数 据模 块 中 封 装 了 许 多 成 熟 的 商 业 规 则 如 果 一 切 从 头 开 始 就 非 常 可 惜 甚 至 是不 可 能 的 这 时 候 您 可 以 用 数 据 模 块 代 替 W e b 模 块 只 要 把 一 个T W e b D is p atch er元 件 加 到 数 据 模 块 上 这 样 也 能 构 成 W e b 服 务 器 应 用 程 序 的调 度 中 心 事 实 上 W e b 模 块 本 来 就 扮 演 着 容 器 和 调 度 中 心 两 种 角 色 现在 只 是 分 开 实 现 而 已

第 十 六 章 W e b 服 务 器 的 细 节 - 图166第 十 六 章 W e b 服 务 器 的 细 节 - 图167第 十 六 章 W e b 服 务 器 的 细 节 - 图168T W e b D is p atch er 元 件 的 直 接 上 级 是 T C u s to m W eb D is p atch e r 在 H TTP A P P 单元 中 T C u s to m W eb D is p atch er是 这 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T C us to m W e b D is p a tc h e r : pu b lic F o rm s : : T D a ta M odu le

{

pub l ic :

T W e b A c tio n Ite m ∗ _ fas tcall A c t io n B y N am e( co n s t S y s tem : : A n s i S tr in g A N a m e ) ;

_p rop e r ty T W e b A c t ionIte m s ∗ A c tio n s ;

_p rop e r ty T W e b A c t ionIte m ∗ A c tio n [ in t In d e x ] ;

_p rop e r ty T W e b R e q u e s t∗ R e q u e s t ;

_p rop e r ty T W e b R e s p onse ∗ R e sp o n s e ;

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图169第 十 六 章 W e b 服 务 器 的 细 节 - 图170第 十 六 章 W e b 服 务 器 的 细 节 - 图171第 十 六 章 W e b 服 务 器 的 细 节 - 图172第 十 六 章 W e b 服 务 器 的 细 节 - 图173第 十 六 章 W e b 服 务 器 的 细 节 - 图174第 十 六 章 W e b 服 务 器 的 细 节 - 图175第 十 六 章 W e b 服 务 器 的 细 节 - 图176T W e b D is p atch er元 件 的 特 性 方 法 和 事 件 请 参 见 W e b 模 块 与 W e b 模 块 一 样 T W e b D is p atch er元 件 也 有 收 集 和 管 理 动 作 项 的 功 能 在 T W e b D is p atch e r元 件上 双 击 鼠 标 左 键 或 单 击 鼠 标 右 键 再 选 择 A c tio n E d i tor 命 令 将 弹 出 动 作编 辑 器

1 6. 4 动 作 项

第 十 六 章 W e b 服 务 器 的 细 节 - 图177第 十 六 章 W e b 服 务 器 的 细 节 - 图178第 十 六 章 W e b 服 务 器 的 细 节 - 图179第 十 六 章 W e b 服 务 器 的 细 节 - 图180第 十 六 章 W e b 服 务 器 的 细 节 - 图181第 十 六 章 W e b 服 务 器 的 细 节 - 图182第 十 六 章 W e b 服 务 器 的 细 节 - 图183第 十 六 章 W e b 服 务 器 的 细 节 - 图184第 十 六 章 W e b 服 务 器 的 细 节 - 图185第 十 六 章 W e b 服 务 器 的 细 节 - 图186第 十 六 章 W e b 服 务 器 的 细 节 - 图187W e b 模 块 用 动 作 项 来 响 应 H TTP 请 求 消 息 一 个 动 作 项 就 是 一 个T W e b A c t ionIte m 对 象 C+ + Bu ild e r 3 用 动 作 编 辑 器 来 管 理 W e b 服 务 器 应 用 程序 的 动 作 项 要 打 开 动 作 编 辑 器 有 三 种 方 法 一 是 直 接 双 击 W e b 模 块 或T W eb D is p atch e r 元 件 二 是 用 鼠 标 右 键 单 击 W e b 模 块 或 T W e b D is p atch er 元件 在 弹 出 的 菜 单 中 选 择 A c tio n E d i tor 命 令 三 是 在 O b ject In s p ecto r 中找 到 A c tio n s 特 性 单 击 该 特 性 边 上 的 省 略 号 按 钮 打 开 的 动 作 编 辑 器 如 图

第 十 六 章 W e b 服 务 器 的 细 节 - 图18816 .2 所 示

第 十 六 章 W e b 服 务 器 的 细 节 - 图189

图 16 . 2 动 作 编 辑 器

  • 第 十 六 章 W e b 服 务 器 的 细 节 - 图190第 十 六 章 W e b 服 务 器 的 细 节 - 图191第 十 六 章 W e b 服 务 器 的 细 节 - 图192

    W e b 服 务 器 应 用 程 序 往 往 有 多 个 动 作 项 您 可 以 让 每 个 动 作 项 单 独 完成 对 H TTP 请 求 消 息 的 响 应 也 可 以 只 进 行 一 部 分 响 应 让 其 它 动 作 项 共 同

第 十 六 章 W e b 服 务 器 的 细 节 - 图193第 十 六 章 W e b 服 务 器 的 细 节 - 图194第 十 六 章 W e b 服 务 器 的 细 节 - 图195第 十 六 章 W e b 服 务 器 的 细 节 - 图196第 十 六 章 W e b 服 务 器 的 细 节 - 图197第 十 六 章 W e b 服 务 器 的 细 节 - 图198参 与 完 成 对 H TTP 请 求 的 响 应 最 后 一 个 动 作 项 往 往 比 较 特 殊 通 常 用 于 对H TTP 响 应 消 息 作 最 后 的 检 查 然 后 再 决 定 是 发 送 H TTP 响 应 消 息 还 是 返 回一 个 错 误 码 动 作 项 一 般 不 需 要 显 式 地 发 送 H TTP 响 应 消 息 因 为 W e b 服 务器 应 用 程 序 会 自 动 把 HT M L 页 面 传 递 给 W e b 服 务 器

第 十 六 章 W e b 服 务 器 的 细 节 - 图199第 十 六 章 W e b 服 务 器 的 细 节 - 图200在 H TTP A P P 单 元 中 T W e b A c tio n Ite m 对 象 是 这 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T W e b A c tio n Ite m : p u b lic C la s se s ::T C o lle c tio n Ite m

{

pub l ic :

_ fa s tc a ll v ir tu a l T W e b A c tio n I te m ( C la s s e s ::T C o lle c tio n * C o lle c tio n ) ;

_ fa s tc a ll v ir tu a l ~ T W e b A c tio n Ite m ( v o id ) ;

v ir tu a l v o id _ fa s tc a ll A s s ig n T o ( C la s s e s ::T P e rs is te n t* D e s t) ;

_pu b lis h e d:

_p rop e r ty boo l D e fa u lt;

_p rop e r ty boo l E n a b le d;

_p rop e r ty T M e th odT y p e M e thodT y p e ;

_ p ro p e rty S y s te m ::A n s iS trin g N a m e ;

_ p ro p e rty S y s te m ::A n s iS trin g P a th In fo ;

_p rop e r ty T H T T P M e thodE ve nt O n A c t io n;

};

D e fa u lt 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图201声 明 _prope r ty bool D e fa u lt;

第 十 六 章 W e b 服 务 器 的 细 节 - 图202第 十 六 章 W e b 服 务 器 的 细 节 - 图203第 十 六 章 W e b 服 务 器 的 细 节 - 图204第 十 六 章 W e b 服 务 器 的 细 节 - 图205第 十 六 章 W e b 服 务 器 的 细 节 - 图206第 十 六 章 W e b 服 务 器 的 细 节 - 图207如 果 这 个 特 性 设 为 T ru e 此 动 作 项 就 成 为 默 认 的 动 作 项 在 动 作 编 辑 器 中默 认 动 作 项 的 D e fa u l t 栏 有 一 个 * 号 ( 见 图 16 .2)

第 十 六 章 W e b 服 务 器 的 细 节 - 图208第 十 六 章 W e b 服 务 器 的 细 节 - 图209第 十 六 章 W e b 服 务 器 的 细 节 - 图210第 十 六 章 W e b 服 务 器 的 细 节 - 图211第 十 六 章 W e b 服 务 器 的 细 节 - 图212第 十 六 章 W e b 服 务 器 的 细 节 - 图213第 十 六 章 W e b 服 务 器 的 细 节 - 图214第 十 六 章 W e b 服 务 器 的 细 节 - 图215当 W e b 模 块 检 索 到 一 个 H TTP 请 求 消 息 就 在 所 有 的 动 作 项 中 查 找 与 此 消 息匹 配 的 动 作 项 如 没 有 找 到 就 指 派 默 认 的 动 作 项 去 响 应 此 消 息 即 使 该动 作 项 与 H TTP 请 求 消 息 并 不 匹 配 这 就 是 D e fa u l t特 性 的 作 用 因 此 默 认的 动 作 项 往 往 是 最 后 一 个 动 作 项

第 十 六 章 W e b 服 务 器 的 细 节 - 图216第 十 六 章 W e b 服 务 器 的 细 节 - 图217第 十 六 章 W e b 服 务 器 的 细 节 - 图218第 十 六 章 W e b 服 务 器 的 细 节 - 图219第 十 六 章 W e b 服 务 器 的 细 节 - 图220在 一 个 W e b 服 务 器 应 用 程 序 中 只 能 有 一 个 动 作 项 被 指 定 为 默 认 动 作 项对 于 默 认 的 动 作 项 来 说 如 果 它 的 En a b le d 特 性 设 为 Fa ls e W e b 调 度 器 先 从非 默 认 的 动 作 项 中 查 找 匹 配 的 动 作 项 只 有 当 所 有 的 非 默 认 动 作 项 都 不 匹

第 十 六 章 W e b 服 务 器 的 细 节 - 图221第 十 六 章 W e b 服 务 器 的 细 节 - 图222第 十 六 章 W e b 服 务 器 的 细 节 - 图223第 十 六 章 W e b 服 务 器 的 细 节 - 图224第 十 六 章 W e b 服 务 器 的 细 节 - 图225第 十 六 章 W e b 服 务 器 的 细 节 - 图226第 十 六 章 W e b 服 务 器 的 细 节 - 图227第 十 六 章 W e b 服 务 器 的 细 节 - 图228第 十 六 章 W e b 服 务 器 的 细 节 - 图229配 时 才 指 派 默 认 的 动 作 项 如 果 默 认 动 作 项 的 En a b le d 特 性 设 为 T ru e W e b 调 度 器 将 从 包 括 默 认 动 作 项 在 内 的 所 有 动 作 项 中 查 找 匹 配 的 动 作 项 如 果都 不 匹 配 就 指 派 默 认 的 动 作 项 由 此 可 见 默 认 的 动 作 项 有 着 特 殊 的 作用 处 理 默 认 动 作 项 的 O n A c tio n 事 件 的 句 柄 应 当 能 够 处 理 任 何 类 型 的 H TTP 请 求 消 息

第 十 六 章 W e b 服 务 器 的 细 节 - 图230第 十 六 章 W e b 服 务 器 的 细 节 - 图231第 十 六 章 W e b 服 务 器 的 细 节 - 图232第 十 六 章 W e b 服 务 器 的 细 节 - 图233第 十 六 章 W e b 服 务 器 的 细 节 - 图234注 意 一 般 情 况 下 您 应 当 在 设 计 期 就 确 定 哪 个 动 作 项 为 默 认 动 作 项 尽量 不 要 在 运 行 期 指 定 默 认 动 作 项 因 为 这 可 能 导 致 不 可 预 计 的 后 果

第 十 六 章 W e b 服 务 器 的 细 节 - 图235第 十 六 章 W e b 服 务 器 的 细 节 - 图236第 十 六 章 W e b 服 务 器 的 细 节 - 图237第 十 六 章 W e b 服 务 器 的 细 节 - 图238这 里 顺 便 介 绍 一 下 匹 配 的 条 件 必 须 同 时 满 足 下 列 两 个 条 件 才 算 是 匹 配一 是 动 作 项 的 M e thodT y p e 特 性 与 H TTP 请 求 消 息 ( T W e bR e que s t 对 象 ) 的M e thodT y p e 特 性 相 同 二 是 动 作 项 的 P a th In fo 特 性 与 H TTP 请 求 消 息 ( T W e bR e que s t对 象 ) 的 P a th In fo 特 性 相 同

En a b le d 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图239声 明 _prope r ty bool E n a b le d;

第 十 六 章 W e b 服 务 器 的 细 节 - 图240第 十 六 章 W e b 服 务 器 的 细 节 - 图241第 十 六 章 W e b 服 务 器 的 细 节 - 图242第 十 六 章 W e b 服 务 器 的 细 节 - 图243第 十 六 章 W e b 服 务 器 的 细 节 - 图244第 十 六 章 W e b 服 务 器 的 细 节 - 图245第 十 六 章 W e b 服 务 器 的 细 节 - 图246第 十 六 章 W e b 服 务 器 的 细 节 - 图247第 十 六 章 W e b 服 务 器 的 细 节 - 图248第 十 六 章 W e b 服 务 器 的 细 节 - 图249如 果 动 作 项 的 En a b le d 特 性 设 为 Fa ls e 动 作 项 就 被 暂 时 禁 止 W e b 调 度 器 将不 检 查 此 动 作 项 是 否 与 H TTP 请 求 消 息 匹 配 更 不 会 指 派 该 动 作 项 去 响 应H TTP 请 求 消 息 En a b le d 特 性 对 默 认 的 动 作 项 无 效 如 果 默 认 的 动 作 项 的En a b le d 特 性 设 为 Fa ls e W e b 调 度 器 将 首 先 从 非 默 认 的 并 且 En a b le d 特 性 设 为T ru e 的 动 作 项 中 查 找 匹 配 的 动 作 项 只 有 当 这 些 动 作 项 都 不 匹 配 时 才 指派 默 认 的 动 作 项 即 使 默 认 的 动 作 项 可 能 正 好 与 H TTP 请 求 消 息 匹 配

M e th o d Ty p e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图250声 明 _prope r ty T M e thodT y p e M e thodT y p e ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图251第 十 六 章 W e b 服 务 器 的 细 节 - 图252第 十 六 章 W e b 服 务 器 的 细 节 - 图253第 十 六 章 W e b 服 务 器 的 细 节 - 图254第 十 六 章 W e b 服 务 器 的 细 节 - 图255第 十 六 章 W e b 服 务 器 的 细 节 - 图256第 十 六 章 W e b 服 务 器 的 细 节 - 图257第 十 六 章 W e b 服 务 器 的 细 节 - 图258第 十 六 章 W e b 服 务 器 的 细 节 - 图259第 十 六 章 W e b 服 务 器 的 细 节 - 图260第 十 六 章 W e b 服 务 器 的 细 节 - 图261这 个 特 性 指 定 一 个 方 法 类 型 动 作 项 将 只 响 应 该 类 型 的 H TTP 请 求 消 息M e thodT y p e 特 性 可 以 设 为 以 下 值 m tG e t m t H ead m t P o s t m tP u t m tA n y 注 意 M e thodT y p e 特 性 设 为 m tA n y 的 动 作 项 最 好 加 在 其 它 动 作 项 的 后 面 这 样 能 保 证 先 找 到 精 确 匹 配 的 动 作 项

N a m e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图262声 明 _prope r ty S y s te m : : A n s i S tr ing N a m e ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图263第 十 六 章 W e b 服 务 器 的 细 节 - 图264第 十 六 章 W e b 服 务 器 的 细 节 - 图265这 个 特 性 用 于 给 动 作 项 指 定 名 称 每 个 动 作 项 的 名 称 应 该 是 唯 一 的 否 则将 触 发 异 常

Pa th I n fo 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图266声 明 _prope r ty S y s te m : : A n s i S tr ing P a th In fo ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图267第 十 六 章 W e b 服 务 器 的 细 节 - 图268第 十 六 章 W e b 服 务 器 的 细 节 - 图269这 个 特 性 用 于 指 定 入 口 路 径 动 作 项 将 只 处 理 与 此 入 口 路 径 匹 配 的 H TTP 请求 消 息 假 设 H TTP 请 求 消 息 的 目 标 UR L 是

h t tp :// w w w . T S ite . c o m / a rt/ g a lle ry. d l l / m a m m a ls ? a n im a l= d o g & c o lo r= b la c k

第 十 六 章 W e b 服 务 器 的 细 节 - 图270第 十 六 章 W e b 服 务 器 的 细 节 - 图271第 十 六 章 W e b 服 务 器 的 细 节 - 图272其 中 ga lle r y .d ll是 W e b 服 务 器 应 用 程 序 /m a m m a ls 就 是 入 口 路 径

A ssig n To 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图273声 明 v ir tu a l v o id _ fa s tc a ll A s s ig n T o ( C la s s e s ::T P e rs is te n t* D e s t) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图274第 十 六 章 W e b 服 务 器 的 细 节 - 图275第 十 六 章 W e b 服 务 器 的 细 节 - 图276第 十 六 章 W e b 服 务 器 的 细 节 - 图277这 个 函 数 把 一 个 动 作 项 ( 本 身 ) 赋 给 由 D e s t参 数 指 定 的 另 一 个 动 作 项 包 括 动作 项 的 D e fa u l t En a b le d M e thod T y pe 和 Pa th In fo 等 特 性 的 值

构 造 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图278声 明 _fa s tc a l l v ir tua l T W e b A c tionIte m ( C la s s e s : : T C o lle c tion* C o lle c tion);

第 十 六 章 W e b 服 务 器 的 细 节 - 图279构 造 函 数 用 于 创 建 T W e b A c tio n Ite m 对 象 的 实 例 并 对 该 实 例 初 始 化 En a b le d

第 十 六 章 W e b 服 务 器 的 细 节 - 图280第 十 六 章 W e b 服 务 器 的 细 节 - 图281特 性 设 为 T ru e P a th In fo 特 性 设 为 空

析 构 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图282声 明 _fa s tc a l l v ir tua l ~ T W e bA c tionIte m ( vo id ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图283第 十 六 章 W e b 服 务 器 的 细 节 - 图284第 十 六 章 W e b 服 务 器 的 细 节 - 图285第 十 六 章 W e b 服 务 器 的 细 节 - 图286第 十 六 章 W e b 服 务 器 的 细 节 - 图287析 构 函 数 用 于 删 除 T W e b A c tio n Ite m 对 象 的 实 例 不 过 一 般 情 况 下 并 不 需要 调 用 析 构 函 数 因 为 当 W e b 服 务 器 应 用 程 序 终 止 时 会 自 动 删 除 W e b 模 块 的实 例 同 时 删 除 由 W e b 模 块 收 集 和 管 理 的 所 有 动 作 项 要 显 式 地 删 除

第 十 六 章 W e b 服 务 器 的 细 节 - 图288第 十 六 章 W e b 服 务 器 的 细 节 - 图289T W e b A c t ionIte m 对 象 的 实 例 用 d e le te

O n A c tio n 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图290声 明 _prope r ty T H T T P M e thodE ve nt O n A c t ion;

第 十 六 章 W e b 服 务 器 的 细 节 - 图291第 十 六 章 W e b 服 务 器 的 细 节 - 图292其 中 T H T T P M e thodE ve n t是 这 样 声 明 的

ty pe de f v o id _ fa s tc a l l (_ c lo sure ∗ T H T T P M e th o d E v e n t)( S y s te m ::T O b je c t∗ Se n d e r , T W e b R e que s t∗ R e q u es t , T W eb R e sp o n s e ∗ R e s p o n s e , b o ol & H a nd le d ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图293第 十 六 章 W e b 服 务 器 的 细 节 - 图294这 个 事 件 可 能 是 W e b 服 务 器 应 用 程 序 中 最 重 要 的 事 件 上 一 章 已 多 次 提 到

第 十 六 章 W e b 服 务 器 的 细 节 - 图295第 十 六 章 W e b 服 务 器 的 细 节 - 图296第 十 六 章 W e b 服 务 器 的 细 节 - 图297第 十 六 章 W e b 服 务 器 的 细 节 - 图298当 W e b 调 度 器 检 索 到 一 个 H TTP 请 求 消 息 并 且 找 到 了 匹 配 的 动 作 项 就 触 发这 个 事 件 这 样 您 就 有 机 会 对 客 户 的 请 求 作 出 反 应 O n A c tio n 事 件 有 三 个参 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图299第 十 六 章 W e b 服 务 器 的 细 节 - 图300第 十 六 章 W e b 服 务 器 的 细 节 - 图301第 十 六 章 W e b 服 务 器 的 细 节 - 图302第 十 六 章 W e b 服 务 器 的 细 节 - 图303第 十 六 章 W e b 服 务 器 的 细 节 - 图304第 十 六 章 W e b 服 务 器 的 细 节 - 图305第 十 六 章 W e b 服 务 器 的 细 节 - 图306第 十 六 章 W e b 服 务 器 的 细 节 - 图307第 十 六 章 W e b 服 务 器 的 细 节 - 图308第 十 六 章 W e b 服 务 器 的 细 节 - 图309第 十 六 章 W e b 服 务 器 的 细 节 - 图310第 十 六 章 W e b 服 务 器 的 细 节 - 图311第 十 六 章 W e b 服 务 器 的 细 节 - 图312R e que s t参 数 是 个 T W e b R e que s t对 象 用 于 描 述 H TTP 请 求 消 息 动 作 项 正 是通 过 R e que s t 参 数 来 分 析 客 户 发 出 的 请 求 R e s pons e 参 数 是 个 T W e b R e s pons e 对 象 用 于 描 述 H TTP 响 应 消 息 所 谓 响 应 实 际 上 就 是 把 HT M L 代 码 赋 给T W e b R e s pons e 对 象 的 C on te n t特 性 这 些 HT M L 代 码 被 传 送 到 客 户 端 后 由W e b 浏 览 器 解 释 并 显 示 成 W e b 页 面 如 果 此 动 作 项 已 经 完 成 了 对 H TTP 请 求消 息 的 处 理 就 把 H a nd le d 参 数 设 为 T ru e 如 果 此 动 作 项 没 有 响 应 H TTP 请 求消 息 或 只 是 部 分 响 应 H TTP 请 求 消 息 应 当 把 H a nd le d 特 性 设 为 Fa ls e 让 其它 动 作 项 有 机 会 作 进 一 步 的 处 理

第 十 六 章 W e b 服 务 器 的 细 节 - 图313一 般 来 说 您 并 不 需 要 显 式 地 调 用 S e n d R ed irect或 S e ndR e s pon s e 来 发 送 H TTP

第 十 六 章 W e b 服 务 器 的 细 节 - 图314第 十 六 章 W e b 服 务 器 的 细 节 - 图315第 十 六 章 W e b 服 务 器 的 细 节 - 图316响 应 消 息 因 为 W e b 服 务 器 应 用 程 序 会 自 动 把 HT M L 页 面 传 递 W e b 服 务 器再 传 递 给 客 户

1 6.5 HT TP 请 求 消 息

第 十 六 章 W e b 服 务 器 的 细 节 - 图317第 十 六 章 W e b 服 务 器 的 细 节 - 图318第 十 六 章 W e b 服 务 器 的 细 节 - 图319C+

  • Bu ild e r 3 用 T W e b R e que s t对 象 来 描 述 和 解 释 H TTP 请 求 消 息 W e b 服 务器 应 用 程 序 可 以 从 中 检 索 到 许 多 信 息 从 而 作 出 不 同 的 响 应

1 6.5. 1 HTTP 请 求 消 息 是 怎 样 传 递 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图320第 十 六 章 W e b 服 务 器 的 细 节 - 图321第 十 六 章 W e b 服 务 器 的 细 节 - 图322第 十 六 章 W e b 服 务 器 的 细 节 - 图323第 十 六 章 W e b 服 务 器 的 细 节 - 图324第 十 六 章 W e b 服 务 器 的 细 节 - 图325第 十 六 章 W e b 服 务 器 的 细 节 - 图326当 客 户 在 W e b 浏 览 器 中 单 击 一 个 超 级 链 接 W e b 浏 览 器 就 开 始 收 集 协 议 种类 W e b 服 务 器 的 主 机 名 信 息 的 入 口 路 径 当 前 的 日 期 和 时 间 操 作 系统 以 及 W e b 浏 览 器 连 接 状 态 等 信 息 然 后 把 这 些 信 息 组 合 成 H TTP 请 求 消 息发 送 给 W e b 服 务 器

第 十 六 章 W e b 服 务 器 的 细 节 - 图327第 十 六 章 W e b 服 务 器 的 细 节 - 图328第 十 六 章 W e b 服 务 器 的 细 节 - 图329第 十 六 章 W e b 服 务 器 的 细 节 - 图330如 果 W e b 服 务 器 需 要 区 分 H TTP 请 求 消 息 中 的 入 口 路 径 并 分 门 别 类 地 加 以 处理 W e b 服 务 器 必 须 把 H TTP 请 求 消 息 传 递 给 W e b 服 务 器 应 用 程 序 更 准 确地 说 就 是 W e b 模 块 具 体 的 传 递 方 式 取 决 于 W e b 服 务 器 应 用 程 序 的 类 型

第 十 六 章 W e b 服 务 器 的 细 节 - 图331第 十 六 章 W e b 服 务 器 的 细 节 - 图332第 十 六 章 W e b 服 务 器 的 细 节 - 图333第 十 六 章 W e b 服 务 器 的 细 节 - 图334第 十 六 章 W e b 服 务 器 的 细 节 - 图335第 十 六 章 W e b 服 务 器 的 细 节 - 图336对 于 CG I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 W e b 服 务 器 与 W e b 服 务 器 应 用 程序 之 间 是 通 过 标 准 的 输 入 输 出 设 备 交 换 信 息 的 因 此 W e b 服 务 器 直 接 把H TTP 请 求 消 息 传 递 给 CG I程 序 然 后 等 待 CG I程 序 执 行 CG I程 序 把 响 应 结果 直 接 传 递 给 W e b 服 务 器

第 十 六 章 W e b 服 务 器 的 细 节 - 图337第 十 六 章 W e b 服 务 器 的 细 节 - 图338第 十 六 章 W e b 服 务 器 的 细 节 - 图339第 十 六 章 W e b 服 务 器 的 细 节 - 图340第 十 六 章 W e b 服 务 器 的 细 节 - 图341第 十 六 章 W e b 服 务 器 的 细 节 - 图342第 十 六 章 W e b 服 务 器 的 细 节 - 图343第 十 六 章 W e b 服 务 器 的 细 节 - 图344对 于 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 W e b 服 务 器 与 W e b 服 务 器 应用 程 序 之 间 通 过 文 件 交 换 信 息 因 此 W e b 服 务 器 首 先 把 H TTP 请 求 消 息 写到 一 个 配 置 文 件 中 ( 扩 展 名 是 .IN I) 然 后 执 行 W in - C G I 程 序 并 传 递 两 个 文 件位 置 一 个 是 包 含 H TTP 请 求 消 息 的 配 置 文 件 的 位 置 另 一 个 是 让 W in - C G I 程 序 写 响 应 结 果 的 文 件 的 位 置 W e b 服 务 器 会 等 待 W in - C G I程 序 执 行 执 行

第 十 六 章 W e b 服 务 器 的 细 节 - 图345第 十 六 章 W e b 服 务 器 的 细 节 - 图346完 毕 后 就 从 指 定 的 文 件 中 读 取 响 应 结 果

第 十 六 章 W e b 服 务 器 的 细 节 - 图347第 十 六 章 W e b 服 务 器 的 细 节 - 图348第 十 六 章 W e b 服 务 器 的 细 节 - 图349第 十 六 章 W e b 服 务 器 的 细 节 - 图350第 十 六 章 W e b 服 务 器 的 细 节 - 图351第 十 六 章 W e b 服 务 器 的 细 节 - 图352对 于 IS A P I 或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 当 W e b 服 务 器 检 索 到一 个 H TTP 请 求 消 息 它 就 加 载 动 态 链 接 库 形 式 的 IS A P I 或 NS A P I 程 序 ( 如 果IS A P I 或 NS A P I 程 序 还 没 有 加 载 的 话 ) 然 后 把 H TTP 请 求 消 息 以 一 个 结 构 的形 式 传 递 给 IS A P I或 NS A P I程 序 等 IS A P I或 N S A P I程 序 执 行 关 闭 就 把 响 应结 果 直 接 传 递 给 W e b 服 务 器

1 6.5.2 TWeb Request 是 怎 样 声 明 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图353第 十 六 章 W e b 服 务 器 的 细 节 - 图354第 十 六 章 W e b 服 务 器 的 细 节 - 图355第 十 六 章 W e b 服 务 器 的 细 节 - 图356第 十 六 章 W e b 服 务 器 的 细 节 - 图357第 十 六 章 W e b 服 务 器 的 细 节 - 图358T W e b R e que s t 只 是 一 个 虚 拟 基 类 对 于 不 同 类 型 的 W e b 服 务 器 应 用 程 序 来说 描 述 和 解 释 H TTP 请 求 消 息 的 实 际 上 是 T W e b R e que s t的 派 生 类 对 于 IS A P I 或 NS AP I类 型 的 W e b 服 务 器 应 用 程 序 来 说 就 是 T ISA P IR e q u e s t 对 于 CG I类 型的 W e b 服 务 器 应 用 程 序 来 说 就 是 TC G IR e q u e s t 对 于 W in - C G I 类 型 的 W e b 服务 器 应 用 程 序 来 说 就 是 T W in C G IR e que s t

第 十 六 章 W e b 服 务 器 的 细 节 - 图359第 十 六 章 W e b 服 务 器 的 细 节 - 图360在 H TTP A P P 单 元 中 T W e b R e que s t是 怎 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T W e b R e q u e s t : p u b lic S y s te m ::T O b je c t

{

priv a te :

// 私有的成 员此处省略

pub l ic :

_fa s tc a l l T W e b R e qu e s t( vo id);

_fa s tc a l l v ir tua l ~ T W e bR e q ue s t( v o id);

v ir tu a l in t _ fa s tc a ll R e a d C lie n t( v o id * B u ffe r , in t C o u n t);

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll R e a d S tr in g ( in t C o u n t);

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll T ra n s la te U R I ( c o n s t S y s te m ::A n s iS trin g U R I ) ; v ir tu a l in t _ fa s tc a ll W rite C lie n t( v o id * B u f fe r , in t C o u n t) ;

v ir tu a l b o ol _ fa s tc a l l W r i te S tr ing( c o ns t S y s te m : : A n s i S tr ing A S tr ing);

v o id _ fas tc a l l E x tract F ield s ( c o n s t T C h a r S et & S ep arato rs , co n s t T C h a r S et & W h i te S p ace, c h a r * C on te n t , C la s s e s : : T S tr ings * S tr in g s ) ;

v o id _ fa s tc a ll E x tra c t C o n te n tF ie ld s ( C la s s e s ::T S tr in g s * S tr in g s ) ; vo id _ fa s tc a l l E x tra c t C o o k ie F ie lds ( C la s se s : : T S tr ings * S tr ings ) ; v o id _ fa s tc a ll E x tra c t Q u e ry F ie ld s ( C la s s e s ::T S tr in g s * S tr in g s ) ;

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll G e tF ie ld B y N a m e ( c o n s t A n s i S tr in g N a m e ) ;

_p rop e r ty T M e th odT y p e M e thodT y p e ;

_ p ro p e rty C la s s e s ::T S tr in g s * C o n te n tF ie ld s ;

_p rop e r ty C la s s e s : : T S tr ings * C o ok ie F ie ld s ;

_ p ro p e rty C la s s e s ::T S tr in g s * Q u e ry F ie ld s ;

_p rop e r ty S y s tem : : A ns i S tr ing M e thod;

_p rop e r ty S y s tem : : A ns i S tr ing P ro toc o l V e rs io n;

_ p ro p e rty S y s te m ::A n s iS trin g U R L ;

_ p ro p e rty S y s te m ::A n s iS trin g Q u e ry ;

_ p ro p e rty S y s te m ::A n s iS trin g P a th In fo ;

_ p ro p e rty S y s te m ::A n s iS trin g P a th T ra n s la te d ;

_p rop e r ty S y s tem : : A ns i S tr ing A u thoriz a t ion;

_p rop e r ty S y s tem : : A ns i S tr ing C a c h e C on tro l;

_ p ro p e rty S y s te m ::A n s iS trin g C o o k ie ;

_ p ro p e rty S y s te m ::T D a te T im e D a te ;

_ p ro p e rty S y s te m ::A n s iS trin g A c c e p t;

_p rop e r ty S y s tem : : A ns i S tr ing F rom ;

_ p ro p e rty S y s te m ::A n s iS trin g H o s t ;

_ p ro p e rty S y s te m ::T D a te T im e I f M o d ifie d S in c e ;

_ p ro p e rty S y s te m ::A n s iS trin g R e fe re r ;

_ p ro p e rty S y s te m ::A n s iS trin g U s e r A g e n t;

_ p ro p e rty S y s te m ::A n s iS trin g C o n te n tE n c o d in g ;

_ p ro p e rty S y s te m ::A n s iS trin g C o n te n tT y p e ;

_p rop e r ty in t C on te n t L e n g th ;

_ p ro p e rty S y s te m ::A n s iS trin g C o n te n tV e rs io n ;

_ p ro p e rty S y s te m ::A n s iS trin g C o n te n t;

_p rop e r ty S y s tem : : A ns i S tr ing C o n n e c t ion;

_p rop e r ty S y s tem : : A ns i S tr ing D e r ive dF ro m ;

_p rop e r ty S y s tem : : T D a te T im e E xp ire s ;

_ p ro p e rty S y s te m ::A n s iS trin g T itle ;

_p rop e r ty S y s tem : : A ns i S tr ing R e m o te A ddr;

_ p ro p e rty S y s te m ::A n s iS trin g R e m o te H o s t ;

_p rop e r ty S y s tem : : A ns i S tr ing S c r ip t N a m e ;

_ p ro p e rty in t S e rv e r P o r t ;

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图361第 十 六 章 W e b 服 务 器 的 细 节 - 图362第 十 六 章 W e b 服 务 器 的 细 节 - 图363第 十 六 章 W e b 服 务 器 的 细 节 - 图364第 十 六 章 W e b 服 务 器 的 细 节 - 图365第 十 六 章 W e b 服 务 器 的 细 节 - 图366第 十 六 章 W e b 服 务 器 的 细 节 - 图367T W e b R e que s t对 象 的 作 用 就 是 描 述 和 解 释 H TTP 请 求 消 息 它 的 特 性 都 是 只读 的 要 说 明 的 是 由 于 H TTP 协 议 本 身 还 在 不 断 发 展 之 中 因 此 并 非 H TTP 请 求 消 息 中 的 所 有 信 息 都 可 以 通 过 T W e b R e que s t对 象 的 特 性 访 问 到 例 如

第 十 六 章 W e b 服 务 器 的 细 节 - 图368第 十 六 章 W e b 服 务 器 的 细 节 - 图369有 些 头 标 域 目 前 还 没 法 确 定 要 访 问 这 些 头 标 域 您 可 以 调 用

第 十 六 章 W e b 服 务 器 的 细 节 - 图370G e tF ie ld B y N a m e 函 数

1 6.5.3 TWeb Request 对 象 的 特 性 和 方 法

A cce p t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图371声 明 _ p ro p e r ty S y s te m : : A n s i S tr in g A ccep t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图372第 十 六 章 W e b 服 务 器 的 细 节 - 图373第 十 六 章 W e b 服 务 器 的 细 节 - 图374第 十 六 章 W e b 服 务 器 的 细 节 - 图375第 十 六 章 W e b 服 务 器 的 细 节 - 图376第 十 六 章 W e b 服 务 器 的 细 节 - 图377第 十 六 章 W e b 服 务 器 的 细 节 - 图378第 十 六 章 W e b 服 务 器 的 细 节 - 图379这 个 特 性 返 回 H TTP 请 求 消 息 中 的 A cce p t头 标 A cce p t 头 标 用 于 描 述 客 户 希望 接 受 的 媒 体 类 型 例 如 假 设 客 户 请 求 在 HT M L 页 面 中 包 含 得 到 一 段 声 音 A cce p t头 标 可 能 是 这 样 的 字 符 串 a ud io /*; q= 0 .2, a u d io /ba s ic 表 示 希 望 的媒 体 类 型 是 a ud io / ba s ic

第 十 六 章 W e b 服 务 器 的 细 节 - 图380并 不 是 所 有 的 H TTP 请 求 消 息 都 有 A cce p t 头 标 如 果 H TTP 请 求 消 息 中 没 有

第 十 六 章 W e b 服 务 器 的 细 节 - 图381第 十 六 章 W e b 服 务 器 的 细 节 - 图382第 十 六 章 W e b 服 务 器 的 细 节 - 图383A cce p t头 标 A cce p t特 性 就 返 回 空 表 示 客 户 可 接 受 所 有 的 媒 体 类 型

A u th or iz atio n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图384声 明 _prope r ty S y s te m : : A n s i S tr ing A u thoriz a t ion;

第 十 六 章 W e b 服 务 器 的 细 节 - 图385第 十 六 章 W e b 服 务 器 的 细 节 - 图386第 十 六 章 W e b 服 务 器 的 细 节 - 图387这 个 特 性 返 回 H TTP 请 求 消 息 中 的 A u th o riz a tio n 头 标 A u th o riz a tio n 头 标 描 述客 户 的 授 权 信 息 这 样 W e b 服 务 器 应 用 程 序 就 可 以 根 据 客 户 的 权 限 限 制 客户 的 某 些 访 问

C a ch e C o n tro l 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图388声 明 _prope r ty S y s te m : : A n s i S tr ing C a c h e C on tro l;

第 十 六 章 W e b 服 务 器 的 细 节 - 图389第 十 六 章 W e b 服 务 器 的 细 节 - 图390第 十 六 章 W e b 服 务 器 的 细 节 - 图391第 十 六 章 W e b 服 务 器 的 细 节 - 图392第 十 六 章 W e b 服 务 器 的 细 节 - 图393第 十 六 章 W e b 服 务 器 的 细 节 - 图394第 十 六 章 W e b 服 务 器 的 细 节 - 图395第 十 六 章 W e b 服 务 器 的 细 节 - 图396第 十 六 章 W e b 服 务 器 的 细 节 - 图397第 十 六 章 W e b 服 务 器 的 细 节 - 图398第 十 六 章 W e b 服 务 器 的 细 节 - 图399第 十 六 章 W e b 服 务 器 的 细 节 - 图400这 个 特 性 返 回 H TTP 请 求 消 息 中 的 C ach e- C o n tro l头 标 C ach e- C o n tro l头 标 用于 描 述 客 户 发 出 的 缓 存 机 制 指 示 字 H TTP 1 . 1 标 准 中 定 义 了 若 干 个 指 示 字n o - ca ch e no- s tore m a x

  • ag e= s s m a x - s ta le= s s 或 m a x - s ta le = s s m in- f re s h= s s 其 中 ss 是 秒 数 一 旦 缓 存 的 时 间 超 过 预 定 的 秒 数 就 认 为 H TTP 请 求 是 无效 的

C o n n ectio n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图401声 明 _prope r ty S y s te m : : A n s i S tr ing C onne c tio n ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图402第 十 六 章 W e b 服 务 器 的 细 节 - 图403第 十 六 章 W e b 服 务 器 的 细 节 - 图404第 十 六 章 W e b 服 务 器 的 细 节 - 图405第 十 六 章 W e b 服 务 器 的 细 节 - 图406第 十 六 章 W e b 服 务 器 的 细 节 - 图407第 十 六 章 W e b 服 务 器 的 细 节 - 图408第 十 六 章 W e b 服 务 器 的 细 节 - 图409第 十 六 章 W e b 服 务 器 的 细 节 - 图410这 个 特 性 返 回 H TTP 请 求 消 息 中 的 C onne c tio n 头 标 C onne c tio n 头 标 用 于 描 述客 户 与 W e b 服 务 器 应 用 程 序 之 间 的 连 接 选 项 如 果 C onne c tio n 头 标 是K eep - A liv e 表 示 一 直 保 持 连 接 状 态 如 果 C onne c tio n 头 标 是 C lo s e

第 十 六 章 W e b 服 务 器 的 细 节 - 图411当 响 应 结 束 就 断 开 连 接

C o n te n t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图412声 明 _prope r ty S y s te m : : A n s i S tr ing C on te n t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图413第 十 六 章 W e b 服 务 器 的 细 节 - 图414第 十 六 章 W e b 服 务 器 的 细 节 - 图415第 十 六 章 W e b 服 务 器 的 细 节 - 图416第 十 六 章 W e b 服 务 器 的 细 节 - 图417第 十 六 章 W e b 服 务 器 的 细 节 - 图418这 个 特 性 返 回 H TTP 请 求 消 息 中 的 内 容 ( 未 分 解 ) 如 果 H TTP 请 求 方 法 是PO ST 该 内 容 就 是 要 发 送 到 W e b 服 务 器 的 信 息 您 可 以 通 过 C o n te n tF ie ld s 特 性 访 问 分 解 后 的 每 一 个 域 如 果 H TTP 请 求 方 法 是 PU T 该 内 容 就 是 要 替代 UR L 特 性 所 定 位 的 内 容

C o n te n t E nc o d in g 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图419声 明 _prope r ty S y s te m : : A n s i S tr ing C on te n t E nc od ing;

第 十 六 章 W e b 服 务 器 的 细 节 - 图420第 十 六 章 W e b 服 务 器 的 细 节 - 图421第 十 六 章 W e b 服 务 器 的 细 节 - 图422第 十 六 章 W e b 服 务 器 的 细 节 - 图423第 十 六 章 W e b 服 务 器 的 细 节 - 图424第 十 六 章 W e b 服 务 器 的 细 节 - 图425这 个 特 性 返 回 H TTP 请 求 消 息 中 的 C on te n t- E n c od ing 头 标 C on te n t- E n c od ing 头 标 用 于 描 述 H TTP 请 求 消 息 中 的 内 容 的 编 码 方 式 也 就 是 怎 样 压 缩 和 传 输扩 展 的 AS C I I 字 符 如 果 有 多 种 编 码 方 式 的 话 这 些 编 码 方 式 按 客 户 指 定 的顺 序 依 次 排 列 彼 此 之 间 用 逗 号 隔 开

C o n te n t F ie ld s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图426声 明 _prope r ty C la s s e s :: T S tr ings * C on te n t F ie ld s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图427第 十 六 章 W e b 服 务 器 的 细 节 - 图428第 十 六 章 W e b 服 务 器 的 细 节 - 图429第 十 六 章 W e b 服 务 器 的 细 节 - 图430这 个 特 性 是 T S tr ings 对 象 用 于 返 回 H TTP 请 求 消 息 中 的 内 容 ( 已 分 解 ) 其 中每 个 字 符 串 的 形 式 是 N a me = V a lu e 字 符 串 之 间 用 & 符 号 隔 开

C o n ten t L en g th 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图431声 明 _prope r ty in t C on te n t L e ng th;

第 十 六 章 W e b 服 务 器 的 细 节 - 图432第 十 六 章 W e b 服 务 器 的 细 节 - 图433第 十 六 章 W e b 服 务 器 的 细 节 - 图434第 十 六 章 W e b 服 务 器 的 细 节 - 图435第 十 六 章 W e b 服 务 器 的 细 节 - 图436这 个 特 性 返 回 H TTP 请 求 消 息 中 的 C on te n t- L e ng th 头 标 C on te n t- L e n g th 头 标是 H TTP 请 求 消 息 中 内 容 的 长 度 如 果 C on te n t L e ng th 特 性 返 回 0 表 示 长 度 不确 定 这 可 能 是 因 为 H TTP 请 求 消 息 中 没 有 包 含 任 何 内 容 也 可 能 是 因 为客 户 无 法 确 定 内 容 的 长 度

C o n te n t Ty p e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图437声 明 _prope r ty S y s te m : : A n s i S tr ing C on te n t T y p e ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图438这 个 特 性 返 回 H TTP 请 求 消 息 中 的 C on te n t- T y p e 头 标 C on te n t- T y p e 头 标 用 于

第 十 六 章 W e b 服 务 器 的 细 节 - 图439第 十 六 章 W e b 服 务 器 的 细 节 - 图440描 述 H TTP 请 求 消 息 中 内 容 的 媒 体 类 型 形 式 是 T y p e / S ubT y p e 例 如

第 十 六 章 W e b 服 务 器 的 细 节 - 图441te x t/h tm l

C o n ten t Vers io n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图442声 明 _prope r ty S y s te m : : A n s i S tr ing C on te n t V e rs ion ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图443第 十 六 章 W e b 服 务 器 的 细 节 - 图444第 十 六 章 W e b 服 务 器 的 细 节 - 图445这 个 特 性 返 回 H TTP 请 求 消 息 中 的 C o n te n t- V e rs io n 头 标 C o n te n t- V e rs io n 头 标用 于 描 述 H TTP 请 求 消 息 中 内 容 的 版 本 大 多 数 H TTP 请 求 消 息 不 需 要 这 个头 标

C ook ie 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图446声 明 _prope r ty S y s te m : : A n s i S tr ing C ook ie ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图447第 十 六 章 W e b 服 务 器 的 细 节 - 图448第 十 六 章 W e b 服 务 器 的 细 节 - 图449第 十 六 章 W e b 服 务 器 的 细 节 - 图450第 十 六 章 W e b 服 务 器 的 细 节 - 图451这 个 特 性 返 回 H TTP 请 求 消 息 中 的 C ook ie 头 标 ( 未 分 解 ) C ook ie 头 标 用 于 跟踪 客 户 访 问 站 点 的 踪 迹 C ook ie 头 标 可 能 由 多 个 域 组 成 彼 此 之 间 用 分 号隔 开 通 过 C ook ie F ie ld s 特 性 可 以 访 问 C ook ie 头 标 的 每 一 个 域

C ook ie F ie ld s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图452声 明 _prope r ty C la s s e s :: T S tr ings * C ook ie F ie ld s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图453第 十 六 章 W e b 服 务 器 的 细 节 - 图454第 十 六 章 W e b 服 务 器 的 细 节 - 图455第 十 六 章 W e b 服 务 器 的 细 节 - 图456第 十 六 章 W e b 服 务 器 的 细 节 - 图457第 十 六 章 W e b 服 务 器 的 细 节 - 图458第 十 六 章 W e b 服 务 器 的 细 节 - 图459第 十 六 章 W e b 服 务 器 的 细 节 - 图460这 个 特 性 是 T S tr ings 对 象 用 于 访 问 H TTP 请 求 消 息 中 C ook ie 头 标 的 每 一 个域 每 个 字 符 串 的 形 式 是 N a m e = V a lu e 注 意 W e b 服 务 器 应 用 程 序 可 以 随便 给 状 态 变 量 取 名 但 不 能 是 C ook ie 中 的 域 名 换 句 话 说 C ook ie 中 的 域 名是 保 留 的

D a te 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图461声 明 _prope r ty S y s te m : : T D a te T im e D a te ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图462第 十 六 章 W e b 服 务 器 的 细 节 - 图463第 十 六 章 W e b 服 务 器 的 细 节 - 图464第 十 六 章 W e b 服 务 器 的 细 节 - 图465这 个 特 性 返 回 H TTP 请 求 消 息 中 的 D a te 头 标 D a te 头 标 用 于 描 述 发 起 H TTP 请求 消 息 时 的 日 期 和 时 间 这 样 W e b 服 务 器 应 用 程 序 就 知 道 H TTP 请 求 消 息中 的 内 容 是 否 太 老

D eriv e d F ro m 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图466声 明 _prope r ty S y s te m : : A n s i S tr ing D e r ive dF ro m ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图467第 十 六 章 W e b 服 务 器 的 细 节 - 图468这 个 特 性 返 回 H TTP 请 求 消 息 中 的 D e r ive d- F rom 头 标 D e r ive d- F ro m 头 标 用于 描 述 H TTP 请 求 消 息 中 内 容 的 UR I

E x p ir e s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图469声 明 _prope r ty S y s te m : : T D a te T im e E x p ire s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图470第 十 六 章 W e b 服 务 器 的 细 节 - 图471第 十 六 章 W e b 服 务 器 的 细 节 - 图472第 十 六 章 W e b 服 务 器 的 细 节 - 图473第 十 六 章 W e b 服 务 器 的 细 节 - 图474第 十 六 章 W e b 服 务 器 的 细 节 - 图475这 个 特 性 返 回 H TTP 请 求 消 息 中 的 E xp ire s 头 标 E xp ire s 头 标 实 际 上 是 日 期 和时 间 如 果 超 过 了 这 个 日 期 和 时 间 就 认 为 H TTP 请 求 消 息 是 过 期 的 注 意如 果 H TTP 请 求 消 息 中 有 C ach e- C o n tro l 头 标 并 且 指 示 字 是 m a x - a g e 的 话

第 十 六 章 W e b 服 务 器 的 细 节 - 图476E xp ire s 特 性 无 效

第 十 六 章 W e b 服 务 器 的 细 节 - 图477F ro m 特 性

声 明

_prope r ty S y s te m : : A n s i S tr ing F rom ;

这 个 特

性 返 回 H TTP 请 求 消 息 中 的 F ro m 头 标

F ro m 头 标 很 有 用

它 是 客 户 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图478第 十 六 章 W e b 服 务 器 的 细 节 - 图479第 十 六 章 W e b 服 务 器 的 细 节 - 图480第 十 六 章 W e b 服 务 器 的 细 节 - 图481第 十 六 章 W e b 服 务 器 的 细 节 - 图482e- m a i l地 址 W e b 服 务 器 应 用 程 序 可 以 记 录 访 问 者 或 者 与 客 户 联 系

H o s t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图483声 明 _prope r ty S y s te m : : A n s i S tr ing H o s t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图484第 十 六 章 W e b 服 务 器 的 细 节 - 图485第 十 六 章 W e b 服 务 器 的 细 节 - 图486这 个 特 性 返 回 H TTP 请 求 消 息 中 的 H o s t头 标 H o s t头 标 是 客 户 正 在 请 求 的 主机 名 和 端 口 号 假 设 UR L 是

第 十 六 章 W e b 服 务 器 的 细 节 - 图487第 十 六 章 W e b 服 务 器 的 细 节 - 图488h ttp ://w w w . T S ite .c o m / a r t / g a l le r y . d l l/m a m m a ls ? a n im a l= dog& c o lo r= b la c k 主 机名 就 是 其 中 的 www .T S ite . c o m

I f M o d ifie dS inc e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图489声 明 _prope r ty S y s te m : : T D a te T im e I f M od if ie d S in c e ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图490第 十 六 章 W e b 服 务 器 的 细 节 - 图491第 十 六 章 W e b 服 务 器 的 细 节 - 图492第 十 六 章 W e b 服 务 器 的 细 节 - 图493这 个 特 性 返 回 H TTP 请 求 消 息 中 的 If-M o d ifie d -S in c e 头 标 W e b 服 务 器 应 用 程序 应 当 先 判 断 自 If-M o d ifie d -S in c e 头 标 设 定 的 日 期 和 时 间 以 来 客 户 所 请 求 的信 息 是 否 修 改 过 注 意 日 期 和 时 间 以 W e b 服 务 器 端 为 准

M e th o d 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图494声 明 _prope r ty S y s te m : : A n s i S tr ing M e thod;

第 十 六 章 W e b 服 务 器 的 细 节 - 图495第 十 六 章 W e b 服 务 器 的 细 节 - 图496第 十 六 章 W e b 服 务 器 的 细 节 - 图497第 十 六 章 W e b 服 务 器 的 细 节 - 图498第 十 六 章 W e b 服 务 器 的 细 节 - 图499这 个 特 性 返 回 H TTP 请 求 消 息 中 的 M e thod 头 标 M e thod 头 标 用 于 描 述 客 户 发出 H TTP 请 求 的 目 的 H TTP 1 . 1 标 准 中 定 义 了 下 列 种 类 OP T IO N S GE T

第 十 六 章 W e b 服 务 器 的 细 节 - 图500第 十 六 章 W e b 服 务 器 的 细 节 - 图501第 十 六 章 W e b 服 务 器 的 细 节 - 图502第 十 六 章 W e b 服 务 器 的 细 节 - 图503第 十 六 章 W e b 服 务 器 的 细 节 - 图504第 十 六 章 W e b 服 务 器 的 细 节 - 图505第 十 六 章 W e b 服 务 器 的 细 节 - 图506第 十 六 章 W e b 服 务 器 的 细 节 - 图507HE AD PO ST PU T D E LETE TR A C E 等 对 于 W e b 服 务 器 应 用 程 序 来说 并 不 是 所 有 种 类 的 H TTP 请 求 都 需 要 响 应 不 过 GE T 和 HE AD 是 必 须 响应 的

M e th o d Ty p e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图508声 明 _prope r ty T M e thodT y p e M e thodT y p e ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图509第 十 六 章 W e b 服 务 器 的 细 节 - 图510第 十 六 章 W e b 服 务 器 的 细 节 - 图511第 十 六 章 W e b 服 务 器 的 细 节 - 图512第 十 六 章 W e b 服 务 器 的 细 节 - 图513第 十 六 章 W e b 服 务 器 的 细 节 - 图514这 个 特 性 的 含 义 与 M e thod 特 性 是 基 本 一 致 的 只 是 用 法 不 同 M e thod 特 性是 字 符 串 M e thodT y p e 特 性 是 枚 举 常 量 可 以 直 接 用 来 比 较 而 字 符 串 的比 较 相 对 麻 烦 些

第 十 六 章 W e b 服 务 器 的 细 节 - 图515第 十 六 章 W e b 服 务 器 的 细 节 - 图516如 果 M e thodT y p e 特 性 返 回 的 是 m tA n y 就 得 用 M e thod 特 性 才 知 道 确 切 的 方法 类 型

Pa th I n fo 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图517声 明 _prope r ty S y s te m : : A n s i S tr ing P a th In fo ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图518第 十 六 章 W e b 服 务 器 的 细 节 - 图519第 十 六 章 W e b 服 务 器 的 细 节 - 图520这 个 特 性 返 回 H TTP 请 求 消 息 中 的 UR L 中 的 入 口 路 径 例 如 假 设 UR L 是

h ttp : / /

第 十 六 章 W e b 服 务 器 的 细 节 - 图521第 十 六 章 W e b 服 务 器 的 细 节 - 图522www .T S i te .c o m /a r t/ g a lle r y . d ll/m a m m a ls ? a n im a l= dog& c o lo r= b la c k 入 口 路 径就 是 /m a m m a ls

P a th Tr an s late d 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图523声 明 _prope r ty S y s te m : : A n s i S tr ing P a th T ra n s la te d ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图524第 十 六 章 W e b 服 务 器 的 细 节 - 图525第 十 六 章 W e b 服 务 器 的 细 节 - 图526这 个 特 性 类 似 于 P a th In fo 特 性 不 同 的 是 它 还 包 含 完 整 的 路 径

P rotoc o l Ve r s io n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图527声 明 _prope r ty S y s te m : : A n s i S tr ing P ro toc o l V e rs ion;

第 十 六 章 W e b 服 务 器 的 细 节 - 图528这 个 特 性 返 回 客 户 端 所 使 用 的 H TTP 协 议 的 版 本 号 如 果 H TTP 协 议 的 版 本

第 十 六 章 W e b 服 务 器 的 细 节 - 图529第 十 六 章 W e b 服 务 器 的 细 节 - 图530第 十 六 章 W e b 服 务 器 的 细 节 - 图531第 十 六 章 W e b 服 务 器 的 细 节 - 图532第 十 六 章 W e b 服 务 器 的 细 节 - 图533第 十 六 章 W e b 服 务 器 的 细 节 - 图534第 十 六 章 W e b 服 务 器 的 细 节 - 图535第 十 六 章 W e b 服 务 器 的 细 节 - 图536号 不 同 H TTP 请 求 消 息 的 解 释 也 稍 有 不 同 例 如 对 于 H TTP 协 议 1 .0 来 说即 使 C onne c tio n 头 标 没 有 设 为 C lo s e 客 户 与 W e b 服 务 器 应 用 程 序 的 连 接也 不 是 永 久 的

Q u e r y 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图537第 十 六 章 W e b 服 务 器 的 细 节 - 图538声 明 _prope r ty S y s te m : : A n s i S tr ing Q u e r y ;

这 个 特 性 返 回 H TTP 请 求 消 息 中 UR L 的 参 数

部 分

第 十 六 章 W e b 服 务 器 的 细 节 - 图539

假 设

UR L 是

h ttp ://w w w . T S ite .c o m

/ a r t / g a lle r y .d ll / m a m m a ls ? a n im a l= dog& c o lo r= b la c k

分 就 是

a n im a l= dog& c o lo r= b la c k

第 十 六 章 W e b 服 务 器 的 细 节 - 图540第 十 六 章 W e b 服 务 器 的 细 节 - 图541Q u e r y F ie ld s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图542声 明 _prope r ty C la s s e s :: T S tr ings * Q u e ry F ie ld s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图543第 十 六 章 W e b 服 务 器 的 细 节 - 图544第 十 六 章 W e b 服 务 器 的 细 节 - 图545这 个 特 性 是 T S tr ings 对 象 返 回 已 分 解 的 H TTP 请 求 消 息 中 UR L 的 参 数 部 分每 个 字 符 串 的 形 式 是 N a m e = V a lu e

R e fe re r 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图546声 明 _prope r ty S y s te m : : A n s i S tr ing R e fe r e r ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图547第 十 六 章 W e b 服 务 器 的 细 节 - 图548第 十 六 章 W e b 服 务 器 的 细 节 - 图549这 个 特 性 返 回 H TTP 请 求 消 息 中 的 R e fe re r 头 标 R e fe re r 头 标 是 资 源 的 UR I W e b 服 务 器 应 用 程 序 用 它 建 立 相 关 的 超 级 链 接

R e m o te A dd r 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图550声 明 _prope r ty S y s te m : : A n s i S tr ing R e m o te A ddr;

第 十 六 章 W e b 服 务 器 的 细 节 - 图551第 十 六 章 W e b 服 务 器 的 细 节 - 图552这 个 特 性 返 回 客 户 端 的 IP 地 址 例 如 127 .8 .34 .19

R e m o te H o s t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图553声 明 _prope r ty S y s te m : : A n s i S tr ing R e m o te H o s t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图554第 十 六 章 W e b 服 务 器 的 细 节 - 图555这 个 特 性 返 回 客 户 端 的 主 机 名 ( 不 包 括 路 径 ) 例 如 w w w . borla nd .c o m

S crip t N a m e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图556声 明 _prope r ty S y s te m : : A n s i S tr ing S c r ip t N a m e ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图557第 十 六 章 W e b 服 务 器 的 细 节 - 图558这 个 特 性 返 回 H TTP 请 求 消 息 中 UR L 的 脚 本 部 分 假 设 UR L 是

第 十 六 章 W e b 服 务 器 的 细 节 - 图559第 十 六 章 W e b 服 务 器 的 细 节 - 图560h ttp ://w w w . T S ite .c o m / a r t / g a lle r y .d l l/ m a m m a ls ? a n im a l= dog& c o lo r= b la c k 脚 本部 分 就 是 /a r t/g a lle r y

S erv e r P o r t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图561声 明 _prope r ty in t S e rv e r P o r t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图562这 个 特 性 返 回 W e b 服 务 器 上 检 索 H TTP 请 求 消 息 的 端 口 号

T it le 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图563声 明 _prope r ty S y s te m : : A n s i S tr ing T i tle ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图564第 十 六 章 W e b 服 务 器 的 细 节 - 图565这 个 特 性 返 回 H TTP 请 求 消 息 中 的 T itle 头 标 T itle 头 标 描 述 客 户 要 请 求 的 信息 的 头 标

URL 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图566声 明 _prope r ty S y s te m : : A n s i S tr ing U R L ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图567第 十 六 章 W e b 服 务 器 的 细 节 - 图568第 十 六 章 W e b 服 务 器 的 细 节 - 图569第 十 六 章 W e b 服 务 器 的 细 节 - 图570第 十 六 章 W e b 服 务 器 的 细 节 - 图571前 面 已 多 次 提 到 这 个 特 性 在 实 际 应 用 中 一 般 要 把 UR L 分 解 成 H o s t Sc r ip t N a m e P a th In fo 和 Q u e ry 等 四 大 部 分

U s er A g e n t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图572声 明 _prope r ty S y s te m : : A n s i S tr ing U s e r A g e n t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图573这 个 特 性 返 回 H TTP 请 求 消 息 中 的 U s e r - A ge nt头 标 (W e b 浏 览 器 的 名 称 和 版 本号 )

E x tra c t C o n ten t F ie ld s 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图574声 明 vo id _fa s tc a ll E x tra c t C on te n t F ie ld s ( C la s s e s :: T S tr ings * S tr ings ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图575第 十 六 章 W e b 服 务 器 的 细 节 - 图576在 M e thodT y p e 特 性 返 回 m tP o s t的 前 提 下 这 个 函 数 把 H TTP 请 求 消 息 中 的 内容 分 解 成 一 个 个 域 存 到 S tr ings 参 数 中 ( 假 设 域 与 域 之 间 用 & 隔 开 )

E x tra c t C o o k ie F ie ld s 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图577声 明 vo id _fa s tc a ll E x tra c t C ook ie F ie ld s ( C la s s e s : : T S tr ings * S tr ings ) ;

这 个 函 数 把 H TTP 请 求 消 息 中 的 C ook ie ( 如 果 有 的 话 ) 分 解 成 一 个 个 域 存 到

第 十 六 章 W e b 服 务 器 的 细 节 - 图578S tr ings 参 数 中 ( 假 设 域 与 域 之 间 用 分 号 隔 开 )

E x tra c t F ie ld s 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图579声 明 v o id _ fastcall E x tractF ield s(co n st T C h arS et & S ep arato rs, co n st T C h arS et

& W h ite S p ace, ch ar * C o n ten t, C lasses::T S trin g s* S trin g s);

第 十 六 章 W e b 服 务 器 的 细 节 - 图580第 十 六 章 W e b 服 务 器 的 细 节 - 图581第 十 六 章 W e b 服 务 器 的 细 节 - 图582第 十 六 章 W e b 服 务 器 的 细 节 - 图583第 十 六 章 W e b 服 务 器 的 细 节 - 图584第 十 六 章 W e b 服 务 器 的 细 节 - 图585第 十 六 章 W e b 服 务 器 的 细 节 - 图586第 十 六 章 W e b 服 务 器 的 细 节 - 图587这 个 函 数 用 于 把 由 多 个 域 组 成 的 字 符 串 分 解 为 一 个 个 域 其 中 Se p a ra to rs 参 数 指 定 一 个 字 符 集 合 该 集 合 中 的 字 符 用 于 分 隔 域 W h iteS p ace 参 数 也 是字 符 集 合 该 集 合 中 的 字 符 是 要 忽 略 的 C on te n t参 数 就 是 要 分 解 的 字 符 串S tr ings 参 数 用 于 存 储 分 解 后 的 域

E x tr a c t Q u ery F ield s 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图588声 明 vo id _fa s tc a ll E x tra c t Q ue r y F ie lds ( C la s s e s :: T S tr ings * S tr ings ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图589第 十 六 章 W e b 服 务 器 的 细 节 - 图590这 个 函 数 把 H TTP 请 求 消 息 中 的 Q u e ry 分 解 为 一 个 个 域 存 到 S tr ings 参 数 中 假设 域 与 域 之 间 用 分 号 隔 开

G e t F ie ld B y N a m e 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图591声 明 v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll G e tF ie ld B y N a m e ( c o n s t A n s i S tr in g N a m e ) ;

  • 第 十 六 章 W e b 服 务 器 的 细 节 - 图592第 十 六 章 W e b 服 务 器 的 细 节 - 图593

    来 说 您 可 以 由 T W e b R e que s t对 象 来 访 问 H TTP 请 求 消 息 中 的 头 标 不

第 十 六 章 W e b 服 务 器 的 细 节 - 图594第 十 六 章 W e b 服 务 器 的 细 节 - 图595第 十 六 章 W e b 服 务 器 的 细 节 - 图596第 十 六 章 W e b 服 务 器 的 细 节 - 图597过 由 于 H TTP 协 议 还 在 不 断 地 发 展 C+ + Bu ild e r 3 不 能 保 证 H TTP 协 议 的 每一 个 头 标 都 能 由 T W e b R e que s t对 象 来 访 问 这 个 函 数 允 许 通 过 名 称 从 H TTP 请 求 消 息 中 返 回 指 定 的 头 标

R e a d C lie n t 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图598声 明 v ir tu a l in t _ fa s tc a l l R e a d C lie n t( v o id * B u f fe r , in t C o u n t);

第 十 六 章 W e b 服 务 器 的 细 节 - 图599这 个 函 数 从 H TTP 请 求 消 息 的 内 容 中 读 取 C ount个 字 节 到 Bu f fe r 缓 冲 区 中 并

第 十 六 章 W e b 服 务 器 的 细 节 - 图600返 回 实 际 返 回 的 字 节 数

R e a dS tr in g 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图601声 明 v ir tua l S y s te m :: A ns i S tr ing _fa s tc a ll R e a d S tr ing( in t C oun t) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图602这 个 函 数 从 H TTP 请 求 消 息 的 内 容 中 读 取 C oun t个 字 节 到 一 个 字 符 串 中

W r ite C lie n t 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图603声 明 v ir tua l in t _fa s tc a l l W r i te C l ie n t( vo id *B uffe r , in t C oun t) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图604第 十 六 章 W e b 服 务 器 的 细 节 - 图605这 个 函 数 从 B u ffe r 缓 冲 区 中 取 C ount个 字 节 发 送 给 客 户 并 返 回 实 际 写 的 字节 数

W r ite S tr in g 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图606声 明 v ir tu a l b o o l _ fa s tc a ll W rite S trin g ( c o n s t S y s te m ::A n s iS trin g A S trin g ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图607第 十 六 章 W e b 服 务 器 的 细 节 - 图608这 个 函 数 把 一 个 字 符 串 发 送 给 客 户 如 果 成 功 就 返 回 T ru e

1 6.5.4 TISA PIRequest 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图609第 十 六 章 W e b 服 务 器 的 细 节 - 图610第 十 六 章 W e b 服 务 器 的 细 节 - 图611对 于 IS A P I或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 描 述 和 解 释 H TTP 请 求消 息 的 是 T ISA P IR e q u e s t对 象 它 在 IS A P IA P P 单 元 中 是 这 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T IS A P IR e q u e s t : p u b lic H ttp a p p ::T W e b R e q u e s t

{

priv a te :

// 私有的成 员此处省略

pub l ic :

_ fa s tc a ll T IS A P IR e q u e s t( Isa p i2 ::P E X T E N S IO N _ C O N T R O L _ B L O C K A E C B ) ; v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll G e tF ie ld B y N a m e ( c o n s t A n s i S tr in g N a m e ) ; v ir tu a l in t _ fa s tc a ll R e a d C lie n t( v o id * B u ffe r , in t C o u n t);

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll R e a d S tr in g ( in t C o u n t);

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll T ra n s la te U R I ( c o n s t A n s i S tr in g U R I ) ; v ir tu a l in t _ fa s tc a ll W rite C lie n t( v o id * B u f fe r , in t C o u n t) ;

v ir tu a l b o ol _ fa s tc a l l W r i te S tr ing( c o ns t S y s te m : : A n s i S tr ing A S tr ing);

_ p ro p e r ty Is a p i 2 : : P E X T E NS ION _ C ONT R O L _ B L OC K E C B ;

_fa s tc a l l v ir tua l ~ T IS A P IR e q ue s t( v o id) { }

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图612第 十 六 章 W e b 服 务 器 的 细 节 - 图613第 十 六 章 W e b 服 务 器 的 细 节 - 图614第 十 六 章 W e b 服 务 器 的 细 节 - 图615可 以 看 出 T ISA P IR e q u e s t 是 从 T W e b R e que s t 继 承 下 来 的 最 主 要 的 变 化 是增 加 了 EC B 特 性 并 且 重 载 了 构 造 函 数 用 于 创 建 T ISA P IR e q u e s t对 象 的 实 例

EC B 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图616声 明 _ p ro p e r ty Is a p i 2 :: P E X T E N S ION _ C ONT R O L _ B L OC K E C B ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图617第 十 六 章 W e b 服 务 器 的 细 节 - 图618第 十 六 章 W e b 服 务 器 的 细 节 - 图619第 十 六 章 W e b 服 务 器 的 细 节 - 图620第 十 六 章 W e b 服 务 器 的 细 节 - 图621第 十 六 章 W e b 服 务 器 的 细 节 - 图622第 十 六 章 W e b 服 务 器 的 细 节 - 图623第 十 六 章 W e b 服 务 器 的 细 节 - 图624第 十 六 章 W e b 服 务 器 的 细 节 - 图625前 面 讲 过 W e b 服 务 器 与 IS A P I 或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 之 间 通过 一 个 结 构 来 传 递 H TTP 请 求 消 息 这 就 是T E X T E N S IO N _ CO N T RO L _ BL O C K 结 构 EC B 特 性 可 以 返 回 指 向 该 结 构 的指 针 要 说 明 的 是 在 实 际 编 程 中 您 并 不 一 定 需 要 直 接 与 EC B 打 交 道因 为 C+ + Bu ild e r 3 已 经 把 H TTP 请 求 消 息 中 的 头 标 分 解 出 来 了 关 于T E X T E N S IO N _ CO N T RO L _ BL O C K 结 构 您 可 以 查 阅 C+ + Bu ild e r 3 的 帮 助

构 造 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图626声 明 _ fa s tc a l l T IS A P IR e q u e s t( Is a p i2 :: P E X T E N S IO N _ C ONT R O L _ B L OC K A E CB );

第 十 六 章 W e b 服 务 器 的 细 节 - 图627第 十 六 章 W e b 服 务 器 的 细 节 - 图628构 造 函 数 用 于 创 建 T IS A P IR e que s t对 象 的 实 例 要 说 明 的 是 您 并 不 需 要 调

第 十 六 章 W e b 服 务 器 的 细 节 - 图629第 十 六 章 W e b 服 务 器 的 细 节 - 图630第 十 六 章 W e b 服 务 器 的 细 节 - 图631第 十 六 章 W e b 服 务 器 的 细 节 - 图632第 十 六 章 W e b 服 务 器 的 细 节 - 图633用 构 造 函 数 因 为 当 IS A P I 或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 检 索 到 一 个H TTP 请 求 消 息 就 会 自 动 创 建 T IS A P IR e que s t对 象 这 里 只 是 想 让 您 知 道 调 用 构 造 函 数 时 传 递 了 EC B 块

1 6.5.5 TCGI Request 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图634对 于 CG I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 描 述 和 解 释 H TTP 请 求 消 息 的 是

第 十 六 章 W e b 服 务 器 的 细 节 - 图635第 十 六 章 W e b 服 务 器 的 细 节 - 图636TC G IR e q u e s t对 象 它 在 CG IA P P 单 元 中 是 这 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T C G IR e q u e s t : p u b lic H ttp a p p ::T W e b R e q u e s t

{

priv a te :

// 私有的成 员此处省略

pro te c te d:

// 保护的成 员此处省略

pub l ic :

_ fa s tc a ll T C G IR e q u e s t( v o id ) ;

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll G e tF ie ld B y N a m e ( c o n s t A n s i S tr in g N a m e ) ; v ir tu a l in t _ fa s tc a ll R e a d C lie n t( v o id * B u ffe r , in t C o u n t);

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll R e a d S tr in g ( in t C o u n t);

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll T ra n s la te U R I ( c o n s t A n s i S tr in g U R I ) ; v ir tu a l in t _ fa s tc a ll W rite C lie n t( v o id * B u f fe r , in t C o u n t) ;

v ir tu a l b o ol _ fa s tc a l l W r i te S tr ing( c o ns t S y s te m : : A n s i S tr ing A S tr ing);

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图637第 十 六 章 W e b 服 务 器 的 细 节 - 图638第 十 六 章 W e b 服 务 器 的 细 节 - 图639可 以 看 出 TC G IR e q u e s t是 从 T W e b R e que s t 继 承 下 来 的 它 的 特 性 和 方 法 可以 参 见 前 面 关 于 T W e b R e que s t对 象 的 介 绍

1 6.5.6 TWin CGIRequest 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图640第 十 六 章 W e b 服 务 器 的 细 节 - 图641第 十 六 章 W e b 服 务 器 的 细 节 - 图642对 于 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 描 述 和 解 释 H TTP 请 求 消 息的 是 T W in C G IR e que s t对 象 它 在 CG IA P P 单 元 中 是 这 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T W in C G IR e q u e s t : p u b lic C g ia p p ::T C G IR e q u e s t

{

priv a te :

// 私有的成 员此处省略

pub l ic :

_ fa s tc a ll T W in C G IR e q u e s t( S y s te m ::A n s iS tr in g In iF ile N a m e , S y s te m ::A n s iS trin g C o n te n tF ile , S y s te m ::A n s iS trin g O u tp u t F ile ) ;

_ fa s tc a ll v ir tu a l ~ T W in C G IR e q u e s t( v o id ) ;

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll G e tF ie ld B y N a m e ( c o n s t A n s i S tr in g N a m e ) ; v ir tu a l in t _ fa s tc a ll R e a d C lie n t( v o id * B u ffe r , in t C o u n t);

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll R e a d S tr in g ( in t C o u n t);

v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll T ra n s la te U R I ( c o n s t A n s i S tr in g U R I ) ;

v ir tu a l in t _ fa s tc a ll W rite C lie n t( v o id * B u f fe r , in t C o u n t) ;

v ir tu a l b o ol _ fa s tc a l l W r i te S tr ing( c o ns t S y s te m : : A n s i S tr ing A S tr ing);

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图643第 十 六 章 W e b 服 务 器 的 细 节 - 图644第 十 六 章 W e b 服 务 器 的 细 节 - 图645可 以 看 出 T W in C G IR e que s t是 从 TC G IR e q u e s t继 承 下 来 的 它 的 特 性 和 方 法可 以 参 见 前 面 关 于 T W e b R e que s t对 象 的 介 绍

1 6.6 HT TP 响 应 消 息

第 十 六 章 W e b 服 务 器 的 细 节 - 图646第 十 六 章 W e b 服 务 器 的 细 节 - 图647第 十 六 章 W e b 服 务 器 的 细 节 - 图648第 十 六 章 W e b 服 务 器 的 细 节 - 图649C+

  • Bu ild e r 3 用 T W e b R e s pons e 对 象 来 描 述 H TTP 响 应 消 息 当 W e b 服 务 器 应用 程 序 检 索 到 一 个 H TTP 请 求 消 息 它 就 创 建 一 个 T W e b R e que s t对 象 来 描 述和 解 释 H TTP 请 求 消 息 同 时 还 创 建 一 个 T W e b R e s pons e 对 象 准 备 响 应 客 户 的请 求

1 6.6. 1 怎 样 建 立 HTTP 响 应 消 息

第 十 六 章 W e b 服 务 器 的 细 节 - 图650第 十 六 章 W e b 服 务 器 的 细 节 - 图651第 十 六 章 W e b 服 务 器 的 细 节 - 图652第 十 六 章 W e b 服 务 器 的 细 节 - 图653第 十 六 章 W e b 服 务 器 的 细 节 - 图654第 十 六 章 W e b 服 务 器 的 细 节 - 图655第 十 六 章 W e b 服 务 器 的 细 节 - 图656第 十 六 章 W e b 服 务 器 的 细 节 - 图657第 十 六 章 W e b 服 务 器 的 细 节 - 图658第 十 六 章 W e b 服 务 器 的 细 节 - 图659大 多 数 情 况 下 客 户 请 求 的 是 HT M L 页 面 也 就 是 说 H TTP 响 应 消 息 中 应当 包 含 内 容 因 此 您 至 少 要 在 一 个 O n A c tio n 事 件 的 句 柄 中 对 T W e b R e s pons e 对 象 的 C on te n t 特 性 或 C o n te n tS tre a m 特 性 赋 值 不 过 有 的 情 况 下 只 需 要填 充 一 些 头 标 就 够 了 不 需 要 内 容

第 十 六 章 W e b 服 务 器 的 细 节 - 图660第 十 六 章 W e b 服 务 器 的 细 节 - 图661第 十 六 章 W e b 服 务 器 的 细 节 - 图662第 十 六 章 W e b 服 务 器 的 细 节 - 图663要 对 C on te n t特 性 或 C o n te n tS tre a m 特 性 赋 值 您 既 可 以 用 事 先 设 计 到 的 HT M L 代 码 也 可 以 用 T C u s to m P ag eP ro d u cer 的 派 生 对 象 如 T P a g e P roduc e r 或T D a ta S e t T a b le P roduc e r 自 动 生 成 页 面 然 后 再 赋 值 给 C on te n t 特 性 或C o n te n tS tre a m 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图664第 十 六 章 W e b 服 务 器 的 细 节 - 图665第 十 六 章 W e b 服 务 器 的 细 节 - 图666第 十 六 章 W e b 服 务 器 的 细 节 - 图667第 十 六 章 W e b 服 务 器 的 细 节 - 图668第 十 六 章 W e b 服 务 器 的 细 节 - 图669第 十 六 章 W e b 服 务 器 的 细 节 - 图670第 十 六 章 W e b 服 务 器 的 细 节 - 图671第 十 六 章 W e b 服 务 器 的 细 节 - 图672第 十 六 章 W e b 服 务 器 的 细 节 - 图673第 十 六 章 W e b 服 务 器 的 细 节 - 图674第 十 六 章 W e b 服 务 器 的 细 节 - 图675C on te n t与 C o n te n tS tre a m 的 区 别 是 C on te n t只 能 是 HT M L 代 码 C+ + Bu ild e r 3 并 不 检 查 这 些 代 码 的 语 法 它 只 把 这 些 代 码 当 作 一 个 个 字 符 串 如 果 HT M L 代 码 事 先 存 在 一 个 文 件 中 这 时 候 用 C o n te n tS tre a m 比 较 方 便 因 为 您 可 以用 T F ile S tre a m 对 象 读 写 文 件 请 注 意 两 点 一 是 读 写 完 毕 后 您 不 需 要 删 除T F ile S tre a m 对 象 T W e b R e s pons e 对 象 会 自 动 删 除 它 二 是 如 果 C o n ten t S tream 特 性 有 值 的 话 C on te n t特 性 就 被 忽 略

1 6.6.2 怎 样 传 递 HTTP 响 应 消 息

第 十 六 章 W e b 服 务 器 的 细 节 - 图676第 十 六 章 W e b 服 务 器 的 细 节 - 图677第 十 六 章 W e b 服 务 器 的 细 节 - 图678第 十 六 章 W e b 服 务 器 的 细 节 - 图679H TTP 响 应 消 息 首 先 传 递 给 W e b 服 务 器 再 由 W e b 服 务 器 传 递 给 客 户 对 于不 同 类 型 的 W e b 服 务 器 应 用 程 序 来 说 传 递 H TTP 响 应 消 息 的 方 式 也 是 不 同的

第 十 六 章 W e b 服 务 器 的 细 节 - 图680第 十 六 章 W e b 服 务 器 的 细 节 - 图681第 十 六 章 W e b 服 务 器 的 细 节 - 图682第 十 六 章 W e b 服 务 器 的 细 节 - 图683第 十 六 章 W e b 服 务 器 的 细 节 - 图684第 十 六 章 W e b 服 务 器 的 细 节 - 图685对 于 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 它 是 把 HT M L 页 面 写 到 一 个文 件 中 把 其 它 信 息 写 到 另 一 个 文 件 中 然 后 把 这 两 个 文 件 的 位 置 传 递 给W e b 服 务 器 再 由 W e b 服 务 器 打 开 这 两 个 文 件 把 HT M L 页 面 传 递 给 客 户

第 十 六 章 W e b 服 务 器 的 细 节 - 图686第 十 六 章 W e b 服 务 器 的 细 节 - 图687第 十 六 章 W e b 服 务 器 的 细 节 - 图688对 于 IS A P I 或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 它 是 直 接 把 HT M L 页面 和 其 它 信 息 传 递 给 W e b 服 务 器 再 由 W e b 服 务 器 传 递 给 客 户

第 十 六 章 W e b 服 务 器 的 细 节 - 图689第 十 六 章 W e b 服 务 器 的 细 节 - 图690第 十 六 章 W e b 服 务 器 的 细 节 - 图691从 这 里 可 以 看 出 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 可 能 要 频 繁 地 写 磁盘 而 IS A P I或 NS A P I类 型 的 W e b 服 务 器 应 用 程 序 就 没 有 这 方 面 的 开 销

1 6.6.3 自 己 传 递 HTTP 响 应 消 息

  • 第 十 六 章 W e b 服 务 器 的 细 节 - 图692第 十 六 章 W e b 服 务 器 的 细 节 - 图693

    来 说 您 只 要 建 立 H TTP 响 应 消 息 就 够 了 并 不 需 要 考 虑 怎 样 传 递 H TTP

第 十 六 章 W e b 服 务 器 的 细 节 - 图694第 十 六 章 W e b 服 务 器 的 细 节 - 图695响 应 消 息 因 为 W e b 服 务 器 应 用 程 序 会 自 动 传 递 H TTP 响 应 消 息 如 果 您 能

第 十 六 章 W e b 服 务 器 的 细 节 - 图696第 十 六 章 W e b 服 务 器 的 细 节 - 图697够 确 信 已 经 最 终 完 成 了 响 应 您 也 可 以 自 己 发 送 H TTP 响 应 消 息

第 十 六 章 W e b 服 务 器 的 细 节 - 图698第 十 六 章 W e b 服 务 器 的 细 节 - 图699T W e b R e s pons e 对 象 提 供 了 两 个 方 法 S e ndR e s pon s e 和 S e n d R ed irect 其 中

第 十 六 章 W e b 服 务 器 的 细 节 - 图700第 十 六 章 W e b 服 务 器 的 细 节 - 图701第 十 六 章 W e b 服 务 器 的 细 节 - 图702第 十 六 章 W e b 服 务 器 的 细 节 - 图703第 十 六 章 W e b 服 务 器 的 细 节 - 图704第 十 六 章 W e b 服 务 器 的 细 节 - 图705S e ndR e s pon s e 用 于 发 送 H TTP 响 应 消 息 包 括 内 容 和 所 有 的 头 标 S e n d R ed irect 用 于 把 客 户 的 请 求 重 新 定 向 注 意 如 果 响 应 是 分 几 步 进 行 的 在 最 终 完成 响 应 之 前 不 要 发 送 H TTP 响 应 消 息 因 为 这 时 候 的 H TTP 响 应 消 息 是 不 完整 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图706第 十 六 章 W e b 服 务 器 的 细 节 - 图707第 十 六 章 W e b 服 务 器 的 细 节 - 图708第 十 六 章 W e b 服 务 器 的 细 节 - 图709第 十 六 章 W e b 服 务 器 的 细 节 - 图710第 十 六 章 W e b 服 务 器 的 细 节 - 图711第 十 六 章 W e b 服 务 器 的 细 节 - 图712T W e b R e s pons e 只 是 个 虚 拟 基 类 对 于 不 同 类 型 的 W e b 服 务 器 应 用 程 序 来 说描 述 H TTP 响 应 消 息 的 实 际 上 是 T W e b R e s pons e 的 派 生 类 例 如 对 于 IS A P I 或 NS AP I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 就 是 T ISA P IR e s p o n s e 对 于 CG I 类型 的 W e b 服 务 器 应 用 程 序 来 说 就 是 T C G IR e s pon s e 对 于 W in - C G I类 型 的 W e b 服 务 器 应 用 程 序 来 说 就 是 T W in C G IR e s pons e

1 6.6.4 TWeb Response 是 怎 样 声 明 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图713第 十 六 章 W e b 服 务 器 的 细 节 - 图714第 十 六 章 W e b 服 务 器 的 细 节 - 图715第 十 六 章 W e b 服 务 器 的 细 节 - 图716第 十 六 章 W e b 服 务 器 的 细 节 - 图717第 十 六 章 W e b 服 务 器 的 细 节 - 图718T W e b R e s pons e 只 是 一 个 虚 拟 基 类 对 于 不 同 类 型 的 W e b 服 务 器 应 用 程 序 来说 操 纵 H TTP 响 应 消 息 的 实 际 上 是 T W e b R e s pons e 的 派 生 类 对 于 IS A P I 或NS AP I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 就 是 T ISA P IR e s p o n s e 对 于 CG I 类 型的 W e b 服 务 器 应 用 程 序 来 说 就 是 T C G IR e s pon s e 对 于 W in - C G I类 型 的 W e b 服务 器 应 用 程 序 来 说 就 是 T W in C G IR e s pons e

第 十 六 章 W e b 服 务 器 的 细 节 - 图719第 十 六 章 W e b 服 务 器 的 细 节 - 图720在 H TTP A P P 单 元 中 T W e b R e s pons e 是 怎 样 声 明 的

clas s P A S C A L IM P L E M E N T A T IO N T W eb R e s p o n s e : p u b l ic S y s te m : : T O b ject

{

priv a te :

// 私有的成 员此处省略

pro te c te d:

// 保护的成 员此处省略

pub l ic :

_ fas tc all T W eb R e s p o n s e ( T W e b R e q u e s t* H T T P R e q u es t) ;

_ fa s tc a ll v ir tu a l ~ T W e b R e s p o n s e ( v o id ) ;

S y s te m : : A n s i S tr in g _ fa s tc a ll G e tC u s to m H e a d e r ( c o n s t S y s te m ::A n s iS trin g N a m e ) ; v ir tu a l v o id _ fa s tc a l l S e n d R e sp o n s e ( vo id) = 0 ;

v ir tu a l v o id _ fa s tc a l l S e n d R e d ire c t( c on s t S y s te m : : A n s i S tr ing U R I ) = 0 ; v ir tu a l v o id _ fa s tc a ll S e n d S tre a m ( C la s s e s ::T S tre a m * A S tre a m ) = 0 ;

vo id _fa s tc a l l S e t C ook ie F ie ld ( C la s se s : : T S tr ings * V a lu e s , c ons t A n s i S tr ing A D o m a in , co n s t S y s tem : : A n s i S tr in g A P ath , T D ateT im e A E x p ire s , bo o l A S ec u re);

vo id _ fa s tc a l l S e t C us to m H e a d e r ( c on s t A n s i S tr ing N a m e , c o n s t A n s i S tr ing V a lu e ) ;

_p rop e r ty T C ook ie C o lle c t io n * C o ok ie s = { re a d = F C o o k ie s } ;

_ p ro p e r ty T W eb R e q u es t* H T T P R e q u es t = {read = F H T T P R e q u es t} ;

_ p ro p e rty S y s te m ::A n s iS trin g V e r s io n ;

_p rop e r ty S y s tem : : A ns i S tr ing R e a s onS tr in g;

_ p ro p e rty S y s te m ::A n s iS trin g S e rv e r ;

_ p ro p e rty S y s te m ::A n s iS trin g W W W A u th e n tic a te ;

_ p ro p e rty S y s te m ::A n s iS trin g R e a lm ;

_ p ro p e rty S y s te m ::A n s iS trin g A llo w ;

_p rop e r ty S y s tem : : A ns i S tr ing L o c a t ion;

_ p ro p e rty S y s te m ::A n s iS trin g C o n te n tE n c o d in g ;

_ p ro p e rty S y s te m ::A n s iS trin g C o n te n tT y p e ;

_ p ro p e rty S y s te m ::A n s iS trin g C o n te n tV e rs io n ;

_p rop e r ty S y s tem : : A ns i S tr ing D e r ive dF ro m ;

_ p ro p e rty S y s te m ::A n s iS trin g T itle ;

_p rop e r ty in t S ta tu s C ode ;

_p rop e r ty in t C on te n t L e n g th ;

_ p ro p e rty S y s te m ::T D a te T im e D a te ;

_p rop e r ty S y s tem : : T D a te T im e E xp ire s ;

_p rop e r ty S y s tem : : T D a te T im e L a s t M od if ie d ;

_ p ro p e rty S y s te m ::A n s iS trin g C o n te n t;

_p rop e r ty C la s s e s : : T S tre a m * C on te n t S tre a m ;

_p rop e r ty S y s tem : : A ns i S tr ing L ogM e s s a ge ;

_p rop e r ty C la s s e s : : T S tr ings * C u s tom H e a d e rs ;

};

1 6.6.5 TWeb Response 对 象 的 特 性 和 方 法

A llo w 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图721声 明 _prope r ty S y s te m : : A n s i S tr ing A llo w ;

这 个 特 性 向 客 户 表 明 您 这 个 W e b 服 务 器 应 用 程 序 可 以 响 应 哪 些 方 法 种 类 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图722第 十 六 章 W e b 服 务 器 的 细 节 - 图723第 十 六 章 W e b 服 务 器 的 细 节 - 图724H TTP 请 求 A llo w 是 个 字 符 串 方 法 名 称 之 间 用 逗 号 隔 开 其 中 至 少 要 包

第 十 六 章 W e b 服 务 器 的 细 节 - 图725含 GE T 和 HE AD

C o n te n t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图726声 明 _prope r ty S y s te m : : A n s i S tr ing C on te n t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图727第 十 六 章 W e b 服 务 器 的 细 节 - 图728第 十 六 章 W e b 服 务 器 的 细 节 - 图729第 十 六 章 W e b 服 务 器 的 细 节 - 图730第 十 六 章 W e b 服 务 器 的 细 节 - 图731第 十 六 章 W e b 服 务 器 的 细 节 - 图732第 十 六 章 W e b 服 务 器 的 细 节 - 图733第 十 六 章 W e b 服 务 器 的 细 节 - 图734第 十 六 章 W e b 服 务 器 的 细 节 - 图735第 十 六 章 W e b 服 务 器 的 细 节 - 图736第 十 六 章 W e b 服 务 器 的 细 节 - 图737这 个 特 性 很 重 要 用 于 指 定 要 传 递 给 客 户 的 H TTP 响 应 消 息 中 的 内 容 一 般就 是 HT M L 页 面 不 过 有 些 类 型 的 请 求 并 不 需 要 H TTP 响 应 消 息 中 包 含 内容 因 此 像 OP T IO N S HE AD PO S T PU T D ELE TE TR A C E 等 类 型

第 十 六 章 W e b 服 务 器 的 细 节 - 图738的 请 求 就 不 需 要 设 置 C on te n t特 性

C o n te n t S tre a m 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图739声 明 _prope r ty C la s s e s :: T S tre a m * C on te n t S tre a m ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图740第 十 六 章 W e b 服 务 器 的 细 节 - 图741第 十 六 章 W e b 服 务 器 的 细 节 - 图742第 十 六 章 W e b 服 务 器 的 细 节 - 图743第 十 六 章 W e b 服 务 器 的 细 节 - 图744这 个 特 性 与 C on te n t特 性 相 似 也 是 用 于 指 定 传 递 给 客 户 的 H TTP 响 应 消 息 中的 内 容 不 同 的 是 C o n te n tS tre a m 适 合 于 从 流 中 获 取 内 容 而 C on te n t特 性是 个 字 符 串

C o n te n t E nc o d in g 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图745声 明 _prope r ty S y s te m : : A n s i S tr ing C on te n t E nc od ing;

第 十 六 章 W e b 服 务 器 的 细 节 - 图746第 十 六 章 W e b 服 务 器 的 细 节 - 图747这 个 特 性 用 于 设 置 H TTP 响 应 消 息 中 内 容 的 编 码 方 式 编 码 方 式 之 间 用 逗 号隔 开

C o n ten t L en g th 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图748声 明 _prope r ty in t C on te n t L e ng th;

第 十 六 章 W e b 服 务 器 的 细 节 - 图749第 十 六 章 W e b 服 务 器 的 细 节 - 图750第 十 六 章 W e b 服 务 器 的 细 节 - 图751这 个 特 性 用 于 给 出 H TTP 响 应 消 息 中 内 容 的 长 度 ( 字 节 数 ) 如 果 H TTP 响 应 消息 中 没 有 内 容 或 者 长 度 是 未 知 的 就 把 C on te n t L e ng th 特 性 设 为 0

C o n te n t Ty p e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图752声 明 _prope r ty S y s te m : : A n s i S tr ing C on te n t T y p e ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图753第 十 六 章 W e b 服 务 器 的 细 节 - 图754第 十 六 章 W e b 服 务 器 的 细 节 - 图755这 个 特 性 设 置 H TTP 响 应 消 息 中 内 容 的 媒 体 类 型 形 式 是 T y p e / S ubT y p e 例如 te x t/h tm l

C o n ten t Vers io n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图756声 明 _prope r ty S y s te m : : A n s i S tr ing C on te n t V e rs ion ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图757第 十 六 章 W e b 服 务 器 的 细 节 - 图758第 十 六 章 W e b 服 务 器 的 细 节 - 图759第 十 六 章 W e b 服 务 器 的 细 节 - 图760这 个 特 性 用 于 设 置 H TTP 响 应 消 息 中 内 容 的 版 本 其 含 义 与 C on te n t T y p e 特 性所 指 定 的 媒 体 类 型 有 关 假 设 媒 体 类 型 是 te x t/h tm l C o n ten t V ers io n 就 是 HT M L 语 言 的 版 本

C ook ie s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图761声 明 _prope r ty T C o ok ie C o lle c t ion* C ook ie s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图762C ook ie s 是 T C ook ie C o lle c tio n 对 象 用 于 收 集 和 管 理 HT T P 响 应 消 息 中 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图763第 十 六 章 W e b 服 务 器 的 细 节 - 图764第 十 六 章 W e b 服 务 器 的 细 节 - 图765C ook ie 每 个 C ook ie 是 一 个 T C ook ie 对 象 程 序 示 例 如 下

/ /-

boo l S e c u re C o o k ie s ( T W e b R e sp o n s e *R e sp o ns e )

{

fo r (in t I = 0 ; I < R e s p o n s e -> C o o k ie s -> C o u n t ; I+ + )

if ( R es p o n s e -> C oo k ies -> I tem s [ I ]-> S ecu re = = tru e ) re tu rn tru e ;

re tu rn fa lse ;

}

Cu s to m H e a d e r s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图766声 明 _prope r ty C la s s e s :: T S tr ings * C u s to m H e a d e rs ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图767第 十 六 章 W e b 服 务 器 的 细 节 - 图768第 十 六 章 W e b 服 务 器 的 细 节 - 图769第 十 六 章 W e b 服 务 器 的 细 节 - 图770第 十 六 章 W e b 服 务 器 的 细 节 - 图771第 十 六 章 W e b 服 务 器 的 细 节 - 图772第 十 六 章 W e b 服 务 器 的 细 节 - 图773如 果 您 要 向 H TTP 响 应 消 息 中 加 入 一 个 头 标 但 是 T W e b R e s pons e 对 象 却 没 有提 供 相 应 的 特 性 此 时 就 要 用 C u s to m H ead ers 自 己 定 义 一 组 头 标 每 个 头 标的 形 式 是 H ead e r N a m e = V alu e 其 中 H ead er N a m e 是 头 标 名 V a lu e 是 该 头标 的 值

D a te 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图774声 明 _prope r ty S y s te m : : T D a te T im e D a te ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图775第 十 六 章 W e b 服 务 器 的 细 节 - 图776第 十 六 章 W e b 服 务 器 的 细 节 - 图777在 开 始 发 送 H TTP 响 应 消 息 之 前 把 D a te 特 性 设 为 当 前 的 日 期 和 时 间 因 为有 的 客 户 希 望 知 道 信 息 是 否 陈 旧

D eriv e d F ro m 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图778声 明 _prope r ty S y s te m : : A n s i S tr ing D e r ive dF ro m ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图779第 十 六 章 W e b 服 务 器 的 细 节 - 图780第 十 六 章 W e b 服 务 器 的 细 节 - 图781第 十 六 章 W e b 服 务 器 的 细 节 - 图782这 个 特 性 用 于 通 知 客 户 H TTP 响 应 消 息 中 内 容 的 UR I H TTP 响 应 消 息 中 的 内容 一 般 取 自 于 服 务 器 本 身 的 UR L 但 也 可 能 取 自 于 其 它 路 径 这 时 候 就 要设 置 D e r ive dF ro m 特 性

E x p ir e s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图783声 明 _prope r ty S y s te m : : T D a te T im e E x p ire s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图784第 十 六 章 W e b 服 务 器 的 细 节 - 图785第 十 六 章 W e b 服 务 器 的 细 节 - 图786这 个 特 性 设 定 一 个 日 期 和 时 间 如 果 客 户 收 到 H TTP 响 应 消 息 超 过 这 个 日 期和 时 间 客 户 可 以 认 为 信 息 是 过 时 的 和 非 法 的

H TTP R e q u e s t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图787声 明 _prope r ty T W e b R e que s t* H T T P R e qu e s t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图788第 十 六 章 W e b 服 务 器 的 细 节 - 图789第 十 六 章 W e b 服 务 器 的 细 节 - 图790第 十 六 章 W e b 服 务 器 的 细 节 - 图791第 十 六 章 W e b 服 务 器 的 细 节 - 图792第 十 六 章 W e b 服 务 器 的 细 节 - 图793第 十 六 章 W e b 服 务 器 的 细 节 - 图794这 个 只 读 的 特 性 返 回 当 前 正 在 处 理 的 H TTP 请 求 消 息 这 样 您 就 可 以 分 析 其中 的 头 标 和 内 容 从 而 作 出 不 同 的 响 应 当 然 如 果 是 在 O n A c tio n 事 件 中您 可 以 通 过 R e que s t参 数 直 接 访 问 H TTP 请 求 消 息 无 须 借 助 于 T W e b R e s pons e 对 象 的 H TTP R e q u e s t特 性

La s t M o d ifie d 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图795声 明 _prope r ty S y s te m : : T D a te T im e L a s t M o d if ie d ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图796第 十 六 章 W e b 服 务 器 的 细 节 - 图797第 十 六 章 W e b 服 务 器 的 细 节 - 图798第 十 六 章 W e b 服 务 器 的 细 节 - 图799第 十 六 章 W e b 服 务 器 的 细 节 - 图800这 个 特 性 用 于 表 明 H TTP 响 应 消 息 中 内 容 的 最 后 修 改 日 期 和 时 间 这 样 客 户就 可 以 先 用 HE AD 方 法 请 求 头 标 然 后 判 断 信 息 是 否 最 新 如 否 就 不 必 传输 内 容 了

Lo c a tio n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图801声 明 _prope r ty S y s te m : : A n s i S tr ing L o c a tion ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图802第 十 六 章 W e b 服 务 器 的 细 节 - 图803如 果 需 要 由 其 它 UR I共 同 参 与 完 成 响 应 应 当 设 置 L o c a tio n 特 性 为 该 UR I

第 十 六 章 W e b 服 务 器 的 细 节 - 图804L og M e s s ag e 特 性

声 明

_prope r ty S y s te m : : A n s i S tr ing L ogM e s s a ge ;

这 个 特

性 用 于 在 H TTP 响 应 消 息 中 附 带 一 个 描 述 性 的 字 符 串

例 如

您 可 以

把 它 设

为 处 理 客 户 请 求 的 UR I以 及 内 容 的 日 期 和 时 间

第 十 六 章 W e b 服 务 器 的 细 节 - 图805第 十 六 章 W e b 服 务 器 的 细 节 - 图806第 十 六 章 W e b 服 务 器 的 细 节 - 图807R e a lm 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图808声 明 _prope r ty S y s te m : : A n s i S tr ing R e a lm ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图809如 果 客 户 的 访 问 未 被 授 权 或 需 要 支 付 费 用 W e b 服 务 器 应 用 程 序 返 回 401 或

第 十 六 章 W e b 服 务 器 的 细 节 - 图810第 十 六 章 W e b 服 务 器 的 细 节 - 图811402 此 时 应 当 设 置 R ealm 特 性 通 知 客 户 哪 些 UR I需 要 口 令 或 支 付 费 用

R e a s o nS tr in g 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图812声 明 _prope r ty S y s te m : : A n s i S tr ing R e a s onS tr ing;

第 十 六 章 W e b 服 务 器 的 细 节 - 图813第 十 六 章 W e b 服 务 器 的 细 节 - 图814您 可 以 通 过 S ta tu s C o d e 特 性 设 置 状 态 代 码 用 R eas o n S tr in g 特 性 给 每 个 状 态代 码 附 带 一 个 简 短 的 说 明

S erv e r 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图815声 明 _prope r ty S y s te m : : A n s i S tr ing S e rv e r ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图816第 十 六 章 W e b 服 务 器 的 细 节 - 图817这 个 特 性 用 于 在 H TTP 响 应 消 息 中 给 出 W e b 服 务 器 应 用 程 序 的 名 称 和 版 本号 形 式 为 程 序 名 / 版 本 号

S ta tus C o d e 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图818声 明 _prope r ty in t S ta tus C ode ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图819第 十 六 章 W e b 服 务 器 的 细 节 - 图820每 一 个 H TTP 响 应 消 息 必 须 包 含 一 个 状 态 代 码 以 表 明 响 应 状 态 这 是 通 过

第 十 六 章 W e b 服 务 器 的 细 节 - 图821第 十 六 章 W e b 服 务 器 的 细 节 - 图822S ta tu s C o d e 特 性 设 置 的 H TTP 协 议 中 定 义 了 若 干 个 标 准 的 状 态 代 码

第 十 六 章 W e b 服 务 器 的 细 节 - 图823第 十 六 章 W e b 服 务 器 的 细 节 - 图824第 十 六 章 W e b 服 务 器 的 细 节 - 图825第 十 六 章 W e b 服 务 器 的 细 节 - 图826第 十 六 章 W e b 服 务 器 的 细 节 - 图827100( 继 续 处 理 ) 101( 切 换 协 议 ) 200( O K ) 201( 已 创 建 ) 20 2 ( 已 接 受 )

第 十 六 章 W e b 服 务 器 的 细 节 - 图828第 十 六 章 W e b 服 务 器 的 细 节 - 图829第 十 六 章 W e b 服 务 器 的 细 节 - 图830第 十 六 章 W e b 服 务 器 的 细 节 - 图831第 十 六 章 W e b 服 务 器 的 细 节 - 图832第 十 六 章 W e b 服 务 器 的 细 节 - 图833第 十 六 章 W e b 服 务 器 的 细 节 - 图834第 十 六 章 W e b 服 务 器 的 细 节 - 图835第 十 六 章 W e b 服 务 器 的 细 节 - 图836第 十 六 章 W e b 服 务 器 的 细 节 - 图837第 十 六 章 W e b 服 务 器 的 细 节 - 图838第 十 六 章 W e b 服 务 器 的 细 节 - 图839第 十 六 章 W e b 服 务 器 的 细 节 - 图840第 十 六 章 W e b 服 务 器 的 细 节 - 图841第 十 六 章 W e b 服 务 器 的 细 节 - 图842第 十 六 章 W e b 服 务 器 的 细 节 - 图843第 十 六 章 W e b 服 务 器 的 细 节 - 图844第 十 六 章 W e b 服 务 器 的 细 节 - 图845第 十 六 章 W e b 服 务 器 的 细 节 - 图846第 十 六 章 W e b 服 务 器 的 细 节 - 图847第 十 六 章 W e b 服 务 器 的 细 节 - 图848第 十 六 章 W e b 服 务 器 的 细 节 - 图849第 十 六 章 W e b 服 务 器 的 细 节 - 图850第 十 六 章 W e b 服 务 器 的 细 节 - 图851第 十 六 章 W e b 服 务 器 的 细 节 - 图852第 十 六 章 W e b 服 务 器 的 细 节 - 图853第 十 六 章 W e b 服 务 器 的 细 节 - 图854203( 未 授 权 的 信 息 ) 204( 没 有 内 容 ) 205( 重 设 内 容 ) 206( 部 分 内 容 ) 300( 多项 选 择 ) 301( 永 久 删 除 ) 302( 临 时 删 除 ) 303( 参 见 ) 304( 未 修 改 ) 305( 使用 代 理 ) 400( 错 误 的 请 求 ) 401( 未 授 权 ) 402( 需 支 付 费 用 ) 403( 禁 止 ) 404( 未找 到 ) 405( 不 允 许 的 方 法 ) 406( 不 可 接 受 ) 407( 需 代 理 授 权 ) 408( 请 求 超时 ) 409( 冲 突 ) 410 ( G one ) 411( 需 要 给 出 长 度 ) 412( 预 处 理 失 败 ) 413( 实体 太 大 ) 414( U R I太 大 ) 415 ( 不 支 持 的 媒 体 类 型 ) 500( 服 务 器 内 部 出 错 )

第 十 六 章 W e b 服 务 器 的 细 节 - 图855第 十 六 章 W e b 服 务 器 的 细 节 - 图856第 十 六 章 W e b 服 务 器 的 细 节 - 图857第 十 六 章 W e b 服 务 器 的 细 节 - 图858第 十 六 章 W e b 服 务 器 的 细 节 - 图859第 十 六 章 W e b 服 务 器 的 细 节 - 图860第 十 六 章 W e b 服 务 器 的 细 节 - 图861第 十 六 章 W e b 服 务 器 的 细 节 - 图862第 十 六 章 W e b 服 务 器 的 细 节 - 图863第 十 六 章 W e b 服 务 器 的 细 节 - 图864501( 未 实 现 ) 502( 错 误 的 网 关 ) 503( 不 能 提 供 服 务 ) 504( 网 关 超 时 ) 505( 不支 持 的 H TTP 版 本 )

了 上

述 标 准 的

状 态 代 码 以 外 您 也 可 以 定 义 自 己 的 状 态 代 码 每

个 状

码 都

是 三 位 数

最 高 的 一 位 表 示 响 应 类 别 1 表 示 客 户 的 请 求 已 收

能 完

全 处 理

2 表 示 客 户 的 请 求 已 收 到 并 且 已 成 功 地 处 理 3 表

示 需

户 进

一 步 提 示

才 能 最 终 完 成 响 应 4 表 示 客 户 的 请 求 不 能 被 识 别

5 表

第 十 六 章 W e b 服 务 器 的 细 节 - 图865第 十 六 章 W e b 服 务 器 的 细 节 - 图866第 十 六 章 W e b 服 务 器 的 细 节 - 图867第 十 六 章 W e b 服 务 器 的 细 节 - 图868第 十 六 章 W e b 服 务 器 的 细 节 - 图869第 十 六 章 W e b 服 务 器 的 细 节 - 图870第 十 六 章 W e b 服 务 器 的 细 节 - 图871客 户 的 请 求 是 合 法 的 但 服 务 器 无 法 处 理

第 十 六 章 W e b 服 务 器 的 细 节 - 图872第 十 六 章 W e b 服 务 器 的 细 节 - 图873第 十 六 章 W e b 服 务 器 的 细 节 - 图874第 十 六 章 W e b 服 务 器 的 细 节 - 图875第 十 六 章 W e b 服 务 器 的 细 节 - 图876您 可 以 给 每 一 个 状 态 代 码 附 带 一 个 字 符 串 作 为 简 短 的 说 明 这 是 通 过R eas o n S tr in g 特 性 实 现 的 不 过 对 于 预 定 义 的 状 态 代 码 您 不 要 再 附 带 说明

T it le 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图877声 明 _prope r ty S y s te m : : A n s i S tr ing T i tle ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图878第 十 六 章 W e b 服 务 器 的 细 节 - 图879这 个 特 性 用 于 给 出 H TTP 响 应 消 息 中 内 容 的 头 标 通 常 就 是 内 容 的 主 题

Ver s io n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图880声 明 _prope r ty S y s te m : : A n s i S tr ing V e rs ion;

第 十 六 章 W e b 服 务 器 的 细 节 - 图881这 个 特 性 给 出 H TTP 协 议 的 版 本 号

G e t C u s tom H e a d e r 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图882声 明 S y s te m : : A n s i S tr in g _ fa s tc a l l G e tC u s to m H e a d e r ( c o n s t S y s te m ::A n s iS trin g N a m e ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图883第 十 六 章 W e b 服 务 器 的 细 节 - 图884这 个 函 数 返 回 某 个 自 定 义 的 头 标 的 值 N a m e 参 数 是 头 标 的 名 称

Se nd R e d ire c t 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图885声 明 v ir tu a l v o id _ fa s tc a ll S e n d R e d ire c t( c o n s t S y s te m ::A n s iS trin g U R I ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图886第 十 六 章 W e b 服 务 器 的 细 节 - 图887第 十 六 章 W e b 服 务 器 的 细 节 - 图888第 十 六 章 W e b 服 务 器 的 细 节 - 图889第 十 六 章 W e b 服 务 器 的 细 节 - 图890如 果 您 需 要 把 客 户 的 请 求 重 新 定 向 到 其 它 UR I 就 要 调 用 S e n d R ed irect函 数调 用 S e n d R ed irec t 函 数 相 当 于 先 把 S ta tu s C o d e 特 性 设 为 301 把 Lo c a tio n 特 性设 为 UR I参 数 然 后 调 用 S e ndR e s pon s e 发 送 H TTP 响 应 消 息

Se nd R e s po ns e 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图891声 明 v ir tua l vo id _fa s tc a ll S e ndR e s pons e ( vo id);

第 十 六 章 W e b 服 务 器 的 细 节 - 图892如 果 您 想 自 己 发 送 H TTP 响 应 消 息 就 调 用 S e ndR e s pon s e 函 数

Se ndS tre a m 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图893声 明 v ir tu a l v o id _ fa s tc a ll S e n d S tre a m ( C la s s e s ::T S tre a m * A S tre a m ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图894第 十 六 章 W e b 服 务 器 的 细 节 - 图895第 十 六 章 W e b 服 务 器 的 细 节 - 图896第 十 六 章 W e b 服 务 器 的 细 节 - 图897第 十 六 章 W e b 服 务 器 的 细 节 - 图898如 果 H TTP 响 应 消 息 中 的 内 容 是 以 流 的 形 式 给 出 的 调 用 S e ndS tre a m 来 发 送H TTP 响 应 消 息 就 更 方 便 些 注 意 在 调 用 S e ndS tre a m 之 前 先 要 调 用S e ndR e s pon s e

S e t C ook ie F ie ld 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图899声 明 vo id _fa s tc a ll S e t C ook ie F ie ld ( C la s s e s :: T S tr ings * V a lu e s , c ons t S y s te m : : A n s i S tr ing A D o m a in, c ons t S y s te m : : A n s i S tr ing A P a th, S y s te m : : T D a te T im e A E xp ire s , bool A S e c ure ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图900这 个 函 数 在 H TTP 响 应 消 息 中 加 入 一 个 C ook ie 头 标 V a lu e s 参 数 就 是 要 加 入

第 十 六 章 W e b 服 务 器 的 细 节 - 图901第 十 六 章 W e b 服 务 器 的 细 节 - 图902第 十 六 章 W e b 服 务 器 的 细 节 - 图903的 C ook ie 头 标 它 是 T S tr ings 对 象 其 中 每 个 字 符 串 的 形 式 是 N a m e / V a lu e

第 十 六 章 W e b 服 务 器 的 细 节 - 图904第 十 六 章 W e b 服 务 器 的 细 节 - 图905第 十 六 章 W e b 服 务 器 的 细 节 - 图906第 十 六 章 W e b 服 务 器 的 细 节 - 图907第 十 六 章 W e b 服 务 器 的 细 节 - 图908AD o m a in 参 数 和 AP a th 参 数 组 成 C ook ie 要 发 送 给 哪 个 UR L A E xp ire s 参 数 给出 一 个 日 期 和 时 间 超 过 这 个 时 间 C ook ie 就 是 无 效 的 如 果 A S ecu re 参 数 设为 T ru e 表 示 只 在 安 全 连 接 的 情 况 下 传 递 C ook ie

Se t C us to m H e a de r 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图909声 明 vo id _fa s tc a ll S e t C us to m H e a d e r ( c ons t S y s te m : : A n s i S tr ing N a m e , c o ns t S y s te m : : A n - s iS trin g V a lu e ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图910这 个 函 数 向 自 定 义 的 头 标 即 C u s to m H ead ers 特 性 中 加 入 一 个 新 的 头 标 或 者

第 十 六 章 W e b 服 务 器 的 细 节 - 图911第 十 六 章 W e b 服 务 器 的 细 节 - 图912第 十 六 章 W e b 服 务 器 的 细 节 - 图913改 变 已 有 头 标 的 值 N a m e 参 数 是 头 标 的 名 称 V a lu e 参 数 是 头 标 的 值

1 6.6.6 TISA PIResponse 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图914第 十 六 章 W e b 服 务 器 的 细 节 - 图915第 十 六 章 W e b 服 务 器 的 细 节 - 图916第 十 六 章 W e b 服 务 器 的 细 节 - 图917对 于 IS A P I或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 操 纵 H TTP 响 应 消 息 的是 T IS A P IR e s pons e 对 象 在 IS A P IA P P 单 元 中 T ISA P IR e s p o n s e 是 这 样 声 明的

c la s s P A S C A L IM P L E M E N T A T IO N T IS A P IR e s pon s e : pub lic H ttp a pp :: T W e bR e s pons e

{

p r iv a te:

// 私 有 的 成 员 此 处 省 略

pro te c te d:

// 保 护 的 成 员 此 处 省 略

pub lic :

_fa s tc a l l T IS A P IR e s pons e ( H ttp a pp :: T W e bR e q u e s t* H T T P R e que s t) ; v ir tua l vo id _fa s tc a ll S e ndR e s pons e ( vo id);

v ir tu a l v o id _ fa s tc a ll S e n d R e d ire c t( c o n s t S y s te m :: A n s i S tr in g U R I ) ; v ir tu a l v o id _ fa s tc a ll S e n d S tre a m ( C la s s e s ::T S tre a m * A S tre a m ) ;

_fa s tc a l l v ir tu a l ~ T IS A P IR e s pons e ( vo id) { }

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图918第 十 六 章 W e b 服 务 器 的 细 节 - 图919第 十 六 章 W e b 服 务 器 的 细 节 - 图920第 十 六 章 W e b 服 务 器 的 细 节 - 图921第 十 六 章 W e b 服 务 器 的 细 节 - 图922可 以 看 出 T IS A P IR e s pons e 是 从 T W e b R e s pons e 继 承 下 来 的 它 没 有 自 己 的特 性 和 方 法 只 是 重 载 了 T W e b R e s pons e 的 构 造 函 数 S e ndR e s pon s e

第 十 六 章 W e b 服 务 器 的 细 节 - 图923第 十 六 章 W e b 服 务 器 的 细 节 - 图924S e n d R ed irec t S e ndS tre a m

1 6.6.7 TCGI Response 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图925对 于 CG I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 操 纵 H TTP 响 应 消 息 的 是

第 十 六 章 W e b 服 务 器 的 细 节 - 图926第 十 六 章 W e b 服 务 器 的 细 节 - 图927第 十 六 章 W e b 服 务 器 的 细 节 - 图928T C G IR e s pon s e 对 象 在 CG IA P P 单 元 中 T C G IR e s pon s e 是 这 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T C G IR e s p o n s e : p u b lic H ttp a p p ::T W e b R e s p o n s e

{

priv a te :

// 私有的成 员此处省略

pro te c te d:

// 保护的成 员此处省略

pub l ic :

_fa s tc a l l T C G IR e s p ons e ( H ttp a pp :: T W e b R e q ue s t* H T T P R e qu e s t) ; v ir tu a l v o id _ fa s tc a l l S e n d R e sp o n s e ( vo id);

v ir tu a l v o id _ fa s tc a l l S e n d R e d ire c t( c on s t S y s te m : : A n s i S tr ing U R I ) ; v ir tu a l v o id _ fa s tc a ll S e n d S tre a m ( C la s s e s ::T S tre a m * A S tre a m ) ;

_fa s tc a l l v ir tua l ~ T C G IR e spo ns e ( vo id ) { }

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图929第 十 六 章 W e b 服 务 器 的 细 节 - 图930第 十 六 章 W e b 服 务 器 的 细 节 - 图931第 十 六 章 W e b 服 务 器 的 细 节 - 图932第 十 六 章 W e b 服 务 器 的 细 节 - 图933第 十 六 章 W e b 服 务 器 的 细 节 - 图934第 十 六 章 W e b 服 务 器 的 细 节 - 图935可 以 看 出 T C G IR e s pon s e 也 是 从 T W e b R e s pons e 继 承 下 来 的 它 没 有 自 己 的

1 6.6.8 TWin CGIResponse 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图936对 于 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 操 纵 H TTP 响 应 消 息 的 是

第 十 六 章 W e b 服 务 器 的 细 节 - 图937第 十 六 章 W e b 服 务 器 的 细 节 - 图938第 十 六 章 W e b 服 务 器 的 细 节 - 图939T W in C G IR e s pons e 对 象 在 CG IA P P 单 元 中 T W in C G IR e s pons e 的 声 明 很 简单

T W in C G IR e s pons e = C la s s ( T C G IR e s pons e ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图940第 十 六 章 W e b 服 务 器 的 细 节 - 图941第 十 六 章 W e b 服 务 器 的 细 节 - 图942可 以 看 出 T W in C G IR e s pons e 是 从 T C G IR e s pon s e 继 承 下 来 的 它 没 有 自 己的 成 员

1 6.7 页 面 生 成 器

第 十 六 章 W e b 服 务 器 的 细 节 - 图943第 十 六 章 W e b 服 务 器 的 细 节 - 图944T P ag e P ro d u cer 元 件 能 够 基 于 一 个 事 先 设 计 好 的 HT M L 模 板 分 析 客 户 的 输 入并 自 动 生 成 动 态 的 HT M L 页 面 因 此 T P ag e P ro d u cer元 件 又 叫 页 面 生 成 器

第 十 六 章 W e b 服 务 器 的 细 节 - 图945T P ag e P ro d u cer 元 件 的 直 接 上 级 是 T C us to m P a g e P roduc e r 而

第 十 六 章 W e b 服 务 器 的 细 节 - 图946T C us to m P a g e P roduc e r又 是 从 T C us to m C on te n t P roduc e r继 承 下 来 的

1 6.7. 1 怎 样 建 立 HTML 模 板

第 十 六 章 W e b 服 务 器 的 细 节 - 图947第 十 六 章 W e b 服 务 器 的 细 节 - 图948第 十 六 章 W e b 服 务 器 的 细 节 - 图949第 十 六 章 W e b 服 务 器 的 细 节 - 图950第 十 六 章 W e b 服 务 器 的 细 节 - 图951第 十 六 章 W e b 服 务 器 的 细 节 - 图952第 十 六 章 W e b 服 务 器 的 细 节 - 图953第 十 六 章 W e b 服 务 器 的 细 节 - 图954要 使 用 页 面 生 成 器 首 先 要 建 立 HT M L 模 板 让 页 面 生 成 器 知 道 应 该 怎 样 转换 所 谓 HT M L 模 板 就 是 HT M L 命 令 和 HT M L 透 明 标 记 组 成 的 序 列 关 于HT M L 命 令 读 者 可 以 参 阅 有 关 HT M L 语 言 的 书 籍 一 个 HT M L 透 明 标 记 的形 式 是

< # T a gN a m e P a ra m 1 = V a lue 1 P a ra m 2 = V a lue 2 ...>

第 十 六 章 W e b 服 务 器 的 细 节 - 图955第 十 六 章 W e b 服 务 器 的 细 节 - 图956第 十 六 章 W e b 服 务 器 的 细 节 - 图957第 十 六 章 W e b 服 务 器 的 细 节 - 图958第 十 六 章 W e b 服 务 器 的 细 节 - 图959第 十 六 章 W e b 服 务 器 的 细 节 - 图960可 以 看 出 HT M L 透 明 标 记 必 须 用 < > 括 起 来 # 与 < 之 间 不 能 有 空 格 # 后 是标 记 名 标 记 名 可 以 是 任 何 C+ + 的 标 识 符 # 与 标 记 名 之 间 也 不 能 有 空 格

第 十 六 章 W e b 服 务 器 的 细 节 - 图961第 十 六 章 W e b 服 务 器 的 细 节 - 图962标 记 名 后 可 以 跟 一 个 或 多 个 参 数 以 进 一 步 指 定 转 换 的 细 节 每 个 参 数 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图963第 十 六 章 W e b 服 务 器 的 细 节 - 图964第 十 六 章 W e b 服 务 器 的 细 节 - 图965第 十 六 章 W e b 服 务 器 的 细 节 - 图966第 十 六 章 W e b 服 务 器 的 细 节 - 图967第 十 六 章 W e b 服 务 器 的 细 节 - 图968第 十 六 章 W e b 服 务 器 的 细 节 - 图969第 十 六 章 W e b 服 务 器 的 细 节 - 图970形 式 是 Pa ra m N a m e = V a lu e 其 中 Pa ra m N a m e 是 参 数 名 V a lu e 是 参 数 的 值参 数 名 等 号 参 数 值 之 间 均 不 能 有 空 格 但 参 数 与 参 数 之 间 要 用 空 格 隔开

第 十 六 章 W e b 服 务 器 的 细 节 - 图971第 十 六 章 W e b 服 务 器 的 细 节 - 图972第 十 六 章 W e b 服 务 器 的 细 节 - 图973预定 义的 标准 标记名

标 记

对 应 的

TTa g 值

该标记转 换为

L in k

Im a g e T a b le

Im a g e M a p

O b je c t

E m be d

tg L in k

tgIm a ge tgT a b le

tg Im ag eM a p

tg O b je c t

tgE m b e d

超 级 链 接 相 当 于 HT M L 中 的 <A > < / A >

序列

图像 相当 于 HT M L 中的 <IM G = >

表 格 相 当 于 HT M L 中 的

<T A B L E > < / TA B L E> 序列

图 像 相 当 于 HT M L 中 的

<M A P " "> < / M A P> 序列

嵌 入 的 A c tiv e X 对 象 相 当 于 HT M L 中 的

<O B J E C T > < / O B J E C T > 序列

与 N e ts c a p e 兼容的插 件 DL L 相当于 HT M L

中的 <E M B E D > < / E M B E D > 序列

第 十 六 章 W e b 服 务 器 的 细 节 - 图974第 十 六 章 W e b 服 务 器 的 细 节 - 图975第 十 六 章 W e b 服 务 器 的 细 节 - 图976第 十 六 章 W e b 服 务 器 的 细 节 - 图977第 十 六 章 W e b 服 务 器 的 细 节 - 图978第 十 六 章 W e b 服 务 器 的 细 节 - 图979第 十 六 章 W e b 服 务 器 的 细 节 - 图980第 十 六 章 W e b 服 务 器 的 细 节 - 图981第 十 六 章 W e b 服 务 器 的 细 节 - 图982第 十 六 章 W e b 服 务 器 的 细 节 - 图983第 十 六 章 W e b 服 务 器 的 细 节 - 图984预 定 义 的 标 记 名 是 大 小 写 敏 感 的 另 外 尽 管 是 预 定 义 的 标 记 名 但 C+ + B u ild e r 3 并 没 有 提 供 默 认 的 处 理 您 得 自 己 处 理 这 些 标 记 您 也 可 以 自 己 定义 标 记 名 任 何 自 定 义 的 标 记 对 应 的 TTa g 值 都 是 tg C u s to m 下 面 是 一 个HT M L 模 板 的 示 例

<H T M L >

<H E A D >

<T IT L E > 这是一个 HT M L 模板示例 < / T IO TLE >

< / H E A D >

< B ODY>

<H 1> 感谢您加 入 C + + B u ild e r爱好者协 会 < / H 1 >

<H 3> 下面是您 刚才填写的个 人资料 < / H 3 >

< T A B L E BO RD E R = " 0 " >

<T R >

第 十 六 章 W e b 服 务 器 的 细 节 - 图985< T D> N a me < / T D >

< T D> < # N a m e > < / T D>

< / T R >

<T R >

第 十 六 章 W e b 服 务 器 的 细 节 - 图986< T D> A d d re ss < / T D >

< T D > <# A d d re s s > < / T D >

< / T R >

<T R >

第 十 六 章 W e b 服 务 器 的 细 节 - 图987< T D > P hon e < / T D >

< T D > < # P hone > < / T D >

< / T R >

<T R >

第 十 六 章 W e b 服 务 器 的 细 节 - 图988<T D > E M a i l < / T D >

<T D > < # E M a i l> < / T D >

< / T R >

< / TA B L E>

第 十 六 章 W e b 服 务 器 的 细 节 - 图989第 十 六 章 W e b 服 务 器 的 细 节 - 图990<H 5> 您的资料 已保存到会员 数据库中 我 们将经常与您 联系 谢谢 < / H 5 >

< / B ODY>

< / H T M L >

第 十 六 章 W e b 服 务 器 的 细 节 - 图991第 十 六 章 W e b 服 务 器 的 细 节 - 图992第 十 六 章 W e b 服 务 器 的 细 节 - 图993可 以 看 出 上 述 HT M L 模 板 中 有 四 个 HT M L 透 明 标 记 分 别 是 <# N a m e >

第 十 六 章 W e b 服 务 器 的 细 节 - 图994第 十 六 章 W e b 服 务 器 的 细 节 - 图995第 十 六 章 W e b 服 务 器 的 细 节 - 图996< # A d d re ss> <# P h o n e > < # E M a il>

1 6.7.2 指 定 HTML 模 板

第 十 六 章 W e b 服 务 器 的 细 节 - 图997第 十 六 章 W e b 服 务 器 的 细 节 - 图998第 十 六 章 W e b 服 务 器 的 细 节 - 图999第 十 六 章 W e b 服 务 器 的 细 节 - 图1000第 十 六 章 W e b 服 务 器 的 细 节 - 图1001第 十 六 章 W e b 服 务 器 的 细 节 - 图1002第 十 六 章 W e b 服 务 器 的 细 节 - 图1003第 十 六 章 W e b 服 务 器 的 细 节 - 图1004第 十 六 章 W e b 服 务 器 的 细 节 - 图1005第 十 六 章 W e b 服 务 器 的 细 节 - 图1006第 十 六 章 W e b 服 务 器 的 细 节 - 图1007建 立 了 HT M L 模 板 后 您 应 当 指 定 HT M L 模 板 指 定 HT M L 模 板 有 两 种 方 式如 果 HT M L 模 板 保 存 在 文 件 中 用 HT M L F ile 特 性 比 较 合 适 只 要 把T P ag e P ro d u cer元 件 的 HT M L F ile 特 性 设 为 HT M L 模 板 所 在 的 文 件 名 ( 可 以 包 括路 径 ) 注 意 您 在 交 付 此 W e b 服 务 器 应 用 程 序 时 应 一 并 交 付 HT M L 模 板 文件 否 则 W e b 服 务 器 应 用 程 序 就 不 能 正 常 工 作 另 外 HT M L 模 板 文 件 的

第 十 六 章 W e b 服 务 器 的 细 节 - 图1008第 十 六 章 W e b 服 务 器 的 细 节 - 图1009路 径 最 好 让 用 户 自 己 设 定 而 不 要 在 程 序 中 写 死

第 十 六 章 W e b 服 务 器 的 细 节 - 图1010第 十 六 章 W e b 服 务 器 的 细 节 - 图1011第 十 六 章 W e b 服 务 器 的 细 节 - 图1012如 果 HT M L 模 板 是 用 T S tr ings 对 象 保 存 的 用 HT M L D o c 特 性 比 较 方 便 只 要把 包 含 HT M L 模 板 的 T S tr ings 对 象 赋 值 给 HT M L D o c 特 性 就 行 了

第 十 六 章 W e b 服 务 器 的 细 节 - 图1013第 十 六 章 W e b 服 务 器 的 细 节 - 图1014第 十 六 章 W e b 服 务 器 的 细 节 - 图1015HT M L F ile 特 性 和 HT M L D o c 特 性 是 互 斥 的 设 置 了 其 中 一 个 另 一 个 就 清空

1 6.7.3 转 换 并 返 回 转 换 后 的 结 果

第 十 六 章 W e b 服 务 器 的 细 节 - 图1016第 十 六 章 W e b 服 务 器 的 细 节 - 图1017用 HT M L F ile 特 性 或 HT M L D o c 特 性 指 定 HT M L 模 板 后 T P ag e P ro d u cer 提 供了 三 种 转 换 方 式

  • 第 十 六 章 W e b 服 务 器 的 细 节 - 图1018第 十 六 章 W e b 服 务 器 的 细 节 - 图1019第 十 六 章 W e b 服 务 器 的 细 节 - 图1020

    调 用 C on te n t 函 数 这 个 函 数 能 够 逐 一 替 换 HT M L 模 板 中 的 透 明 标 记然 后 返 回 转 换 后 的 结 果 实 际 上 就 是 一 串 HT M L 命 令

第 十 六 章 W e b 服 务 器 的 细 节 - 图1021第 十 六 章 W e b 服 务 器 的 细 节 - 图1022如 果 HT M L 模 板 比 较 简 单 只 是 一 个 字 符 串 您 可 以 调 用 C o n te n tF ro m S trin g

第 十 六 章 W e b 服 务 器 的 细 节 - 图1023第 十 六 章 W e b 服 务 器 的 细 节 - 图1024函 数 并 传 递 HT M L 模 板 作 为 参 数 也 能 得 到 转 换 后 的 结 果

第 十 六 章 W e b 服 务 器 的 细 节 - 图1025第 十 六 章 W e b 服 务 器 的 细 节 - 图1026第 十 六 章 W e b 服 务 器 的 细 节 - 图1027第 十 六 章 W e b 服 务 器 的 细 节 - 图1028第 十 六 章 W e b 服 务 器 的 细 节 - 图1029如 果 HT M L 模 板 可 以 从 流 中 读 取 调 用 C o n ten t F ro m S trea m 函 数 比 较 方 便 由 于 TB lo b S tre a m 对 象 支 持 流 入 和 流 出 等 操 作 您 可 以 把 HT M L 模 板 存 储 到数 据 库 的 备 注 字 段 中 以 后 再 从 备 注 字 段 中 读 取 HT M L 模 板

1 6.7.4 怎 样 转 换 (OnHTMLTag 事 件 )

第 十 六 章 W e b 服 务 器 的 细 节 - 图1030第 十 六 章 W e b 服 务 器 的 细 节 - 图1031第 十 六 章 W e b 服 务 器 的 细 节 - 图1032第 十 六 章 W e b 服 务 器 的 细 节 - 图1033第 十 六 章 W e b 服 务 器 的 细 节 - 图1034第 十 六 章 W e b 服 务 器 的 细 节 - 图1035第 十 六 章 W e b 服 务 器 的 细 节 - 图1036调 用 C on te n t C o n te n tF ro m S tre a m 或 C o n te n tF ro m S trin g 函 数 进 行 转 换 时 如果 在 HT M L 模 板 中 遇 到 一 个 HT M L 标 记 就 会 触 发 O n HT M L T a g 事 件 这 样您 就 有 机 会 判 断 当 前 遇 到 的 是 哪 个 标 记 然 后 再 决 定 怎 样 替 换 这 个 标 记下 面 我 们 详 细 介 绍 O n HT M L T a g 事 件

O n H T M LTa g 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图1037声 明 _prope r ty T H T M L T a gE ve nt O n H T M L T a g ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1038第 十 六 章 W e b 服 务 器 的 细 节 - 图1039其 中 TH TM LT a g Ev e n t是 这 样 声 明 的

ty pe de f v o id _ fa s tc a l l (_ c losu re * T H T M LTa gE ve n t) ( T O b je c t∗ S e nd e r, T Ta g Ta g , con s t S y s te m : : A n s i S tr ing Ta gS tr ing, C la s se s : : T S tr ings ∗ Ta gP a ra m s , A n s i S tr ing & R e p la c e Te x t) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1040第 十 六 章 W e b 服 务 器 的 细 节 - 图1041第 十 六 章 W e b 服 务 器 的 细 节 - 图1042Ta g 参 数 告 诉 您 当 前 遇 到 的 是 什 么 标 记 如 果 Ta g 参 数 是 tg L in k tg Im a g e

第 十 六 章 W e b 服 务 器 的 细 节 - 图1043第 十 六 章 W e b 服 务 器 的 细 节 - 图1044第 十 六 章 W e b 服 务 器 的 细 节 - 图1045第 十 六 章 W e b 服 务 器 的 细 节 - 图1046第 十 六 章 W e b 服 务 器 的 细 节 - 图1047第 十 六 章 W e b 服 务 器 的 细 节 - 图1048第 十 六 章 W e b 服 务 器 的 细 节 - 图1049第 十 六 章 W e b 服 务 器 的 细 节 - 图1050tg T a b le tg Im ag eM a p tg O b ject tg E m b e d 中 的 一 个 表 示 是 预 定 义 的 标 记如 果 Ta g 参 数 是 tg C u s to m 表 示 是 自 定 义 的 标 记 此 时 T a g S trin g 参 数 就 是 自定 义 的 标 记 名

第 十 六 章 W e b 服 务 器 的 细 节 - 图1051第 十 六 章 W e b 服 务 器 的 细 节 - 图1052第 十 六 章 W e b 服 务 器 的 细 节 - 图1053第 十 六 章 W e b 服 务 器 的 细 节 - 图1054第 十 六 章 W e b 服 务 器 的 细 节 - 图1055第 十 六 章 W e b 服 务 器 的 细 节 - 图1056不 管 是 预 定 义 的 标 记 还 是 自 定 义 的 标 记 如 果 标 记 附 带 了 参 数 的 话 您 可以 通 过 O n HT M L T a g 事 件 的 Ta g P a ra m s 参 数 得 到 标 记 中 的 参 数 Ta g P a ra m s 参数 是 T S tr ings 对 象 其 中 每 个 字 符 串 的 形 式 是 Pa ra m N a m e = V a lu e 其 中

第 十 六 章 W e b 服 务 器 的 细 节 - 图1057第 十 六 章 W e b 服 务 器 的 细 节 - 图1058第 十 六 章 W e b 服 务 器 的 细 节 - 图1059第 十 六 章 W e b 服 务 器 的 细 节 - 图1060Pa ra m N a m e 是 参 数 名 V a lu e 是 参 数 值 用 T S tr ings 对 象 的 N a m e s 特 性 可 以 访问 标 记 中 的 所 有 参 数 名 用 T S tr ings 对 象 的 V a lu e s 特 性 访 问 标 记 中 的 所 有 参数 值

第 十 六 章 W e b 服 务 器 的 细 节 - 图1061第 十 六 章 W e b 服 务 器 的 细 节 - 图1062第 十 六 章 W e b 服 务 器 的 细 节 - 图1063第 十 六 章 W e b 服 务 器 的 细 节 - 图1064第 十 六 章 W e b 服 务 器 的 细 节 - 图1065第 十 六 章 W e b 服 务 器 的 细 节 - 图1066第 十 六 章 W e b 服 务 器 的 细 节 - 图1067在 处 理 O n HT M L T a g 事 件 的 句 柄 中 至 少 要 有 这 么 一 句 就 是 对 R e p la ceT ex t参数 赋 值 实 际 上 就 是 指 定 要 替 换 标 记 的 文 本 该 文 本 既 可 以 是 一 个 普 通 的字 符 串 也 可 以 又 是 一 个 HT M L 透 明 标 记 让 下 一 个 T P ag e P ro d u cer 元 件 去转 换 从 而 构 成 转 换 链

第 十 六 章 W e b 服 务 器 的 细 节 - 图1068第 十 六 章 W e b 服 务 器 的 细 节 - 图1069下 面 我 们 通 过 一 个 典 型 的 示 例 来 帮 助 您 理 解 HT M L 模 板 和 O n HT M L T a g 事件 假 设 HT M L 模 板 是 这 样的

<H T M L >

< H E A D > < T IT L E > O ur bra nd ne w w e b s i te < / T IT L E > < / H E A D >

< B ODY>

H e llo < # U s e r N a m e > ! W e lc o m e to o u r w e b s ite .

< / B ODY>

< / H T M L >

第 十 六 章 W e b 服 务 器 的 细 节 - 图1070第 十 六 章 W e b 服 务 器 的 细 节 - 图1071第 十 六 章 W e b 服 务 器 的 细 节 - 图1072可以看出 这个 HT M L 模板中只 有一个标记 标记名称是 U s e r N a me

v o id _ fas tc all T W eb M o d u le 1 : : P ag e P ro d u cer 1 H T M L T ag ( T O b jec t∗ S e nd e r , T T a g T a g, c o n s t A n s i S tr ing T a gS tr in g, T S tr ings *T a g P a ra m s , A n s i S tr ing & R e p la c e T e x t)

{

if (C o m p a re T e x t(T a g S trin g , " U se rN a m e " ) = = 0 )

R e p lac eT e x t = ( T P a g e P ro d u cer * ) S e n d er-> D isp atc h er-> R e q u es t-> C o n te n t ;

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图1073第 十 六 章 W e b 服 务 器 的 细 节 - 图1074上 面 这 个 事 件 句 柄 首 先 判 断 当 前 遇 到 的 标 记 是 否 U s e r N a m e 如 是 就 对

第 十 六 章 W e b 服 务 器 的 细 节 - 图1075第 十 六 章 W e b 服 务 器 的 细 节 - 图1076R e p laceT e x t参 数 赋 值 这 里 顺 便 介 绍 T P ag e P ro d u cer 元 件 的 D is p a tch er 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1077第 十 六 章 W e b 服 务 器 的 细 节 - 图1078第 十 六 章 W e b 服 务 器 的 细 节 - 图1079第 十 六 章 W e b 服 务 器 的 细 节 - 图1080第 十 六 章 W e b 服 务 器 的 细 节 - 图1081T P ag e P ro d u cer 元 件 一 般 应 当 放 在 W e b 模 块 上 D is p atc h er 特 性 返 回T P ag e P ro d u cer元 件 所 在 的 W e b 模 块 由 此 可 以 访 问 H TTP 请 求 消 息 进 而 得到 H TTP 请 求 消 息 中 的 内 容 即 客 户 填 写 的 U s e r N a m e

第 十 六 章 W e b 服 务 器 的 细 节 - 图1082第 十 六 章 W e b 服 务 器 的 细 节 - 图1083如 果 程 序 没 有 响 应 O n HT M L T a g 事 件 或 者 在 处 理 O n HT M L T a g 事 件 的 句 柄 中没 有 对 R e p laceT e x t参 数 赋 值 HT M L 透 明 标 记 就 用 空 字 符 串 替 换

1 6.8 操 纵 We b 服 务 器 应 用 程 序

第 十 六 章 W e b 服 务 器 的 细 节 - 图1084第 十 六 章 W e b 服 务 器 的 细 节 - 图1085第 十 六 章 W e b 服 务 器 的 细 节 - 图1086第 十 六 章 W e b 服 务 器 的 细 节 - 图1087第 十 六 章 W e b 服 务 器 的 细 节 - 图1088第 十 六 章 W e b 服 务 器 的 细 节 - 图1089第 十 六 章 W e b 服 务 器 的 细 节 - 图1090第 十 六 章 W e b 服 务 器 的 细 节 - 图1091第 十 六 章 W e b 服 务 器 的 细 节 - 图1092第 十 六 章 W e b 服 务 器 的 细 节 - 图1093第 十 六 章 W e b 服 务 器 的 细 节 - 图1094第 十 六 章 W e b 服 务 器 的 细 节 - 图1095第 十 六 章 W e b 服 务 器 的 细 节 - 图1096第 十 六 章 W e b 服 务 器 的 细 节 - 图1097C+

  • Bu ild e r 3 用 T A pp lic a tio n 来 操 纵 应 用 程 序 并 且 在 Fo rm s 单 元 中 声 明 了T A pp lic a tio n 的 实 例 叫 A p p lic a t io n 对 于 W e b 服 务 器 应 用 程 序 来 说 情 况 就不 一 样 了 C+ + Bu ild e r 3 用 T W e b A p p lic a tio n 及 其 派 生 类 来 操 纵 W e b 服 务 器应 用 程 序 当 您 用 C+ + Bu ild e r 3 提 供 的 向 导 创 建 W e b 服 务 器 应 用 程 序 时 向导 同 时 还 创 建 了 一 个 W e b 服 务 器 应 用 程 序 对 象 其 实 例 也 叫 A p p lic a tio n 对于 CG I 或 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 这 个 实 例 的 类 型 是T C G IA p p lic a t io n 在 CG IA p p 单 元 中 声 明 对 于 IS A P I 或 NS A P I类 型 的 W e b 服务 器 应 用 程 序 来 说 这 个 实 例 的 类 型 是 T IS A P IA pp lic a tio n 在 IS A P IA p p 单元 中 声 明

第 十 六 章 W e b 服 务 器 的 细 节 - 图1098第 十 六 章 W e b 服 务 器 的 细 节 - 图1099第 十 六 章 W e b 服 务 器 的 细 节 - 图1100第 十 六 章 W e b 服 务 器 的 细 节 - 图1101第 十 六 章 W e b 服 务 器 的 细 节 - 图1102第 十 六 章 W e b 服 务 器 的 细 节 - 图1103第 十 六 章 W e b 服 务 器 的 细 节 - 图1104第 十 六 章 W e b 服 务 器 的 细 节 - 图1105第 十 六 章 W e b 服 务 器 的 细 节 - 图1106由 此 可 见 W e b 服 务 器 应 用 程 序 中 的 A p p lic a tio n 和 普 通 应 用 程 序 中 的A p p lic a t io n 不 是 一 码 事 至 少 它 们 的 类 型 不 同 因 此 您 不 可 以 在 W e b 服 务器 应 用 程 序 的 项 目 文 件 中 引 用 某 个 Fo rm 的 单 元 名 因 为 这 个 单 元 会 自 动 声明 一 个 T A pp lic a tio n 类 型 的 A p p lic a t io n 同 样 的 道 理 您 不 可 以 把 IS A P IA p p 单 元 加 到 CG I或 W in - C G I类 型 的 W e b 服 务 器 应 用 程 序 中 也 不 可 以 把 CG IA p p 单 元 加 到 IS A P I或 N S A P I类 型 的 W e b 服 务 器 应 用 程 序 中

1 6.8. 1 TWeb Application 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图1107第 十 六 章 W e b 服 务 器 的 细 节 - 图1108第 十 六 章 W e b 服 务 器 的 细 节 - 图1109第 十 六 章 W e b 服 务 器 的 细 节 - 图1110T W e b A pp lic a t io n 用 于 操 纵 W e b 服 务 器 应 用 程 序 的 基 本 行 为 包 括 创 建T W e b R e que s t 对 象 和 T W e b R e s pons e 对 象 并 且 把 这 两 个 对 象 传 递 给 W e b 调度 器 再 由 W e b 调 度 器 传 递 给 匹 配 的 动 作 项 由 动 作 项 分 析 和 处 理 H TTP 请

第 十 六 章 W e b 服 务 器 的 细 节 - 图1111第 十 六 章 W e b 服 务 器 的 细 节 - 图1112求 消 息 最 后 发 送 H TTP 响 应 消 息 给 客 户

第 十 六 章 W e b 服 务 器 的 细 节 - 图1113第 十 六 章 W e b 服 务 器 的 细 节 - 图1114在 H TTP A P P 单 元 中 T W e b A p p lic a tio n 是 这 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T W e b A p p lic a tio n : p u b lic C la s s e s ::T C o m p o n e n t

{

pub l ic :

_ fa s tc a ll v ir tu a l T W e b A p p lic a tio n ( C la s s e s ::T C o m p o n e n t∗ AO w n e r ) ;

_ fa s tc a ll v ir tu a l ~ T W e b A p p lic a tio n ( v o id ) ;

_ p ro p e rty in t A c tiv e C o u n t ;

_p rop e r ty boo l C a c h e C o n n e c t ions ;

_ p ro p e rty in t In a c tiv e C o u n t ;

_p rop e r ty in t M a xC o nne c t io ns ;

_ p ro p e rty S y s te m ::A n s iS trin g T itle ;

};

A c tiv e C o u n t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1115声 明 _prope r ty in t A c tive C oun t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1116第 十 六 章 W e b 服 务 器 的 细 节 - 图1117第 十 六 章 W e b 服 务 器 的 细 节 - 图1118第 十 六 章 W e b 服 务 器 的 细 节 - 图1119第 十 六 章 W e b 服 务 器 的 细 节 - 图1120第 十 六 章 W e b 服 务 器 的 细 节 - 图1121对 于 IS A P I或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 每 收 到 一 个 H TTP 请 求消 息 就 会 自 动 创 建 一 个 新 的 W e b 模 块 实 例 如 果 H TTP 请 求 消 息 得 到 处 理W e b 模 块 的 这 个 实 例 要 么 被 删 除 要 么 变 成 非 活 动 状 态 备 下 次 再 用

第 十 六 章 W e b 服 务 器 的 细 节 - 图1122第 十 六 章 W e b 服 务 器 的 细 节 - 图1123第 十 六 章 W e b 服 务 器 的 细 节 - 图1124第 十 六 章 W e b 服 务 器 的 细 节 - 图1125第 十 六 章 W e b 服 务 器 的 细 节 - 图1126因 此 一 个 W e b 服 务 器 应 用 程 序 中 可 能 存 在 着 W e b 模 块 的 多 个 实 例 其 中 有的 处 于 活 动 状 态 有 的 处 于 非 活 动 状 态 每 个 活 动 的 实 例 均 在 一 个 单 独 的线 程 中

第 十 六 章 W e b 服 务 器 的 细 节 - 图1127第 十 六 章 W e b 服 务 器 的 细 节 - 图1128第 十 六 章 W e b 服 务 器 的 细 节 - 图1129A c tiv e C oun t是 个 只 读 的 特 性 返 回 当 前 处 于 活 动 状 态 的 W e b 模 块 的 实 例 数实 际 上 也 就 是 W e b 服 务 器 应 用 程 序 当 前 正 在 处 理 的 H TTP 请 求 消 息 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图1130第 十 六 章 W e b 服 务 器 的 细 节 - 图1131第 十 六 章 W e b 服 务 器 的 细 节 - 图1132第 十 六 章 W e b 服 务 器 的 细 节 - 图1133第 十 六 章 W e b 服 务 器 的 细 节 - 图1134In a c t iv e C oun t也 是 个 只 读 的 特 性 返 回 当 前 处 于 非 活 动 状 态 的 W e b 模 块 的 实例 数 M a xC onne c tions 特 性 用 于 设 置 最 多 可 有 多 少 个 活 动 的 W e b 模 块 实 例 因 此 A c tiv e C oun t特 性 的 值 不 会 大 于 M a xC onne c t ions

第 十 六 章 W e b 服 务 器 的 细 节 - 图1135第 十 六 章 W e b 服 务 器 的 细 节 - 图1136第 十 六 章 W e b 服 务 器 的 细 节 - 图1137第 十 六 章 W e b 服 务 器 的 细 节 - 图1138第 十 六 章 W e b 服 务 器 的 细 节 - 图1139第 十 六 章 W e b 服 务 器 的 细 节 - 图1140注 意 A c tiv e C ount 仅 对 IS A P I 或 N S AP I 类 型 的 W e b 服 务 器 应 用 程 序 是 有 效的 因 为 对 于 CG I 或 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 在 同 一 个 时刻 只 能 响 应 一 个 H TTP 请 求 消 息 也 就 是 说 W e b 模 块 只 有 一 个 实 例

C a ch e C o n n ectio n s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1141声 明 _prope r ty bool C a c h e C onne c tions ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1142第 十 六 章 W e b 服 务 器 的 细 节 - 图1143第 十 六 章 W e b 服 务 器 的 细 节 - 图1144第 十 六 章 W e b 服 务 器 的 细 节 - 图1145第 十 六 章 W e b 服 务 器 的 细 节 - 图1146第 十 六 章 W e b 服 务 器 的 细 节 - 图1147第 十 六 章 W e b 服 务 器 的 细 节 - 图1148第 十 六 章 W e b 服 务 器 的 细 节 - 图1149如 果 这 个 特 性 设 为 T ru e 当 一 个 H TTP 请 求 消 息 被 处 理 后 W e b 模 块 的 实 例不 是 被 删 掉 而 是 保 留 在 内 存 中 备 下 次 再 用 这 样 当 W e b 服 务 器 应 用 程序 收 到 下 一 个 H TTP 请 求 消 息 时 就 不 必 重 新 创 建 W e b 模 块 的 实 例 从 而 提高 了 程 序 的 性 能

第 十 六 章 W e b 服 务 器 的 细 节 - 图1150第 十 六 章 W e b 服 务 器 的 细 节 - 图1151第 十 六 章 W e b 服 务 器 的 细 节 - 图1152第 十 六 章 W e b 服 务 器 的 细 节 - 图1153第 十 六 章 W e b 服 务 器 的 细 节 - 图1154第 十 六 章 W e b 服 务 器 的 细 节 - 图1155第 十 六 章 W e b 服 务 器 的 细 节 - 图1156如 果 这 个 特 性 设 为 Fa ls e 当 一 个 H TTP 请 求 消 息 被 处 理 后 W e b 模 块 的 实 例就 被 删 掉 当 W e b 服 务 器 应 用 程 序 收 到 下 一 个 H TTP 请 求 消 息 时 就 要 重 新创 建 W e b 模 块 的 一 个 实 例 这 种 方 式 的 好 处 时 每 个 实 例 总 是 反 映 W e b 模 块的 最 新 状 况

I n ac tive C o u n t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1157声 明 _prope r ty in t In a c t iv e C oun t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1158第 十 六 章 W e b 服 务 器 的 细 节 - 图1159第 十 六 章 W e b 服 务 器 的 细 节 - 图1160在 C a c h e C onne c tions 特 性 设 为 T ru e 的 情 况 下 这 个 只 读 的 特 性 返 回 当 前 处 于非 活 动 状 态 的 W e b 模 块 的 实 例 数 如 果 C ach eC o n n ectio n s 特 性 设 为 Fa ls e

第 十 六 章 W e b 服 务 器 的 细 节 - 图1161In a c t iv e C oun t特 性 总 是 0

M a x C o nne c tio n s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1162声 明 _prope r ty in t M a xC on ne c t ions ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1163第 十 六 章 W e b 服 务 器 的 细 节 - 图1164第 十 六 章 W e b 服 务 器 的 细 节 - 图1165这 个 特 性 用 于 设 置 在 同 一 个 时 刻 最 多 允 许 W e b 模 块 的 几 个 实 例 是 活 动 的换 句 话 说 也 就 是 W e b 服 务 器 应 用 程 序 能 同 时 处 理 几 个 H TTP 请 求 消 息

第 十 六 章 W e b 服 务 器 的 细 节 - 图1166第 十 六 章 W e b 服 务 器 的 细 节 - 图1167第 十 六 章 W e b 服 务 器 的 细 节 - 图1168第 十 六 章 W e b 服 务 器 的 细 节 - 图1169第 十 六 章 W e b 服 务 器 的 细 节 - 图1170第 十 六 章 W e b 服 务 器 的 细 节 - 图1171第 十 六 章 W e b 服 务 器 的 细 节 - 图1172M a xC onne c tions 特 性 的 值 应 当 设 得 比 较 合 适 设 得 过 小 显 然 不 行 如 果 设 得过 大 的 话 表 面 上 看 W e b 服 务 器 应 用 程 序 能 同 时 处 理 很 多 H TTP 请 求 消 息但 同 时 执 行 很 多 线 程 也 会 导 致 应 用 程 序 的 开 销 很 大 弄 不 好 反 而 会 降 低 应用 程 序 的 性 能

第 十 六 章 W e b 服 务 器 的 细 节 - 图1173第 十 六 章 W e b 服 务 器 的 细 节 - 图1174如 果 当 前 活 动 的 W e b 模 块 的 实 例 数 已 经 达 到 M a xC onne c tions 特 性 的 值 此 时若 收 到 一 个 H TTP 请 求 消 息 将 触 发 异 常

T it le 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1175声 明 _prope r ty S y s te m : : A n s i S tr ing T i tle ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1176第 十 六 章 W e b 服 务 器 的 细 节 - 图1177第 十 六 章 W e b 服 务 器 的 细 节 - 图1178第 十 六 章 W e b 服 务 器 的 细 节 - 图1179这 个 特 性 用 于 指 定 一 个 字 符 串 当 W e b 服 务 器 应 用 程 序 最 小 化 时 此 字 符 串显 示 在 它 的 图 标 下 面 如 果 没 有 设 置 T itle 特 性 就 用 W e b 服 务 器 应 用 程 序 的文 件 名

I n itia liz e 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图1180声 明 v ir tua l vo id _fa s tc a ll In itia liz e ( vo id);

第 十 六 章 W e b 服 务 器 的 细 节 - 图1181第 十 六 章 W e b 服 务 器 的 细 节 - 图1182第 十 六 章 W e b 服 务 器 的 细 节 - 图1183第 十 六 章 W e b 服 务 器 的 细 节 - 图1184第 十 六 章 W e b 服 务 器 的 细 节 - 图1185In itia liz e 本 来 什 么 也 不 做 由 于 用 C+ + Bu ild e r 3 创 建 的 应 用 程 序 总 是 先 调 用In itia liz e 因 此 如 果 您 需 要 对 W e b 服 务 器 应 用 程 序 做 一 些 初 始 化 工 作 的 话您 可 以 重 载 In itia liz e

1 6.8.2 TCGI Application 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图1186第 十 六 章 W e b 服 务 器 的 细 节 - 图1187第 十 六 章 W e b 服 务 器 的 细 节 - 图1188第 十 六 章 W e b 服 务 器 的 细 节 - 图1189对 于 CG I 或 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 操 纵 W e b 服 务 器 应 用程 序 的 是 T C G IA p p lic a tio n 对 象 在 CG IA P P 单 元 中 T C G IA p p lic a tio n 是 这 样声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T C G IA p p lic a t io n : p u b lic H ttp a p p ::T W e b A p p lic a tio n

{

pub l ic :

v ir tu a l v o id _ fa s tc a ll R u n ( v o id ) ;

_ fa s tc a ll v ir tu a l T C G IA p p lic a tio n ( C la s se s ::T C o m p o n e n t* A O w n e r ) : H ttp a p p : : T W e b A p p l ic a t io n ( AOw n e r ) { }

_fa s tc a l l v ir tua l ~ T C G IA pp lic a t io n ( vo id) { }

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图1190第 十 六 章 W e b 服 务 器 的 细 节 - 图1191第 十 六 章 W e b 服 务 器 的 细 节 - 图1192第 十 六 章 W e b 服 务 器 的 细 节 - 图1193可 以 看 出 T C G IA p p lic a tio n 是 从 T W e b A p p lic a tio n 继 承 下 来 的 它 没 有 自 己的 特 性 和 方 法 只 是 重 载 了 T W e b A p p lic a tio n 中 的 Ru n

1 6.8.3 TISA PIApplication 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图1194第 十 六 章 W e b 服 务 器 的 细 节 - 图1195第 十 六 章 W e b 服 务 器 的 细 节 - 图1196第 十 六 章 W e b 服 务 器 的 细 节 - 图1197对 于 IS A P I 或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 操 纵 W e b 服 务 器 应 用程 序 的 是 T ISA P IA p p l ic a tio n 对 象 在 IS A P IA P P 单 元 中 T IS A P IA pp lic a tio n 是 这 样 声 明 的

c la s s P A S C A L IM P L E M E N T A T IO N T IS A P IA p p lic a tio n : p u b lic H ttp a p p ::T W e b A p p lic a t io n

{

pub l ic :

B O O L _ fa s tc a ll G e tE x te n s io n V e rs io n ( Isa p i2 ::T H S E _ V E R S IO N _ IN F O & V e r ) ; in t _ fa s tc a ll H ttp E x te n s io n P ro c ( T E X T E N S IO N _ C O N T R O L _ B L O C K & E C B ) ; B O O L _ fas tc all T e rm in ateE x tens io n ( in t d w F lag s ) ;

_ fa s tc a ll v ir tu a l T IS A P IA p p lic a tio n ( C la s s e s ::T C o m p o n e n t* A O w n e r ) : H ttp a p p : : T W e b A p p l ic a t io n ( AOw n e r ) { }

_fa s tc a l l v ir tua l ~ T IS A P IA pp lic a t ion ( vo id) { }

};

第 十 六 章 W e b 服 务 器 的 细 节 - 图1198第 十 六 章 W e b 服 务 器 的 细 节 - 图1199第 十 六 章 W e b 服 务 器 的 细 节 - 图1200第 十 六 章 W e b 服 务 器 的 细 节 - 图1201第 十 六 章 W e b 服 务 器 的 细 节 - 图1202第 十 六 章 W e b 服 务 器 的 细 节 - 图1203第 十 六 章 W e b 服 务 器 的 细 节 - 图1204可 以 看 出 T ISA P IA p p l ic a tio n 也 是 从 T W e b A pp lic a tio n 继 承 下 来 的 增 加 了三 个 函 数 这 三 个 函 数 都 是 IS A P I 或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 必 须输 出 的 例 程 由 W e b 服 务 器 调 用 创 建 W e b 服 务 器 应 用 程 序 时 项 目 文 件 中已 自 动 输 出 了 这 三 个 函 数

1 6.9 We b 服 务 器 与 数 据 库

第 十 六 章 W e b 服 务 器 的 细 节 - 图1205第 十 六 章 W e b 服 务 器 的 细 节 - 图1206第 十 六 章 W e b 服 务 器 的 细 节 - 图1207第 十 六 章 W e b 服 务 器 的 细 节 - 图1208第 十 六 章 W e b 服 务 器 的 细 节 - 图1209用 C+ + Bu ild e r 3 创 建 的 W e b 服 务 器 应 用 程 序 可 以 很 方 便 地 访 问 数 据 库 只 要借 助 于 T D a ta S e t T a b le P roduc e r元 件 和 T Q ue r y T a b le P roduc e r 元 件 就 可 以 从 标准 的 数 据 集 中 引 入 数 据 并 动 态 生 成 HT M L 页 面 T Q ue ry T a b le P roduc e r元 件 还能 从 H TTP 请 求 消 息 中 检 索 SQ L 语 句 的 参 数 值 从 而 实 现 满 足 特 定 需 求 的 交互 式 查 询 和 信 息 发 布

1 6.9. 1 用 TSession 管 理 与 数 据 库 的 连 接

第 十 六 章 W e b 服 务 器 的 细 节 - 图1210第 十 六 章 W e b 服 务 器 的 细 节 - 图1211第 十 六 章 W e b 服 务 器 的 细 节 - 图1212第 十 六 章 W e b 服 务 器 的 细 节 - 图1213第 十 六 章 W e b 服 务 器 的 细 节 - 图1214第 十 六 章 W e b 服 务 器 的 细 节 - 图1215第 十 六 章 W e b 服 务 器 的 细 节 - 图1216第 十 六 章 W e b 服 务 器 的 细 节 - 图1217第 十 六 章 W e b 服 务 器 的 细 节 - 图1218第 十 六 章 W e b 服 务 器 的 细 节 - 图1219第 十 六 章 W e b 服 务 器 的 细 节 - 图1220第 十 六 章 W e b 服 务 器 的 细 节 - 图1221第 十 六 章 W e b 服 务 器 的 细 节 - 图1222对 于 IS A P I或 NS A P I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 每 一 个 H TTP 请 求 消 息都 是 在 一 个 单 独 的 线 程 中 处 理 的 如 果 W e b 服 务 器 应 用 程 序 连 接 了 数 据 库的 话 每 个 线 程 都 有 可 能 涉 及 到 数 据 库 连 接 断 开 等 问 题 为 了 避 免 冲 突您 应 当 把 一 个 T S e ssio n 元 件 加 到 W e b 模 块 上 每 个 线 程 会 临 时 创 建 W e b 模 块的 一 个 新 的 实 例 由 于 W e b 模 块 上 有 T S e ssio n 元 件 因 此 每 个 线 程 就 拥 有了 自 己 的 S e ssio n 对 象 为 了 使 这 些 Se s s io n 对 象 的 名 称 各 异 您 应 当 把 T S e ssio n 元 件 的 A u to S e ssio n N a m e 特 性 设 为 T ru e

第 十 六 章 W e b 服 务 器 的 细 节 - 图1223第 十 六 章 W e b 服 务 器 的 细 节 - 图1224第 十 六 章 W e b 服 务 器 的 细 节 - 图1225第 十 六 章 W e b 服 务 器 的 细 节 - 图1226第 十 六 章 W e b 服 务 器 的 细 节 - 图1227第 十 六 章 W e b 服 务 器 的 细 节 - 图1228第 十 六 章 W e b 服 务 器 的 细 节 - 图1229对 于 CG I 或 W in - C G I 类 型 的 W e b 服 务 器 应 用 程 序 来 说 在 同 一 个 时 刻 只 能 处理 一 个 H TTP 请 求 消 息 不 存 在 多 线 程 的 问 题 因 此 如 果 W e b 服 务 器 应 用程 序 要 连 接 数 据 库 的 话 只 要 用 默 认 的 Se ss io n 对 象 就 够 了 不 必 把 T S e ssio n 元 件 加 到 W e b 模 块 上

1 6.9.2 TDat aSetTableProducer 元 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图1230第 十 六 章 W e b 服 务 器 的 细 节 - 图1231第 十 六 章 W e b 服 务 器 的 细 节 - 图1232第 十 六 章 W e b 服 务 器 的 细 节 - 图1233第 十 六 章 W e b 服 务 器 的 细 节 - 图1234第 十 六 章 W e b 服 务 器 的 细 节 - 图1235第 十 六 章 W e b 服 务 器 的 细 节 - 图1236第 十 六 章 W e b 服 务 器 的 细 节 - 图1237第 十 六 章 W e b 服 务 器 的 细 节 - 图1238第 十 六 章 W e b 服 务 器 的 细 节 - 图1239T D a ta S e t T a b le P roduc e r元 件 的 作 用 主 要 有 两 个 一 个 是 从 标 准 的 数 据 集 中 引入 数 据 为 此 您 首 先 要 把 一 个 TTa b le 元 件 或 TQ u e r y 元 件 或 T C l ie n t D a tas e t 元 件 加 到 W e b 模 块 上 然 后 设 置 T D a ta S e t T a b le P roduc e r元 件 的 D a ta S e t特 性 指定 数 据 集 如 果 要 访 问 的 数 据 库 是 固 定 不 变 的 您 可 以 在 设 计 期 设 置 D a ta S e t 特 性 如 果 要 访 问 的 数 据 库 是 不 固 定 的 甚 至 要 由 客 户 在 H TTP 请 求 消 息 中指 定 此 时 就 要 在 运 行 期 设 置 D a ta S e t特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1240第 十 六 章 W e b 服 务 器 的 细 节 - 图1241第 十 六 章 W e b 服 务 器 的 细 节 - 图1242第 十 六 章 W e b 服 务 器 的 细 节 - 图1243第 十 六 章 W e b 服 务 器 的 细 节 - 图1244第 十 六 章 W e b 服 务 器 的 细 节 - 图1245T D a ta S e t T a b le P roduc e r 元 件 与 数 据 集 之 间 无 需 借 助 于 T D ataS o u rce 元 件 因为 T D a ta S e t T a b le P roduc e r 元 件 与 一 般 的 数 据 控 件 元 件 如 TD B G r id 在 本 质 上 是不 同 的 转 换 得 到 的 HT M L 页 面 实 际 上 是 静 止 的 文 本 无 法 与 数 据 集 实 现 互动 例 如 您 无 法 用 数 据 库 导 航 器 按 钮 来 翻 滚 HT M L 页 面 上 的 记 录

第 十 六 章 W e b 服 务 器 的 细 节 - 图1246T D a ta S e t T a b le P roduc e r 元 件 的 直 接 上 级 是 T D S T ab le P ro d u cer 而

第 十 六 章 W e b 服 务 器 的 细 节 - 图1247第 十 六 章 W e b 服 务 器 的 细 节 - 图1248T D S T ab le P ro d u cer 又 是 从 T C us to m C on te n t P roduc e r 继 承 下 来 的 因 此

第 十 六 章 W e b 服 务 器 的 细 节 - 图1249T D a ta S e t T a b le P roduc e r与 前 面 介 绍 的 T P ag e P ro d u cer具 有 相 似 性 下 面 就 介 绍

第 十 六 章 W e b 服 务 器 的 细 节 - 图1250第 十 六 章 W e b 服 务 器 的 细 节 - 图1251T D a ta S e t T a b le P roduc e r元 件 的 特 性 方 法 和 事 件

C a p tio n 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1252声 明 _prope r ty S y s te m : : A n s i S tr ing C a p tion;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1253第 十 六 章 W e b 服 务 器 的 细 节 - 图1254第 十 六 章 W e b 服 务 器 的 细 节 - 图1255第 十 六 章 W e b 服 务 器 的 细 节 - 图1256第 十 六 章 W e b 服 务 器 的 细 节 - 图1257T D a ta S e t T a b le P roduc e r 元 件 能 够 把 数 据 集 转 换 为 HT M L 表 格 这 个 特 性 用 于设 置 表 格 的 头 标 C a p tio n 特 性 本 身 是 个 字 符 串 引 号 内 应 当 是 HT M L 命 令程 序 示 例 如 下

C a p tion = " < H 1 > 客 户 表 < /H 1 > " ;

C a p tio n A lig n m e n t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1258声 明 _prope r ty T H T M L C a p tionA l ign m e nt C a p tionA l ign m e n t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1259第 十 六 章 W e b 服 务 器 的 细 节 - 图1260第 十 六 章 W e b 服 务 器 的 细 节 - 图1261第 十 六 章 W e b 服 务 器 的 细 节 - 图1262这 个 特 性 用 于 设 置 标 题 与 HT M L 表 格 的 位 置 关 系 设 为 caD e fau lt表 示 让 W e b 浏 览 器 决 定 设 为 caT o p 表 示 标 题 显 示 在 表 格 的 上 面 设 为 caB o tto m 表 示 标题 显 示 在 表 格 的 下 面

C o lu m n s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1263第 十 六 章 W e b 服 务 器 的 细 节 - 图1264声 明 _prope r ty T H T M L T a b le C o lu m ns * C o lu m n s

第 十 六 章 W e b 服 务 器 的 细 节 - 图1265第 十 六 章 W e b 服 务 器 的 细 节 - 图1266第 十 六 章 W e b 服 务 器 的 细 节 - 图1267第 十 六 章 W e b 服 务 器 的 细 节 - 图1268这 个 特 性 有 点 类 似 于 TD B G r id 的 Co lu m n s 特 性 用 于 设 置 表 格 中 每 一 列 的 显示 属 性 在 HT M L 表 格 中 每 一 列 是 一 个 TH TM LT a b le C o lu m n 对 象

第 十 六 章 W e b 服 务 器 的 细 节 - 图1269第 十 六 章 W e b 服 务 器 的 细 节 - 图1270第 十 六 章 W e b 服 务 器 的 细 节 - 图1271第 十 六 章 W e b 服 务 器 的 细 节 - 图1272在 设 计 期 您 可 以 在 O b je c t In s p ecto r 中 单 击 Co lu m n s 特 性 边 上 的 省 略 号 按 钮打 开 一 个 HT M L 表 格 属 性 编 辑 器 直 接 设 置 表 格 中 每 个 列 的 属 性 如 图 16 .3 所 示

第 十 六 章 W e b 服 务 器 的 细 节 - 图1273

图 16 .3 设 置 HT M L 表 格 中 列 的 属 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1274第 十 六 章 W e b 服 务 器 的 细 节 - 图1275第 十 六 章 W e b 服 务 器 的 细 节 - 图1276第 十 六 章 W e b 服 务 器 的 细 节 - 图1277第 十 六 章 W e b 服 务 器 的 细 节 - 图1278刚 开 始 的 时 候 HT M L 表 格 属 性 编 辑 器 是 空 白 的 这 并 不 是 意 味 着 HT M L 表格 是 空 白 的 相 反 C+ + Bu ild e r 3 会 把 据 数 据 集 中 的 所 有 字 段 都 显 示 在 HT M L 表 格 中

第 十 六 章 W e b 服 务 器 的 细 节 - 图1279第 十 六 章 W e b 服 务 器 的 细 节 - 图1280如 果 不 想 显 示 所 有 的 字 段 或 者 想 在 设 计 期 设 置 列 的 属 性 您 就 得 单 击

第 十 六 章 W e b 服 务 器 的 细 节 - 图1281第 十 六 章 W e b 服 务 器 的 细 节 - 图1282第 十 六 章 W e b 服 务 器 的 细 节 - 图1283第 十 六 章 W e b 服 务 器 的 细 节 - 图1284A d d 按 钮 创 建 一 个 永 久 的 TH TM LT a b le C o lu m n 对 象 然 后 您 就 可 以 修 改它 的 属 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1285第 十 六 章 W e b 服 务 器 的 细 节 - 图1286第 十 六 章 W e b 服 务 器 的 细 节 - 图1287第 十 六 章 W e b 服 务 器 的 细 节 - 图1288第 十 六 章 W e b 服 务 器 的 细 节 - 图1289如 果 要 调 整 字 段 在 HT M L 表 格 中 的 顺 序 单 击 M ove U p 或 M o v e D o wn

第 十 六 章 W e b 服 务 器 的 细 节 - 图1290按 钮

D a ta S e t 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1291声 明 _prope r ty D b :: T D a ta S e t* D a ta S e t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1292第 十 六 章 W e b 服 务 器 的 细 节 - 图1293这 个 特 性 用 于 指 定 要 访 问 的 数 据 集 可 以 是 TTa b le TQ u e ry 以 及

第 十 六 章 W e b 服 务 器 的 细 节 - 图1294T C lien t D ataS e t

D is p a tch e r 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1295声 明 _ p ro p e r ty T C u s to m W eb D is p a tch er* D is p a tch er;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1296第 十 六 章 W e b 服 务 器 的 细 节 - 图1297通 过 这 个 特 性 可 以 得 到 T D a ta S e t T a b le P roduc e r 元 件 所 在 的 W e b 模 块 进 而 可以 访 问 H TTP 请 求 消 息 和 H TTP 响 应 消 息

H e a d e r 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1298声 明 _prope r ty C la s s e s :: T S tr ings * H e a d e r ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1299第 十 六 章 W e b 服 务 器 的 细 节 - 图1300如 果 要 在 整 个 HT M L 表 格 前 加 上 一 些 内 容 可 以 设 置 H ead e r特 性 这 是 一 个

第 十 六 章 W e b 服 务 器 的 细 节 - 图1301第 十 六 章 W e b 服 务 器 的 细 节 - 图1302T S tr ings 对 象 其 中 每 个 字 符 串 必 须 是 一 条 HT M L 命 令

F oote r 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1303声 明 _prope r ty C la s s e s :: T S tr ings * F oo te r ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1304第 十 六 章 W e b 服 务 器 的 细 节 - 图1305第 十 六 章 W e b 服 务 器 的 细 节 - 图1306第 十 六 章 W e b 服 务 器 的 细 节 - 图1307如 果 要 在 整 个 HT M L 表 格 的 最 后 加 上 一 些 内 容 可 以 设 置 F oo te r 特 性 这是 个 T S tr ings 对 象 每 个 字 符 串 必 须 是 一 条 HT M L 命 令

第 十 六 章 W e b 服 务 器 的 细 节 - 图1308第 十 六 章 W e b 服 务 器 的 细 节 - 图1309第 十 六 章 W e b 服 务 器 的 细 节 - 图1310第 十 六 章 W e b 服 务 器 的 细 节 - 图1311第 十 六 章 W e b 服 务 器 的 细 节 - 图1312注 意 C+ + Bu i ld e r 3 并 不 检 查 H ead e r特 性 和 F oo te r特 性 中 HT M L 命 令 的 语 法这 是 由 W e b 浏 览 器 检 查 的 当 您 调 用 T D a ta S e t T a b le P roduc e r元 件 的 Co n te n t函数 时 所 得 到 的 页 面 包 括 H ead e r特 性 和 F oo te r 特 性 中 HT M L 命 令 描 述 的 内 容加 上 HT M L 表 格 本 身

M a x R o w s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1313声 明 _prope r ty in t M a xR ow s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1314第 十 六 章 W e b 服 务 器 的 细 节 - 图1315第 十 六 章 W e b 服 务 器 的 细 节 - 图1316第 十 六 章 W e b 服 务 器 的 细 节 - 图1317这 个 特 性 用 于 设 置 HT M L 表 格 的 最 大 行 数 默 认 是 20 如 果 数 据 集 中 的 记 录数 超 过 M a xR ow s 超 过 的 记 录 不 会 显 示

R o w A ttrib u te s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1318声 明 _prope r ty H ttp a pp :: T H T M L T a b le R ow A ttr ibu te s * R o w A ttr ib u te s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1319第 十 六 章 W e b 服 务 器 的 细 节 - 图1320这 个 特 性 ( T H T M L T a b le R o w A ttrib u te s 对 象 ) 用 于 设 置 HT M L 表 格 中 行 的 属性 T D a taS et T a b leP ro d u cer 元 件 会 自 动 把 这 些 属 性 转 换 为 相 应 的 HT M L 标记

Ta b le A ttr ibu te s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1321声 明 _prope r ty H ttp a pp :: T H T M L T a b le A t tr ibu te s * T a b le A ttr ib u te s ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1322这 个 特 性 (T H T M L T a b le A ttrib u te s 对 象 ) 用 于 设 置 整 个 HT M L 表 格 的 属 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1323T D a ta S e t T a b le P roduc e r元 件 会 自 动 把 这 些 属 性 转 换 为 相 应 的 HT M L 标 记

C o n te n t 函 数

第 十 六 章 W e b 服 务 器 的 细 节 - 图1324声 明 v ir tu a l S y s te m ::A n s iS trin g _ fa s tc a ll C o n te n t( v o id ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1325第 十 六 章 W e b 服 务 器 的 细 节 - 图1326第 十 六 章 W e b 服 务 器 的 细 节 - 图1327第 十 六 章 W e b 服 务 器 的 细 节 - 图1328第 十 六 章 W e b 服 务 器 的 细 节 - 图1329第 十 六 章 W e b 服 务 器 的 细 节 - 图1330第 十 六 章 W e b 服 务 器 的 细 节 - 图1331调 用 这 个 函 数 开 始 对 数 据 集 中 的 记 录 进 行 转 换 此 时 将 触 发 O n C reateC o n ten t 事 件 在 处 理 O n C reateC o n ten t事 件 的 句 柄 中 如 果 把 C on tinue 参 数 设 为 T ru e C on te n t函 数 就 返 回 H ead e r 特 性 描 述 的 内 容 然 后 是 由 数 据 集 中 的 记 录 转 换得 到 的 HT M L 表 格 最 后 是 F oo te r 特 性 描 述 的 内 容 C on te n t函 数 的 返 回 值 可

第 十 六 章 W e b 服 务 器 的 细 节 - 图1332第 十 六 章 W e b 服 务 器 的 细 节 - 图1333第 十 六 章 W e b 服 务 器 的 细 节 - 图1334以 直 接 赋 值 给 T W e b R e s pons e 对 象 的 C on te n t 特 性 作 为 H TTP 响 应 消 息 中 的 内容 如 果 把 C on tinue 参 数 设 为 Fa ls e C on te n t函 数 就 返 回 空

O n C re a te C o n te n t 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图1335声 明 _prope r ty T C re a te C on te n t E v e nt O n C re a te C on te n t;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1336第 十 六 章 W e b 服 务 器 的 细 节 - 图1337其 中 T C re a te C on te n t E ve n t是 这 样 声 明 的

ty p e d e f vo id _fa s tc a l l(_c lo s u re * T C re a te C on te n t E ve n t) ( T O b je c t* S e nde r , boo l & C on tinue ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1338第 十 六 章 W e b 服 务 器 的 细 节 - 图1339当 调 用 C on te n t 函 数 时 会 触 发 这 个 事 件 如 果 把 C on tinue 参 数 设 为 Fa ls e

第 十 六 章 W e b 服 务 器 的 细 节 - 图1340第 十 六 章 W e b 服 务 器 的 细 节 - 图1341C on te n t函 数 不 再 继 续 转 换 并 返 回 空 字 符 串

O n F o r m a t C e ll 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图1342声 明 _prope r ty T H T M L F orm a t C e l l E ve nt O n F o rm a t C e l l;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1343第 十 六 章 W e b 服 务 器 的 细 节 - 图1344其 中 TH TM LF o rm a t C e l l E v e n tl是 这 样 声 明 的

ty p e d e f vo id _ fa s tc a ll (_ c los ure * T H T M L F o rm a t C e ll E v e n t) ( S y s te m :: T O b je c t* S e nde r , in t C e ll R ow , in t C e ll C o lu m n, S y s te m :: A n s i S tr ing & B gC o lor, H ttp a pp :: T H T M L A lign & A lign, H t tp a p p :: T H T M L V A l ign & V A lign, A n s i S tr ing & C u s to m A ttrs , S y s te m : : A n s i S tr in g & C e llD a ta ) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1345第 十 六 章 W e b 服 务 器 的 细 节 - 图1346在 转 换 的 函 数 中 每 个 单 元 都 会 触 发 O n F o rm a t C e ll事 件 这 样 您 就 有 机 会 自

第 十 六 章 W e b 服 务 器 的 细 节 - 图1347第 十 六 章 W e b 服 务 器 的 细 节 - 图1348第 十 六 章 W e b 服 务 器 的 细 节 - 图1349第 十 六 章 W e b 服 务 器 的 细 节 - 图1350第 十 六 章 W e b 服 务 器 的 细 节 - 图1351第 十 六 章 W e b 服 务 器 的 细 节 - 图1352第 十 六 章 W e b 服 务 器 的 细 节 - 图1353第 十 六 章 W e b 服 务 器 的 细 节 - 图1354己 定 义 这 个 单 元 中 的 内 容 和 外 观 C e ll Ro w 参 数 和 C e ll Co lu m n 参 数 是 单 元 所在 的 行 号 和 列 号 您 可 以 设 置 Bg Co lo r A lig n V A lig n Cu s to m A t trs 等 参 数来 改 变 单 元 的 外 观 C e ll D a ta 参 数 是 单 元 中 要 显 示 的 内 容 默 认 是 字 段 的 值

第 十 六 章 W e b 服 务 器 的 细 节 - 图1355您 可 以 修 改

O n G e t Ta b le C a p tio n 事 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图1356声 明 _prope r ty T H T M L G e t T a b le C a p tio n E ve nt O n G e t T a b le C a p tion;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1357第 十 六 章 W e b 服 务 器 的 细 节 - 图1358其 中 TH TM LG e t Ta b le C a p t io n E v e n t是 这 样 声 明 的

ty pe de f v o id _ fa s tc a l l (_ c los ure ∗ T H T M L G et T a b leC ap t io n E ven t) ( T O b ject∗ S e nd e r , A n s i S tr in g & C aptio n, T H T M L C a p tio n A lig n m e n t & A lig n m e n t) ;

第 十 六 章 W e b 服 务 器 的 细 节 - 图1359当 将 要 生 成 HT M L 表 格 的 标 题 时 触 发 这 个 事 件 您 可 以 设 置 C a p tio n 参 数 和

第 十 六 章 W e b 服 务 器 的 细 节 - 图1360A lig n m e n t参 数 改 变 标 题 的 排 列 方 式

1 6.9.3 TQue ryTableProducer 元 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图1361第 十 六 章 W e b 服 务 器 的 细 节 - 图1362第 十 六 章 W e b 服 务 器 的 细 节 - 图1363第 十 六 章 W e b 服 务 器 的 细 节 - 图1364与 T D a ta S e t T a b le P roduc e r 元 件 一 样 T Q ue r y T a b le P roduc e r 元 件 也 是 个 HT M L 页 面 生 成 器 不 同 的 是 T Q ue ry T a b le P roduc e r 元 件 能 够 基 于 对 数 据 库 的 查询 结 果 生 成 HT M L 表 格

第 十 六 章 W e b 服 务 器 的 细 节 - 图1365第 十 六 章 W e b 服 务 器 的 细 节 - 图1366第 十 六 章 W e b 服 务 器 的 细 节 - 图1367第 十 六 章 W e b 服 务 器 的 细 节 - 图1368第 十 六 章 W e b 服 务 器 的 细 节 - 图1369第 十 六 章 W e b 服 务 器 的 细 节 - 图1370第 十 六 章 W e b 服 务 器 的 细 节 - 图1371第 十 六 章 W e b 服 务 器 的 细 节 - 图1372第 十 六 章 W e b 服 务 器 的 细 节 - 图1373对 数 据 库 的 查 询 实 际 上 还 是 通 过 BD E 的 查 询 引 擎 进 行 的 因 此 您 必 须 把一 个 TQ u e ry 元 件 放 到 W e b 模 块 上 设 置 它 的 D a ta b a s e N a me 特 性 指 定 要 访 问的 数 据 库 设 置 它 的 SQ L 特 性 指 定 要 执 行 的 SQ L 语 句 如 果 您 要 构 造 很 复 杂的 多 表 查 询 建 议 您 先 用 C+ + Bu i ld e r 3 中 的 S Q L B u ild e r可 视 化 地 建 立 查 询然 后 把 得 到 的 SQ L 语 句 复 制 给 TQ u e ry 元 件 的 SQ L 特 性 最 后 设 置T Q ue ry T a b le P roduc e r元 件 的 Q u e ry 特 性 指 定 TQ u e r y 元 件

第 十 六 章 W e b 服 务 器 的 细 节 - 图1374第 十 六 章 W e b 服 务 器 的 细 节 - 图1375T Q ue ry T a b le P roduc e r元 件 能 够 自 动 从 H TTP 请 求 消 息 中 检 索 UR L 所 附 带 的 参数 如 果 客 户 的 请 求 类 型 是 GE T 通 过 T W e b R e que s t对 象 的 Q u e r y F ie ld s 特 性

第 十 六 章 W e b 服 务 器 的 细 节 - 图1376第 十 六 章 W e b 服 务 器 的 细 节 - 图1377第 十 六 章 W e b 服 务 器 的 细 节 - 图1378第 十 六 章 W e b 服 务 器 的 细 节 - 图1379可 以 得 到 UR L 中 附 带 的 参 数 如 果 客 户 的 请 求 类 型 是 PO ST 通 过T W e b R e que s t对 象 的 C o n te n tF ie ld s 特 性 可 以 得 到 UR L 中 附 带 的 参 数 如 果 UR L 附 带 的 某 个 参 数 的 名 称 与 SQ L 语 句 中 某 个 参 数 的 名 称 匹 配

第 十 六 章 W e b 服 务 器 的 细 节 - 图1380T Q ue ry T a b le P roduc e r 元 件 就 把 该 参 数 的 值 赋 给 SQ L 语 句 中 与 之 匹 配 的 参数

第 十 六 章 W e b 服 务 器 的 细 节 - 图1381第 十 六 章 W e b 服 务 器 的 细 节 - 图1382第 十 六 章 W e b 服 务 器 的 细 节 - 图1383第 十 六 章 W e b 服 务 器 的 细 节 - 图1384T Q ue ry T a b le P roduc e r元 件 的 特 性 方 法 和 事 件 与 T D ataS e t T a b leP ro d u cer 元 件几 乎 完 全 相 同 为 了 节 省 篇 幅 此 处 不 再 赘 述