ASP七大對(duì)象說明分析
更新時(shí)間:2007年07月09日 00:00:00 作者:
/*-------------------ASP文檔參考集-----------------------*/
*-->作者:草履蟲
*-->時(shí)間:2007-4.28---2007-4.30(原來是自己編寫的手冊(cè),現(xiàn)在發(fā)在這里)
*-->聯(lián)系:caolvchong@gmail.com
*-->文檔功能:
1.復(fù)習(xí)了ASP,加深了對(duì)ASP結(jié)構(gòu)的理解和ASP的體會(huì)
2.可以用來做ASP參考,自己寫的,參考起來更方便
這是第二部分:ASP七大對(duì)象
/*---------------------------ASP七大對(duì)象----------------------------*/
*-->Application對(duì)象:
功能:在給定的應(yīng)用程序的所有用戶之間共享信息,并在服務(wù)器運(yùn)行期間持久的保存數(shù)
據(jù).而且,Application對(duì)象還有控制訪問應(yīng)用層數(shù)據(jù)的方法和可用于在應(yīng)用程序啟
動(dòng)和停止時(shí)觸發(fā)過程的事件(OnStart事件和OnEnd事件)
屬性:沒有內(nèi)置的屬性
集合:即用戶自定義的屬性
Application 對(duì)象的集合及說明:
Contents:沒有使用<OBJECT>元素定義的存儲(chǔ)于Application對(duì)象中的所有變量(及
它們的值)的一個(gè)集合.包括Variant數(shù)組和Variant類型對(duì)象實(shí)例的引用
StaticObjects:使用<OBJECT>元素定義的存儲(chǔ)于Application對(duì)象中的所有變量
(及它們的值)的一個(gè)集合
對(duì)應(yīng)的例子:
設(shè)置application屬性值:
Application("MyVar") = "Hello"
Set Application("MyObj") = Server.CreateObject("MyComponent")
方法:
Contents.Remove():移去某個(gè)application集合
Contents.Removeall():移去所有的Application集合
Lock():阻止其他客戶修改存儲(chǔ)在Application對(duì)象中的變量,以確保在同一時(shí)刻僅
有一個(gè)客戶可修改和存取 Application 變量.如果用戶沒有明確調(diào)用Unlock
方法,則服務(wù)器將在.asp文件結(jié)束或超時(shí)后即解除對(duì) Application 對(duì)象的鎖
定
Unlock():使其他客戶端可以在使用Lock方法鎖住Application對(duì)象后,修改存儲(chǔ)在
該對(duì)象中的變量.如果未顯式調(diào)用該方法,Web服務(wù)器將在.asp文件結(jié)束或超時(shí)
后解鎖Application對(duì)象
一個(gè)綜合點(diǎn)的例子:
在1.asp中:
'設(shè)置3個(gè)application屬性值
application("chong1")="第1個(gè)application集合項(xiàng)"
application("chong2")="第2個(gè)application集合項(xiàng)"
application("chong3")="第3個(gè)application集合項(xiàng)"
'設(shè)置的屬性值都保留在application.contents中,基數(shù)從0開始,因此可以用
'for循環(huán)讀出來
'這里總結(jié)下contents集合的屬性:
'count屬性:返回集合中所有的項(xiàng)數(shù),返回值是個(gè)整數(shù)
'item屬性:用于設(shè)置或返回集合中一個(gè)特定成員的值,item屬性是
contents
'集合的默認(rèn)屬性,因此.item(x)相當(dāng)于.(x)
'key屬性:key(x)返回對(duì)應(yīng)的屬性名,如上面
application.contents.key(1)
'將返回chong1
For i = 1 to Application.Contents.Count
Response.Write (Application.Contents.item(i))
Next
在2.asp中:
'2.asp和1.asp共享了application對(duì)象內(nèi)容,因此可以對(duì)該集合元素進(jìn)行修
改或刪除等
application("chong1")="我被修改了" '修改application屬性值
application.Contents.Remove("chong2") '刪除application屬性值
for each j in application.Contents 'for each形式訪問application
response.Write(Application.Contents.item(j))
next
事件:至于兩個(gè)事件onstart()和onend()等總結(jié)Global.asa文件時(shí)介紹
經(jīng)驗(yàn):通常地,當(dāng)要修改某個(gè)application值時(shí),應(yīng)當(dāng)先用Lock()鎖定它,然后再修改,修
改完后再Unlock(),防止多個(gè)用戶并發(fā)訪問該對(duì)象
常用:設(shè)置,修改和刪除application集合,結(jié)合lock和unlock方法
*-->Session對(duì)象:
功能:Session對(duì)象存儲(chǔ)特定的用戶會(huì)話所需的信息.當(dāng)用戶在應(yīng)用程序的頁(yè)之間跳轉(zhuǎn)
時(shí),存儲(chǔ)在Session對(duì)象中的變量不會(huì)清除,而用戶在應(yīng)用程序中訪問頁(yè)面時(shí),這些
變量始終存在.當(dāng)用戶請(qǐng)求來自應(yīng)用程序的Web頁(yè)時(shí),如果該用戶還沒有會(huì)話,則
Web 服務(wù)器將自動(dòng)創(chuàng)建一個(gè)Session對(duì)象.當(dāng)會(huì)話過期或被放棄后,服務(wù)器將終止該
會(huì)話(和application差別是session不是共享的,各個(gè)用戶有各自的session,由此
可以用來驗(yàn)證用戶的身份)
集合:和application一樣地,session具有contents和StaticObject兩個(gè)集合
屬性:
CodePage:讀/寫.整型.定義用于在瀏覽器中顯示頁(yè)內(nèi)容的代碼頁(yè)(Code Page).代碼
頁(yè)是字符集的數(shù)字值,不同的語言和場(chǎng)所可能使用不同的代碼頁(yè).例如,650001
是UTF-8,936為GB2312
LCID:讀/寫.整型.定義發(fā)送給瀏覽器的頁(yè)面地區(qū)標(biāo)識(shí)(LCID).LCID是唯一地標(biāo)識(shí)地
區(qū)的一個(gè)國(guó)際標(biāo)準(zhǔn)縮寫,例如,2057定義當(dāng)前地區(qū)的貨幣符號(hào)是'£'.LCID也可
用于FormatCurrency等語句中,只要其中有一個(gè)可選的LCID參數(shù).LCID也可在
ASP處理指令<%...%>中設(shè)置,并優(yōu)先于會(huì)話的LCID屬性中的設(shè)置.
SessionID:只讀.長(zhǎng)整型.返回這個(gè)會(huì)話的會(huì)話標(biāo)識(shí)符.SessionID屬性返回用戶的
會(huì)話標(biāo)識(shí).在創(chuàng)建會(huì)話時(shí),服務(wù)器會(huì)為每一個(gè)會(huì)話生成一個(gè)單獨(dú)的標(biāo)識(shí).會(huì)話標(biāo)
識(shí)以長(zhǎng)整形數(shù)據(jù)類型返回.在很多情況下 SessionID 可以用于 WEB 頁(yè)面注冊(cè)
統(tǒng)計(jì)
Timeout:讀/寫.整型.為這個(gè)會(huì)話定義以分鐘為單位的超時(shí)周期.如果用戶在超時(shí)周
期內(nèi)沒有進(jìn)行刷新或請(qǐng)求一個(gè)網(wǎng)頁(yè),該會(huì)話結(jié)束.在各網(wǎng)頁(yè)中根據(jù)需要可以修
改.缺省值是20min,在使用率高的站點(diǎn)上該時(shí)間應(yīng)更短
方法:
Abandon():Abandon方法刪除所有存儲(chǔ)在Session對(duì)象中的對(duì)象并釋放這些對(duì)象的
源.如果您未明確地調(diào)用Abandon方法,一旦會(huì)話超時(shí),服務(wù)器將刪除這些對(duì)象.
當(dāng)服務(wù)器處理完當(dāng)前頁(yè)時(shí),下面示例將釋放會(huì)話狀態(tài)
另外,session和application一樣,具有contents.remove()和
contents.removeall()方法
事件:至于兩個(gè)事件onstart()和onend()等總結(jié)Global.asa文件時(shí)介紹
常用:設(shè)置,修改,刪除session,另外timeout也是常用的,記住一點(diǎn),session依賴cookies,當(dāng)瀏覽器關(guān)閉或者不
支持cookie時(shí)將不能訪問到session
*-->request對(duì)象:
功能:Request對(duì)象在HTTP請(qǐng)求期間,檢索客戶端瀏覽器傳遞給服務(wù)器的值
集合:
ClientCertificate:當(dāng)客戶端訪問一個(gè)頁(yè)面或其他資源時(shí),用來向服務(wù)器表明身份
的客戶證書的所有字段或條目的數(shù)值集合,每個(gè)成員均是只
讀.ClientCertificate集合從Web瀏覽器發(fā)布請(qǐng)求中獲取驗(yàn)證字段(由X.509
標(biāo)準(zhǔn)指定).如果Web瀏覽器使用SSL3.0/PCT1協(xié)議(也就是說,它使用以
https://開頭的URL,而不是http://)連接服務(wù)器及服務(wù)器請(qǐng)求驗(yàn)證,則瀏覽器
將發(fā)送驗(yàn)證字段.如果沒有發(fā)送驗(yàn)證,ClientCertificate集合將返回EMPTY.必
須先將Web服務(wù)器配置為要求客戶端驗(yàn)證,然后才能使用ClientCertificate
集合.
Cookies:根據(jù)用戶的請(qǐng)求,用戶系統(tǒng)發(fā)出的所有cookie的值的集合,這些Cookie僅
對(duì)相應(yīng)的域有效,每個(gè)成員均為只讀,cookies也具有count,item,key三個(gè)屬
性,用法可以類比上面提到的application中提到的.另外,cookies還有個(gè)屬性
haskeys,指明cookie是多值還是單值的,多值返回true,單值返回false
Form:的屬性值為POST時(shí),所有作為請(qǐng)求提交的<FORM>段中的HTML控件單元的值的
集合,每個(gè)成員均為只讀,form也具有count,item,key三個(gè)屬性
QueryString:依附于用戶請(qǐng)求的URL后面的名稱/數(shù)值對(duì)或者作為請(qǐng)求提交的且
METHOD屬性值為GET(或者省略其屬性)的,字符串由問號(hào)(?)后的值指定,或
<FORM>中所有HTML控件單元的值,每個(gè)成員均為只讀,Querystring也具有
count,item,key三個(gè)屬性
ServerVariables:隨同客戶端請(qǐng)求發(fā)出的HTTP報(bào)頭值,以及Web服務(wù)器的幾種
環(huán)境變量的值的集合,每個(gè)成員均為只讀,ServerVariables也具有
count,item,key三個(gè)屬性servervariables參數(shù)我打印在了"servervariables
參數(shù)集"文檔里了
屬性:
TotalBytes:指定客戶端在請(qǐng)求正文中發(fā)送的總字節(jié)數(shù).該屬性只允許讀
方法:
BinaryRead():獲取作為POST請(qǐng)求的一部分而從客戶端傳送到服務(wù)器的數(shù)據(jù).此方
法獲取來自客戶端的數(shù)據(jù)并將其儲(chǔ)存在SafeArray中.SafeArray是一個(gè)數(shù)組,其中
包含維數(shù)和邊界信息,通俗地說,安全數(shù)組就時(shí)維數(shù)以及維數(shù)的上下限都確定的數(shù)組
BinaryRead方法用于讀取作為POST請(qǐng)求的一部分從客戶端發(fā)出的未加工數(shù)據(jù).此方
法用于在底層訪問數(shù)據(jù),與此相反,Request.Form集合用于查看在公告請(qǐng)求中發(fā)送
的表格數(shù)據(jù).一旦調(diào)用了BinaryRead,則引用Request.Form集合中的任何變量都將
導(dǎo)致錯(cuò)誤發(fā)生.反之,一旦引用了Request.Form集合中的一個(gè)變量,則調(diào)用
BinaryWrite也將導(dǎo)致錯(cuò)誤發(fā)生.請(qǐng)記住,如果在訪問Request集合中的變量時(shí)未指
定該變量屬于哪一個(gè)子集,將搜索Request.Form集合并強(qiáng)制使用上述規(guī)則.
常用:對(duì)于表單的提交或者是頁(yè)面之間的參數(shù)傳遞,request起著重要的作用,區(qū)分好
Form和QueryString兩個(gè)區(qū)別,
當(dāng)而只用request,省略這兩個(gè)集合時(shí),asp會(huì)自動(dòng)調(diào)整,但這樣做是不好的.對(duì)于表
單,通常request是通過
表單元素的name來獲得表單元素的值(value)
另外,在無組件上傳文件時(shí),TotalBytes用來獲取上傳文件的大小,BinaryRead()
用來獲取上傳表單的所有內(nèi)容.
當(dāng)然,如果想獲得文件內(nèi)容,需要進(jìn)行對(duì)BinaryRead()獲得的內(nèi)容進(jìn)行分析截取
*-->response對(duì)象:
功能:將輸出發(fā)送到客戶端,剛好和request相對(duì)
集合:
cookies:在當(dāng)前響應(yīng)中,發(fā)回客戶端的所有cookie的值,這個(gè)集合為只寫
例子:
'Expires設(shè)置過期事件,時(shí)間格式#英文月單詞 數(shù)字日期,4位年份#
response.cookies("name")="草履蟲"
response.cookies("name").Expires=#May 11,2007#
'至于讀就要用request.cookies了
name=request.cookies("name") '這樣name就獲得了"草履蟲"
'利用cookies可以做免密碼登錄,判斷用戶是否登錄過以及由這些觸發(fā)的事件等
等
'cookie也有count,item和key屬性
'單個(gè)cookie屬性還有dimain,haskeys,path,secure屬性,具體的等用到時(shí)候再查
屬性:
Buffer=True|False:讀/寫,布爾型,表明由一個(gè)ASP頁(yè)所創(chuàng)建的輸出是否一直存放
在IIS緩沖區(qū),直到當(dāng)前頁(yè)面的所有服務(wù)器腳本處理完畢或Flush、End方法被
調(diào)用.在任何輸出(包括HTTP報(bào)頭信息)送往IIS之前這個(gè)屬性必須設(shè)置.因此
在.asp文件中,這個(gè)設(shè)置應(yīng)該在<%@ LANGUAGE=...%>語句后面的第一行.ASP3.0
缺省設(shè)置緩沖為開(True),而在早期版本中缺省為關(guān)(False)
CacheControl:讀/寫,字符型,設(shè)置這個(gè)屬性為"Public"允許代理服務(wù)器緩存頁(yè)面,
如為"Private"則禁止代理服務(wù)器緩存的發(fā)生.
Charset:讀/寫,字符型,在由服務(wù)器為每個(gè)響應(yīng)創(chuàng)建的HTTP Content-Type報(bào)頭中附
上所用的字符集名稱(例如:ISO-LATIN-7)
Content Type="MIME-type":讀/寫,字符型,指明響應(yīng)的HTTP內(nèi)容類型,標(biāo)準(zhǔn)的MIME
類型(例如"text/xml"或者"Image/gif").假如省略,表示使用MIME類型
"text/html",內(nèi)容類型告訴瀏覽器所期望內(nèi)容的類型,關(guān)于MIME列表,打印在
MIME參考文檔里,需要時(shí)可以去參考
Expires:讀/寫,數(shù)值型,指明頁(yè)面有效的以分鐘計(jì)算的時(shí)間長(zhǎng)度,假如用戶請(qǐng)求其有
效期滿之前的相同頁(yè)面,將直接讀取顯示緩沖中的內(nèi)容,這個(gè)有效期間過后,頁(yè)
面將不再保留在私有(用戶)或公用(代理服務(wù)器)緩沖中.如果希望一個(gè)文件立
即終止,可以將該屬性值設(shè)置為一個(gè)非常大的負(fù)數(shù).一個(gè)文件內(nèi)多次設(shè)置了
expires屬性將使用最早的時(shí)間/日期為該文件的終止時(shí)間(是一個(gè)相對(duì)時(shí)間)
ExpiresAbsolute:讀/寫,日期/時(shí)間型,指明當(dāng)一個(gè)頁(yè)面過期和不再有效時(shí)的絕對(duì)日
期和時(shí)間.在未到期之前,若用戶返回到該頁(yè),該緩存的頁(yè)就顯示.如果未指定時(shí)
間,該主頁(yè)在當(dāng)天午夜到期.如果未指定日期,則該主頁(yè)在腳本運(yùn)行當(dāng)天的指定
時(shí)間到期
IsClientConnected:只讀,布爾型,返回客戶是否仍然連接和下載頁(yè)面的狀態(tài)標(biāo)志.
在當(dāng)前的頁(yè)面已執(zhí)行完畢之前,假如一個(gè)客戶轉(zhuǎn)移到另一個(gè)頁(yè)面,這個(gè)標(biāo)志可用
來中止處理(使用Response.End方法)
PICS:只寫,字符型,創(chuàng)建一個(gè)PICS報(bào)頭并將之加到響應(yīng)中的HTTP報(bào)頭中,PICS報(bào)頭
定義頁(yè)面內(nèi)容中的詞匯等級(jí),如暴力、性、不良語言等
Status:讀/寫,字符型,指明發(fā)回客戶的響應(yīng)的HTTP報(bào)頭中表明錯(cuò)誤或頁(yè)面處理是
否成功的狀態(tài)值和信息.例如"200 OK"和"404 Not Found"
方法:
AddHeader "name","content":通過使用name和Content值,創(chuàng)建一個(gè)定制的HTTP
報(bào)頭,并增加到響應(yīng)之中.不能替換現(xiàn)有的相同名稱的報(bào)頭.一旦已經(jīng)增加了一
個(gè)報(bào)頭就不能被刪除.這個(gè)方法必須在任何頁(yè)面內(nèi)容(即text和HTML)被發(fā)往客
戶端前使用
AppendToLog("string"):當(dāng)使用"W3C Extended Log File Format"文件格式時(shí),對(duì)于
用戶請(qǐng)求的Web服務(wù)器的日志文件增加一個(gè)條目.至少要求在包含頁(yè)面的站點(diǎn)
的"Extended Properties"頁(yè)中選擇"URI Stem".string為要添加到日志文件中
的文本.由于IIS日志中的字段由逗號(hào)分隔,所以該字符串中不能包含逗號(hào)
(,).字符串最大長(zhǎng)度為 80 個(gè)字符
BinaryWrite():在當(dāng)前的HTTP輸出流中寫入Variant類型的SafeArray,而不經(jīng)過
任何字符轉(zhuǎn)換.對(duì)于寫入非字符串的信息,例如定制的應(yīng)用程序請(qǐng)求的二進(jìn)制數(shù)
據(jù)或組成圖像文件的二進(jìn)制字節(jié),是非常有用的
Clear():當(dāng)Response.Buffer為True時(shí),從IIS響應(yīng)緩沖中刪除現(xiàn)存的緩沖頁(yè)面內(nèi)
容.但不刪除HTTP響應(yīng)的報(bào)頭,可用來放棄部分完成的頁(yè)面
End():讓ASP結(jié)束處理頁(yè)面的腳本,并返回當(dāng)前已創(chuàng)建的內(nèi)容,然后放棄頁(yè)面的任何
進(jìn)一步處理
Flush():發(fā)送IIS緩沖中所有當(dāng)前緩沖頁(yè)給客戶端(立即發(fā)送緩沖區(qū)中的輸出).當(dāng)
Response.buffer為True時(shí),可以用來發(fā)送較大頁(yè)面的部分內(nèi)容給個(gè)別的用戶.
如果未將Response.Buffer設(shè)置為TRUE,則該方法將導(dǎo)致運(yùn)行時(shí)錯(cuò)誤
Redirect("url")通過在響應(yīng)中發(fā)送一個(gè)"302 Object Moved" HTTP報(bào)頭,指示
瀏覽器根據(jù)字符串url下載相應(yīng)地址的頁(yè)面,瀏覽器重定向到URL.
Write("string"):在當(dāng)前的HTTP響應(yīng)信息流和IIS緩沖區(qū)寫入指定的字符,使之成
為返回頁(yè)面的一部分.該值不能包括字符組合%>,如果需要,可用轉(zhuǎn)義序列%\>代
替.Web服務(wù)器在處理腳本時(shí),將轉(zhuǎn)換這一轉(zhuǎn)義序列還有一種格式輸
出:<%=...%>,但這要在asp和html之間轉(zhuǎn)換,速度減慢,最好的辦法是一行
response.write(),字符串用&連接常用:cookies,buffer,content type,
expires,status,binarywrite,clear,end,flush,redirect,write這些都是很
常用的和瀏覽器交互的重要成分,cookies用于客戶身份方面,和它相關(guān)的有
expires;buffer以及和buffer相關(guān)的clear,flush,end這些用于緩存
的控制;content type最常用于xml和圖像內(nèi)容的輸出;stutas用于判斷狀態(tài),
特別在xmlhttp中;write用于輸出;redirect用于轉(zhuǎn)接內(nèi)容;binarywrite一般
用于接收上傳的文件內(nèi)容
*-->server對(duì)象:
功能:提供對(duì)服務(wù)器上的方法和屬性的訪問.其中大多數(shù)方法和屬性是作為實(shí)用程序的功
能服務(wù)的
屬性:
ScriptTimeout:整型,缺省值為90秒,設(shè)置或返回頁(yè)面的腳本在服務(wù)器退出執(zhí)行和
報(bào)告一個(gè)錯(cuò)誤之前可以執(zhí)行的時(shí)間(秒數(shù)).達(dá)到該值后將自動(dòng)停止頁(yè)面的執(zhí)行,
并從內(nèi)存中刪除包含可能進(jìn)入死循環(huán)的錯(cuò)誤的頁(yè)面或者是那些長(zhǎng)時(shí)間等待其他
資源的網(wǎng)頁(yè).這會(huì)防止服務(wù)器因存在錯(cuò)誤的頁(yè)面而過載.對(duì)于運(yùn)行時(shí)間較長(zhǎng)的頁(yè)
面需要增大這個(gè)值
方法:
CreateObject("identifier"):創(chuàng)建由identifier標(biāo)識(shí)的對(duì)象(一個(gè)組件、應(yīng)用程序
或腳本對(duì)象)的一個(gè)實(shí)例,返回可以在代碼中使用的一個(gè)引用.可以用于一個(gè)虛
擬應(yīng)用程序(global.asa頁(yè))創(chuàng)建會(huì)話層或應(yīng)用程序?qū)臃秶鷥?nèi)的對(duì)象.該對(duì)象可
以用其ClassID來標(biāo)識(shí),如"{clsid:BD96C556-65A3...37A9}"或一個(gè)ProgID串
來標(biāo)識(shí),如"ADODB.Connection",通常我們使用ProgID
注意下面幾點(diǎn):
1.默認(rèn)情況下,由Server.CreateObject方法創(chuàng)建的對(duì)象具有頁(yè)作用域.這就是
說,在當(dāng)前ASP頁(yè)處理完成之后,服務(wù)器將自動(dòng)破壞這些對(duì)象
2.可以通過將變量設(shè)置為 Nothing 或新的值來破壞對(duì)象
3.不能創(chuàng)建與內(nèi)建對(duì)象同名的對(duì)象實(shí)例
Execute("url"):停止當(dāng)前頁(yè)面的執(zhí)行,把控制轉(zhuǎn)到在url中指定的網(wǎng)頁(yè).用戶的當(dāng)
前環(huán)境(即會(huì)話狀態(tài)和當(dāng)前事務(wù)狀態(tài))也傳遞到新的網(wǎng)頁(yè).在該頁(yè)面執(zhí)行完成后,
控制傳遞回原先的頁(yè)面,并繼續(xù)執(zhí)行Execute方法后面的語句
GetLastError():返回ASP ASPError對(duì)象的一個(gè)引用,這個(gè)對(duì)象包含該頁(yè)面在ASP
處理過程中發(fā)生的最近一次錯(cuò)誤的詳細(xì)數(shù)據(jù).這些由ASPError對(duì)象給出的信息
包含文件名、行號(hào)、錯(cuò)誤代碼等等HTMLEncode("string"):返回一個(gè)字符串,該
串是輸入值string的拷貝,但去掉了所有非法的HTML字符,
常見不合法HTML字符及其轉(zhuǎn)換字符有:
< 對(duì)應(yīng) <
> 對(duì)應(yīng) >
& 對(duì)應(yīng) &
" 對(duì)應(yīng) "
對(duì)應(yīng) (空格)
? 對(duì)應(yīng) ©(版權(quán))
? 對(duì)應(yīng) ®(注冊(cè)商標(biāo))
×對(duì)應(yīng) ×(乘號(hào))
÷對(duì)應(yīng) ÷(除號(hào))
MapPath("url"):返回在url中指定的文件或資源的完整物理路徑和文件名
Transfer("url"):停止當(dāng)前頁(yè)面的執(zhí)行,把控制轉(zhuǎn)到url中指定的頁(yè)面.用戶的當(dāng)前 環(huán)境(即會(huì)話狀態(tài)和當(dāng)前事務(wù)狀態(tài))也傳遞到新的頁(yè)面.與Execute方法不同,當(dāng)
新頁(yè)面執(zhí)行完成時(shí),不回到原來的頁(yè)面,而是結(jié)束執(zhí)行過程
URLEncode("string"):返回一個(gè)字符串,該串是輸入值string的拷貝,但是在URL
中無效的所有字符,
常見不合法的URL字符及其轉(zhuǎn)換字符有:
# 用來標(biāo)志特定的文檔位置 %23
% 對(duì)特殊字符進(jìn)行編碼 %25
& 分隔不同的變量值對(duì) %26
+ 在變量值中表示空格 %2B
/ 表示目錄路徑 %2F
\ 表示目錄路徑 %5C
= 用來連接鍵和值 %3D
? 表示查詢字符串的開始 %3F
空格 %20
. 句號(hào) %2E
: 冒號(hào) %3A
*-->ASPError對(duì)象:
由于錯(cuò)誤機(jī)制IIS已經(jīng)能識(shí)別定位,暫時(shí)略過不深入了
*-->ObjectContext對(duì)象:
功能:控制ASP的事務(wù)處理.事務(wù)處理由Microsoft Transaction Server (MTS)管理
事件:
OnTransactionAbort:由放棄的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生
OnTransactionCommit:由成功的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生
方法:
SetAbort:顯式的放棄一次事務(wù)處理
SetComplete:覆蓋前面任何調(diào)用ObjectContext.SetAbort方法的調(diào)用
由于沒有涉及,等涉及時(shí)深入,暫時(shí)了解即可
*-->作者:草履蟲
*-->時(shí)間:2007-4.28---2007-4.30(原來是自己編寫的手冊(cè),現(xiàn)在發(fā)在這里)
*-->聯(lián)系:caolvchong@gmail.com
*-->文檔功能:
1.復(fù)習(xí)了ASP,加深了對(duì)ASP結(jié)構(gòu)的理解和ASP的體會(huì)
2.可以用來做ASP參考,自己寫的,參考起來更方便
這是第二部分:ASP七大對(duì)象
/*---------------------------ASP七大對(duì)象----------------------------*/
*-->Application對(duì)象:
功能:在給定的應(yīng)用程序的所有用戶之間共享信息,并在服務(wù)器運(yùn)行期間持久的保存數(shù)
據(jù).而且,Application對(duì)象還有控制訪問應(yīng)用層數(shù)據(jù)的方法和可用于在應(yīng)用程序啟
動(dòng)和停止時(shí)觸發(fā)過程的事件(OnStart事件和OnEnd事件)
屬性:沒有內(nèi)置的屬性
集合:即用戶自定義的屬性
Application 對(duì)象的集合及說明:
Contents:沒有使用<OBJECT>元素定義的存儲(chǔ)于Application對(duì)象中的所有變量(及
它們的值)的一個(gè)集合.包括Variant數(shù)組和Variant類型對(duì)象實(shí)例的引用
StaticObjects:使用<OBJECT>元素定義的存儲(chǔ)于Application對(duì)象中的所有變量
(及它們的值)的一個(gè)集合
對(duì)應(yīng)的例子:
設(shè)置application屬性值:
Application("MyVar") = "Hello"
Set Application("MyObj") = Server.CreateObject("MyComponent")
方法:
Contents.Remove():移去某個(gè)application集合
Contents.Removeall():移去所有的Application集合
Lock():阻止其他客戶修改存儲(chǔ)在Application對(duì)象中的變量,以確保在同一時(shí)刻僅
有一個(gè)客戶可修改和存取 Application 變量.如果用戶沒有明確調(diào)用Unlock
方法,則服務(wù)器將在.asp文件結(jié)束或超時(shí)后即解除對(duì) Application 對(duì)象的鎖
定
Unlock():使其他客戶端可以在使用Lock方法鎖住Application對(duì)象后,修改存儲(chǔ)在
該對(duì)象中的變量.如果未顯式調(diào)用該方法,Web服務(wù)器將在.asp文件結(jié)束或超時(shí)
后解鎖Application對(duì)象
一個(gè)綜合點(diǎn)的例子:
在1.asp中:
'設(shè)置3個(gè)application屬性值
application("chong1")="第1個(gè)application集合項(xiàng)"
application("chong2")="第2個(gè)application集合項(xiàng)"
application("chong3")="第3個(gè)application集合項(xiàng)"
'設(shè)置的屬性值都保留在application.contents中,基數(shù)從0開始,因此可以用
'for循環(huán)讀出來
'這里總結(jié)下contents集合的屬性:
'count屬性:返回集合中所有的項(xiàng)數(shù),返回值是個(gè)整數(shù)
'item屬性:用于設(shè)置或返回集合中一個(gè)特定成員的值,item屬性是
contents
'集合的默認(rèn)屬性,因此.item(x)相當(dāng)于.(x)
'key屬性:key(x)返回對(duì)應(yīng)的屬性名,如上面
application.contents.key(1)
'將返回chong1
For i = 1 to Application.Contents.Count
Response.Write (Application.Contents.item(i))
Next
在2.asp中:
'2.asp和1.asp共享了application對(duì)象內(nèi)容,因此可以對(duì)該集合元素進(jìn)行修
改或刪除等
application("chong1")="我被修改了" '修改application屬性值
application.Contents.Remove("chong2") '刪除application屬性值
for each j in application.Contents 'for each形式訪問application
response.Write(Application.Contents.item(j))
next
事件:至于兩個(gè)事件onstart()和onend()等總結(jié)Global.asa文件時(shí)介紹
經(jīng)驗(yàn):通常地,當(dāng)要修改某個(gè)application值時(shí),應(yīng)當(dāng)先用Lock()鎖定它,然后再修改,修
改完后再Unlock(),防止多個(gè)用戶并發(fā)訪問該對(duì)象
常用:設(shè)置,修改和刪除application集合,結(jié)合lock和unlock方法
*-->Session對(duì)象:
功能:Session對(duì)象存儲(chǔ)特定的用戶會(huì)話所需的信息.當(dāng)用戶在應(yīng)用程序的頁(yè)之間跳轉(zhuǎn)
時(shí),存儲(chǔ)在Session對(duì)象中的變量不會(huì)清除,而用戶在應(yīng)用程序中訪問頁(yè)面時(shí),這些
變量始終存在.當(dāng)用戶請(qǐng)求來自應(yīng)用程序的Web頁(yè)時(shí),如果該用戶還沒有會(huì)話,則
Web 服務(wù)器將自動(dòng)創(chuàng)建一個(gè)Session對(duì)象.當(dāng)會(huì)話過期或被放棄后,服務(wù)器將終止該
會(huì)話(和application差別是session不是共享的,各個(gè)用戶有各自的session,由此
可以用來驗(yàn)證用戶的身份)
集合:和application一樣地,session具有contents和StaticObject兩個(gè)集合
屬性:
CodePage:讀/寫.整型.定義用于在瀏覽器中顯示頁(yè)內(nèi)容的代碼頁(yè)(Code Page).代碼
頁(yè)是字符集的數(shù)字值,不同的語言和場(chǎng)所可能使用不同的代碼頁(yè).例如,650001
是UTF-8,936為GB2312
LCID:讀/寫.整型.定義發(fā)送給瀏覽器的頁(yè)面地區(qū)標(biāo)識(shí)(LCID).LCID是唯一地標(biāo)識(shí)地
區(qū)的一個(gè)國(guó)際標(biāo)準(zhǔn)縮寫,例如,2057定義當(dāng)前地區(qū)的貨幣符號(hào)是'£'.LCID也可
用于FormatCurrency等語句中,只要其中有一個(gè)可選的LCID參數(shù).LCID也可在
ASP處理指令<%...%>中設(shè)置,并優(yōu)先于會(huì)話的LCID屬性中的設(shè)置.
SessionID:只讀.長(zhǎng)整型.返回這個(gè)會(huì)話的會(huì)話標(biāo)識(shí)符.SessionID屬性返回用戶的
會(huì)話標(biāo)識(shí).在創(chuàng)建會(huì)話時(shí),服務(wù)器會(huì)為每一個(gè)會(huì)話生成一個(gè)單獨(dú)的標(biāo)識(shí).會(huì)話標(biāo)
識(shí)以長(zhǎng)整形數(shù)據(jù)類型返回.在很多情況下 SessionID 可以用于 WEB 頁(yè)面注冊(cè)
統(tǒng)計(jì)
Timeout:讀/寫.整型.為這個(gè)會(huì)話定義以分鐘為單位的超時(shí)周期.如果用戶在超時(shí)周
期內(nèi)沒有進(jìn)行刷新或請(qǐng)求一個(gè)網(wǎng)頁(yè),該會(huì)話結(jié)束.在各網(wǎng)頁(yè)中根據(jù)需要可以修
改.缺省值是20min,在使用率高的站點(diǎn)上該時(shí)間應(yīng)更短
方法:
Abandon():Abandon方法刪除所有存儲(chǔ)在Session對(duì)象中的對(duì)象并釋放這些對(duì)象的
源.如果您未明確地調(diào)用Abandon方法,一旦會(huì)話超時(shí),服務(wù)器將刪除這些對(duì)象.
當(dāng)服務(wù)器處理完當(dāng)前頁(yè)時(shí),下面示例將釋放會(huì)話狀態(tài)
另外,session和application一樣,具有contents.remove()和
contents.removeall()方法
事件:至于兩個(gè)事件onstart()和onend()等總結(jié)Global.asa文件時(shí)介紹
常用:設(shè)置,修改,刪除session,另外timeout也是常用的,記住一點(diǎn),session依賴cookies,當(dāng)瀏覽器關(guān)閉或者不
支持cookie時(shí)將不能訪問到session
*-->request對(duì)象:
功能:Request對(duì)象在HTTP請(qǐng)求期間,檢索客戶端瀏覽器傳遞給服務(wù)器的值
集合:
ClientCertificate:當(dāng)客戶端訪問一個(gè)頁(yè)面或其他資源時(shí),用來向服務(wù)器表明身份
的客戶證書的所有字段或條目的數(shù)值集合,每個(gè)成員均是只
讀.ClientCertificate集合從Web瀏覽器發(fā)布請(qǐng)求中獲取驗(yàn)證字段(由X.509
標(biāo)準(zhǔn)指定).如果Web瀏覽器使用SSL3.0/PCT1協(xié)議(也就是說,它使用以
https://開頭的URL,而不是http://)連接服務(wù)器及服務(wù)器請(qǐng)求驗(yàn)證,則瀏覽器
將發(fā)送驗(yàn)證字段.如果沒有發(fā)送驗(yàn)證,ClientCertificate集合將返回EMPTY.必
須先將Web服務(wù)器配置為要求客戶端驗(yàn)證,然后才能使用ClientCertificate
集合.
Cookies:根據(jù)用戶的請(qǐng)求,用戶系統(tǒng)發(fā)出的所有cookie的值的集合,這些Cookie僅
對(duì)相應(yīng)的域有效,每個(gè)成員均為只讀,cookies也具有count,item,key三個(gè)屬
性,用法可以類比上面提到的application中提到的.另外,cookies還有個(gè)屬性
haskeys,指明cookie是多值還是單值的,多值返回true,單值返回false
Form:的屬性值為POST時(shí),所有作為請(qǐng)求提交的<FORM>段中的HTML控件單元的值的
集合,每個(gè)成員均為只讀,form也具有count,item,key三個(gè)屬性
QueryString:依附于用戶請(qǐng)求的URL后面的名稱/數(shù)值對(duì)或者作為請(qǐng)求提交的且
METHOD屬性值為GET(或者省略其屬性)的,字符串由問號(hào)(?)后的值指定,或
<FORM>中所有HTML控件單元的值,每個(gè)成員均為只讀,Querystring也具有
count,item,key三個(gè)屬性
ServerVariables:隨同客戶端請(qǐng)求發(fā)出的HTTP報(bào)頭值,以及Web服務(wù)器的幾種
環(huán)境變量的值的集合,每個(gè)成員均為只讀,ServerVariables也具有
count,item,key三個(gè)屬性servervariables參數(shù)我打印在了"servervariables
參數(shù)集"文檔里了
屬性:
TotalBytes:指定客戶端在請(qǐng)求正文中發(fā)送的總字節(jié)數(shù).該屬性只允許讀
方法:
BinaryRead():獲取作為POST請(qǐng)求的一部分而從客戶端傳送到服務(wù)器的數(shù)據(jù).此方
法獲取來自客戶端的數(shù)據(jù)并將其儲(chǔ)存在SafeArray中.SafeArray是一個(gè)數(shù)組,其中
包含維數(shù)和邊界信息,通俗地說,安全數(shù)組就時(shí)維數(shù)以及維數(shù)的上下限都確定的數(shù)組
BinaryRead方法用于讀取作為POST請(qǐng)求的一部分從客戶端發(fā)出的未加工數(shù)據(jù).此方
法用于在底層訪問數(shù)據(jù),與此相反,Request.Form集合用于查看在公告請(qǐng)求中發(fā)送
的表格數(shù)據(jù).一旦調(diào)用了BinaryRead,則引用Request.Form集合中的任何變量都將
導(dǎo)致錯(cuò)誤發(fā)生.反之,一旦引用了Request.Form集合中的一個(gè)變量,則調(diào)用
BinaryWrite也將導(dǎo)致錯(cuò)誤發(fā)生.請(qǐng)記住,如果在訪問Request集合中的變量時(shí)未指
定該變量屬于哪一個(gè)子集,將搜索Request.Form集合并強(qiáng)制使用上述規(guī)則.
常用:對(duì)于表單的提交或者是頁(yè)面之間的參數(shù)傳遞,request起著重要的作用,區(qū)分好
Form和QueryString兩個(gè)區(qū)別,
當(dāng)而只用request,省略這兩個(gè)集合時(shí),asp會(huì)自動(dòng)調(diào)整,但這樣做是不好的.對(duì)于表
單,通常request是通過
表單元素的name來獲得表單元素的值(value)
另外,在無組件上傳文件時(shí),TotalBytes用來獲取上傳文件的大小,BinaryRead()
用來獲取上傳表單的所有內(nèi)容.
當(dāng)然,如果想獲得文件內(nèi)容,需要進(jìn)行對(duì)BinaryRead()獲得的內(nèi)容進(jìn)行分析截取
*-->response對(duì)象:
功能:將輸出發(fā)送到客戶端,剛好和request相對(duì)
集合:
cookies:在當(dāng)前響應(yīng)中,發(fā)回客戶端的所有cookie的值,這個(gè)集合為只寫
例子:
'Expires設(shè)置過期事件,時(shí)間格式#英文月單詞 數(shù)字日期,4位年份#
response.cookies("name")="草履蟲"
response.cookies("name").Expires=#May 11,2007#
'至于讀就要用request.cookies了
name=request.cookies("name") '這樣name就獲得了"草履蟲"
'利用cookies可以做免密碼登錄,判斷用戶是否登錄過以及由這些觸發(fā)的事件等
等
'cookie也有count,item和key屬性
'單個(gè)cookie屬性還有dimain,haskeys,path,secure屬性,具體的等用到時(shí)候再查
屬性:
Buffer=True|False:讀/寫,布爾型,表明由一個(gè)ASP頁(yè)所創(chuàng)建的輸出是否一直存放
在IIS緩沖區(qū),直到當(dāng)前頁(yè)面的所有服務(wù)器腳本處理完畢或Flush、End方法被
調(diào)用.在任何輸出(包括HTTP報(bào)頭信息)送往IIS之前這個(gè)屬性必須設(shè)置.因此
在.asp文件中,這個(gè)設(shè)置應(yīng)該在<%@ LANGUAGE=...%>語句后面的第一行.ASP3.0
缺省設(shè)置緩沖為開(True),而在早期版本中缺省為關(guān)(False)
CacheControl:讀/寫,字符型,設(shè)置這個(gè)屬性為"Public"允許代理服務(wù)器緩存頁(yè)面,
如為"Private"則禁止代理服務(wù)器緩存的發(fā)生.
Charset:讀/寫,字符型,在由服務(wù)器為每個(gè)響應(yīng)創(chuàng)建的HTTP Content-Type報(bào)頭中附
上所用的字符集名稱(例如:ISO-LATIN-7)
Content Type="MIME-type":讀/寫,字符型,指明響應(yīng)的HTTP內(nèi)容類型,標(biāo)準(zhǔn)的MIME
類型(例如"text/xml"或者"Image/gif").假如省略,表示使用MIME類型
"text/html",內(nèi)容類型告訴瀏覽器所期望內(nèi)容的類型,關(guān)于MIME列表,打印在
MIME參考文檔里,需要時(shí)可以去參考
Expires:讀/寫,數(shù)值型,指明頁(yè)面有效的以分鐘計(jì)算的時(shí)間長(zhǎng)度,假如用戶請(qǐng)求其有
效期滿之前的相同頁(yè)面,將直接讀取顯示緩沖中的內(nèi)容,這個(gè)有效期間過后,頁(yè)
面將不再保留在私有(用戶)或公用(代理服務(wù)器)緩沖中.如果希望一個(gè)文件立
即終止,可以將該屬性值設(shè)置為一個(gè)非常大的負(fù)數(shù).一個(gè)文件內(nèi)多次設(shè)置了
expires屬性將使用最早的時(shí)間/日期為該文件的終止時(shí)間(是一個(gè)相對(duì)時(shí)間)
ExpiresAbsolute:讀/寫,日期/時(shí)間型,指明當(dāng)一個(gè)頁(yè)面過期和不再有效時(shí)的絕對(duì)日
期和時(shí)間.在未到期之前,若用戶返回到該頁(yè),該緩存的頁(yè)就顯示.如果未指定時(shí)
間,該主頁(yè)在當(dāng)天午夜到期.如果未指定日期,則該主頁(yè)在腳本運(yùn)行當(dāng)天的指定
時(shí)間到期
IsClientConnected:只讀,布爾型,返回客戶是否仍然連接和下載頁(yè)面的狀態(tài)標(biāo)志.
在當(dāng)前的頁(yè)面已執(zhí)行完畢之前,假如一個(gè)客戶轉(zhuǎn)移到另一個(gè)頁(yè)面,這個(gè)標(biāo)志可用
來中止處理(使用Response.End方法)
PICS:只寫,字符型,創(chuàng)建一個(gè)PICS報(bào)頭并將之加到響應(yīng)中的HTTP報(bào)頭中,PICS報(bào)頭
定義頁(yè)面內(nèi)容中的詞匯等級(jí),如暴力、性、不良語言等
Status:讀/寫,字符型,指明發(fā)回客戶的響應(yīng)的HTTP報(bào)頭中表明錯(cuò)誤或頁(yè)面處理是
否成功的狀態(tài)值和信息.例如"200 OK"和"404 Not Found"
方法:
AddHeader "name","content":通過使用name和Content值,創(chuàng)建一個(gè)定制的HTTP
報(bào)頭,并增加到響應(yīng)之中.不能替換現(xiàn)有的相同名稱的報(bào)頭.一旦已經(jīng)增加了一
個(gè)報(bào)頭就不能被刪除.這個(gè)方法必須在任何頁(yè)面內(nèi)容(即text和HTML)被發(fā)往客
戶端前使用
AppendToLog("string"):當(dāng)使用"W3C Extended Log File Format"文件格式時(shí),對(duì)于
用戶請(qǐng)求的Web服務(wù)器的日志文件增加一個(gè)條目.至少要求在包含頁(yè)面的站點(diǎn)
的"Extended Properties"頁(yè)中選擇"URI Stem".string為要添加到日志文件中
的文本.由于IIS日志中的字段由逗號(hào)分隔,所以該字符串中不能包含逗號(hào)
(,).字符串最大長(zhǎng)度為 80 個(gè)字符
BinaryWrite():在當(dāng)前的HTTP輸出流中寫入Variant類型的SafeArray,而不經(jīng)過
任何字符轉(zhuǎn)換.對(duì)于寫入非字符串的信息,例如定制的應(yīng)用程序請(qǐng)求的二進(jìn)制數(shù)
據(jù)或組成圖像文件的二進(jìn)制字節(jié),是非常有用的
Clear():當(dāng)Response.Buffer為True時(shí),從IIS響應(yīng)緩沖中刪除現(xiàn)存的緩沖頁(yè)面內(nèi)
容.但不刪除HTTP響應(yīng)的報(bào)頭,可用來放棄部分完成的頁(yè)面
End():讓ASP結(jié)束處理頁(yè)面的腳本,并返回當(dāng)前已創(chuàng)建的內(nèi)容,然后放棄頁(yè)面的任何
進(jìn)一步處理
Flush():發(fā)送IIS緩沖中所有當(dāng)前緩沖頁(yè)給客戶端(立即發(fā)送緩沖區(qū)中的輸出).當(dāng)
Response.buffer為True時(shí),可以用來發(fā)送較大頁(yè)面的部分內(nèi)容給個(gè)別的用戶.
如果未將Response.Buffer設(shè)置為TRUE,則該方法將導(dǎo)致運(yùn)行時(shí)錯(cuò)誤
Redirect("url")通過在響應(yīng)中發(fā)送一個(gè)"302 Object Moved" HTTP報(bào)頭,指示
瀏覽器根據(jù)字符串url下載相應(yīng)地址的頁(yè)面,瀏覽器重定向到URL.
Write("string"):在當(dāng)前的HTTP響應(yīng)信息流和IIS緩沖區(qū)寫入指定的字符,使之成
為返回頁(yè)面的一部分.該值不能包括字符組合%>,如果需要,可用轉(zhuǎn)義序列%\>代
替.Web服務(wù)器在處理腳本時(shí),將轉(zhuǎn)換這一轉(zhuǎn)義序列還有一種格式輸
出:<%=...%>,但這要在asp和html之間轉(zhuǎn)換,速度減慢,最好的辦法是一行
response.write(),字符串用&連接常用:cookies,buffer,content type,
expires,status,binarywrite,clear,end,flush,redirect,write這些都是很
常用的和瀏覽器交互的重要成分,cookies用于客戶身份方面,和它相關(guān)的有
expires;buffer以及和buffer相關(guān)的clear,flush,end這些用于緩存
的控制;content type最常用于xml和圖像內(nèi)容的輸出;stutas用于判斷狀態(tài),
特別在xmlhttp中;write用于輸出;redirect用于轉(zhuǎn)接內(nèi)容;binarywrite一般
用于接收上傳的文件內(nèi)容
*-->server對(duì)象:
功能:提供對(duì)服務(wù)器上的方法和屬性的訪問.其中大多數(shù)方法和屬性是作為實(shí)用程序的功
能服務(wù)的
屬性:
ScriptTimeout:整型,缺省值為90秒,設(shè)置或返回頁(yè)面的腳本在服務(wù)器退出執(zhí)行和
報(bào)告一個(gè)錯(cuò)誤之前可以執(zhí)行的時(shí)間(秒數(shù)).達(dá)到該值后將自動(dòng)停止頁(yè)面的執(zhí)行,
并從內(nèi)存中刪除包含可能進(jìn)入死循環(huán)的錯(cuò)誤的頁(yè)面或者是那些長(zhǎng)時(shí)間等待其他
資源的網(wǎng)頁(yè).這會(huì)防止服務(wù)器因存在錯(cuò)誤的頁(yè)面而過載.對(duì)于運(yùn)行時(shí)間較長(zhǎng)的頁(yè)
面需要增大這個(gè)值
方法:
CreateObject("identifier"):創(chuàng)建由identifier標(biāo)識(shí)的對(duì)象(一個(gè)組件、應(yīng)用程序
或腳本對(duì)象)的一個(gè)實(shí)例,返回可以在代碼中使用的一個(gè)引用.可以用于一個(gè)虛
擬應(yīng)用程序(global.asa頁(yè))創(chuàng)建會(huì)話層或應(yīng)用程序?qū)臃秶鷥?nèi)的對(duì)象.該對(duì)象可
以用其ClassID來標(biāo)識(shí),如"{clsid:BD96C556-65A3...37A9}"或一個(gè)ProgID串
來標(biāo)識(shí),如"ADODB.Connection",通常我們使用ProgID
注意下面幾點(diǎn):
1.默認(rèn)情況下,由Server.CreateObject方法創(chuàng)建的對(duì)象具有頁(yè)作用域.這就是
說,在當(dāng)前ASP頁(yè)處理完成之后,服務(wù)器將自動(dòng)破壞這些對(duì)象
2.可以通過將變量設(shè)置為 Nothing 或新的值來破壞對(duì)象
3.不能創(chuàng)建與內(nèi)建對(duì)象同名的對(duì)象實(shí)例
Execute("url"):停止當(dāng)前頁(yè)面的執(zhí)行,把控制轉(zhuǎn)到在url中指定的網(wǎng)頁(yè).用戶的當(dāng)
前環(huán)境(即會(huì)話狀態(tài)和當(dāng)前事務(wù)狀態(tài))也傳遞到新的網(wǎng)頁(yè).在該頁(yè)面執(zhí)行完成后,
控制傳遞回原先的頁(yè)面,并繼續(xù)執(zhí)行Execute方法后面的語句
GetLastError():返回ASP ASPError對(duì)象的一個(gè)引用,這個(gè)對(duì)象包含該頁(yè)面在ASP
處理過程中發(fā)生的最近一次錯(cuò)誤的詳細(xì)數(shù)據(jù).這些由ASPError對(duì)象給出的信息
包含文件名、行號(hào)、錯(cuò)誤代碼等等HTMLEncode("string"):返回一個(gè)字符串,該
串是輸入值string的拷貝,但去掉了所有非法的HTML字符,
常見不合法HTML字符及其轉(zhuǎn)換字符有:
< 對(duì)應(yīng) <
> 對(duì)應(yīng) >
& 對(duì)應(yīng) &
" 對(duì)應(yīng) "
對(duì)應(yīng) (空格)
? 對(duì)應(yīng) ©(版權(quán))
? 對(duì)應(yīng) ®(注冊(cè)商標(biāo))
×對(duì)應(yīng) ×(乘號(hào))
÷對(duì)應(yīng) ÷(除號(hào))
MapPath("url"):返回在url中指定的文件或資源的完整物理路徑和文件名
Transfer("url"):停止當(dāng)前頁(yè)面的執(zhí)行,把控制轉(zhuǎn)到url中指定的頁(yè)面.用戶的當(dāng)前 環(huán)境(即會(huì)話狀態(tài)和當(dāng)前事務(wù)狀態(tài))也傳遞到新的頁(yè)面.與Execute方法不同,當(dāng)
新頁(yè)面執(zhí)行完成時(shí),不回到原來的頁(yè)面,而是結(jié)束執(zhí)行過程
URLEncode("string"):返回一個(gè)字符串,該串是輸入值string的拷貝,但是在URL
中無效的所有字符,
常見不合法的URL字符及其轉(zhuǎn)換字符有:
# 用來標(biāo)志特定的文檔位置 %23
% 對(duì)特殊字符進(jìn)行編碼 %25
& 分隔不同的變量值對(duì) %26
+ 在變量值中表示空格 %2B
/ 表示目錄路徑 %2F
\ 表示目錄路徑 %5C
= 用來連接鍵和值 %3D
? 表示查詢字符串的開始 %3F
空格 %20
. 句號(hào) %2E
: 冒號(hào) %3A
*-->ASPError對(duì)象:
由于錯(cuò)誤機(jī)制IIS已經(jīng)能識(shí)別定位,暫時(shí)略過不深入了
*-->ObjectContext對(duì)象:
功能:控制ASP的事務(wù)處理.事務(wù)處理由Microsoft Transaction Server (MTS)管理
事件:
OnTransactionAbort:由放棄的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生
OnTransactionCommit:由成功的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生
方法:
SetAbort:顯式的放棄一次事務(wù)處理
SetComplete:覆蓋前面任何調(diào)用ObjectContext.SetAbort方法的調(diào)用
由于沒有涉及,等涉及時(shí)深入,暫時(shí)了解即可
相關(guān)文章
生成靜態(tài)頁(yè)大全[ASP/PHP/ASPX]
生成靜態(tài)頁(yè)大全[ASP/PHP/ASPX]...2006-07-07簡(jiǎn)單的ASP分頁(yè)代碼(測(cè)試正確)
簡(jiǎn)單的ASP分頁(yè)代碼(測(cè)試正確)...2007-03-03ASP中有關(guān)雙引號(hào),單引號(hào)以及&連接符號(hào)的解釋
很多ASP初學(xué)習(xí)的朋友都有可能在雙引號(hào),單引號(hào)以及&號(hào)上迷失了方向。最關(guān)鍵的是不理解三類符號(hào)的意思,當(dāng)然也就不能很好地掌握它們的用法了。以下是我對(duì)三類符號(hào)的看法,技術(shù)不精,難免有疏忽之處,肯請(qǐng)大家多提意見2007-01-01ServerVariables集合檢索預(yù)定的環(huán)境變量
ServerVariables集合檢索預(yù)定的環(huán)境變量...2007-02-02ASP編程入門進(jìn)階(二):認(rèn)識(shí)表單
ASP編程入門進(jìn)階(二):認(rèn)識(shí)表單...2007-01-01