ASP對(duì)象 ASP內(nèi)建對(duì)象Request和Respones(2) 一、Asp的基本對(duì)象 Asp(Active Server Page)是一種類似于VB的面向?qū)ο蟮某绦蛘Z言。在這里并不想詳述對(duì)象等一些基本概念,而是直接介紹其語言特性,以便開發(fā)人員能夠熟練地對(duì)asp程序進(jìn)行修改和編制(因?yàn)楹芏嗳硕贾皇侵苯永瞄_發(fā)工具如InterDev來生成asp程序)。 首先,Asp程序的存檔名稱肯定是“asp”;其次,在asp程序里面,服務(wù)器端的Script要放在字符串中間,例如。如果你想在一個(gè)Asp文件中調(diào)用另一個(gè)Asp文件,則可在Asp中加上下面的聲明: < ! -- #INCLUDE VIRTUAL|FILE="***.asp" -- >,這有些象C語言中的#include。其中,Virtual表示虛擬文件路徑,F(xiàn)ile表示真實(shí)文件路徑。 Asp有五個(gè)主要的內(nèi)建對(duì)象:Request、Response、Server、Session、Application,下面將分別舉例對(duì)其進(jìn)行說明。 1、Request Asp依然遵從流行的、利用客戶端的Form進(jìn)行數(shù)據(jù)交換的方法。Asp內(nèi)建的request對(duì)象擁有五個(gè)獲取客戶端資料的方法(QueryString/Form/Cookies/ServerVariables/ClientCertificate)。 語法:request.方法名稱("參數(shù)")|request("參數(shù)") 如果采用后者,系統(tǒng)會(huì)自動(dòng)選擇相應(yīng)的方法。 Form 這里再重新強(qiáng)調(diào)Form的一些屬性: Enctype=資料傳送的MIME形態(tài) Method=傳送資料的方式Get/Post Onrest=按下rest鍵調(diào)用的程序 Onsubmit=按下sumit鍵調(diào)用程序 Target=輸出內(nèi)容的frame窗口> 使用Form傳送信息一般有三種方式:由html網(wǎng)頁內(nèi)的Form傳信息給其他Asp;由Asp內(nèi)的Form傳信息給另外一個(gè)Asp;Asp內(nèi)的信息傳送給自身。 語法:Request.Form(參數(shù))[(索引)] 其中參數(shù)表示Form中元素的名稱,索引表示相同名稱元素的順序號(hào)。 例: 可循環(huán)讀取名稱為user的元素,其中Count是Form的系統(tǒng)屬性,用于計(jì)算同名元素的個(gè)數(shù),如果該元素不存在,則其值為零。如果沒有指明要讀取第幾個(gè)同名元素,則系統(tǒng)會(huì)把全部同名元素的值都讀取出來,并用“,”作間隔。 例:Request.form("user")=abc,bcd,cde 2、QueryString 語法:Request.QueryString(參數(shù))[(索引)] 除了用Form傳輸資料外,還可通過在超鏈接后接“?”的方式傳輸信息,如:,這時(shí)可通過Request.QueryString("user")讀取傳輸?shù)男畔ⅲ蝗绻霈F(xiàn)多個(gè)重名的參數(shù),如:,則第一次 Resquest.QueryString("user")=abc,第二次 Resquest.QueryString("user")=bcd,第三次 Resquest.QueryString("user")=cde。 3、ServerVariables 語法:ServerVariables(參數(shù)名稱) 我們知道Web/Browse的傳輸協(xié)議是http,http的報(bào)頭會(huì)有一些客戶端的信息,如 客戶IP地址、瀏覽器的語言系統(tǒng)等。這時(shí)可通過Request.ServerVariables("***")獲取相關(guān)信息,如Request.ServerVariables("Accept_Language")可獲取客戶端瀏覽器 的語系。其他系統(tǒng)參數(shù)見下表: SERVER_NAME server的機(jī)器名稱或IP地址。 SERVER_PORT server正在運(yùn)行的端口號(hào) REQUEST_METHOD 發(fā)出request的方法(GET/POST/HEAD SCRIPT_NAME 程序被調(diào)用的路徑,如:cgi-bin/a.pl。 REMOTE_HOST 發(fā)出request請(qǐng)求的遠(yuǎn)端機(jī)器(client)的名稱。 REMOTE_ADDR 發(fā)出request請(qǐng)求的遠(yuǎn)端機(jī)器(client)的IP地址。 REMOTE_IDENT 發(fā)出request的使用者名稱(如是撥號(hào)上網(wǎng),則為用戶ID),當(dāng)NCSA IdentityCheck為enabled,而且client機(jī)器支持RFC 931時(shí),該變量有效。 CONTENT_TYPE 數(shù)據(jù)的MIME類型,如:“text/html”。 HTTP_ACCEPT client可以接受的MIME類型列表。 HTTP_USER_AGENT client發(fā)出request的瀏覽器類型。 HTTP_REFERER 在讀取CGI程序之前,client所指的文本URL。 4、Cookies 在客戶端,Cookies記錄了客戶端瀏覽器很多的信息,我們可通過Request.Cookies("名稱")命令獲取它的值,也可通過Response.Cookies("名稱")="值"在客戶端記錄一些信息,以便控制訪問者。設(shè)置多重Cookies的方法為Response.Cookies("名稱")("名稱")="值"。 5、Cache 我們可以在瀏覽器上設(shè)置從Cache中抽取已經(jīng)訪問過的頁面的信息,同樣,在Asp程序中也可進(jìn)行類似的設(shè)置。其中Response.Clear為清空客戶端的內(nèi)存。Response.Buffer=True設(shè)置可從Cache中讀取資料(缺省時(shí)為False)。 6、ClientCertificate ClientCertificate用于獲取客戶端瀏覽器的身份確認(rèn)信息(符合X.509標(biāo)準(zhǔn)),但客戶端瀏覽器必須支持SSL3.0或PCT1協(xié)議。這里需做兩步工作,第一步:web server必須啟動(dòng)用戶端認(rèn)證選項(xiàng);第二步:對(duì)客戶端瀏覽器進(jìn)行相應(yīng)設(shè)置,這樣,該方法才會(huì)生效,否則,傳回empty值。 2、Response 當(dāng)要從服務(wù)器傳送資料到客戶端時(shí),可通過下面的方法: 1)Response.Write直接輸出信息,如Response.write ""。 2)Response.Redirect引導(dǎo)客戶端到另一個(gè)url位置,如Response.Redirect "http://zyr.yeah.net",但這里有一個(gè)問題需要注意,就是該語句一定要放在標(biāo)記前執(zhí)行,也就是說在服務(wù)器未向客戶端送出html文本報(bào)頭前就要被執(zhí)行,否則會(huì)出現(xiàn)傳輸錯(cuò)誤信息。 3)Response.ContentType控制輸出的文件類型,服務(wù)器送給客戶端的數(shù)據(jù)包類型可以是text/html文本,也可以是gif/jpeg圖形文件,所以每次傳輸前,我們都必須告知客戶端將要傳輸?shù)奈募愋停话隳J(rèn)情況下為“Text/Html”類型。 4)Response.Cookies 用于設(shè)置Cookies的值,語法為:Response.cookies(變量名稱)[(key)|屬性]=寫入的信息。(key的用法前面已作說明,這里不在敘述)cookies系統(tǒng)默認(rèn)有五個(gè)屬性,包括Expires(時(shí)間)、Domain(域名)、Path(路徑)、Secure(安全性)、Haskeys(判斷cookies下是否還有其它c(diǎn)ookies文本)。 5)Response.Buffer用于確定是否把信息傳輸?shù)骄彌_區(qū)。因?yàn)橛袝r(shí)候我們希望把部分中間信息送到緩沖區(qū),然后繼續(xù)工作。當(dāng)所有處理工作都完成后,才把信息輸出到客戶端。但當(dāng)在處理過程中Flush或End方法被調(diào)用,則緩沖區(qū)內(nèi)容將被輸出。 Response的其它屬性: Expires:設(shè)定網(wǎng)頁保留在客戶端瀏覽器的時(shí)間長度。 ExpiresAbsolute:設(shè)定網(wǎng)頁保留在客戶端瀏覽器的日期與時(shí)間。 Response的其它方法: AddHeader:設(shè)定HTML文件的HTTP報(bào)頭。 AppendToLog:在Web Server記錄檔案末尾,添加字串。 Clear:清除在緩沖區(qū)中的HTML輸出資料。 End:停止處理asp檔案,并回傳當(dāng)時(shí)狀態(tài)。 Flush:立刻送出緩沖區(qū)的HTML資料。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!