程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP編程入門進階(五):內置對象Response

ASP編程入門進階(五):內置對象Response

編輯:關於ASP編程
通過對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,則無法繼續生成隨機種子。

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

[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]

當然要產生指定范圍的隨機整數,請使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
這裡, upperbound 是此范圍的上界,而 lowerbound 是此范圍內的下界。

[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
隨機函數在做考試系統的時候非常有用,當然你也可以用來自己搖獎,拿個頭彩也分點我就行了

二,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="cnbruce" and pwd="cnbruce" Then
response.write "采用clear方法,上面的程序結果將清除。"
response.clear ' 清空存儲在緩存中的頁面
Else
response.write "采用end方法,下面的程序將停運。"
Response.End ' 立即停止腳本處理,並將緩存中的頁面輸出
End If
%>
如果你只看到“刷新”鏈接就表明clear方法已經生效<br>
<a href="<%=filepath%>">刷新</a> 



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

四,Response.redirect
Redirect 方法是讓浏覽器立即重定向到程序指定的URL地址。這在根據客戶的不同響應,為不同的客戶指定不同的頁面,或根據不同的情況指定不同的頁面時,顯得非常重要。
該方法是立即生效的,在其後的腳本都不執行。

5,redirect.asp


<%response.redirect("http://www.cnbruce.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郵件

[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
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%>


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved