ASP編程之ActiveX組件

來源:互聯網
上載者:User
active|activex|編程

  從今天開始我們將正式學習 ASP 的精華部分 --ActiveX 組件。事實上,當你用 ASP 編寫伺服器端應用程式時,必須依靠 ActiveX 組件來強大 Web 應用程式的功能,譬如:你需要串連資料庫,對資料庫進行線上操作或者對 WEB 伺服器上的檔案系統進行操作,亦或你需要一個 WEB 廣告交換程式,所有這一切你都必須通過調用 ASP 內建的 ActiveX 組件或自己編寫所需的組件來完成。

   那麼,究竟什麼是 ActiveX 組件呢?它又是如何運作的呢?其實 ActiveX 組件是一個存在於 WEB 伺服器上的檔案,該檔案包含執行某項或一組任務的代碼,組件可以執行公用任務,這樣就不必自己去建立執行這些任務的代碼。例如,股票行情收報機組件可以在 Web 頁上顯示最新的股票報價。當你在 WEB 伺服器上安裝完 ASP 環境後,就可以直接使用它內建的幾個常用組件,如 Database Access 組件。當然你也可以從第三方開發人員處獲得可選的組件 , 也可以編寫自己的組件。你可以利用組件作為指令碼和基於 Web 應用程式的基本構造塊,只要知道如何訪問組件提供的對象,即使你是位編寫指令碼的新手,也可以在不瞭解組件運作方式的情況下編寫 ASP 程式。總而言之, ActiveX 組件使您不用學習複雜的編程就能夠寫出強大的 WEB 伺服器端指令碼。如果您是位 Web 應用程式的開發人員,可以使用任何支援元件物件模型(COM)的語言來編寫組件,如, C、 C++、 Java 或 Visual Basic。如果你熟悉 COM 編程, ActiveX 組件就是 Automation 伺服器。但是要在 Web 服務器上運行, ActiveX 組件不能有圖形使用者介面元素,如 Visual Basic 的 MsgBox 函數。組件是可以重複使用的。在 Web 服務器上安裝了組件後,就可以從 ASP 指令碼、 ISAPI 應用程式程式、伺服器上的其他組件或由另一種 COM 相容語言編寫的程式中調用該組件。

   那麼我們在 ASP 中應該如何調用組件呢?如前所述,組件是包含在動態連結程式庫 (.dll) 或可執行檔 (.exe) 中的可執行代碼。組件可以提供一個或多個對象以及對象的方法和屬性。要使用組件提供的對象,我們首先要建立對象的執行個體並將這個新的執行個體分配變數名。使用 ASP 的 Server.CreateObject 方法可以建立對象的執行個體。接著,使用指令碼語言的變數分配指令為對象執行個體命名。建立對象執行個體時,必須提供執行個體的註冊名稱“PROGID”。如下要建立一個 Ad Rotator 對象的執行個體 :
   < % Set MyAds = Server.CreateObject("MSWC.AdRotator") %>

   我們必須使用 ASP 的 Server.CreateObject 方法來建立對象執行個體,否者 ASP 無法跟蹤指令碼語言中對象的使用。

   使用 HTML< OBJECT> 標籤同樣可以建立對象執行個體,但必須為 RUNAT 屬性提供伺服器值,同時也要為將在指令碼語言中使用的變數名提供 ID 屬性群組。使用註冊名 (PROGID) 或註冊號碼 (CLSID) 可以識別該對象。下面的例子使用註冊名 (PROGID) 建立 Ad Rotator 對象的執行個體:
  

< OBJECT RUNAT=Server ID=MyAd PROGID="MSWC.AdRotator">< /OBJECT>

   下面列出了 ASP 可安裝的常用組件。

Ad Rotator 建立一個 AdRotator 對象,該對象可按指定計劃在同一頁上自動輪換顯示廣告。
Browser Capabilities 建立一個 BrowserType 對象,該對象決定訪問 Web 網站的每個瀏覽器的效能、類型及版本。
Database Access 提供用 ActiveX Data Objects (ADO) 對資料庫的訪問。
Content Linking 建立一個 NextLink 對象,該對象可產生 Web 頁內容列表,並象書一樣將各頁順續串連。
File Access 組件 提供檔案的輸入輸出訪問。
Collaboration Data Objects for NTS 組件 可以快速、簡便的在 Web 頁上添加收發郵件功能。該組件只適用於 Internet Information Server for Windows NT? Server 。
MyInfo 建立一個 MyInfo 對象,該對象追蹤個人資訊,例如網站管理員的姓名、地址及顯示選擇。
Counters 建立一個 Counters 對象,該對象可以建立、儲存、增加或檢索任意數量的獨立計數器。
Content Rotator 自動翻轉 Web 首頁上的 HTML 內容字串。
Page Counter 記錄並顯示 Web 頁被開啟的次數。

   現在 WEB 廣告幾乎充斥了整個網路,那麼究竟如何在你自己的網站上建立一個符合廣告領域標準功能的廣告系統呢?答案是利用 ASP AD Rotator 組件 ! 它允許在每次訪問 ASP 頁面時在頁面上顯示新的廣告,並且提供了很強的功能,例如 : 旋轉顯示在頁面上的廣告圖象的能力、跟蹤特定廣告顯示次數的能力以及跟蹤用戶端在廣告上單擊次數的能力。 AD Rotator 組件的工作是通過讀取 AD Rotator 計劃檔案來完成的,該檔案包括與要顯示的圖象檔案的地點有關的資訊以及每個圖象的不同屬性,下面就是一個標準的 AD Rotator 計劃檔案 :
