ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程_第1頁(yè)
ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程_第2頁(yè)
ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程_第3頁(yè)
ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程_第4頁(yè)
ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程_第5頁(yè)
已閱讀5頁(yè),還剩165頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第6章ASP內(nèi)置對(duì)象ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!

本章介紹ASP的內(nèi)置對(duì)象,主要內(nèi)容包括Request對(duì)象、Response對(duì)象、Application對(duì)象、Session對(duì)象、Server對(duì)象和ObjectContext對(duì)象。通過(guò)本章的學(xué)習(xí),讀者應(yīng)了解以上每個(gè)對(duì)象的主要用途,并掌握每個(gè)對(duì)象在程序中的相關(guān)應(yīng)用。讀者還需進(jìn)一步理解ASP如何通過(guò)調(diào)用其內(nèi)置對(duì)象來(lái)實(shí)現(xiàn)基本操作。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!主要內(nèi)容

Application應(yīng)用程序?qū)ο?.4Session會(huì)話對(duì)象6.5Response響應(yīng)對(duì)象6.3ASP內(nèi)置對(duì)象概述6.1Request請(qǐng)求對(duì)象6.2ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!6.1ASP內(nèi)置對(duì)象概述

為了實(shí)現(xiàn)網(wǎng)站的常見功能,ASP提供了內(nèi)置對(duì)象。內(nèi)置對(duì)象的特點(diǎn)是:不需要事先聲明或者創(chuàng)建一個(gè)實(shí)例,可以直接使用。常見的內(nèi)置對(duì)象及其功能如下。

(源碼網(wǎng)整理:.codepub.)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!

信息包括客戶端用戶的HTTP變量、在網(wǎng)站服務(wù)器端存放的客戶端瀏覽器的Cookie數(shù)據(jù)、附于URL之后的字符串信息、頁(yè)面中表單傳送的數(shù)據(jù)以及客戶端證書等。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!表6-1 Request對(duì)象的成員成員描述Form數(shù)據(jù)集合讀取HTML表單域控件的值,即讀取客戶端瀏覽器上以Post方法提交的表單數(shù)據(jù)。QueryString數(shù)據(jù)集合讀取附于URL地址后的字符串的值,在頁(yè)面的參數(shù)傳遞中使用或Get提交的表單數(shù)據(jù)。Cookies數(shù)據(jù)集合讀取存放在客戶端瀏覽器Cookie的內(nèi)容。ServerVariables數(shù)據(jù)集合讀取客戶端請(qǐng)求發(fā)出的HTTP報(bào)頭值以及Web服務(wù)器的環(huán)境變量值。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!

