一個對象是典型的具有方法、屬性或者集合的東西,其中對象方法決定了我們可以用這個對象作什么事情。(還記得response對象的write()方法吧),對象的屬性可以讀取出來了解對象狀態(tài)或者設(shè)置對象狀態(tài)。對象的集合是由很多不同的和對象有關(guān)系的鍵和值的配對對組成的。
舉一個日常的例子,書籍“邁至科ASP教程”是一個對象,這個對象包含的方法決定了你可以怎樣處理它,比如說,去讀它,送人作為禮物,當作敲門的工具,甚至撕得粉碎,只要你愿意。對象的屬性,這本書的頁數(shù),作者什么的。最后,對象的集合,包含了許多鍵和值的配對:每一頁的頁碼就是鍵,那么值就是相對應(yīng)于頁碼的這頁的內(nèi)容?! ?
一個ActiveX組件和Active Server Pages內(nèi)嵌對象十分類似,不過,當你使用Active Server Pages時,二者之間還是存在著明顯的差異,首先,一個組件可能包含不只一個對象,其次,在你使用組件之前,將要明確的創(chuàng)建一個實例?! ?
VBScript和JScript都包括一些對象,例如,無論利用VBScript和JScript,你都可以進入處理Dictionary對象。Dictionary并不是Active Server Page的正式部分。但是你可以利用Active Server Pages腳本來建立它,這是一個利用VBScript的例子:
<html>
?。?
Set Mydict=Server.CreateObject(“Scripting.Dictionary”)
MyDict.add “電子商務(wù)”, “http://207.153.210.86/intro”
MyDict.add “BBS”, “http://www.magicw3.com/bbs”
MyDict.add “廣告聯(lián)盟”, “http://www.magicw3.com/banner”
%>
我的字典中有<%=MyDict.count%>個記錄。
?。糱r>
其中第一個記錄是<%=MyDict.item(“電子商務(wù)”)%>。
?。?html>
當這個腳本執(zhí)行的時候,Dictionary對象的一個實例將會生成,然后,三個鍵以及相對應(yīng)的值添加到Dictionary對象中,最后,顯示出這個Dictionary對象的兩個屬性。
例子中的第一個腳本語句是利用Active Server Pages建立一個新的ActiveX對象實例的常用方法。Server.CreatObject是建立一個對象實例。在這個例子中,變量MyDict指向一個Dictionary對象實例。
當一個對象實例建立之后,就可以調(diào)用它的方法,例如,利用Dictionary對象的add方法就可以在這個Dictionary中添加新的記錄。例如用add方法配對添加鍵“電子商務(wù)”和相應(yīng)的值“http://207.153.210.86/intro”。
當一個對象的實例建立之后,你還可以進入處理它的屬性,在這里面Count屬性用來統(tǒng)計Dictionary中的記錄數(shù)量。item屬性用來根據(jù)相應(yīng)的鍵來讀取對應(yīng)的值。
最后,你處理完這個對象的實例后,還可以消除它。當然,在服務(wù)器進行完這個Active Server Pages的進程后,會自動消除這個對象實例,因此,你完全可以不用去親自處理這種過程。不過,如果需要的話,你依然可以利用將特定的變量,例如現(xiàn)在的Mydict指向一個新的值或者就是nothing來消除這個實例。例如這樣
?。? set MyDict=Nothing %>
盡管Dictionary對象并不是Active Server Pages正式部分,這個例子還是能夠表明如何使用Active Server Pages對象,你可以調(diào)用Server.CreatObject()方法來產(chǎn)生一個對象的實例。在你產(chǎn)生了新的對象后,你可以調(diào)用其方法以及讀取其屬性。
Active Server Pages對象
你已經(jīng)接觸了一個內(nèi)嵌對象的例子-Response對象。你已經(jīng)可以利用Response對象將表達式輸出到瀏覽器上。不過,Response對象還有相當數(shù)量的其他重要屬性、集合以及方法。
下面的章節(jié)中將會詳細介紹每一種內(nèi)嵌對象的使用。下面是對每一種內(nèi)嵌的快速瀏覽:
■application對象:application對象被用來存儲一個應(yīng)用中所有用戶共享的信息。例如,你可以利用application對象來在你的站點的不同用戶間傳遞信息?! ?
■request對象:request對象可以被用來訪問所有從瀏覽器到服務(wù)器間的信息,你也就可以利用request對象來接受用戶在html主頁的form中的信息?! ?
■response對象:response對象用來將信息發(fā)送回給瀏覽器。你可以利用response對象將你的腳本語言結(jié)果輸出到瀏覽器上?! ?
■server對象:server對象提供你運用許多server端的應(yīng)用函數(shù)。例如,你可以利用server對象來控制你的腳本語言在超過時限前的運行時間。你也可以利用server對象來創(chuàng)建其他對象的實例?! ?
■session對象:session對象被用來存儲一些普通用戶其滯留期間的信息,你可以用Session對象來儲存一個用戶在訪問你的站點的滯留時間?! ?
■ObjectContext對象:ObjectContext對象可以被用來控制Active Server Pages的執(zhí)行。這種執(zhí)行過程由Microsoft Transaction Server(MTS)來進行管理?! ?
內(nèi)嵌對象不同于正常的對象。在你利用內(nèi)嵌對象的腳本時,你不需要首先創(chuàng)建一個它的實例。在整個網(wǎng)站應(yīng)用中內(nèi)嵌對象的所有方法、集合以及屬性都是自動可訪問的。
Active Server Pages 組件
象上面所討論的內(nèi)嵌對象一樣,Active Server Pages組件一樣可以被用來拓展你的腳本的功能,組件與內(nèi)嵌所不同的是它通常被用來去實現(xiàn)那些特定的任務(wù)。下面列表中顯示的是集成在Active Server Pages中的一些組件。
■Ad Rotator組件:Ad Rotator組件被用來在主頁上顯示廣告圖標。你可以利用這個組件來限定不同廣告圖標顯示變換的頻率?! ?
■Browser Capabilities組件:Browser Capabilities組件可以根據(jù)不同瀏覽器的性能來顯示不同的主頁。例如,你可以利用顯示單屏或者根據(jù)瀏覽器適應(yīng)的分屏方式。 ■Content Linking組件:例用Content Linking組件你可以連接相當數(shù)量的主頁這樣你就可以更容易進行網(wǎng)絡(luò)導(dǎo)航。例如,你可以利用這個組件來顯示一部在線教程?! ?
■Counters組件:Counters組件能夠被用來追蹤訪問該站點訪問者的數(shù)量,你可以利用這個組件在主頁中添加點擊計數(shù)器。
■Permission Checker組件:Permission Checker組件可以被用來檢驗只有授權(quán)用戶才能訪問某些聯(lián)接。你可以利用這個組件來創(chuàng)建管理員的維護主頁?! ?
■ActiveX Data對象:ActiveX Data對象(ADO)提供你可以從諸如SQL Server這樣的數(shù)據(jù)庫系統(tǒng)中存儲數(shù)據(jù)的手段。這種對象相當重要,由于這個原因,這種對象將會在所有對象全部討論完畢后單獨分出一部分進行介紹。