ISAPI 實用技術指南

et資料庫連線器)1.3其他可選擇的開發工具1.3.1OLEISAPI1.3.2活動伺服器頁面(ActiveServerPages)1.3.3第三方解決方案1.4基於ISAPI的解決方案1.4.1性能1.4.2靈活性1.4.3擴展DLL1.4.4過濾器1.4.5用ISAPI編程1.5小結第2章 理解LSAPI過濾器7.1過濾器定義7.21SAPI過濾器和擴展7.2.1ISAPI過濾器應用程式7.31SAPI過濾器的壽命周期7.3.1裝載和卸載過濾器7.3.2配置過濾器7.4ISAPI過濾器DLL入口點7.4.1GetFilterVersion 使用DelphiISAPI應用程式框架13.1設計目標13.2使用ISAPI應用程式框架13.2.1為你的擴展建立一個新項目程式13.2.2用ISAPICOMMAND域準備HTML表單13.2.3編寫並註冊一個類來處理請求13.2.4HTTPServerCon

內容介紹

內容提要
本書由經驗豐富的專家編寫,全書針對具體任務、基於實際解決方案,詳細講述了完成IS-
API編程的各個方面,內容包括:如何從資料庫中提取多媒體檔案,如何開發一個訊息庫,怎樣
通過過濾器增強日誌,用Delphi編寫與調試ISAPI程式。另外,本書通過一些生動的實例來證明
方案的有效性,針對完成特定的任務提供了可編譯運行的原始碼,並詳細介紹了如何有效利用
過濾器的技巧來完成ISAPI應用程式,以實現功能強大的互動式Web站點的開發。通過本書你
還能針對自己項目的特殊需要提出更合理的設計。
本書面向網路套用與開發人員。

作品目錄

目錄
第1章 Internet信息伺服器的編程選擇
1.1CGI(公共網關接口)
1.2IDC(Internet資料庫連線器)
1.3其他可選擇的開發工具
1.3.1OLEISAPI
1.3.2活動伺服器頁面(ActiveServerPages)
1.3.3第三方解決方案
1.4基於ISAPI的解決方案
1.4.1性能
1.4.2靈活性
1.4.3擴展DLL
1.4.4過濾器
1.4.5用ISAPI編程
1.5小結
第2章 使用IDC
2.1什麼是IDC
2.2何時使用IDC
2.3IDC編程基礎
2.3.1IDC檔案
2.3.2.HTX檔案
2.4高級IDC編程
2.4.1理解IDC 處理請求的順序
2.4.2使用多資料庫查詢
2.4.3檢索計算域的值
2.4.4使用多值變數
2.4.5HTML中的特殊字元處理
2.4.6保證系統的安全
2.5IIS1.x和IIS2.0之間的區別
2.5.1多資料庫查詢
2.5.2適當的條件嵌套
2.6小結
第3章IDC應用程式示例
3.1應用程式目標
3.1.1訊息的組織
3.1.2發布新訊息
3.1.3主題搜尋
3.1.4安全
3.2訊息庫應用程式數據模型
3.2.1訊息
3.2.2議題
3.2.3用戶
3.2.4空白表
3.3訊息庫應用程式用戶界面
3.4訊息庫應用程式實現要點
3.4.1訪問故障排除
3.4.2配置系統
3.4.3提供資料庫中的初始數據
3.4.4通過程式傳播數值
3.4.5排序訊息回響
3.4.6實現多頁搜尋結果
3.5訊息庫應用程式的實現
3.5.1Welcome/Login頁
3.5.2MainPage
3.5.3ConferenceMessageList頁
3.5.4ViewMessage頁
3.5.5PostaFollow-Up頁
3.5.6PostaNewTopic頁
3.5.7SearchRequest頁
3.5.8ViewSeachResults頁
3.6小結
第4章 MFC中的基本表單處理
4.1Web表單
4.2ISAPI處理表單的優點
4.3在ISAPI表單處理中使用MFC的優點
4.4表單處理的一個簡單的ISAPI擴展
4.4.1設計表單
4.4.2表單的HTML
4.4.3處理表單數據的一個ISAPI擴展
4.4.4表單處理邏輯
4.5HTML中的表單
4.5.1表單
4.5.2輸入域
4.5.3選擇列表
4.5.4文本區域
4.6MFCPARSE MAP
4.6.1BEGIN-PARSE-MAP
4.6.2ON-PARSE-COMMAND
4.6.3ON-PARSE-COMMAND-PARAMS
4.6.4DEFAULT-PARSE-COMMAND
4.6.5END-PARSE-COMMAND
4.7一個更高級的表單處理例子
4.7.1表單和有效驗證
4.7.2進程
4.7.3調用表單
4.7.4動態產生的HTML
4.7.5處理用戶的輸入
4.7.6動態產生HTML的優缺點
4.8潛在的表單處理問題
4.8.1ISAPI擴展的故障排除
4.8.2GET命令問題
4.8.3mfcISAPICommand參數
4.9何時PARSEMAP不工作
4.9.1帶有可變內容的表單
4.9.2多值域
4.10小結
第5章 從資料庫中抽取多媒體圖像
5.1動態多媒體網頁創建
5.1.1在資料庫中不僅僅存檔圖像
5.1.2生成工具
5.2MIME類型
5.2.1更多有關MIME類型的內容:StartContent()的調用
5.3嵌入ISAPI回響調用
5.3.1在一個ODBC資料庫中存儲BLOB
5.4圖像抽取模組
5.4.1使用CRecordset抽取圖像
5.4.2測試驅動mmGet擴展
5.5執行緒安全(thread-safe)的圖像抽取
5.6高級話題
5.6.1擴展性,使用worker執行緒
5.6.2用信號燈最佳化執行緒訪問
5.6.3在註冊表中存儲資料庫用戶的名字和口令
5.6.4增強資料庫用戶的許可權管理
5.6.5使用cookie保持狀態
5.7ISAPI擴展的故障排除
5.8小結
第6章 開發E-mail網關
6.1SMTP概述
6.2從網頁傳送郵件的最簡單方法
6.3捕獲關鍵信息
6.4實現一個SMTPMailerDLL
6.4.1SMTPMailerAPI
6.4.2實現SMTPMailer
6.5SMTPMailer的測試
6.6採用SMTPMailer的ISAPI擴展
6.7LiteMailSMTP網關ISAPI擴展
6.8小結
第7章 理解LSAPI過濾器
7.1過濾器定義
7.21SAPI過濾器和擴展
7.2.1ISAPI過濾器應用程式
7.31SAPI過濾器的壽命周期
7.3.1裝載和卸載過濾器
7.3.2配置過濾器
7.4ISAPI過濾器DLL入口點
7.4.1GetFilterVersion()函式
7.4.2HttpFilterProc()函式
7.5執行緒
7.5.1資源管理
7.5.2環境管理
7.6記憶體管理
7.6.1使用AllocMem()作記憶體管理
7.6.2使用通知作記憶體管理
7.7用C建立一個過濾器
7.7.1實現一個簡單的過濾器
7.7.2運行過濾器
7.7.3理解過濾器輸出
7.8MFC過濾器支持
7.8.1CHttpFilter
7.8.2一個基於MFC的GetFilterVersion()函式
7.8.3CHttpFilterContext類
7.9小結
第8章 用過濾器增強IIS日誌
8.1IIS日誌
8.1.1記錄文本檔案
8.1.2記錄到資料庫
8.1.3確定在何處以及如何存儲數據
8.2過濾日誌事件
8.2.1過濾日誌事件的理由
8.2.2增加新域給日誌
8.2.3更改已有日誌域
8.3一個簡單的日誌過濾器
8.3.1設計ISAPI日誌過濾器
8.3.2實現CExtraDataFilter::GetFilterVersion()
8.3.3用Onlog()函式處理日誌通知
8.4有效地使用日誌過濾器
8.4.1避免耗時的操作
8.4.2使用離線選擇
8.5小結
第9章 基於客戶瀏覽器重定向
9.1為什麼以用戶瀏覽器為基礎進行重定向
9.1.1最佳化站點還是使站點更具普遍性
9.1.2自動選頁的手工執行
9.2用過濾器重定向
9.3用擴展重定向
9.4描述瀏覽器功能
9.4.1識別遠程瀏覽器
9.4.2建立一個瀏覽器功能機制
9.5實現一個重定向擴展
9.5.1要求
9.5.2聲明擴展類
9.5.3定義PARSEMAP
9.5.4初始化重定向擴展
9.5.5處理Ifsupported命令
9.6實現重定向過濾器
9.6.1要求
9.6.2為重定向過濾器選擇通知方
9.6.3設計傳送
9.6.4聲明過濾器類
9.6.5實現GetFilterVersion()函式
9.6.6實現OnPreProcHeaders()函式
9.7小結
第10章 用過濾器驗證
10.1驗證與安全性
10.2在HTTP1.1中驗證
10.2.1Challenge/Response進程
10.2.2驗證方案
10.3驗證和WindowsNT安全
10.3.1匿名用戶
10.3.2安全環境和IIS
10.3.3NT訪問許可權和驗證
10.4驗證過濾器
10.4.1驗證過濾器做什麼
10.4.2為什麼使用驗證過濾器
10.5設計和實現驗證過濾器
10.5.1數據存儲要求
10.5.2執行效率要求
10.5.3設計過濾器
10.5.4實現過濾器
10.6小結
第11章 高級表單處理
11.1MFCPARSEMAP的局限性
11.2MFCISAPI支持的優點
11.3設計一種機制來支持靈活表單內容
11.3.1需要的功能
11.3.2環境特徵
11.4使用未提供文檔的MFC來擴展或增強MFC
11.4.1什麼是未被提供文檔的MFC
11.4.2未被提供文檔的MFC代碼的風險和回報
11.4.3使用未被提供文檔的MFC的基本原理
11.5實現處理可變表單內容的增強
11.5.1擴展CHttpServer
11.5.2用CHttpFieldTable類管理數據
11.6在一個ISAPI擴展中使用CHttpFieldServer類
11.6.1轉換一個MFCISAPI擴展來使用FieldTable類
11.6.2一個域表擴展樣本
11.7小結
第12章 使用BorlandDelphi2.0的ISAPI編程
12.1使用Delphi的好處
12.2ISAPI中Delphi的局限性
12.2.1在ISAPI程式中沒有用戶接口
12.2.2資料庫問題
12.2.3缺少開發ISAPI套用的應用程式框架
12.3Delphi與C十十ISAPI編程
12.3.1數據類型對應
12.3.2MFC或其他框架不可用
12.4用Delphi寫一個ISAPI應用程式
12.4.11SAPIExt單元
12.4.2在DLL中提供ISAPI應用程式入口點
12.4.3使用ECB與伺服器互動
12.4.4檢索頭部信息和伺服器變數
12.4.5解釋請求
12.4.6傳送數據給用戶
12.4.7保持狀態信息:使用Cookies
12.5編寫一個ISAPI過濾器
12.6小結
第13章 使用DelphiISAPI應用程式框架
13.1設計目標
13.2使用ISAPI應用程式框架
13.2.1為你的擴展建立一個新項目程式
13.2.2用ISAPICOMMAND域準備HTML表單
13.2.3編寫並註冊一個類來處理請求
13.2.4HTTPServerContext對象
13.2.5檢索表單的域值
13.2.6檢索頭檔案信息和伺服器變數
13.2.7傳送頭檔案給用戶
13.2.8獲取對參數和Cookies的直接訪問
13.2.9寫數據給用戶
13.2.10處理異常
13.3建立一個簡單的請求處理程式
13.3.1溫度轉換請求
13.3.2溫度轉換請求處理程式
13.4高級專題
13.4.1HTTPUtil工具類
13.4.2讀寫Cookies
13.4.3寫二進制數據給用戶
13.4.4直接訪問特殊函式的ECB
13.5DelphiISAPI應用程式框架如何工作
13.5.1作為函式符的請求處理程式
13.5.2類註冊和對象工廠
13.5.3檢索輸入數據
13.5.4保存和傳送頭部
13.5.5異常結構
13.6小結
第14章 調試ISAPI過濾器
14.1重入
14.2代碼的關鍵部分(Critica1Section)
14.3記憶體泄漏
14.4在WindowsNT下調試
14.4.1在調試器中瀏覽代碼
14.4.2建立調試
14.4.3在調試器中裝入Web伺服器
14.4.4用OutputDebugString()函式調試
14.4.5用MessageBox()函式調試
14.4.6更方便的調試方法提示
14.4.7用ISMOKE.EXE調試
14.4.8用CGIWRAP調試
14.5使之完善
14.5.1ASSERT語句
14.5.2運行時調試庫
14.5.3提供錯誤訊息
14.5.4強化測試
14.5.5用Hammer強化測試
14.6小結
附錄AISAPI函式、結構和常量
A.1擴展
A.1.1DLL入口
A.1.2回調
A.2過濾器
A.2.1DLL入口點
A.2.2回調
附錄B建立一個系統數據源名
B.1增加一個系統數據源名
B.2配置一個訪問系統數據源名
B.3配置SQL伺服器的系統DSN
附錄C HTTP狀態碼
附錄D 伺服器變數
附錄E 常用的頭部
附錄F 光碟上有什麼?
F.1原始碼
F.2開發工具
F.3文獻
F.4ISAPI組件
F.5網路連結

相關搜尋

熱門詞條

聯絡我們