6.2.1獲取表單數(shù)據(jù)表單是標(biāo)準(zhǔn)HTML文件的一部分,用戶可以利用表單中的文本框、復(fù)選框、單選按鈕、列表框等控件為服務(wù)器端的應(yīng)用提供初始數(shù)據(jù),用戶通過(guò)單擊表單中的命令按鈕提交輸入的數(shù)據(jù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!

語(yǔ)法:

Request.Form(element)[(index)|.Count]element:指定集合要檢索的表單元素的名稱。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!

【例6-1】通過(guò)Form集合獲取表單數(shù)據(jù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)!

圖6-2讀取數(shù)據(jù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)!Request.Form舉例制作網(wǎng)上考試系統(tǒng)根據(jù)輸入的行和列動(dòng)態(tài)生成表格文章發(fā)布系統(tǒng)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!

6.2.2Request.QueryString

通過(guò)Request對(duì)象的QueryString集合可以讀取地址欄后字符串參數(shù)或讀取Get方式提交的表單。1.利用Querystring集合讀取表單的內(nèi)容2.利用Querystring集合讀取HTTP查詢字符串中的參數(shù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!讀取表單數(shù)據(jù)的對(duì)應(yīng)關(guān)系表單提交方式讀

式Method=PostRequest.Form()Method=GetRequest.QueryString()ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!

語(yǔ)法:Request.QueryString(variable)[(index)|.count]ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!

使用GET方法在Web頁(yè)面間傳遞參數(shù)時(shí),是通過(guò)HTTP的附加參數(shù)來(lái)進(jìn)行傳遞的。通過(guò)瀏覽器的地址欄可以得到傳遞的參數(shù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!

圖6-5以GET方式傳遞數(shù)據(jù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!

2.使用超鏈接傳遞的參數(shù)在程序中,可以直接利用HTML的超鏈接標(biāo)記<A>傳遞參數(shù)。傳遞的參數(shù)寫在“?”符號(hào)的后面,如果有多個(gè)參數(shù)則使用“&”作為分隔符。使用Request對(duì)象的QueryString數(shù)據(jù)集合可以取得所傳遞的參數(shù)值。

(源碼網(wǎng)整理,.codepub.)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!

圖6-7建立超鏈接ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第18頁(yè)!Request.QueryString的應(yīng)用如果有時(shí)候要把多個(gè)ASP網(wǎng)頁(yè)的處理程序?qū)懺谝粋€(gè)頁(yè)面,可以用Request.QueryString集合進(jìn)行區(qū)分ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第19頁(yè)!

這些信息包括:發(fā)出請(qǐng)求的瀏覽器信息、構(gòu)成請(qǐng)求的HTTP方法、用戶登錄WindowsNT的賬號(hào)、客戶端的IP地址等。服務(wù)器端環(huán)境變量對(duì)ASP程序有很大幫助,使程序能夠根據(jù)不同情況進(jìn)行判斷,提高了程序的健壯性。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第20頁(yè)!表6-2 服務(wù)器環(huán)境變量服務(wù)器環(huán)境變量描述ALL_HTTP傳送HTTPHEADER頭部ALL_RAW取得HTTPHEADER的源程序ALL_MD_PATHISAPIDLL應(yīng)用程序的METBASE路徑ALL_PHYSICAL_PATHMETBASE路徑對(duì)應(yīng)的實(shí)際路徑AUTH_PASSWORD使用基本認(rèn)證時(shí),Client端輸入的認(rèn)證密碼AUTH_TYPEClient端的認(rèn)證方式AUTH_USER認(rèn)證時(shí)使用的用戶名CERT_COOKIEClient端證書IDASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第21頁(yè)!續(xù)表服務(wù)器環(huán)境變量描述CONTENT_LENGTHClient送出內(nèi)容的長(zhǎng)度CONTENT_TYPEClient送出內(nèi)容的類型GATEWAY_INTERFACEServer使用CGI規(guī)格版本HTTP_<headname>保存在頭部的其他信息HTTPS使用SSL提出要求時(shí),該值為ON,否則為OFFHTTPS_KEYSIZE使用SSL連接時(shí)Key的Bit數(shù)HTTPS_SECRETKEYSIZEServer證書密碼的Bit數(shù)HTTPS_SERVER_ISSUERServer證書發(fā)行者信息HTTPS_SERVER_SUBJECTServer證書內(nèi)容ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第22頁(yè)!續(xù)表服務(wù)器環(huán)境變量描述REMOTE_USER在Server認(rèn)證處理前從客戶端傳送的用戶名REQUEST_METHODClient端表單傳送數(shù)據(jù)的方法(POST,GET)SCRIPT_NAME正在運(yùn)行的腳本的名稱SERVER_NAME運(yùn)行腳本的服務(wù)器的主機(jī)名、DNS或IP地址SERVER_PORT取得Server端口號(hào)SERVER_PORT_SECUREServer端口是否安全,1表示安全,0表示不安全SERVER_PROTOCOL取得通信協(xié)議的名稱及編號(hào)SERVER_SOFTWARE取得Server端軟件的名稱及版本URL取得URL信息ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第23頁(yè)!

圖6-9獲得服務(wù)器端環(huán)境變量ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第24頁(yè)!

(1)Request對(duì)象的TotalBytes屬性

Request對(duì)象提供一個(gè)TotalBytes屬性,為只讀屬性,用于取得從客戶端發(fā)送到服務(wù)器端的所有數(shù)據(jù)字節(jié)數(shù)。語(yǔ)法:

Counter=Request.TotalBytesASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第25頁(yè)!Request.BinaryRead方法舉例上傳圖像ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第26頁(yè)!

通過(guò)Response對(duì)象可以將客戶端重定向到一個(gè)指定的頁(yè)面中,可以設(shè)置客戶端的Cookie值等。

Response對(duì)象的語(yǔ)法如下:

Response.collection|property|methodASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第27頁(yè)!續(xù)表成員描述IsClientConnected屬性表明客戶端是否與服務(wù)器斷開PICS屬性將PICS標(biāo)記的值添加到響應(yīng)的標(biāo)題的PICS標(biāo)記字段中Write方法直接向客戶端瀏覽器輸出數(shù)據(jù)End方法停止處理.asp文件并返回當(dāng)前的結(jié)果Redirect方法重定向當(dāng)前頁(yè)面,連接另外一個(gè)URLASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第28頁(yè)!

6.3.1向客戶端發(fā)送數(shù)據(jù)使用Response對(duì)象的Write方法可以將指定的字符串信息輸出到客戶端。Write方法是Response對(duì)象常用的響應(yīng)方法。語(yǔ)法:

Response.WritevariantASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第29頁(yè)!

圖6-10輸出數(shù)據(jù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第30頁(yè)!

ASP提供了另一種發(fā)送數(shù)據(jù)的方式,即利用緩存輸出。緩存輸出是指Web服務(wù)器生成ASP頁(yè)面時(shí),等ASP頁(yè)面全部處理完之后,再返回用戶請(qǐng)求。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第31頁(yè)!

緩沖啟用后凡是輸出到客戶端的信息都暫時(shí)存入緩沖區(qū),直到整個(gè)ASP執(zhí)行結(jié)束后或者調(diào)用了Response對(duì)象的Flush或End方法后,才將響應(yīng)發(fā)送給客戶端的瀏覽器。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第32頁(yè)!

(2)Flush方法

Response對(duì)象的Flush方法用于將緩沖區(qū)內(nèi)容立即發(fā)送給客戶端瀏覽器。在使用這一方法時(shí),Response對(duì)象的Buffer屬性應(yīng)設(shè)置為“True”,否則將導(dǎo)致運(yùn)行時(shí)錯(cuò)誤。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第33頁(yè)!

(3)Clear方法

Response對(duì)象的Clear方法用于清除任何緩沖的HTML輸出,即清除緩沖區(qū)。只有當(dāng)Buffer屬性設(shè)置為“True”時(shí),即緩沖區(qū)有內(nèi)容時(shí),才能執(zhí)行Clear方法,否則將導(dǎo)致運(yùn)行錯(cuò)誤。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第34頁(yè)!

【例6-7】使用緩沖輸出。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第35頁(yè)!

2.設(shè)置緩沖的有效期限保存在緩存中的內(nèi)容是有一定期限的。Response對(duì)象提供了一些屬性來(lái)設(shè)置頁(yè)面是否支持緩存、緩存內(nèi)容何時(shí)過(guò)期等。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第36頁(yè)!

在默認(rèn)情況下,ASP指示代理服務(wù)器不要高速緩存ASP頁(yè)本身。通過(guò)Response對(duì)象的CacheControl屬性設(shè)置Cache-Control頭字段,可以允許代理服務(wù)器高速緩存特定的頁(yè)面。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第37頁(yè)!

(2)Expires屬性

Response對(duì)象的Expires屬性用于指定在客戶端瀏覽器上緩沖存儲(chǔ)的頁(yè)面距過(guò)期還有多少時(shí)間。語(yǔ)法:

Response.Expires[=number]ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第38頁(yè)!

【例6-8】設(shè)置頁(yè)面的到期時(shí)間。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第39頁(yè)!

圖6-13網(wǎng)頁(yè)到期ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第40頁(yè)!

如果需要在當(dāng)前網(wǎng)頁(yè)轉(zhuǎn)移到一個(gè)新的URL,而不用經(jīng)過(guò)用戶去單擊超鏈接或者搜索URL,此時(shí)可以使用該方法使用戶瀏覽器直接重定向到新的URL。語(yǔ)法:

Response.RedirectURLASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第41頁(yè)!

圖6-14網(wǎng)頁(yè)重定向ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第42頁(yè)!

【例6-10】輸出二進(jìn)制數(shù)據(jù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第43頁(yè)!

圖6-16輸出二進(jìn)制數(shù)據(jù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第44頁(yè)!

當(dāng)一個(gè)包含Cookie的頁(yè)面被用戶瀏覽器讀取時(shí),瀏覽器就會(huì)為這個(gè)站點(diǎn)自動(dòng)建立一個(gè)Cookie文件,將此文件保存于系統(tǒng)目錄中的Cookies文件夾中,并且會(huì)把接受的數(shù)據(jù)寫進(jìn)這個(gè)文件,這樣一個(gè)Cookie就被存入到本地硬盤中,當(dāng)需要時(shí)該網(wǎng)站可以從用戶的本地硬盤中讀取這些Cookie值。Cookie文件中的變量稱為Cookie變量。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第45頁(yè)!

(1)寫入Cookie

使用Response對(duì)象的Cookies數(shù)據(jù)集合可以在客戶端寫入Cookie。語(yǔ)法:Response.Cookies(cookiesname)[(key)|.attribute]=valueASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第46頁(yè)!

【例6-11】在網(wǎng)頁(yè)中使用Cookie。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第47頁(yè)!

圖6-18讀取CookieASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第48頁(yè)!6.4Application應(yīng)用程序?qū)ο?/p>

ASP程序是在Web服務(wù)器上執(zhí)行的,在Web站點(diǎn)中創(chuàng)建一個(gè)基于ASP的應(yīng)用程序之后,可以通過(guò)Application對(duì)象在ASP應(yīng)用程序的所有用戶之間共享信息。

(源碼網(wǎng)整理:.codepub.)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第49頁(yè)!

語(yǔ)法:

Application.collection|methodASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第50頁(yè)!續(xù)表成員描述Lock方法鎖定Application變量,其他用戶就不能同時(shí)修改同一Application變量Unlock方法解除Application變量的鎖定狀態(tài)Application_OnStart事件當(dāng)應(yīng)用程序的個(gè)頁(yè)面被請(qǐng)求時(shí),觸發(fā)這個(gè)事件Application_OnEnd事件當(dāng)Web服務(wù)器關(guān)閉時(shí)這個(gè)事件中的代碼被觸發(fā)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第51頁(yè)!

當(dāng)創(chuàng)建一個(gè)新的Application應(yīng)用級(jí)變量時(shí),其實(shí)就是在Contents集合中添加了一項(xiàng)。語(yǔ)法:

Application.Contents(key)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第52頁(yè)!

圖6-19訪問Application應(yīng)用級(jí)變量ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第53頁(yè)!

(1)Lock方法

Lock方法用于鎖定Application對(duì)象,禁止非鎖定用戶修改Application對(duì)象集合中的變量值。語(yǔ)法:

Application.LockASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第54頁(yè)!

6.4.3制作網(wǎng)站計(jì)數(shù)器

Application對(duì)象的Application_OnStart事件和Application_OnEnd事件以及Session對(duì)象的Session_OnStart事件和Session_OnEnd事件都是定義在Global.asa文件中的。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第55頁(yè)!

一個(gè)應(yīng)用程序只能對(duì)應(yīng)一個(gè)Global.asa文件,該文件只有存放在網(wǎng)站的根目錄下才能正常運(yùn)行。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第56頁(yè)!

EndSubSubSession_OnEnd…EndSubSubApplication_OnEnd…EndSub</Script>ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第57頁(yè)!

圖6-20制作網(wǎng)站計(jì)數(shù)器ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第58頁(yè)!

當(dāng)用戶在Web站點(diǎn)中不同頁(yè)面切換時(shí),存儲(chǔ)在Session對(duì)象中的變量不會(huì)清除。使用Session對(duì)象變量可以實(shí)現(xiàn)用戶信息在多個(gè)Web頁(yè)面間共享,還可以用來(lái)跟蹤瀏覽者的訪問路徑,這樣對(duì)了解頁(yè)面的訪問情況以及網(wǎng)站的定位都有幫助。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第59頁(yè)!表6-6 Session對(duì)象的成員成員描述Contents集合包含通過(guò)腳本命令添加到應(yīng)用程序中的變量、對(duì)象StaticObjects集合包含由<Object>標(biāo)記添加到會(huì)話中的對(duì)象SessionID屬性系統(tǒng)用來(lái)存放并且識(shí)別該連接期間所使用的唯一識(shí)別碼,它的數(shù)據(jù)類型是長(zhǎng)整數(shù)并且是只讀的Timeout屬性應(yīng)用程序會(huì)話狀態(tài)的超時(shí)時(shí)限,以分鐘為單位ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第60頁(yè)!

6.5.1訪問Session會(huì)話級(jí)變量

Session對(duì)象的Contents數(shù)據(jù)集合包含通過(guò)Server對(duì)象的CreateObject方法創(chuàng)建的對(duì)象和通過(guò)Session對(duì)象聲明建立的變量,不包含以<Object>標(biāo)記定義的對(duì)象。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第61頁(yè)!

【例6-14】訪問Session會(huì)話級(jí)變量。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第62頁(yè)!

6.5.2返回當(dāng)前會(huì)話的唯一標(biāo)志符在創(chuàng)建會(huì)話時(shí),服務(wù)器會(huì)為每一個(gè)會(huì)話生成一個(gè)單獨(dú)的標(biāo)識(shí),使用Session對(duì)象的SessionID屬性可以返回當(dāng)前會(huì)話的唯一標(biāo)志符,即返回用戶的會(huì)話標(biāo)識(shí)。語(yǔ)法:

Session.SessionIDASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第63頁(yè)!

6.5.4釋放Session

根據(jù)實(shí)際需要,可以在滿足或者規(guī)定的條件下釋放Session對(duì)象所占用的資源。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第64頁(yè)!

【例6-15】釋放Session對(duì)象。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第65頁(yè)!

圖6-23顯示Session變量及用戶的SessionIDASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第66頁(yè)!

使用Server對(duì)象可以創(chuàng)建各種服務(wù)器組件對(duì)象實(shí)例,程序調(diào)用創(chuàng)建對(duì)象的屬性、方法可以實(shí)現(xiàn)訪問數(shù)據(jù)庫(kù)、對(duì)文件進(jìn)行輸入/輸出操作以及在Web頁(yè)上自動(dòng)輪換顯示廣告圖像等功能。使用Server對(duì)象還可以完成調(diào)用ASP腳本、ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第67頁(yè)!表6-7 Server對(duì)象的成員成員描述ScriptTimeOut屬性設(shè)置ASP腳本執(zhí)行的超時(shí)時(shí)間CreateObject方法創(chuàng)建服務(wù)器組件的實(shí)例MapPath方法將指定的虛擬路徑(無(wú)論是當(dāng)前服務(wù)器上的絕對(duì)路徑,還是當(dāng)前頁(yè)的相對(duì)路徑)映射為物理路徑HTMLEncode方法將HTML編碼應(yīng)用到指定的字符串URLEncode方法將URL編碼規(guī)則(包括轉(zhuǎn)義字符)應(yīng)用到字符串ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第68頁(yè)!

6.6.1設(shè)置ASP腳本執(zhí)行時(shí)間

Server對(duì)象只提供一個(gè)ScriptTimeout屬性,用于設(shè)置一個(gè)ASP腳本執(zhí)行的超時(shí)時(shí)間,即腳本所允許的最長(zhǎng)執(zhí)行時(shí)間。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第69頁(yè)!

【例6-16】設(shè)置ASP腳本執(zhí)行時(shí)間。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第70頁(yè)!

6.6.2創(chuàng)建服務(wù)器組件實(shí)例調(diào)用Server對(duì)象的CreateObject方法可以創(chuàng)建服務(wù)器組件的實(shí)例。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第71頁(yè)!

建立在組件對(duì)象模型(ComponentObjectModel,COM)模型上的對(duì)象,ASP有標(biāo)準(zhǔn)的函數(shù)調(diào)用接口,只要在操作系統(tǒng)上登記注冊(cè)了組件程序,COM就會(huì)在系統(tǒng)注冊(cè)表里維護(hù)這些資源,以供程序員調(diào)用。語(yǔ)法:

Server.CreateObject(progID)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第72頁(yè)!

【例6-17】獲取文件的真實(shí)物理路徑。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第73頁(yè)!

6.6.4輸出HTML源代碼通常情況下,HTML標(biāo)記會(huì)被瀏覽器解釋執(zhí)行,不會(huì)顯示在瀏覽器上。如果想將HTML標(biāo)記如實(shí)地顯示在瀏覽器上,可以調(diào)用Server對(duì)象的HTMLEncode方法。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第74頁(yè)!

【例6-18】輸出HTML源代碼。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第75頁(yè)!6.7ObjectContext事務(wù)處理對(duì)象ASP中提供ObjectContext對(duì)象控制ASP的事務(wù)處理。事務(wù)在服務(wù)器端運(yùn)行,主要用于對(duì)數(shù)據(jù)庫(kù)提供可靠的操作。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第76頁(yè)!

ASP中的事務(wù)處理程序是以MTS(MicrosoftTransactionServer)事件處理系統(tǒng)為基礎(chǔ)的,MTS是以組件為主的事物處理系統(tǒng),用于開發(fā)、配置和管理Internet、Intranet服務(wù)器應(yīng)用程序。MTS不能對(duì)文件系統(tǒng)或者其他非事務(wù)性資源的更改進(jìn)行恢復(fù)操作。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第77頁(yè)!

ObjectContext對(duì)象是通過(guò)和事務(wù)服務(wù)器通信來(lái)對(duì)事務(wù)進(jìn)行控制的,所以在ASP中使用ObjectContext對(duì)象之前必須聲明該頁(yè)包含事務(wù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第78頁(yè)!表6-8 @TRANSACTION關(guān)鍵字取值取值描述Required開始一個(gè)新的事務(wù)或者加入一個(gè)已經(jīng)存在的事務(wù)處理Requires_New每次都開始一個(gè)新的事務(wù)Supported加入到一個(gè)現(xiàn)有的事務(wù)處理,但不開始一個(gè)新的事務(wù)Not_Supported既不加入也不開始一個(gè)新的事務(wù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第79頁(yè)!

6.7.1終止事務(wù)的處理

ObjectContext對(duì)象提供了SetAbort方法和OnTrandactionAbort事件進(jìn)行終止事務(wù)的處理。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第80頁(yè)!

(2)OnTrandactionAbort事件腳本本身不能判斷事務(wù)處理是成功還是失敗,可以編寫事務(wù)終止或者成功提交時(shí)調(diào)用的事件顯式說(shuō)明事務(wù)處理的情況。OnTransactionAbort事件是當(dāng)事務(wù)處理失敗時(shí)引發(fā)的。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第81頁(yè)!

6.7.2完成事務(wù)的處理

ObjectContext對(duì)象提供了SetComplete方法和OnTransactionCommit事件對(duì)事務(wù)成功完成進(jìn)行處理。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第82頁(yè)!

調(diào)用SetComplet方法將忽略腳本中以前調(diào)用過(guò)的任何SetAbort方法。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第83頁(yè)!

語(yǔ)法:

SubOnTransactionCommit()…處理程序

EndSubOnTransactionCommit事件在一個(gè)已處理的腳本事務(wù)提交后發(fā)生。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第84頁(yè)!

圖6-27應(yīng)用ObjectContext對(duì)象進(jìn)行事務(wù)處理ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第85頁(yè)!

上機(jī)指導(dǎo)

6-1設(shè)計(jì)一個(gè)程序,用于顯示獲取到的表單數(shù)據(jù)。

6-2編寫程序,判斷用戶的IP地址是否為禁止訪問的IP地址,如果是則給出提示信息并終止用戶的訪問,如果不是則允許用戶繼續(xù)訪問。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第86頁(yè)!

小結(jié)6.8上機(jī)指導(dǎo)6.9ObjectContext事務(wù)處理對(duì)象6.7Server服務(wù)對(duì)象6.6ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第87頁(yè)!6.2Request請(qǐng)求對(duì)象

在客戶端/服務(wù)器結(jié)構(gòu)中,當(dāng)客戶端Web頁(yè)面向網(wǎng)站服務(wù)器端傳遞信息時(shí),ASP通過(guò)Request對(duì)象能夠獲取客戶端提交的全部信息。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第88頁(yè)!

Request對(duì)象的語(yǔ)法如下:

Request[.collection|property|method](variable)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第89頁(yè)!續(xù)表成員描述ClientCertificate數(shù)據(jù)集合讀取客戶端的驗(yàn)證字段。TotalBytes屬性返回客戶端發(fā)出請(qǐng)求的字節(jié)數(shù)量。BinaryRead方法以二進(jìn)制方式來(lái)讀取客戶端使用post方法所傳遞的數(shù)據(jù),并返回一個(gè)變量數(shù)組(VariantArray)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第90頁(yè)!

在含有ASP動(dòng)態(tài)代碼的Web頁(yè)面中,可以使用Request對(duì)象的Form集合收集來(lái)自客戶端的以表單形式發(fā)送到服務(wù)器的信息。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第91頁(yè)!

在表單中傳遞數(shù)據(jù)的方法有兩種:POST方法和GET方法。當(dāng)使用POST方法將HTML表單提交給服務(wù)器時(shí),表單元素可以作為Form集合的成員來(lái)檢索,即使用Request對(duì)象的Form集合來(lái)獲得表單中傳遞的數(shù)據(jù),傳遞大量數(shù)據(jù)一般使用POST方法;使用GET方法傳遞數(shù)據(jù)時(shí),通過(guò)Request對(duì)象的QueryString集合來(lái)獲得數(shù)據(jù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第92頁(yè)!

圖6-1輸入數(shù)據(jù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第93頁(yè)!Request對(duì)象Form集合QueryString集合ServerVariables集合TotalBytes屬性BinaryRead方法ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第94頁(yè)!Request對(duì)象中有5個(gè)集合可以用來(lái)完成客戶端對(duì)ASP服務(wù)器的請(qǐng)求的響應(yīng)。例如,要在Request對(duì)象的Form中取得名為“姓名”的信息,可以使用下述賦值命令:name=Request.Form("姓名")

也可以不指定集合名(Form),直接使用命令:name=Request("姓名")

程序會(huì)以QueryString、Form、Cookies和ServerVariables的順序搜索所有集合,當(dāng)發(fā)現(xiàn)一個(gè)匹配的變量時(shí),就認(rèn)定它是要引用的成員。當(dāng)然,編程實(shí)踐中,為避免不同集合中同名變量引用的二義性,最好顯式地指定集合。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第95頁(yè)!

QueryString數(shù)據(jù)集合可以利用QueryString環(huán)境變量來(lái)檢索HTTP查詢字符串中變量的值。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第96頁(yè)!

HTTP查詢字符串中的變量可以直接定義在超鏈接的URL地址中“?”字符之后,如.mrbccd.?name=wang。傳遞多個(gè)參數(shù)變量時(shí),用“&”符號(hào)作為參數(shù)間的分隔符,如.mrbccd.?name=wang&age=26。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第97頁(yè)!

1.通過(guò)GET方式傳遞的表單數(shù)據(jù)與Form數(shù)據(jù)集合相似,QueryString數(shù)據(jù)集合可以取得在表單中通過(guò)GET方式傳遞的數(shù)據(jù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第98頁(yè)!

【例6-3】獲取以GET方式傳遞的表單數(shù)據(jù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第99頁(yè)!

圖6-6讀取數(shù)據(jù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第100頁(yè)!

【例6-4】使用超鏈接傳遞參數(shù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第101頁(yè)!

圖6-8讀取參數(shù)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第102頁(yè)!

6.2.3獲得服務(wù)器端環(huán)境變量通過(guò)Request對(duì)象的ServerVariables數(shù)據(jù)集合可以取得服務(wù)器端的環(huán)境變量信息。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第103頁(yè)!

服務(wù)器環(huán)境變量是只讀變量,只能查閱,不能設(shè)置。語(yǔ)法:Request.ServerVariables(server_environment_variable)server_environment_variable:服務(wù)器環(huán)境變量。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第104頁(yè)!續(xù)表服務(wù)器環(huán)境變量描述CERT_FLAGSClient端證書是否存在,存在則返回為1CERT_ISSUWEClient端證書發(fā)行者信息CERT_KEYSIZE連接SSL時(shí),Key的Bit數(shù)CERT_SECRETKEYSIZEServer證書的Bit數(shù)CERT_SERIALNUMBERClient端證書的序列號(hào)CERT_SERVER_ISSUERServer證書發(fā)行者信息CERT_SERVER_SUBJECTServer證書內(nèi)容CERT_SUBJECTClient證書內(nèi)容ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第105頁(yè)!續(xù)表服務(wù)器環(huán)境變量描述INSTANCE_ID取得所屬(metabase中)Web服務(wù)進(jìn)程的ID值INSTANCE_META_PATH取得要求的IIS服務(wù)進(jìn)程的METABASEPATHLOCAL_ADDR取得要求的SERVER的地址LOGON_USER用戶可以登錄的賬號(hào)PATH_INFO由Client端提供的路徑信息PATH_TRANSLATED將PATH_INFO變換為物理路徑信息QUERY_STRINGQUERY字符串的相關(guān)信息REMOTE_ADDR遠(yuǎn)端主機(jī)的IP地址REMOTE_HOST遠(yuǎn)端主機(jī)的計(jì)算機(jī)名ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第106頁(yè)!

【例6-5】獲得服務(wù)器端環(huán)境變量。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第107頁(yè)!

6.2.4以二進(jìn)制碼方式讀取數(shù)據(jù)結(jié)合使用Request對(duì)象的TotalBytes屬性和BinaryRead方法,可以以二進(jìn)制碼方式讀取使用POST方式發(fā)送的表單數(shù)據(jù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第108頁(yè)!

(2)Request對(duì)象的BinaryRead方法

Request對(duì)象提供一個(gè)BinaryRead方法,用于以二進(jìn)制碼方式讀取客戶端使用POST方式所傳遞的數(shù)據(jù)。語(yǔ)法:Variant數(shù)組=Request.BinaryRead(Count)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第109頁(yè)!6.3Response響應(yīng)對(duì)象Response對(duì)象是ASP內(nèi)置對(duì)象中直接對(duì)客戶端發(fā)送數(shù)據(jù)的對(duì)象。Request請(qǐng)求對(duì)象與Response響應(yīng)對(duì)象構(gòu)成了客戶請(qǐng)求/服務(wù)器響應(yīng)的模式。Request對(duì)象用于發(fā)送客戶端提交的數(shù)據(jù)。Response對(duì)象用于動(dòng)態(tài)響應(yīng)客戶端請(qǐng)求,并將動(dòng)態(tài)生成的響應(yīng)結(jié)果返回給客戶端瀏覽器。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第110頁(yè)!表6-3 Response對(duì)象的成員成員描述Cookies數(shù)據(jù)集合設(shè)置客戶端瀏覽器的Cookie值Buffer屬性表明輸出頁(yè)是否被緩沖CacheControl屬性決定代理服務(wù)器是否能緩存ASP生成的輸出頁(yè)Status屬性服務(wù)器返回的狀態(tài)行的值ContentType屬性指定響應(yīng)的HTTP內(nèi)容類型Charset屬性將字符集的名稱添加到內(nèi)容類型標(biāo)題中Expires屬性在瀏覽器中緩存頁(yè)面超時(shí)前,可以指定緩存時(shí)間ExpiresAbsolute屬性指定瀏覽器上緩存頁(yè)面超時(shí)的日期和時(shí)間ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第111頁(yè)!續(xù)表成員描述Clear方法清除服務(wù)器中緩存的HTML信息Flush方法立即輸出緩沖區(qū)的內(nèi)容BinaryWrite方法按照字節(jié)格式向客戶端瀏覽器輸出數(shù)據(jù),不進(jìn)行任何字符集的轉(zhuǎn)換AddHeader方法設(shè)置HTML標(biāo)題AppendToLog方法在Web服務(wù)器的日志文件中記錄日志ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第112頁(yè)!

【例6-6】輸出數(shù)據(jù)。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第113頁(yè)!

6.3.2利用緩沖輸出數(shù)據(jù)

Web服務(wù)器響應(yīng)客戶端瀏覽器的請(qǐng)求時(shí),是以信息流的方式將響應(yīng)的數(shù)據(jù)發(fā)送給客戶瀏覽器,發(fā)送過(guò)程是先返回響應(yīng)頭,再返回正式的頁(yè)面。在處理ASP頁(yè)面時(shí),信息流的發(fā)送方式則是生成一段頁(yè)面就立即發(fā)出一段信息流返回給瀏覽器。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第114頁(yè)!

1.使用緩沖輸出(1)Buffer屬性在默認(rèn)情況下,緩沖是關(guān)閉的。通過(guò)設(shè)置Response對(duì)象的Buffer屬性值為“True”,可以打開緩沖。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第115頁(yè)!

語(yǔ)法:

Response.Buffer=True/FalseASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第116頁(yè)!

語(yǔ)法:

Response.FlushASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第117頁(yè)!

語(yǔ)法:

Response.ClearASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第118頁(yè)!

圖6-11使用緩沖輸出ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第119頁(yè)!

(1)CacheControl屬性應(yīng)用程序可以通過(guò)代理服務(wù)器將頁(yè)面發(fā)送給客戶。代理服務(wù)器代表客戶端瀏覽器向Web服務(wù)器請(qǐng)求頁(yè)面。代理服務(wù)器高速緩存HTML頁(yè),這樣對(duì)同一頁(yè)的重復(fù)請(qǐng)求會(huì)迅速高效地返回到瀏覽器。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第120頁(yè)!

語(yǔ)法:Request.Cachecontrol[=Cache_Control_Header]ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第121頁(yè)!

(3)ExpiresAbsolute屬性

Response對(duì)象的ExpiresAbsolute屬性用于指定緩存于客戶端瀏覽器中的頁(yè)面到期的日期和時(shí)間。語(yǔ)法:Response.ExpiresAbsolute=[date][time]ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第122頁(yè)!

圖6-12設(shè)置ExpiresAbsolute屬性ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第123頁(yè)!

6.3.3重定向網(wǎng)頁(yè)網(wǎng)頁(yè)重定向是指從一個(gè)網(wǎng)頁(yè)跳轉(zhuǎn)到其他頁(yè)面。應(yīng)用Response對(duì)象的Redirect方法可以將客戶端瀏覽器重定向到另一個(gè)Web頁(yè)面。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第124頁(yè)!

【例6-9】網(wǎng)頁(yè)重定向。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第125頁(yè)!

6.3.4向客戶端輸出二進(jìn)制數(shù)據(jù)調(diào)用Response對(duì)象的BinaryWrite方法可以不進(jìn)行任何字符集轉(zhuǎn)換,而直接向客戶瀏覽器發(fā)送二進(jìn)制數(shù)據(jù)。語(yǔ)法:

Response.BinaryWriteVariableASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第126頁(yè)!

圖6-15建立表單ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第127頁(yè)!

6.3.5在網(wǎng)頁(yè)中使用CookieCookie實(shí)際上是一個(gè)字符串或者一個(gè)標(biāo)志。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第128頁(yè)!

Cookie在指定的生命周期內(nèi)都將有效,所以Web設(shè)計(jì)人員可以使用Cookie在各個(gè)不同的ASP頁(yè)面間傳遞變量。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第129頁(yè)!

(2)讀取Cookie

使用Request對(duì)象的Cookie數(shù)據(jù)集合來(lái)讀取Cookie的值。語(yǔ)法:Request.Cookies(cookiesname)[(key)|.attribute]ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第130頁(yè)!

圖6-17寫入CookieASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第131頁(yè)!

6.3.6停止輸出調(diào)用Response對(duì)象的End方法可以使Web服務(wù)器上的ASP處理程序停止處理ASP腳本,并返回當(dāng)前結(jié)果,此語(yǔ)句后面的內(nèi)容將不被處理。語(yǔ)法:

Response.EndASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第132頁(yè)!

也就是說(shuō),Application對(duì)象中包含的數(shù)據(jù)可以在整個(gè)Web站點(diǎn)中被所有用戶使用,并且可以在網(wǎng)站運(yùn)行期間持久保存數(shù)據(jù)。應(yīng)用Application對(duì)象可以完成統(tǒng)計(jì)網(wǎng)站的在線人數(shù)、創(chuàng)建多用戶游戲以及多用戶聊天室等功能。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第133頁(yè)!表6-5 Application對(duì)象的成員成員描述Contents集合在Application層次的所有可用的變量集合,不包含使用<Object>標(biāo)記建立的變量StaticObjects集合在Global.asa文件中通過(guò)使用<Object>標(biāo)記建立的Application層次的變量集合Contents.Remove方法從Application對(duì)象的Contents集合中刪除一個(gè)項(xiàng)目Contents.RemoveAll方法從Application對(duì)象的Contents集合中刪除所有項(xiàng)目ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第134頁(yè)!

6.4.1訪問Application應(yīng)用級(jí)變量絕大部分的Application應(yīng)用級(jí)變量都存放于Contents集合中。Contents數(shù)據(jù)集合包含所有通過(guò)腳本命令添加到應(yīng)用程序中的項(xiàng)目,可以使用Contents集合獲取給定的應(yīng)用程序作用域的項(xiàng)目列表或者指定一個(gè)特殊項(xiàng)目為操作對(duì)象。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第135頁(yè)!

【例6-12】訪問Application應(yīng)用級(jí)變量。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第136頁(yè)!

6.4.2鎖定和解鎖Application對(duì)象

Application對(duì)象提供了Lock方法和Unlock方法分別用于鎖定Application對(duì)象和解除對(duì)Application對(duì)象的鎖定。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第137頁(yè)!

(2)Unlock方法

Unlock方法用于解除Application對(duì)象的鎖定,允許其他用戶修改Application對(duì)象集合中的變量值。語(yǔ)法:

Application.UnlockASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第138頁(yè)!

Global.asa文件是用來(lái)存放執(zhí)行任何ASP應(yīng)用程序期間的Application、Session事件程序,當(dāng)Application或者Session對(duì)象被次調(diào)用或者結(jié)束時(shí),就會(huì)執(zhí)行該Global.asa文件內(nèi)的對(duì)應(yīng)程序。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第139頁(yè)!

Global.asa文件的基本結(jié)構(gòu)如下。

<ScriptLanguage="VBScript"Runat="Server">SubApplication_OnStart…EndSubSubSession_OnStart…ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第140頁(yè)!

【例6-13】制作網(wǎng)站計(jì)數(shù)器。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第141頁(yè)!6.5Session會(huì)話對(duì)象ASP提供了Session對(duì)象,Session的中文是“會(huì)話”的意思,使用Session對(duì)象可以存儲(chǔ)用戶個(gè)人會(huì)話所需的信息。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第142頁(yè)!

語(yǔ)法:

Session.collection|property|methodASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第143頁(yè)!續(xù)表成員描述CodePage屬性將用于符號(hào)映射的代碼頁(yè)LCID屬性現(xiàn)場(chǎng)標(biāo)識(shí)Abandon方法釋放Session對(duì)象占用的資源Session_OnStart事件尚未建立會(huì)話的用戶請(qǐng)求訪問應(yīng)用程序的頁(yè)面時(shí),觸發(fā)該事件Session_OnEnd事件會(huì)話超時(shí)或者會(huì)話被放棄時(shí),觸發(fā)該事件ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第144頁(yè)!

Session對(duì)象存在期間,存儲(chǔ)在Session對(duì)象的Contents數(shù)據(jù)集合中的信息是有效的。語(yǔ)法:

Session.Contents(key)ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第145頁(yè)!

圖6-21訪問Session會(huì)話級(jí)變量ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第146頁(yè)!

6.5.3限定會(huì)話結(jié)束時(shí)間一個(gè)Session對(duì)象被創(chuàng)建后,是有其生存期的。應(yīng)用Session對(duì)象的TimeOut屬性可以定義應(yīng)用程序會(huì)話狀態(tài)的超時(shí)時(shí)限,以分鐘為單位。語(yǔ)法:

Session.TimeOut[=nMinutes]ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第147頁(yè)!

Session對(duì)象只提供了Abandon方法,該方法將刪除所有存儲(chǔ)在Session對(duì)象中的數(shù)據(jù)并釋放其所占的資源。語(yǔ)法:

Session.AbandonASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第148頁(yè)!

圖6-22調(diào)用Abandon方法ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第149頁(yè)!6.6Server服務(wù)對(duì)象ASP的Server對(duì)象提供了對(duì)服務(wù)器上的屬性和方法的訪問,從而用來(lái)獲取Web服務(wù)器的特性和設(shè)置。ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第150頁(yè)!

處理HTML和URL編碼以及獲取服務(wù)器對(duì)象的路徑信息等。語(yǔ)法:

Sperty|methodASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第151頁(yè)!續(xù)表成員描述Execute方法停止當(dāng)前頁(yè)面的執(zhí)行,把控制轉(zhuǎn)到指定路徑的網(wǎng)頁(yè),當(dāng)前環(huán)境也被傳遞到新的網(wǎng)頁(yè)。在該頁(yè)面執(zhí)行完成后將控制傳遞回原來(lái)的頁(yè)面Transfer方法與Execute方法類似,不同的是,當(dāng)新頁(yè)面執(zhí)行完成時(shí),執(zhí)行過(guò)程結(jié)束而不是返回原來(lái)的頁(yè)面繼續(xù)執(zhí)行ASP動(dòng)態(tài)網(wǎng)頁(yè)制作教程共170頁(yè),您現(xiàn)在瀏覽的是第152頁(yè)!

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論