ASP的強大不僅僅局限於接受和顯示的交互,更多的是運用ActiveX 組件進行更強大的Web應用。
那究竟ActiveX組件為何物?它又是如何運作的呢?其實ActiveX Server Components(ActiveX 服務器組件)是一個存在於 WEB 服務器上的文件,該文件包含執行某項或一組任務的代碼,組件可以執行公用任務,這樣就不必自己去創建執行這些任務的代碼。很形象的一句話:運用組件直接采用別人經典的功能強大的程序。只不過這程序已被封裝了的。
那具體ActiveX組件是如何產生、如何得來的呢?一般由下面三個路徑獲得:
1,安裝完IIS服務器以後,自帶的一些內置組件,如Database Access數據庫連接組件。
2,從第三方開發者處獲得可選的組件,或者免費或者收費的,如一些上傳組件(當然現在有無組件上傳)。
3,如果你是一位Web程序開發者,可以使用Visual Basic 、Java 、Visual C++ 、COBOL等程序設計語言來編寫你所需要的ActiveX Server Component。這也就是所謂的ASP進行COM(Component Object Model)、COM+開發了。
當然無論是第三方還是自行開發,在使用之前都必須要進行系統的注冊。不過這些都是後話。我們現在需要的,是盡快先把ASP自帶的一些組件搞懂吧。
不過在使用內置組件之前,先用一個程序檢測一下自己機器中的組件支持情況。
引用一段網上流行的“阿江ASP探針”,將下列代碼保存為asp文件進行調試查看。
1,objcheck.asp
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行] 如果你可以運行該ASP文件,也就是說你擁有IIS的WEB服務了。既然有IIS,不出意外,我們今天要學的組件AdRotator相信應該也是支持的。
P.S.一般微軟自帶的大多是MSWC開頭,我也一般戲稱為Microsoft WC :)
一、AdRotator組件 該組件通常又稱廣告輪顯組件,其功能相當於在網站上建立了一個,符合廣告領域標准功能的廣告系統。它具有:每次訪問ASP頁面時,在頁面上顯示不同的廣告內容;跟蹤特定廣告顯示次數的能力以及跟蹤客戶端在廣告上單擊次數的能力。
AD Rotator 組件的工作原理是通過讀取 AD Rotator 計劃文件來完成的,該文件包括與要顯示圖象文件的地點有關的信息,以及每個圖象的不同屬性。下面就是一個標准的 AD Rotator 計劃文件。
1,類型為txt文本 ,命名為myadrot.txt
redirect gourl.asp
width 88
height 31
border 1
*
http://www.cnbruce.com/images/logo.gif
http://www.cnbruce.com/
CN-Bruce
10
http://www.it365cn.com/images/logo.gif
http://www.it365cn.com
It365cn
10
http://www.blueidea.com/images/logo.gif
http://www.blueidea.com
Blue!dea
10
代碼的前四行包含了廣告的全局設置:
1,Redirect 指出廣告將成為其熱連接的URL。但其
並非直接跳轉 的URL,它包含了兩個參數的查詢字符串:特定廣告主頁的URL和圖象文件的URL。這些值從而可在gourl.asp文件中進行提取,並且與此同時gourl.asp還可以進行其他的處理工作,比如跟蹤單擊廣告的次數、跳轉到接受的的廣告主頁等。
2,width、height、border不用說一看就知道是連接圖片的寬、高以及邊框線大小。
“*”號表示了分隔符,以及“*”號下面的每四行為一個單位進行描述每個廣告的細節。其中分別代表:
1,每個廣告的描述包含圖象文件的URL
2,廣告對象的主頁URL(如果廣告客戶沒有主頁,則該行為一個連字符“-”,指出該廣告沒有鏈接)
3,圖象的替代文字
4,及指定該頁與其他頁交替顯示頻率的數值。
該文件是用戶自創建的文件。它通常用來解析由AdRotator對象發送的查詢字符串的腳本,並將用戶重定向到與用戶所點擊的廣告所相關的URL。那具體怎麼應用該定向文件呢?
2、adrotator.asp 該文件最主要的是連接myadrot.txt文件,並且執行myadrot.txt文件中的信息內容。很簡單,兩行代碼。
<%set myad=Server.CreateObject("MSWC.adrotator")%>
<%=myad.getadvertisement("myadrot.txt")%>
“
<%set myad=Server.CreateObject("MSWC.adrotator")%> ”學過Server對象,相信還記得該對象強大的一個方法,那就是CreateObject。他可用於創建已經注冊到服務器上的ActiveX組件實例。那這就表示引用組件MSWC.adrotator了。
“
<%=myad.getadvertisement("myadrot.txt")%> ”Ad Rotator組件支持的唯一方法也就是GetAdvertisement了,它只有一個參數:AdRotator計劃文件的名稱。注意指向文件的路徑是當前虛擬目錄的相對路徑,物理路徑是不允許的。也就是說當前的adrotator.asp和myadrot.txt是在同一目錄下了。
然後進行執行該ASP文件,多次刷新,會發現每次的廣告確實是在輪顯著的。這時再注意點擊圖片的超級連接地址。比如:
gourl.asp?url=http://www.cnbruce.com/&image=http://www.cnbruce.com/images/logo.gif
很明顯我們還需要建立gourl.asp,並且將url參數的值進行提取,再接著跳轉到該url地址上。
3、gourl.asp 該頁主要功能:提取url參數值,跳轉到廣告主頁。
<%whaturl=request.querystring("url")%>
<%response.redirect whaturl%>
功能很簡單就完成。當然,剛才也說了,這個頁還可以做其它一些事件:跟蹤客戶端在廣告上單擊次數,比如將接受過來的相同的url地址進行記數的累加,就能顯示出該網站廣告的點擊次數,然後和相應廣告商拿取相應的費用什麼的……呵呵,在早期都要求需要實際點擊率的,現在好象不管,只要廣告掛那兒就行-_-!
不過,總的說來,這個組件的功能就是這樣。你有多個廣告商,並且是按比例單獨顯示,還需要計算實際點擊率的時候,用Ad Rotator組件是最好不過。那也就是說視情況而定了。
最後再說下,該組件的實現需要三個文件:
重定向文件、引用文件、處理轉向文件。 二、Content Rotator組件 正如Ad Rotator為一廣告輪顯,Content Rotator組件則為內容輪顯。
該組件就像一個簡化了的Ad Rotator組件,所以其工作原理亦為:通過讀取計劃文件來完成的網頁內容的顯示。該計劃文件也就是:內容調度文件(Content Schedule File)。
1,類型為txt文本 ,命名為context.txt
%% 3 //後面是注釋
<font color=red>ASP編程入門進階</font>
%% 4 //下面顯示表格
<table><tr><td>www.cnbruce.com</td></tr></table>
%% 5
<A HREF="http://www.cnbruce.com">CN-Bruce</A>
該文件的結構比Ad Rotator的調度文件簡單,僅需提供要使用的各個文本字符串的列表,由前面加兩個百分號(%%)的語句行說明。
為了設置每個條目的比率(決定它出現在返回頁面中的頻率),在雙百分號的後面添加了一個數字。如果其後跟雙斜槓(//)就表示為添加的注釋。
接著就是通過ASP頁面將這些信息按規定完整顯示。
2、showcontext.asp
<%
Set MyContent = Server.CreateObject("MSWC.ContentRotator")
Content = MyContent.ChooseContent("context.txt")
Response.Write Content
%>
"
Set MyContent = Server.CreateObject("MSWC.ContentRotator") ",先建立和Content Rotator組件的聯系。
"
Content = MyContent.ChooseContent("context.txt") ",表示采用Content Rotator組件的有個方法:
ChooseContent ,並且賦值給變量Content,到最後輸出顯示結果。
3、showall.asp 以上頁面內容個顯示是通過Content Rotator組件的ChooseContent方法實現的。此外,該組件還有一方法:
GetAllContent 。示例如下:
<%
Set MyContent = Server.CreateObject("MSWC.ContentRotator")
Content = MyContent.GetAllContent("context.txt")
Response.Write Content
%>
運行結果會發現context.txt所有內容被解釋執行,並且分類之間會自動添加了<hr>水平線。
當然這個方法可以用在隨機圖片之類的特效頁面上。