深入認識學習ASP內建對象Response

來源:互聯網
上載者:User

通過對Request對象的學習,可以瞭解到,Request對象是伺服器端用來擷取用戶端的資訊的。

但作為伺服器和用戶端進行互動,是不是還缺少伺服器端向用戶端發送資訊呢?對象Response正是擔任此責任。

負責將資訊傳遞給使用者的對象就是Response了,它可動態地響應用戶端的請求,並將動態產生的響應結果返回給用戶端瀏覽器。

一,Response.write

在Response中write方法是使用最頻繁的一個了,write就是寫:將指定的字串寫到當前的 HTTP 輸出。

1,write.asp

<%
response.write("hello,world"&"<br>")
Randomize
response.write "任意數是"&rnd()&"<br>"
%>

response.write後面為所顯示的資訊,可以用括弧包含,也可以直接書寫(注意和response.write之間有空格)。

書寫的字串資訊或者HTML代碼相關,用引號包含;而ASP本身的函數或變數則不需要,直接用即可。

並且無論字串資訊、HTML代碼、函數還是變數之間進行串連都是採用&號(針對vbscript)

以上遇到一個隨機函數rnd(),該函數返回一個小於 1 但大於或等於 0 的值。
需要注意的是在調用 Rnd 之前,先使用無參數的 Randomize 語句初始化隨機數產生器,該產生器具有基於系統計時器的種子。

若缺少Randomize,則無法繼續產生隨機種子。

下面一個利用隨機函數的例子,產生隨機背景顏色效果:

<script language=vbs>
Randomize                  '首先Randomize產生隨機種子
suij=rnd()                  '接著將函數值賦變數suij
suij=replace(suij,".","9")          '然後對變數suij中小數點符號轉換為數字9
suij=left(suij,6)              '再取變數中的左6位
document.write "<body bgcolor=#"&suij&">"  '最後應用到背景顏色中去
</script>

當然要產生指定範圍的隨機整數,請使用以下公式:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

這裡, upperbound 是此範圍的上界,而 lowerbound 是此範圍內的下界。

<script language=vbs>
Do Until choose = vbNo
  value = Int((41 * Rnd) + 60)  '產生 60 到 100 之間的隨機數。
  msgbox value
  choose = MsgBox ("Roll again? ", vbYesNo)
Loop
</script>

隨機函數在做考試系統的時候非常有用,當然你也可以用來自己搖獎,拿個頭彩也分點我就行了

二,Response.end

這是Response常用的一種方法,使 Web 服務器停止處理指令碼並返回當前結果,檔案中剩餘的內容將不被處理。
主要放在一頁多功能的ASP頁中,為讓程式運行到此,抑或往下的程式沒必要再執行顯示……

2,end.asp

<%response.write now()
response.end '程式執行顯示到此結束
response.write rnd()%>

三,Response.clear

該方法主要作用是清除緩衝區中的所有 HTML 輸出,但該方法只清除響應本文而不清除響應標題。
該方法和end方法似相反,end是到此結束返回上面的結果,而clear卻是清除上面的執行,然後只返回下面的結果。

3,clear.asp

<%response.write now()
response.clear '以上程式到此全被清除
response.write rnd()%>

下面通過一個例子來仔細看看end and clear

4,end2clear.asp

<%
filepath=request.servervariables("script_name")
user=Request.Form("username")
pwd=Request.Form("password")
%>
<form method="POST" action="<%=filepath%>">
name:<input type="text" name="username"><br>
pwd:<input type="password" name="password"><br>
<input type="submit" value="submit">
</form>
<%
If user="webjx" and pwd="webjx" Then
response.write "採用clear方法,上面的程式結果將清除。"
response.clear ' 清空儲存在緩衝中的頁面
Else
response.write "採用end方法,下面的程式將停運。"
Response.End ' 立即停止指令碼處理,並將緩衝中的頁面輸出
End If
%>
如果你只看到“重新整理”連結就表明clear方法已經生效<br>
<a href="<%=filepath%>">重新整理</a> 

以上程式中,當輸入使用者名稱和密碼同為webjx的時候會發現clear方法的處理結果,反之是另外一個效果。

四,Response.redirect

