Response對象是HttpRespone類的一個實例。該類主要是封裝來自ASP.NET操作的HTTP相應信息。Response對象將數據作為請求的結果從服務器發送到客戶瀏覽器中,並提供有關響應的消息。它可用來在頁面中輸出數據,在頁面中跳轉,還可以傳遞各個頁面的參數。
一、向頁面中輸出數據
Response對象通過Write方法或WriteFile方法在頁面輸出數據,輸出的對象可以是字符,字符串,字符數組,對象或文件。
用Response輸出數據時,ASP.NET最重要的語法是:Response.Write(...);
二、向頁面輸出圖像文件
1)利用WriteFIle方法
語法格式
該方法將圖片文件以文件流的方式輸出到客戶端頁面。該方法使用使用之前,必須通過ContentType屬性定義文件流是什么類型文件。
Response.ContentType="image/JPEG";
Response.WriteFile(包含圖片的文件名);
2)用BinaryWrite方法輸出圖像
語法格式
通過Response對象的BInaryWrite方法輸出二進制圖像格式如下:
byte[] buffer=new byte[整型文件長度];
Response.BinaryWrite(buffer);
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO;//添加的命名空間 public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //打開圖片文件,並存在文件流中 FileStream stream = new FileStream(Server.MapPath("picture.gif"),FileMode.Open); long FileSize = stream.Length;//獲取流的長度 byte[] Buffer=new byte[(int)FileSize];//定義一個二進制數據 stream.Read(Buffer,0,(int)FileSize);//從流中讀取字節塊並將該數據寫入給定緩沖區中 stream.Close();//關閉流 Response.BinaryWrite(Buffer);//將圖片輸出在頁面上 //設置頁面的輸出格式 Response.ContentType = "image/gif"; Response.End();//中止頁面的其他輸出 } }
三、頁面跳轉
Response對象的Redirect和AppendHeader方法均可實現頁面重定向功能。Redirect方法較為常用,但該方法在頁面進行跳轉,即在頁面打開后才執行的頁面重定向。而AppendHeader方法是在頁面打開前執行的頁面重定向。前者還會執行頁面的一些程序,而后者不會。
1、AppendHeader方法
語法格式
Response.AppendHeader(Name,Value)
參數Name為HTTP頭,參數Value為HTTP頭的值。
HTTP頭是HTTP協議規定的請求和響應消息都支持的頭域內容。HTTP頭是頁面通過HTTP協議訪問頁面時,最先響應的請求和響應消息,例如HTTP頭中的Location,Location頭用於將頁面重定向到另一個頁面,與Redirect方法相似。
Response.Status = "302 Object Moved"; Response.AppendHeader("Location","http://www.baidu.com");
2、Redirect方法
語法格式
Response.Redirect("重定向網頁方法")方法
四、Response對象與JavaScript結合使用
有時候,我們需要在后台服務器通過C#語言來執行前台客戶端的JavaScript代碼,有一種方法就是采用Response對象。采用Response.Write()方法將JavaScript腳本寫入客戶端頁面的<head></head>中並執行,我們來說說常用的三種方法:
1、彈出提示對話框
Alert在JavaScript中主要用於警告作用,例如將要關閉一個網頁時,可以提醒用戶網頁將要關閉。
Response.Write("<script>alert('這是提示對話框')</script>");
2、打開窗口
window.open用於打開新的窗口,語法格式如下:
Response.Write("<script>window.open(url,windowname[,loctaion])</script>");
可以對打開的新窗口設置文檔的名稱,窗口的寬高等一些參數。
3、關閉窗口
window.close用於關閉瀏覽器窗口。
Response.Write("<script>window.close()</script>");
五、Response.Buffer
Buffer 屬性指示是否緩沖頁輸出。當緩沖頁輸出時,只有當前頁的所有服務器腳本處理完畢或者調用了 Flush 或 End 方法后,服務器才將響應發送給客戶端。
服務器將輸出發送給客戶端后就不能再設置 Buffer 屬性。因此,應該在 .asp 文件的第一行調用 Response.Buffer 。
語法
Response.Buffer [= flag]
參數
- flag
-
指定是否緩沖頁輸出,可為如下值之一。
值 說明 FALSE 不緩沖。該值是默認值。服務器在處理腳本的同時將輸出發送給客戶端。 TRUE 除非當前頁的所有 ASP 腳本處理完畢或調用了 Flush或 End 方法,否則服務器不將響應發送給客戶端。
注釋
如果當前 ASP 腳本緩沖設為 TRUE ,但未調用 Flush 方法,則服務器將使客戶端的請求保持活動。由於服務器不必為每個客戶端創建新的連接,從而節省了時間。
不過,緩沖將在服務器未處理完當前頁的所有腳本之前阻止在客戶端顯示響應。對於長的腳本來說,有可能會感覺到延遲。
即當Buffer為True的時候,asp會將這個程序解釋完畢后一起發送到客戶端,
當Buffer為False的時候,asp會邊解析邊發送數據.