- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > ASP >
- ASP基礎入門(mén)第七篇(ASP內建對象Response)
下面,我們開(kāi)始學(xué)習 ASP 的另一個(gè)內建對象 Response。
與 Request 是獲取客戶(hù)端 HTTP 信息相反 ,Response 對象是用來(lái)控制發(fā)送給用戶(hù)的信息,包括直接發(fā)送信息給瀏覽器、重定向瀏覽器到另一個(gè) URL 或設置 cookie 的值。
語(yǔ)法:Response.collection|property|method
一、屬性
1、Buffer
Buffer 屬性指示是否緩沖頁(yè)輸出。當緩沖頁(yè)輸出時(shí),只有當前頁(yè)的所有服務(wù)器腳本處理完畢或者調用了 Flush 或 End 方法后,服務(wù)器才將響應發(fā)送給客戶(hù)端瀏覽器,服務(wù)器將輸出發(fā)送給客戶(hù)端瀏覽器后就不能再設置 Buffer 屬性。因此應該在 .asp 文件的第一行調用 Response.Buffer。
2、Charset
Charset 屬性將字符集名稱(chēng)附加到 Response 對象中 content-type 標題的后面。對于不包含 Response.Charset 屬性的 ASP 頁(yè),content-type 標題將為 :content-type:text/html。
我們可以在 .asp 文件中指定 content-type 標題,如 :
< % Response.Charset="gb2312") %>
將產(chǎn)生以下結果 :
content-type:text/html; charset=gb2312
注意,無(wú)論字符串表示的字符集是否有效,該功能都會(huì )將其插入 content-type 標題中。且如果某個(gè)頁(yè)包含多個(gè)含有 Response.Charset 的標記,則每個(gè) Response.Charset 都將替代前一個(gè) CharsetName。這樣,字符集將被設置為該頁(yè)中 Response.Charset 的最后一個(gè)實(shí)例所指定值。
3、ContentType
ContentType 屬性指定服務(wù)器響應的 HTTP 內容類(lèi)型。如果未指定 ContentType,默認為 text/HTML。
4、Expires
Expires 屬性指定了在瀏覽器上緩沖存儲的頁(yè)距過(guò)期還有多少時(shí)間。如果用戶(hù)在某個(gè)頁(yè)過(guò)期之前又回到此頁(yè),就會(huì )顯示緩沖區中的頁(yè)面。如果設置 response.expires=0,則可使緩存的頁(yè)面立即過(guò)期。這是一個(gè)較實(shí)用的屬性,當客戶(hù)通過(guò) ASP 的登陸頁(yè)面進(jìn)入 WEB 站點(diǎn)后,應該利用該屬性使登陸頁(yè)面立即過(guò)期,以確保安全。
5、ExpiresAbsolute
與 Expires 屬性不同 ExpiresAbsolute 屬性指定緩存于瀏覽器中的頁(yè)面的確切到期日期和時(shí)間。在未到期之前,若用戶(hù)返回到該頁(yè),該緩存中的頁(yè)面就顯示。如果未指定時(shí)間,該主頁(yè)在當天午夜到期。如果未指定日期,則該主頁(yè)在腳本運行當天的指定時(shí)間到期。如下示例指定頁(yè)面在 1998 年 12 月 10 日上午 9:00 分 30 秒到期。
< % Response.ExpiresAbsolute=#Dec 12,1998 9:00:30# %>
二、方法
1、Clear
可以用 Clear 方法清除緩沖區中的所有 HTML 輸出。但 Clear 方法只清除響應正文而不清除響應標題??梢杂迷摲椒ㄌ幚礤e誤情況。但是如果沒(méi)有將 Response.Buffer 設置為 TRUE,則該方法將導致運行時(shí)錯誤。
2、End
End 方法使 Web 服務(wù)器停止處理腳本并返回當前結果。文件中剩余的內容將不被處理。如果 Response.Buffer 已設置為 TRUE,則調用 Response.End 將緩沖輸出。
3、Flush
Flush 方法立即發(fā)送緩沖區中的輸出。如果沒(méi)有將 Response.Buffer 設置為 TRUE,則該方法將導致運行時(shí)錯誤。
4、Redirect
Redirect 方法使瀏覽器立即重定向到程序指定的 URL。這也是一個(gè)我們經(jīng)常用到方法,這樣程序員就可以根據客戶(hù)的不同響應,為不同的客戶(hù)指定不同的頁(yè)面或根據不同的情況指定不同的頁(yè)面。一旦使用了 Redirect 方法任何在頁(yè)中顯式設置的響應正文內容都將被忽略。然而,此方法不向客戶(hù)端發(fā)送該頁(yè)設置的其他 HTTP 標題,將產(chǎn)生一個(gè)將重定向 URL 作為鏈接包含的自動(dòng)響應正文。Redirect 方法發(fā)送下列顯式標題,其中 URL 是傳遞給該方法的值。如:
< % Response.redirect("www.jb51.com") %>
5、Write
Write 方法是我們平時(shí)最常用的方法之一,它是將指定的字符串寫(xiě)到當前的 HTTP 輸出。
三、集合
Response 對象只有一個(gè)集合 --Cookie
Cookies 集合設置 cookie 的值。若指定的 cookie 不存在,則創(chuàng )建它。若存在,則設置新的值并且將舊值刪去。
語(yǔ)法
Response.Cookies(cookie)[(key)|.attribute]=value
這里的 cookie 是指定 cookie 的名稱(chēng)。而如果指定了 key,則該 cookie 就是一個(gè)字典。attribute 指定 cookie 自身的有關(guān)信息。attribute 參數可以是下列之一 :
Domain 若被指定,則 cookie 將被發(fā)送到對該域的請求中去。
Expires 指定 cookie 的過(guò)期日期。為了在會(huì )話(huà)結束后將 cookie 存儲在客戶(hù)端磁盤(pán)上,必須設置該日期。若此項屬性的設置未超過(guò)當前日期,則在任務(wù)結束后 cookie 將到期。
HasKeys 指定 cookie 是否包含關(guān)鍵字。
Path 若被指定,則 cookie 將只發(fā)送到對該路徑的請求中。如果未設置該屬性,則使用應用程序的路徑。
至此,我們已經(jīng)學(xué)習的 Response 對象的所有屬性、方法和集合的理論知識,下面作者將給大家演示一段簡(jiǎn)單的程序,通過(guò)實(shí)踐讓大家加深理解。先將以下程序剪貼到記事簿中,并保存為 asp7.asp。( 注意將 < 和 % 之間的空格去掉 !!!)
< % Dim user Dim flag Dim pwd Dim say Response.buffer=true ' 開(kāi)啟緩沖頁(yè)面功能 Response.ContentType="text/HTML" Response.Charset="gb2312" user=Request.Form("username") pwd=Request.Form("password") say=Request.QueryString("say") %> < form method="POST" action="asp7.asp"> < p> 用戶(hù)名 :< input type="text" name="username" size="12">< br> 口 令 :< input type="password" name="password" size="12">< br> < input type="submit" value=" 提交 " name="B1">< input type="reset" value=" 取消 " name="B2">< /p>< /form> < % If say=1 then Response.Write " 歡迎書(shū)生大駕光臨 !" End If If say > 1 then Response.Write " 歡迎再次光臨書(shū)生的 ASP 網(wǎng)站 !" End If If user="Adm" and pwd="shusheng" Then Response.Expires=1 ' 設置該頁(yè)面在瀏覽器的緩沖中存儲 1 分鐘后過(guò)期。 flag=1 ElseIf user="guest" and pwd="guest" Then Response.Expires=0 ' 使緩存的頁(yè)面立即過(guò)期。 Response.Clear ' 清空存儲在緩存中的頁(yè)面 flag=2 ElseIf user="vip" and pwd="vip" Then Response.Write " 歡迎 VIP 光臨書(shū)生的 ASP 網(wǎng)站 " flag=3 Else flag=0 Response.End ' 立即停止腳本處理,并將緩存中的頁(yè)面輸出 End If Response.write "< p>< a href='asp7b.asp?flag="&flag&"'> 動(dòng)態(tài)網(wǎng)站設計十八般武藝 --ASP 篇 (7) 實(shí)踐練習 < /a>&l; /p>" ' 將變量 flag 的值傳送給 asp7b.asp %> < p> 動(dòng)態(tài)網(wǎng)站設計十八般武藝 --ASP 篇 (7) 實(shí)踐練習 < /p> 再將以下程序保存為 asp7b.asp。 < % Dim saysay=Request.QueryString("flag") Select case say case "1" Response.Redirect "asp7.asp?say=1" case "2" Response.Redirect "asp7.asp?say=2" case "3" Response.Redirect "asp7.asp?say=3" case "0" Response.Redirect "asp7.asp?say=0" End Select %>
將這兩個(gè)程序放在有執行權限的 WEB 虛擬目錄下,并以 http 方式訪(fǎng)問(wèn) asp7.asp。在這兩個(gè)程序中我們充分運用了至今為止所學(xué)過(guò)的兩個(gè) ASP 內建對象 :Request 和 Response。當你第一次訪(fǎng)問(wèn) asp7.asp 文件時(shí),頁(yè)面上出現一個(gè) Form 并提示輸入用戶(hù)名和口令,如果你輸入用戶(hù)名 :Adm、口令 :shusheng, 則會(huì )出現如下頁(yè)面 :
<img src='http://arch.pconline.com.cn/pcedu/empolder/wz/asp/10111/pic/2001124_asp_13.gif'>
這是為什么呢?因為我們設置了頁(yè)面緩存,當使用 guest 登陸時(shí),判斷程序自動(dòng)清空其之前所有存儲在緩存中的頁(yè)面,而僅將其后腳本程序執行的結果顯示出來(lái)。
那為什么第一次登陸asp7.asp 頁(yè)面時(shí)僅僅只顯示一個(gè) Form 對話(huà)框呢?因為此時(shí)程序判斷到用戶(hù)既非 Adm, 也不是 guest 和 vip,所以執行 Response.End, 立即將存儲在緩存中的 Form 顯示出來(lái),并停止其后的一切腳本處理,包括純 HTML 代碼的顯示。
無(wú)論你是用 Adm 還是 guest 或 vip 登陸該頁(yè)面你都可以看到一個(gè)超鏈,該超鏈指向文件 asp7b.asp,當我們點(diǎn)擊該超鏈時(shí),asp7.asp 將變量 flag 的值作為參數發(fā)送給 asp7b.asp, 而后者則根據該參數的值來(lái)做出判斷,并依據不同情況使用 Response.Redirect 再強行返回 asp7.asp, 并也將一個(gè)變量 say 的值作為參數發(fā)送給 asp7.asp。如此一來(lái),asp7.asp 又會(huì )根據此參數來(lái)做出不同的反應。
大家現在都看到了我們僅僅用了兩個(gè)很簡(jiǎn)單的程序,就可以做到對同一個(gè)頁(yè)面的多種不同顯示結果,這正是 ASP 的魅力所在,各位可以以此示范程序為基礎,來(lái)進(jìn)行一些改動(dòng),以熟練掌握我們所學(xué)的這兩個(gè)內建對象。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站