Redirect 方法是讓瀏覽器立即重新導向到程式指定的URL地址。這在根據客戶的不同響應,為不同的客戶指定不同的頁面,或根據不同的情況指定不同的頁面時,顯得非常重要。

該方法是立即生效的,在其後的指令碼都不執行。

5,redirect.asp

<%response.redirect("http://www.webjx.com/")%>

以上四則運用屬於Response對象的幾個比較重要的方法:write、end、clear、redirect等當然方法還有:AddHeader、AppendToLog、BinaryWrite、Flush……

早說過,一個ASP對象除了對象方法外,還有對象屬性

那response對象的屬性有哪些呢?

五,Response.ContentType

ContentType 屬性指定伺服器響應的 HTTP 內容類型。如果未指定 ContentType,預設為 text/html。

6,contenttype.asp(非text/html的)

<% Response.ContentType = "text/HTML" %>
<% Response.ContentType = "image/GIF" %>
<% Response.ContentType = "image/JPEG" %>
<% Response.ContentType = "text/plain" %>
<% Response.ContentType = "image/JPEG" %>

六,Response.charset

Charset 屬性將字元集名稱附加到 Response 對象中 content-type 標題的後面,用來設定伺服器響應給用戶端的檔案字元編碼。

7,charset.asp

<% Response.charset = "big5" %>

中文顯示,但採用的big5繁體的編碼,所以看到的是亂碼。

當然Response.ContentType和Response.charset應用得比較少了。直接在head頭部屬性裡面添加就OK了。

七,Response.expires

該屬性指定了在瀏覽器上緩衝儲存的頁,距到期還有多少時間。

如果使用者在某個頁到期之前又回到此頁,就會顯示緩衝區中的頁面。

但若設定 response.expires=0,則可使緩衝的頁面立即到期。

這是一個較實用的屬性,當客戶通過 ASP 的登陸頁面進入 WEB 網站後,應該利用該屬性使登陸頁面立即到期,以確保安全。

8,expires.asp

<%
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
%>

八,Response.status

設定伺服器要響應的狀態行的值。Response.status="狀態原因字串",字串可以為一個三位整數或一串解說文字組成,但必須防在<html>之前。

9,status.asp

<% Response.Status = "401 Unauthorized" %>

九,Response.buffer

比較重要的一個,值為true or false。該屬性指示是否緩衝頁輸出。

引用:當緩衝頁輸出時,只有當前頁的所有伺服器指令碼處理完畢或者調用了 Flush 或 End 方法後,伺服器才將響應發送給用戶端瀏覽器,伺服器將輸出發送給用戶端瀏覽器後就不能再設定 Buffer 屬性。因此應該在 .asp 檔案的第一行調用 Response.Buffer。

Response.buffer=true

對於Response對象的屬性和方法先到這裡,剩下一個資料集合,即cookie。繼續看cookies講座吧。

應用舉例題

表單發OutLook郵件

<style>
input{ border:1px solid navy; width:150}
</style>
<script>
function test(){
var NewTitle=title.value;
var NewContent=content.value;
document.location.href="mailto:"+aaa.value+"?cc="+bbb.value+"&bcc="+ccc.value+"&subject="+NewTitle+"&body="+NewContent;
}
</script>
<pre>
<font color=red>收件者:  </font><input name=aaa><br>
<font color=red>操送:   </font><input name=bbb><br>
<font color=red>密件操送: </font><input name=ccc><br>
<font color=red>主題:   </font><input name=title><br>
<font color=red>內容:   </font></pre><p>
<textarea cols=30 rows=10 name=content></textarea><br>
<input type=button value="send" >

ASP

<%
submitname=request.form("submit")
if submitname="submit" then
email=request.form("email")
cc=request.form("cc")
subject=request.form("subject")
body=request.form("body")
response.redirect("mailto:"&email&"?cc="&cc&"&subject="&subject&"&body="&body)
else
%>
<form name="form1" method="post" action="email.asp">
email:<input name="email"><br>
cc:<input name="cc"><br>
subject:<input name="subject"><br>
body:<input name="body"><br>
<input type="submit" name="submit" value="submit">
</form>
<%end if%>



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。