這篇文章主要介紹了ASP內建對象Response的相關資料,需要的朋友可以參考下
下面,我們開始學習ASP 的另一個內建對象Response。
與Request 是獲取客戶端HTTP 信息相反,Response 對像是用來控制發送給用戶的信息,包括直接發送信息給瀏覽器、重定向瀏覽器到另一個URL 或設置cookie 的值。
語法:Response.collection|property|method
一、屬性
1、Buffer
Buffer 屬性指示是否緩衝頁輸出。當緩衝頁輸出時,只有當前頁的所有服務器腳本處理完畢或者調用了Flush 或End 方法後,服務器才將響應發送給客戶端瀏覽器,服務器將輸出發送給客戶端瀏覽器後就不能再設置Buffer屬性。因此應該在.asp 文件的第一行調用Response.Buffer。
2、Charset
Charset 屬性將字符集名稱附加到Response 對像中content-type 標題的後面。對於不包含Response.Charset 屬性的ASP 頁,content-type 標題將為:content-type:text/html。
我們可以在.asp 文件中指定content-type 標題,如:
< % Response.Charset=gb2312) %>
將產生以下結果:
content-type:text/html; charset=gb2312
注意,無論字符串表示的字符集是否有效,該功能都會將其插入content-type 標題中。且如果某個頁包含多個含有Response.Charset 的標記,則每個Response.Charset 都將替代前一個CharsetName。這樣,字符集將被設置為該頁中Response.Charset 的最後一個實例所指定值。
3、ContentType
ContentType 屬性指定服務器響應的HTTP 內容類型。如果未指定ContentType,默認為text/HTML。
4、Expires
Expires 屬性指定了在瀏覽器上緩衝存儲的頁距過期還有多少時間。如果用戶在某個頁過期之前又回到此頁,就會顯示緩衝區中的頁面。如果設置response.expires=0,則可使緩存的頁面立即過期。這是一個較實用的屬性,當客戶通過ASP 的登陸頁面進入WEB 站點後,應該利用該屬性使登陸頁面立即過期,以確保安全。
5、ExpiresAbsolute
與Expires 屬性不同ExpiresAbsolute 屬性指定緩存於瀏覽器中的頁面的確切到期日期和時間。在未到期之前,若用戶返回到該頁,該緩存中的頁面就顯示。如果未指定時間,該主頁在當天午夜到期。如果未指定日期,則該主頁在腳本運行當天的指定時間到期。如下示例指定頁面在1998 年12 月10 日上午9:00 分30 秒到期。
< % Response.ExpiresAbsolute=#Dec 12,1998 9:00:30# %>
二、方法
1、Clear
可以用Clear 方法清除緩衝區中的所有HTML 輸出。但Clear 方法只清除響應正文而不清除響應標題。可以用該方法處理錯誤情況。但是如果沒有將Response.Buffer 設置為TRUE,則該方法將導致運行時錯誤。
2、End
End 方法使Web 服務器停止處理腳本並返回當前結果。文件中剩餘的內容將不被處理。如果Response.Buffer 已設置為TRUE,則調用Response.End 將緩衝輸出。
3、Flush
Flush 方法立即發送緩衝區中的輸出。如果沒有將Response.Buffer 設置為TRUE,則該方法將導致運行時錯誤。
4、Redirect
Redirect 方法使瀏覽器立即重定向到程序指定的URL。這也是一個我們經常用到方法,這樣程序員就可以根據客戶的不同響應,為不同的客戶指定不同的頁面或根據不同的情況指定不同的頁面。一旦使用了Redirect 方法任何在頁中顯式設置的響應正文內容都將被忽略。然而,此方法不向客戶端發送該頁設置的其他HTTP 標題,將產生一個將重定向URL 作為鏈接包含的自動響應正文。 Redirect 方法發送下列顯式標題,其中URL 是傳遞給該方法的值。如:
< % Response.redirect(www.jb51.com) %>
5、Write
Write 方法是我們平時最常用的方法之一,它是將指定的字符串寫到當前的HTTP 輸出。
三、集合
Response 對像只有一個集合--Cookie
Cookies 集合設置cookie 的值。若指定的cookie 不存在,則創建它。若存在,則設置新的值並且將舊值刪去。
文法
Response.Cookies(cookie)[(key)|.attribute]=value
這裡的cookie 是指定cookie 的名稱。而如果指定了key,則該cookie 就是一個字典。 attribute 指定cookie 自身的有關信息。 attribute 參數可以是下列之一:
Domain 若被指定,則cookie 將被發送到對該域的請求中去。
Expires 指定cookie 的過期日期。為了在會話結束後將cookie 存儲在客戶端磁盤上,必須設置該日期。若此項屬性的設置未超過當前日期,則在任務結束後cookie 將到期。
HasKeys 指定cookie 是否包含關鍵字。
Path 若被指定,則cookie 將只發送到對該路徑的請求中。如果未設置該屬性,則使用應用程序的路徑。
至此,我們已經學習的Response 對象的所有屬性、方法和集合的理論知識,下面作者將給大家演示一段簡單的程序,通過實踐讓大家加深理解。先將以下程序剪貼到記事簿中,並保存為asp7.asp。 ( 注意將< 和% 之間的空格去掉!!!)
?
- <%
- Dimuser
- Dimflag
- Dimpwd
- Dimsay
- Response.buffer=true'開啟緩衝頁面功能
- Response.ContentType=text/HTML
- Response.Charset=gb2312
- user=Request.Form(username)
- pwd=Request.Form(password)
- say=Request.QueryString(say)
- %>
- <formmethod=POSTaction=asp7.asp>
- <p>用戶名:<inputtype=textname=usernamesize=12><br>
- 口令:<inputtype=passwordname=passwordsize=12><br>
- <inputtype=submitvalue=提交name=B1><inputtype=resetvalue=取消name=B2></p></form>
- <%
- Ifsay=1then
- Response.Write歡迎書生大駕光臨!
- EndIf
- Ifsay>1then
- Response.Write歡迎再次光臨書生的ASP網站!
- EndIf
- Ifuser=Admandpwd=shushengThen
- Response.Expires=1'設置該頁面在瀏覽器的緩衝中存儲1分鐘後過期。
- flag=1
- ElseIfuser=guestandpwd=guestThen
- Response.Expires=0'使緩存的頁面立即過期。
- Response.Clear'清空存儲在緩存中的頁面
- flag=2
- ElseIfuser=vipandpwd=vipThen
- Response.Write歡迎VIP光臨書生的ASP網站
- flag=3
- Else
- flag=0
- Response.End'立即停止腳本處理,並將緩存中的頁面輸出
- EndIf
- Response.write<p><ahref='asp7b.asp?flag=&flag&'>動態網站設計十八般武藝--ASP篇(7)實踐練習</a>&l;/p>
- '將變量flag的值傳送給asp7b.asp
- %>
- <p>動態網站設計十八般武藝--ASP篇(7)實踐練習</p>
- 再將以下程序保存為asp7b.asp。
- <%
- Dimsaysay=Request.QueryString(flag)
- Selectcasesay
- case1
- Response.Redirectasp7.asp?say=1
- case2
- Response.Redirectasp7.asp?say=2
- case3
- Response.Redirectasp7.asp?say=3
- case0
- Response.Redirectasp7.asp?say=0
- EndSelect
- %>