;事實上,大多數應用程序變量都存儲在Contents集合中。當您創建壹個新的應用" />
Application對象是壹個應用程序級對象,用於在所有用戶之間共享信息,並且可以在Web應用程序運行期間保存數據。
應用程序的屬性:
該方法如下:
Application對象沒有內置屬性,但是我們可以創建自己的屬性。
& lt% Application("屬性名")= value % >;
事實上,大多數應用程序變量都存儲在Contents集合中。當您創建壹個新的應用程序變量時,您實際上是向Contents集合添加了壹個項目。以下兩個腳本是等效的:
& lt% Application("問候語")= "妳好!"% & gt或者
& lt%
對於應用中的每個項目。內容
response . write(" & lt;br >;& amp物品與廣告。申請。內容(項目))
然後
% & gt
應用方法:
應用的方法只有兩種:壹種是鎖定,壹種是解鎖。Lock方法用於確保同壹時間只有壹個用戶可以操作應用程序。解鎖用於解鎖鎖定方法。比如:
& lt%
申請。鎖
應用程序("訪問者編號")=應用程序("訪問者編號")+1
申請。開啟
% & gt
應用程序的事件:
1、Application_OnStart()
當事件應用程序啟動時觸發。
2、Application_OnEnd()
當應用程序結束時,會觸發此事件。
這兩個事件過程必須在Global.asp文件中定義。通常,連接數據的函數在這兩個事件中定義,然後放在Global.asp中。例如:
子應用_OnStart
application(" TT 18 _ ConnectionString ")= " driver = { SQL
服務器};服務器=傑夫;uid = sapwd =;數據庫=測試"
末端接頭
數組可以定義為Application對象,但只能保存為對象,其值不能用Application(0)檢索。妳可以定義壹個臨時數組來實現這個功能。比如:
& lt%
dim數組()
陣列=應用程序(“陣列”)
對於i = 0到下界(數組)
Response.write數組(I)
接下來我
% & gt
您還可以定義壹個臨時數組來修改Application對象,將Application對象分配給數組,然後修改數組的元素,最後將數組重新分配給Application對象。比如:
& lt%
dim數組()
陣列=應用程序(“陣列”)
Array(0)="jeff "
Array(1)="zhu "
應用程序.鎖
應用(“陣列”)=陣列
應用程序.解鎖
% & gt
對象上下文對象
該對象用於控制活動服務器頁面的事務。事務由Microsoft事務服務器(MTS)管理。
事件
對象上下文。OnTransactionAbort
由中止的事務事件激發,在腳本完成處理後發生。
對象上下文。OnTransactionCommit
由成功的事務事件激發,在腳本完成處理後發生。
方法
對象上下文。SetAbort
顯式放棄事務。
對象上下文。設置完成
覆蓋以前對ObjectContext的任何調用。SetAbort方法。
collectionpropertylmethod]變量
Request對象用於接受從瀏覽器發送到服務器的所有請求中的所有信息。
聚集
請求。客戶端證書(密鑰[子字段])
關於所有客戶證書的信息集合。對於Key,該集合具有以下關鍵字:
科目
證書的主題。包含有關證書收據的所有信息。可以與所有子域後綴壹起使用。
發行人
證書的頒發者。包含有關證書驗證的所有信息。可用於除CN之外的所有子域後綴。
瓦迪德夫
證書頒發的日期。使用VBScript格式。
有效期到
證書不在有效時間內。
序列號
包含證書的序列號。
證書
包含整個證書內容的二進制流,使用ASN.1格式。
對於子字段,Subject和Issuer關鍵字可以有以下子域後綴:(例如SubjectOU或Issuer)
C
原產國。
O
公司或組織的名稱。
男人
組織單位。
通信網絡(Communicating Net的縮寫)
用戶的壹般名稱。
L
本地的。
S
州(或省)。
T
個人或公司的頭銜。
幾尼
給定名稱。
我
首字母。
當使用#INCLUDE指南將cervbs.inc(由VBScript使用)或cerjavas.inc(由JScript使用)文件包含在Active Server Page中時,可以使用以下兩個標誌:
ceCertPresent
指示客戶證書是否存在,其值為真或假。
ceUnrecongnizedIssure
指示鏈表中最後壹個證書的頒發者是否未知,其值為TRUE或FALSE。
請求。Cookie(Cookie[(key)。屬性])
壹批餅幹。允許來自瀏覽器的Cookie。Cookie指示要返回哪個Cookie。Key用於從Cookie字典中返回帶有特定關鍵字的Cookie值。對於屬性,您可以使用屬性HasKeys來確定Cookie是否有子關鍵字。HasKeys的值為TRUE或FALSE。
請求。表單(參數)[(索引)。計數]
HTML表單中填寫的所有數據的集合。參數是HTML表單中元素的名稱。當參數有多個值時(例如,當參數在
請求。QueryString(Varible)[(Index)。計數]
查詢字符串的所有值的集合。變量是查詢字符串中變量的名稱。當壹個變量有多個值時,使用Index。當參數有多個值時,Count表示值的數量。
請求。ServerVaribles(服務器環境變量)
環境變量的集合。允許讀取HTTP頭。使用HTTP_ prefix可以讀取任何頭信息。例如,HTTP_USER_AGENT接受客戶端代理HTTP頭(瀏覽器類型)。此外,您可以使用下表中顯示的變量來獲取任何環境信息。
ALL_HTTP
客戶端發送的所有HTTP頭都有前綴HTTP_作為結果。
所有原始數據
客戶端發送的所有HTTP頭和客戶端發送的結果壹樣,沒有前綴HTTP_。
APPL _ MD _路徑
應用程序的元數據庫路徑。
APPL _物理_路徑
對應於應用程序元數據庫路徑的物理路徑。
身份驗證密碼
使用基本身份驗證模式時,客戶在密碼對話框中輸入的密碼。
AUTH_TYPE
這是服務器在用戶訪問受保護的腳本時用來驗證用戶的身份驗證方法。
授權用戶
用於身份驗證的用戶名。
證書_COOKIE
唯壹的客戶證書ID號。
證書_標誌
客戶端證書標誌,如果有客戶端證書,bit0為0。如果客戶端證書驗證無效,bit1設置為1。
證書頒發者
用戶證書中的發布者字段。
CERT_KEYSIZE
安全套接字層連接關鍵字的位數,如128。
CERT_SECRETKEYSIZE
服務器驗證私有關鍵字的位數。比如1024。
證書序列號
客戶證書的序列號字段。
證書服務器頒發者
服務器證書的頒發者字段
證書_服務器_主題
服務器證書的主題字段。
證書_主題
客戶端證書的主題字段。
內容長度
客戶端發送的內容的長度。
內容類型
客戶發送的表單內容或HTTP PUT的數據類型。
網關接口
服務器使用的網關接口。
HTTPS
如果請求通過安全通道(SSL ),則返回ON。如果請求來自不安全的通道,則返回OFF。
HTTPS _鑰匙尺寸
安全套接字層連接關鍵字的位數,如128。
HTTPS_SECRETKEYSIZE
服務器驗證私有關鍵字的位數。比如1024。
HTTPS服務器發行商
服務器證書的頒發者字段。
HTTPS _服務器_主題
服務器證書的主題字段。
實例ID
IIS實例的ID號。
實例_元_路徑
響應請求的IIS實例的元數據庫路徑。
ADDR當地
返回接受請求的服務器的地址。
登錄_用戶
登錄Windows NT的用戶帳戶。
路徑信息
客戶端提供的路徑信息。
路徑_已翻譯
通過從虛擬到物理的映射獲得的路徑。
查詢字符串
查詢字符串內容。
ADDR偏遠地區
發出請求的遠程主機的IP地址。
遠程主機
發出請求的遠程主機的名稱。
請求方法
提出請求的方法。比如GET,HEAD,POST等等。
腳本名稱
執行腳本的名稱。
服務器名稱
服務器的主機名、DNS地址或IP地址。
服務器端口
接受請求的服務器的端口號。
服務器端口安全
如果接受請求的服務器端口是安全端口,則為1,否則為0。
服務器協議
服務器使用的協議的名稱和版本。
服務器_軟件
響應請求並運行網關的服務器軟件的名稱和版本。
統壹資源定位器
提供URL的基本部分。
方法
請求。二進制讀取(計數)
接收HTML表單的原始內容。調用此方法時,Count指示要接收多少字節。調用此方法後,Count指示實際接收了多少字節。
屬性
請求。總字節數
查詢正文的長度,以字節為單位。
響應對象
響應對象用於向客戶端瀏覽器發送數據,用戶可以使用該對象以HTML格式向客戶端瀏覽器發送服務器數據。它和請求組成了壹對接收和發送數據的對象,這也是實現動態的基礎。下面描述了它的常用屬性和方法。
1,緩沖區屬性
此屬性用於指定輸出頁面時是否使用緩沖區。默認值為False。如果為True,則直到執行了整個Active Server Page,結果才會輸出到瀏覽器。比如:
& lt%回應。Buffer = True % & gt
& lthtml & gt
& ltHead & gt
& lttitle & gt緩沖區示例
& lt/head & gt;
& ltbody & gt
& lt%
對於i=1到500
response . write(I & amp;“& ltbr >;)
然後
% & gt
& lt/body & gt;
& lt/html & gt;
當這個頁面被執行時,整個主頁的所有內容將同時顯示在瀏覽器上,並且這個主頁將被存儲在緩存中,直到腳本執行結束。
2.過期屬性
此屬性用於設置瀏覽器緩存頁面的時間長度(以分鐘為單位),該時間長度必須在服務器端刷新。通過以下設置:
& lt%回應。expires = 0% & gt;
通過將這壹行代碼添加到ASP文件中,要求每個請求都刷新頁面,因為壹旦Response收到頁面,頁面就會過期。
3.書寫方法
此方法向客戶端瀏覽器發送數據,例如:
& lt%Response .寫“妳好,世界!”% & gt
4.重定向方法
此方法使瀏覽器能夠重新定位到另壹個URL,因此當客戶端發送Web請求時,客戶端的瀏覽器類型已經確定,客戶端將重新定位到相應的頁面。比如:
& lthtml & gt
& lthead & gt
& lttitle & gt重定向示例
& lt/head & gt;
& ltbody & gt
& ltform aciton = " form jump . ASP " method = " post " >
& ltselect name = " wheretogo " & gt
& ltoption selected value="fun " >好玩& lt/option & gt;
& ltoption value = " news " & gt新聞& lt/option & gt;
& ltoption value="sample " >樣本& lt/option & gt;
& lt/select & gt;
& ltinput type = submit name = " Jump " value = " Jump " >
& lt/form & gt;
& lt/body & gt;
& lt/html & gt;
上面是提交的表單,下面是處理表單的文件formjump.asp:
& lt% response.buff = true % & gt
& lthtml & gt
& lthead & gt
& lttitle & gt重定向示例
& lt/head & gt;
& ltbody & gt
& lt%
this URL = "/";
where=Request.form("wheretogo ")
選擇案例,其中
案例“有趣”
重定向此URL & amp;"/fun/default.asp "
案例“新聞”
重定向此URL & amp;"/news/default.asp "
案例“樣本”
重定向此URL & amp;"/sample/default.asp "
結束選擇
% & gt
& lt/body & gt;
& lthtml & gt
在這個例子中,當用戶選擇時,按“跳轉”按鈕提交表單。服務器收到申請後,調用formjump.asp判斷並定位相應的URL。但是,這裏需要註意的壹點是,HTTP標題已經寫入客戶端瀏覽器,任何對HTTP標題的修改都必須在頁面內容寫入之前進行。遇到此問題時,您可以執行以下操作:
在文件的開頭
回應。緩沖區=真
設置在末尾:
回應。臉紅
這裏Flush是壹種響應的方法,只有當Buffer屬性設置為True時才能使用,否則會產生運行模式錯誤。另壹個Clear方法也用於清除緩存的頁面,它只能在Buffer屬性設置為True時使用。
5.結束方法
此方法用於告訴活動服務器在遇到此方法時停止處理ASP文件。如果Response對象的Buffer屬性設置為True,End方法會將緩存的內容發送給客戶並清除緩沖區。因此,要取消對客戶的所有導出,可以先清除緩沖區,然後使用End方法。比如:
& lt%
Response.buffer=true
出錯時繼續下壹步
錯誤清除
if Err.number & lt& gt那麽0
回應。清楚的
回應。結束
如果…就會結束
% & gt
服務器對象:
服務器對象提供對服務器上的方法和屬性的訪問。這些方法和屬性中的大多數都作為實用程序的功能。
語法
Server.property |方法
屬性
腳本超時:
ScriptTimeout屬性指定腳本在結束前可以運行多長時間。處理服務器組件時,超時限制將不再有效。
語法server . script time out = numseconds
參數秒數
指定腳本在被服務器終止之前可以運行的最大秒數。默認值為90秒。
給…作註解
通過使用元數據庫中的AspScriptTimeout屬性,可以設置Web服務或Web服務器的默認ScriptTimeout值。ScriptTimeout屬性不能設置為小於元數據庫中指定的值。例如,如果NumSeconds設置為10,並且元數據庫設置包含默認值90秒,則腳本將在90秒後超時。但是,如果NumSeconds設置為100,腳本將在100秒後超時。
有關使用元數據庫的更多信息,請參見關於元數據庫。
在下面的示例中,如果服務器處理腳本的時間超過100秒,它將超時。
& lt%服務器。script time out = 100% & gt;
下面的示例獲取ScriptTimeout屬性的當前值,並將其存儲在變量Timeout中。
& lt% TimeOut =服務器。ScriptTimeout % & gt
方法
創建對象
CreateObject方法創建服務器組件的實例。如果組件執行OnStartPage和OnEndPage方法,此時將調用OnStartPage方法。有關服務器組件的更多信息,請參見可以安裝的ASP組件。
語法服務器。CreateObject( progID)
參數progID指定要創建的對象的類型。progID的格式是[Vendor。]組件[。版本】。
註意默認情況下,服務器創建的對象。CreateObject方法具有頁面範圍。也就是說,服務器在處理完當前ASP頁面後,會自動銷毀這些對象。要創建具有會話或應用程序範圍的對象,可以使用
例如,在下面顯示的腳本中,當會話對象被銷毀時,也就是說,當會話超時或調用放棄方法時,存儲在會話變量中的對象也將被銷毀。
& lt% Set Session("ad") = Server。CreateObject(“MSWC。ad rotator ")% & gt;
您可以通過將變量設置為Nothing或新值來銷毀對象,如下所示。第壹個示例釋放ad對象,第二個示例用字符串替換ad。
& lt% Session(" ad ")= Nothing % & gt;
& lt% Session ("ad") = "其他值" % & gt
不能創建與內置對象同名的對象實例。例如,下面的腳本將返回壹個錯誤。
& lt% Set Response = Server。CreateObject(" Response ")% & gt;
例子
以上示例創建了壹個MSWC。名為MyAd的AdRotator服務器組件,可用於自動旋轉網頁上的廣告。
有關服務器組件的更多信息,請參見為ASP創建組件。
HTMLEncode HTMLEncode方法對指定的字符串應用HTML編碼。
語法服務器。HTMLEncode(字符串)
參數string指定要編碼的字符串。
樣本腳本
輸出段落標記:
請註意,上面的輸出將顯示為段落標記:
地圖路徑
MapPath方法將指定的相對或虛擬路徑映射到服務器上相應的物理目錄。
語法
服務器。MapPath(路徑)
參數
小路
指定相對路徑或虛擬路徑來映射物理目錄。如果路徑以正斜杠(/)或反斜杠(\)開頭,MapPath方法在返回路徑時會將路徑視為完整的虛擬路徑。如果路徑不是以斜杠開頭,MapPath方法將返回相對於。asp文件。
給…作註解
MapPath方法不支持相對路徑語法(。)或(..).例如,下面的相對路徑../MyDir/MyFile.txt返回錯誤。
MapPath方法不檢查返回的路徑是否正確或在服務器上是否存在。
因為MapPath方法只映射路徑,而不管指定的目錄是否存在,所以您可以首先使用MapPath方法映射物理目錄結構的路徑,然後將其傳遞給在服務器上創建指定目錄或文件的組件。
例子
對於以下示例,包含以下腳本的data.txt文件和test.asp文件位於目錄C:\Inetpub\Wwwroot\Script中。C:\Inetpub\Wwwroot目錄被設置為服務器的主目錄。
以下示例使用服務器變量PATH_INFO來映射當前文件的物理路徑。腳本
& lt%= server.mappath(請求。server variables(" PATH _ INFO ")% & gt;& ltBR & gt
輸出
c:\ inetpub \ wwwroot \ script \ test . ASP & lt;BR & gt
由於以下示例中的路徑參數不以斜杠字符開頭,因此它們相對映射到當前目錄,這裏是C:\Inetpub\Wwwroot\Script。腳本
& lt% = server . mappath(" data . txt ")% & gt;& ltBR & gt
& lt% = server . mappath(" script/data . txt ")% & gt;& ltBR & gt
輸出
c:\ inetpub \ wwwroot \ script \ data . txt & lt;BR & gt
c:\ inetpub \ wwwroot \ script \ script \ data . txt & lt;BR & gt
接下來的兩個示例使用斜杠字符來指定返回的路徑應該被視為服務器上的完整虛擬路徑。腳本
& lt% = server . mappath("/script/data . txt ")% & gt;& ltBR & gt
& lt% = server . mappath(" \ script ")% & gt;& ltBR & gt
輸出
c:\ inetpub \ script \ data . txt & lt;BR & gt
c:\ inetpub \ script & lt;BR & gt
以下示例顯示了如何使用正斜杠(/)或反斜杠(\)返回主目錄的物理路徑。腳本
& lt% = server . mappath("/")% & gt;& ltBR & gt
& lt% = server . mappath(" \ ")% & gt;& ltBR & gt
輸出
c:\ inetpub \ wwwroot & lt;BR & gt
c:\ inetpub \ wwwroot & lt;BR & gt
URLEncode
URLEncode方法將URL編碼規則(包括轉義字符)應用於指定的字符串。
語法
服務器。URLEncode(字符串)
參數
String指定要編碼的字符串。
例子
腳本
輸出
會話對象
Session實際上是指訪問者到達特定主頁到離開的時間。每位來訪者都將單獨接受壹次治療。在Web應用程序中,當用戶訪問該應用程序時,可以使用Session類型的變量讓用戶享受Web應用程序所有頁面中的數據。如果另壹個用戶同時訪問Web應用,他也有自己的Session變量,但是兩個用戶不能通過Session變量* * *共享信息,應用類型的改變可以實現站點內多個用戶可以共享所有頁面* * *的信息。
1,SessionID屬性
此屬性返回當前會話的唯壹符號,並為每個會話分配不同的編號。
我曾經在開發過程中遇到過控制用戶的問題。它要實現的功能是,壹個網站的壹個模塊,當壹個會員登錄並正在觀看該模塊時,另壹個人用相同的會員名稱登錄,就無法瀏覽該模塊。也就是說,壹個會員名稱同壹時間只能有壹個人瀏覽這個模塊。我通過使用成員名(假設UserID,unique)和SessionID實現了控件。當壹個成員登錄時,給這個成員壹個Session來記錄登錄狀態,比如:Session("Status")="Logged ",寫Session。將此成員的SessionID復制到數據庫中。當他想瀏覽這個模塊時,首先判斷是否登錄。如果已登錄,則判斷其SessionID是否與數據庫中記錄的相同。如果不同,則無法訪問。這樣,當另壹個用戶使用相同的成員名登錄時,新的SessionID被記錄在數據庫中,前者在訪問該模塊時無法通過檢查。這就實現了壹個成員名同壹時間只能壹個人瀏覽壹個模塊。該功能在壹些收費網站中發揮了特殊作用,防止了壹個會員名稱被多人瀏覽的問題,保護了公司的利益。
2.超時屬性
該屬性用於定義用戶會話對象的時間限制。如果用戶沒有在指定時間內刷新網頁,會話對象將終止。默認值通常為20分鐘。
3.放棄方法
這個方法是Session對象的唯壹方法,可以清除Session對象來消滅用戶的Session對象,釋放它所占用的資源。比如:
4.Session_OnStart和Session_OnEnd事件
和Application壹樣,每次啟動對象的例程時都會觸發Session_OnStart事件,然後運行Session_Onstart事件的處理過程。也就是說,當服務器接收到對應用程序中URL的HTTP請求時,將觸發此事件並建立壹個會話對象。同樣,該事件也必須在Global.asa文件中設置。
當會議開始時。放棄方法或在超時內沒有刷新,這將觸發Session_OnEnd事件,然後執行裏面的腳本。會話變量與特定用戶相關聯,分配給某個用戶的會話變量與其他用戶的會話變量完全獨立,不會有相互影響。
會話應用列:
和Application壹樣,定義為Session類型的數組只能將整個數組視為壹個對象,用戶不能直接改變Session數組中某個元素的值。為了創建會話數組,需要定義壹個普通數組,給每個元素賦初值,最後定義為會話數組。比如:
& lt%
dim數組()
Array=array("李"、"明"、"公")
會話(" info ")=數組
Response.write會話(" info ")(0)& amp;"-"
Response.write會話(" info ")(1);"-"
Response.write會話(" info")(2)和amp“& ltbr >;
% & gt
& lthr & gt
& lt%
數組(0)= "天"
Array(1)= "Yu "
Array(2)= "male "
會話(" info ")=數組
Response.write會話(" info ")(0)& amp;"-"
Response.write會話(" info ")(1);"-"
Response.write會話(" info")(2)和amp“& ltbr >;
% & gt