Response對象用于向客戶端瀏覽器發(fā)送數(shù)據(jù),用戶可以使用該對象將服務(wù)器的數(shù)據(jù)以HTML的格式發(fā)送到用戶端的瀏覽器,它與Request組成了一對接收、發(fā)送數(shù)據(jù)的對象,這也是實(shí)現(xiàn)動態(tài)的基礎(chǔ)。下面介紹它常用的屬性和方法。
1、Buffer屬性 該屬性用于指定頁面輸出時是否要用到緩沖區(qū),默認(rèn)值為False。當(dāng)它為True時,直到整個Active Server Page執(zhí)行結(jié)束后才會將結(jié)果輸出到瀏覽器上。如: <%Response.Buffer=True%> <html> <Head> <title>Buffer示例</title> </head> <body> <% for i=1 to 500 response.write(i & "<br>") next %> </body> </html> 這頁執(zhí)行時,整個主頁的所有內(nèi)容會同時顯示在瀏覽器上,這個主頁會存在緩存區(qū)中直到腳本執(zhí)行結(jié)束。
2、Expires屬性 該屬性用于設(shè)置瀏覽器緩存頁面的時間長度(單位為分),必須在服務(wù)器端刷新。通過如下設(shè)置:<%Response.Expires=0%> 通過在ASP文件中加入這一行代碼,要求每次請求是刷新頁面,因?yàn)镽esponse一收到頁面就會過期。
3、Write方法 該方法把數(shù)據(jù)發(fā)送到客戶端瀏覽器,如:<%Response.write "Hello,world!"%>
4、Redirect方法 該方法使瀏覽器可以重新定位到另一個URL上,這樣,當(dāng)客戶發(fā)出Web請求時,客戶端的瀏覽器類型已經(jīng)確定,客戶被重新定位到相應(yīng)的頁面。如: <html> <head> <title>Redirect示例</title> </head> <body> <form aciton="formjump.asp" method="post"> <select name="wheretogo"> <option selected value="fun">Fun</option> <option value="news">News</option> <option value="sample">Sample</option> </select> <input type=submit name="jump" value="Jump"> </form> </body> </html> 以上是提交的表單,下面是處理表單的文件formjump.asp: <%response.buff=true%> <html> <head> <title>Redirect示例</title> </head> <body> <% thisurl="http://jefenet." where=Request.form("wheretogo") Select Case where case "fun" response.redirect thisurl & "/fun/default.asp" case "news" response.redirect thisurl & "/news/default.asp" case "sample" response.redirect thisurl & "/sample/default.asp" End Select %> </body> <html> 這個例子當(dāng)用戶選擇了以后,按"Jump"按鈕提交表單,服務(wù)器接到申請后調(diào)用formjump.asp判斷后定位到相應(yīng)的URL。不過這里有一點(diǎn)要注意,HTTP標(biāo)題已經(jīng)寫入到客戶瀏覽器,任何HTTP標(biāo)題的修改必須在寫入頁內(nèi)容之前,遇到這種問題時,可以如下做: 在文件的開始<@ Language=..>后寫:Response.Buffer=True 在結(jié)尾定:Response.Flush 這里Flush是Response的一個方法,它必須是Buffer屬性設(shè)置為True時才能使用,否則會產(chǎn)生一個運(yùn)行模式錯誤。另外一個Clear方法也是用于清除被緩存的頁面,同樣要Buffer屬性設(shè)置為True時才能使用。
5、End方法 該方法用于告知Active Server當(dāng)遇到該方法時停止處理ASP文件。如果Response對象的Buffer屬性設(shè)置為True,這時End方法即把緩存中的內(nèi)容發(fā)送到客戶并清除沖區(qū)。所以要取消所有向客戶的輸出民,可以先清除緩沖區(qū),然后利用End方法。如: <% Response.buffer=true On error resume next Err.clear if Err.number<>0 then Response.Clear Response.End end if %>
|