---ADROT.TXT---
REDIRECT /scripts/adredir.asp
WIDTH 440
HEIGHT 60
BORDER 1

ads/homepage/chinabyte.gif
http://www.chinabyte.com/
Check out the IT site
2
ads/homepage/gamichlg.gif
-
Sponsored by Flyteworks
3
ads/homepage/asp.gif
http:// www.aspallian.com/
Good ASP site on net
3
ads/homepage/spranklg.gif
http://www.clocktower.com/
The #1 Sports site on the net
2

   該段代碼的前四行包含廣告的全域設定。 Redirect 行指出廣告將成為其熱串連的 URL, 注意這裡不是為廣告本身指定的 URL,而是將調用的中間頁面的 URL,這樣我們就可以通過這個中間頁面跟蹤單擊廣告的次數。該 Redirect URL 將與包含兩個參數的查詢字串一起調用 : 特定廣告首頁的 URL 和圖象檔案的 URL。星號上面的其餘三行簡單說明如何顯示廣告。前兩行以像素為單位指定網頁上廣告的寬度和高度,預設值是 440 和 60 個像素。後一行,同樣是以像素為單位指定廣告四周超連結的邊框寬度 , 預設值是 1 個像素。如果將該參數設定為 0,則將沒有邊框。

   星號下面的行以每四行為一個單位描述每個廣告的細節。在此例中共有 16 行,描述四個廣告。每個廣告的描述包含圖象檔案的 URL、廣告的首頁 URL(如果廣告客戶沒有首頁,請在該行寫上一個連字號“-”,指出該廣告沒有連結)和圖象的替代文字以及指定該頁與其他頁交替顯示頻率的數值。

   圖象是重新導向頁面的熱串連,它在查詢字串中設定了兩個值, url=/scripts/adredir.asp 以及 image=/ads/homepage/asp.gif。要確定廣告顯示的頻率,可以將計劃檔案中所有廣告的權值相加,在該例中總數是 10,那麼 aspallian 的廣告權值為 3,這意味著 AdRotator 組件每調用十次,它則顯示 3 次。

   重新導向檔案是使用者建立的檔案。它通常包含用來解析由 AdRotator 對象發送的查詢字串的指令碼並將使用者重新導向到與使用者所單擊的廣告所相關的 URL。使用者也可以將指令碼包含進重新導向檔案中,以便統計單擊某一特定廣告的使用者的數目並將這一資訊儲存到伺服器上的某一檔案中。增加計數器和重新導向使用者是通過下面兩行 ASP 指令碼來實現的 :
< %
Counter.Increment(request.querystring("url"))
response.redirect(request.querystring("url"))
%>

   現在我們看一下 Ad Rotator 組件是如何在頁面中使用的,首先必須使用 Server.CreateObject 方法執行個體化 Ad Rotator 對象。 Ad Rotator 組件的 PROGID 屬性是 MSWC.AdRotator。完整的代碼如下 :
< % Set ad = Server.CreateObject("MSWC.AdRotator") %>
< %= ad.GetAdvertisement("/ads/adrot.txt") %>


   Ad Rotator 組件支援的唯一方法是 GetAdvertisement,它只有一個參數 :AdRotator 計劃檔案的名稱。注意指向檔案的路徑是從當前虛擬目錄的相對路徑,實體路徑是不允許的。 GetAdvertisement 方法從 Rotator 計劃檔案中擷取下一個計劃廣告的詳細說明並將其格式化為 HTML 格式。下面的 HTML 由 GetAdvertisement 方法產生且被添加到網頁的輸出中,以便顯示 Rotator 計劃檔案中的下一個廣告。
< A HREF="http://www.chinabyte.com/scripts/adredir.asp?http://www.aspallian.com/">< IMG
SRC="/UploadPic/2007-7/200777104158743.gif" ALT="Good ASP site on net" WIDTH=440 HEIGHT=60 BORDER=1>< /A>

   使用 AdRotator 組件我們可以直接通過對象屬性而不是計劃檔案中的設定來直接控制某些廣告特性,其可用屬性如下 :

   Border 指定廣告邊框的大小。

   Clickable 指定廣告是否為超連結。

   TargetFrame 指定顯示廣告的架構的名稱。


< %
Set ad = Server.CreateObject("MSWC.AdRotator")
ad.Border = 0
ad.Clickable = true
ad.TargetFrame = AdFrame
ad.GetAdvertisement("/ads/adrot.txt")
%>

   通過上面的學習,相信你已經能夠熟練運用 ASP 的內建 AdRotator 組件為自己的網站建立一個標準的廣告顯示程式了。你是否難以相信一切竟是如此的簡單?其實真正能令你震驚的還在後頭呢,敬請關注下一篇 ASP ActiveX 組件大揭密!



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.