使用組件與對象(轉自IIS5.0文檔)
發表時間:2024-01-15 來源:明輝站整理相關軟件相關文章人氣:
[摘要]使用組件和對象COM 組件是建立強大而實際的 Web 應用程序的關鍵。組件提供了在腳本中用來執行專門任務的功能,如執行金融交易或驗證數據等。ASP 還提供有一套用以大大增強腳本性能的基本組件。 關于組件COM 組件是可重復使用的編程模塊,其中包含用于執行一項或一組任務的代碼。組件可以(甚至通過網絡...
使用組件和對象
COM 組件是建立強大而實際的 Web 應用程序的關鍵。組件提供了在腳本中用來執行專門任務的功能,如執行金融交易或驗證數據等。ASP 還提供有一套用以大大增強腳本性能的基本組件。 關于組件
COM 組件是可重復使用的編程模塊,其中包含用于執行一項或一組任務的代碼。組件可以(甚至通過網絡)與其他組件合并,共同創建 Web 應用程序。COM 對象執行公共任務以便不必自己創建代碼來執行這些任務。例如,可以在 Web 頁上使用股票接收機組件顯示最新的股價信息。不過,創建具有同樣功能的腳本并不輕松。同樣,腳本無法象組件一樣能夠重復利用。
如果您對腳本編輯還不太熟悉,可以編寫使用組件的腳本而無需了解組件的工作原理。ASP 中帶有可以立即使用的基本組件。例如,可以使用 ActiveX Data Objects (ADO) 組件向 Web 頁添加數據庫連接性。還可以從第三方開發商獲得其他組件。
如果您是 Web 應用程序的開發人員,要將您的業務程序封裝為可重復使用的安全模塊,那么利用組件是最好的方法。例如,可以從處理銷售訂單的腳本中調用組件來驗證信用卡號。由于驗證獨立于該訂購過程,因此可以在信用卡驗證過程發生變更時更新組件,而不必改動您的訂購過程。同樣,由于 COM 組件是可重復使用的,因此可以在其他腳本和應用程序中重復利用。一旦在 Web 服務器中安裝了組件,便可以從 ASP 服務器端腳本 ISAPI 擴展、服務器上的其他組件或用其他 COM 兼容語言編寫的程序中調用它。
可以用任何支持組件對象模型 (COM) 的編程語言(如 C、C++、Java、Visual Basic 或大量腳本編輯語言)創建組件。(如果熟悉 COM 編程的話,COM 組件也稱自動服務器)。要在 Web 服務器上運行,COM 組件不能具有任何圖形用戶界面元素,如 Visual Basic 的 MsgBox 函數;圖形用戶元素只可在服務器上查看,而不能在瀏覽器上查看。 創建組件對象的實例
組件是包含動態鏈接庫 (.dll) 或可執行 (.exe) 文件的可執行代碼。組件可提供一個或多個“對象”,這是一種自包含的代碼單元,可以在組件中執行指定的功能。每個對象都具有方法(編程過程)和屬性(行為屬性)。要使用由組件提供的對象,可以創建對象實例并為新的實例分配變量名稱。使用 ASP 的 Server.CreateObject 方法或在 HTML 中使用 <OBJECT> 標記可創建對象實例。使用腳本語言變量賦值語句可為對象實例指定名稱。創建對象實例時,必須提供其注冊名 (PROGID)。對于 ASP 提供的基本組件,可以從參考頁(請參閱 ASP 中的可安裝組件)中獲得對象的 PROGID。
例如,Ad Rotator 組件可在以系列圖形廣告中進行隨機旋轉。Ad Rotator 組件提供了一個對象,Ad Rotator 對象,其 PROGID 為“MSWC.AdRotator”。要創建一個 Ad Rotator 對象實例,可使用以下語句:
VBScript:<% Set MyAds = Server.CreateObject("MSWC.AdRotator") %>
JScript:<% var MyAds = Server.CreateObject("MSWC.AdRotator") %>
如果熟悉 VBScript 或 JScript,請注意不要使用腳本語言函數創建新的對象實例(VBScript 中為“CreateObject”;JScript 中為“New”)。必須使用 ASP 的 Server.CreateObject 方法,否則,ASP 將無法跟蹤腳本中對象的使用情況。
還可以使用 HTML 的 <OBJECT> 標記創建對象實例。必須提供帶有 Server 值的 RUNAT 屬性,同時還應提供 ID 屬性以設置將在腳本中使用的變量名稱。使用注冊名 (PROGID) 或注冊碼 (CLSID) 都可以標識對象,以下示例使用注冊名創建 Ad Rotator 對象的實例:<OBJECT RUNAT=Server ID=MyAds PROGID="MSWC.AdRotator"></OBJECT>
以下示例使用注冊碼 (CLSID) 創建 Ad Rotator 對象的實例:<OBJECT RUNAT=SERVER ID=MyAdsCLASSID="Clsid:1621F7C0-60AC-11CF-9427-444553540000"></OBJECT> 使用腳本創建 COM 組件
ASP 支持 Windows Script Components,這是 Microsoft 提供的用來創建 COM 組件的功能強大的腳本技術。尤其是,您可以將用于數據庫訪問或內容生成等的通用腳本封裝在可重復利用的組件中,以便在任何 .asp 文件或程序中使用。無需特殊的開發工具,使用 VBScript 或 JScript 編寫腳本即可創建 Windows 腳本組件。也可以將 Windows 腳本組件與使用 COM 兼容編程語言編寫的程序相結合,如 Visual Basic、C++ 或 Java 等。
下面是一個用 VBScript 編寫的腳本示例,它定義了將華氏溫度值轉換為攝氏溫度值的方法:<SCRIPTLET><Registration Description="ConvertTemp" ProgID="ConvertTemp.Scriptlet" Version="1.00"></Registration><implements id=Automation type=Automation> <method name=Celsius> <PARAMETER name=F/> </method> <method name=Fahrenheit> <PARAMETER name=C/> </method></implements><SCRIPT LANGUAGE=VBScript>Function Celsius(F) Celsius = 5/9 * (F - 32)End FunctionFunction Fahrenheit(C) Fahrenheit = (9/5 * C) + 32End Function</SCRIPT></SCRIPTLET>
在執行該 Windows 腳本組件之前,必須以 .sct 為擴展名保存該文件,然后在“Windows 資源管理器”中,右鍵單擊該文件并選擇“注冊”。要在 Web 頁中使用該 Windows 腳本組件,應使用類似以下所示的服務器端腳本:<%Option ExplicitDim objConvertDim sngFvalue, sngCvaluesngFvalue = 50sngCvalue = 21Set objConvert = Server.CreateObject("ConvertTemp.Scriptlet")%><%= sngFvalue %> degrees Fahrenheit is equivalent to <%= objConvert.Celsius(sngFvalue) %> degrees Celsius<BR><%= sngCvalue %> degrees Celsius is equivalent to <%= objConvert.Fahrenheit(sngCValue) %> degrees Fahrenheit<BR>使用 ASP 內建的對象
ASP 還提供有執行簡化 Web 開發任務的內建對象。例如,可以使用 Request 對象輕松訪問與 HTTP 請求相關聯的信息,如從 HTML 表單或 cookie 中得到的用戶輸入等。與使用 COM 組件所提供的對象不同,在腳本中使用實例時無需創建 ASP 內建對象的實例。這些對象在開始處理 ASP 請求時將自動創建。使用內建對象的方法和屬性與使用組件對象的方法和屬性的方式(已在上一主題中說明)相同。關于內建對象的完整說明,請參閱 Active Server Pages 對象快速參考卡。 調用對象方法
“方法”是可在對象上或使用對象執行的操作。調用方法的語法為:
Object.Method parameters
parameters 根據方法的不同而有所不同。
例如,可以使用 Response 內建對象的 Write 方法將信息發送到瀏覽器,如以下語句所示:<% Response.Write "Hello World" %>
注意 某些腳本語言不支持 Object.Method 語法。如果使用的語言不支持,必須添加注冊表條目以便將該語言作為主腳本語言。詳細信息,請參閱使用腳本語言。 設置對象屬性
“屬性”用于說明對象的特征。屬性定義對象類型等對象特征,或說明啟用或禁用等對象狀態。語法為:
Object.Property
有時可以讀取和設置屬性的值。此外,某些對象可以添加新的屬性。
例如 Ad Rotator 組件具有屬性 Border,它用于指定廣告是否具有邊框并確定邊框的粗細。下面的表達式指定不使用邊框:<% MyAds.Border = 0 %>
對于某些屬性,可以使用 ASP 輸出命令來顯示當前值。例如,以下語句在瀏覽器仍與服務器連接時返回 TRUE:<%= Response.IsClientConnected %>從 Java 類中創建對象
要使用 Server.CreateObject 創建 Java 類的實例,必須使用 JavaReg 程序將類注冊為 COM 組件。然后便可使用 Server.CreateObject 方法或 HTML 的<OBJECT> 標記和 PROGID 或 CLSID。
作為選擇,還可以使用 Java monikers 提供的機制直接實例化 Java 類,而不使用 JavaReg 程序。要通過 monikers 將類實例化,可使用 VBScript 或 JScript 的 GetObject 語句,并提供 Java 類的完整名稱,格式為:java:類名。下面的 VBScript 示例將創建 Java Date 類的實例。<%Dim dtmDateSet dtmDate = GetObject("java:java.util.Date")%>日期是 <%= dtmDate.toString() %>
由調用 GetObject 代替 Server.CreateObject 而創建的對象也可使用 ASP 內建的對象并參與事務操作。要使用 Java monikers,必須使用 Microsoft 虛擬機的 2.0 版或更高版本。