首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ Builder 開發 Web 應用程式入門

     編輯:關於C++

Web 應用程式運行於伺服器端,接收 HTTP 請求並動態產生 HTML 回應。C++ Builder 將 CGI、ISAPI/NSAPI 等不同 Web 架構封裝為統一元件模型,開發者只需專注於業務邏輯,即可輕鬆建立跨平台的 Web 應用。本文透過兩個範例,完整示範從專案建立到部署測試的全流程。

核心架構概念

  • Web Module:管理 TWebActionItem 集合,路由 HTTP 請求。
  • TWebRequest:封裝 HTTP 請求資訊(QueryFields、ContentFields 等)。
  • TWebResponse:封裝 HTTP 回應,核心屬性 Content 為輸出 HTML。
  • TWebDispatcher:根據 PathInfo 分派請求至對應 Action Item。
  • TPageProducer:以 HTML 模板 + 標籤替換產生動態頁面。

範例一:最簡單的 Web 程式

1. 建立專案

File → New → Web Server Application → 選 CGI Stand-alone executable(除錯方便,後續可轉 ISAPI)。

2. 新增 Action Item

右鍵 WebModule → Action Editor → Add → 設定 PathInfo = /hello、Default = true。

3. 撰寫 OnAction 事件

void __fastcall TWebModule1::WebModule1WebActionItem1Action(
    TObject *Sender, TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
    AnsiString html = "

Hello!


Now is " + TimeToStr(Time()) + "

"; Response->Content = html; }

4. 測試

編譯產生 project1.exe,置於 Web 伺服器可執行目錄(需執行權限),瀏覽器訪問 https://server/cgi-bin/project1.exe/hello 即見問候與時間。

範例二:處理使用者輸入的 Web 程式

1. 新增 Action Item 2:顯示輸入表單

  • PathInfo = /form
  • 放置 PageProducer1,HTMLDoc 設為表單 HTML(含 method="POST" action="/project1.exe/t3")。
  • OnAction:Response->Content = PageProducer1->Content();

2. 新增 PageProducer2:處理結果頁面

Thank You!

您好 <#T1>!

感謝您填寫問卷,您的 E-mail 為 <#T2>,我們將與您聯繫!

3. PageProducer2 OnHTMLTag 事件

void __fastcall TWebModule1::PageProducer2HTMLTag(
    TObject *Sender, TTag Tag, const AnsiString TagString,
    TStrings *TagParams, AnsiString &ReplaceText)
{
    ReplaceText = Request->QueryFields->Values[TagString] +
                  Request->ContentFields->Values[TagString];
}

4. 新增 Action Item 3:處理表單送出

  • PathInfo = /t3
  • OnAction:Response->Content = PageProducer2->Content();

CGI vs ISAPI/NSAPI 選擇指南

特性CGIISAPI/NSAPI
進程模型每請求一進程DLL 載入伺服器進程
效能較低(進程建立開銷)高(記憶體常駐)
除錯難度容易(獨立 EXE)困難(DLL 鎖定)
建議策略開發/除錯階段正式部署階段

部署注意事項

  1. CGI 目錄需設定「執行」權限;ISAPI DLL 目錄需設定「腳本」權限。
  2. ISAPI DLL 更新時需先停止 Web 服務或使用 inetinfo.exe 重啟才能覆蓋。
  3. 正式環境建議將 CGI 專案轉為 ISAPI:專案選項 → 專案類型 → ISAPI/NSAPI Dynamic Library。

掌握 WebModule 與 Action Item 的運作機制,即可用 C++ Builder 高效開發各類伺服器端 Web 應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved