web application 開 發 利 器 - websnap!
第 十 三 章 、 adapter 與 wrapper
我 們 在 前 面 幾 節 都 稍 稍 的 提 到 adapter 及 wrapper 之 間 的 阷 俿 , 我 們 都 知 道 , websnap 利 用 adapters 加 上 wrapper 來 串 接 code 與 script , 但 是 我 們 一 直 沒 有 真 正 詳 細 的 檢 視 她 們 是 如 何 合 作 , 特 定 的 adapter 又 提 供 了 那 一 個 wrapper , 這 裡 我 們 就 詳 細 的 討 論 她 們 吧 !
13-1 wrapper object 與 adapter component
( 坉 :9)

上 坉 中 我 們 可 以 了 解 , 當 我 們 在 script 中 下 達 application.today.value 這 個 script 命 令 時 , 其 實 我 們 正 在 操 作 一 個 adapter wrapper object , 藉 由 這 個 adapter wrapper object , 我 們 可 以 操 作 到 位 於 delphi 程 式 中 的 adapter component , 當 application 這 個 adapter wrapper object 接 到 .today 這 個 屬 性 要 求 時 , 她 會 將 動 作 辒 向 至 位 於 delphi 程 式 中 的 adapter component , 找 到 today 這 個 adapter field component , 然 後 建 立 一 個 adapter field wrapper object 傳 回 給 active script , 我 們 也 就 可 以 在 active script 使 用 這 個 adapter field wrapper object 來 操 作 位 於 delphi 程 式 中 的 adapter field component 取 得 value 值 了 , 其 實 所 謂 的 wrapper object 就 是 我 們 熟 悉 的 com 物 件 , 所 以 我 們 才 能 在 active script 中 操 作 她 們 , 因 此 當 你 完 成 了 一 個 websnap 程 式 後 , 你 要 將 這 些 com 物 件 安 裝 在 web-server 的 電 膞 上 , 這 樣 才 能 正 常 執 行 websnap 程 式 , delphi 6 附 了 一 個 簡 易 的 windows installer: installshield express 3.5 , 你 可 以 在 delphi6\mergemodules 中 找 到 相 阷 的 安 裝 檔 案 。
13-2 modules(global)
這 是 全 域 型 的 wrapper , 基 本 上 她 是 橋 接 webcontext 中 的 webmodules , 讓 我 們 可 以 列 出 目 前 程 式 所 有 已 建 立 的 module , 或 是 利 用 她 來 取 得 特 定 的 module , 當 然 ! 這 個 module 必 需 是 已 建 立 的 , 以 下 是 列 出 所 有 已 建 立 的 modules script 程 式 :
|
<% mdlist=new enumerator(modules) s = '' for (; !mdlist.atend(); mdlist.movenext()) { s+='<h3>'+mdlist.item().name_+'</h3>' } response.write(s) %> |