Response對象是HttpRespone類的一個實(shí)例。該類主要是封裝來自ASP.NET操作的HTTP相應(yīng)信息。Response對象將數(shù)據(jù)作為請求的結(jié)果從服務(wù)器發(fā)送到客戶瀏覽器中,并提供有關(guān)響應(yīng)的消息。它可用來在頁面中輸出數(shù)據(jù),在頁面中跳轉(zhuǎn),還可以傳遞各個頁面的參數(shù)。
一、向頁面中輸出數(shù)據(jù)
語法格式
Response對象通過Write方法或WriteFile方法在頁面輸出數(shù)據(jù),輸出的對象可以是字符,字符串,字符數(shù)組,對象或文件。
用Response輸出數(shù)據(jù)時(shí),ASP.NET最重要的語法是:Response.Write(...);
實(shí)例:
(1)建立一個ASP.NET空網(wǎng)站,將網(wǎng)頁的標(biāo)題設(shè)置為“在頁面中輸出數(shù)據(jù)”。
(2)右擊資源管理器中的項(xiàng)目名稱,選擇“添加新項(xiàng)”命令,在彈出的添加新項(xiàng)的對話框中選擇“文本文件”,名稱設(shè)置為“WriteFile.txt”。
(3)在WriteFile.txt文本文件中輸入如下文本:
English can be displayed normally.
For example,this is a book.br/>
但是中文文字需要設(shè)置一下:br/>
即在Response.Write開始寫上如下的語句:br/>
Response.ContentEncoding = System.Text.Encoding.UTF8;或Response.ContentEncoding = System.Text.Encoding.Default;
hr/>
(4)在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
//Response.ContentEncoding = System.Text.Encoding.UTF8;
//Response.ContentEncoding = System.Text.Encoding.Default;
char c='a';
string s="用Response打印字符串";
char[] cArray = { '用', 'R', 'e', 's', 'p', 'o', 'n', 's', 'e', '打', '印','字','符','數(shù)','組',};
Page p = new Page();
Response.Write("輸出單個字符:"+c+"hr/>");
Response.Write("輸出一個字符串:" + s + "hr/>");
Response.Write("輸出字符數(shù)組:");
Response.Write(cArray,0,cArray.Length);
Response.Write("hr/>");
Response.Write("輸出一個對象:" + p + "hr/>");
Response.Write("輸出一個文件:" + "hr/>");
Response.WriteFile(@"~\WriteFile.txt");
(5)啟動調(diào)試運(yùn)行的結(jié)果為:
二、向頁面輸出圖像文件
1)利用WriteFIle方法
語法格式
該方法將圖片文件以文件流的方式輸出到客戶端頁面。該方法使用使用之前,必須通過ContentType屬性定義文件流是什么類型文件。
Response.ContentType="image/JPEG";
Response.WriteFile(包含圖片的文件名);
實(shí)例
(1)我們可以利用Windows系統(tǒng)自帶的畫圖工具簡易畫一個圖像,也可以從網(wǎng)上下載一個圖像,保存在本地硬盤文件系統(tǒng)中,文件名設(shè)置為tempimage.jpg。
(2)在本地硬盤文件系統(tǒng)中找到tempimage.jpg,將其復(fù)制到網(wǎng)站資源管理器中。右擊資源管理器,選擇“粘貼”選項(xiàng),將此文件粘貼到本項(xiàng)目中。
(3)在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
Response.ContentType = "image/JPEG";
Response.WriteFile(@"~\tempimage.jpg");
(4)運(yùn)行的結(jié)果為:
2)用BinaryWrite方法輸出圖像
語法格式
通過Response對象的BInaryWrite方法輸出二進(jìn)制圖像格式如下:
byte[] buffer=new byte[整型文件長度];
Response.BinaryWrite(buffer);
實(shí)例
(1)從網(wǎng)上找一個*.gif文件,保存到本地硬盤文件系統(tǒng)中,文件名設(shè)置為picture.gif。
(2)右擊網(wǎng)站資源管理,選擇“添加現(xiàn)有項(xiàng)”,彈出“添加現(xiàn)有項(xiàng)”對話框,找到你保存圖片的本地位置,點(diǎn)擊“添加”即可。
(3)在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
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];//定義一個二進(jìn)制數(shù)據(jù)
stream.Read(Buffer,0,(int)FileSize);//從流中讀取字節(jié)塊并將該數(shù)據(jù)寫入給定緩沖區(qū)中
stream.Close();//關(guān)閉流
Response.BinaryWrite(Buffer);//將圖片輸出在頁面上
//設(shè)置頁面的輸出格式
Response.ContentType = "image/gif";
Response.End();//中止頁面的其他輸出
}
}
(4)運(yùn)行的結(jié)果為:
三、頁面跳轉(zhuǎn)
Response對象的Redirect和AppendHeader方法均可實(shí)現(xiàn)頁面重定向功能。Redirect方法較為常用,但該方法在頁面進(jìn)行跳轉(zhuǎn),即在頁面打開后才執(zhí)行的頁面重定向。而AppendHeader方法是在頁面打開前執(zhí)行的頁面重定向。前者還會執(zhí)行頁面的一些程序,而后者不會。
1、AppendHeader方法
語法格式
Response.AppendHeader(Name,Value)
參數(shù)Name為HTTP頭,參數(shù)Value為HTTP頭的值。
HTTP頭是HTTP協(xié)議規(guī)定的請求和響應(yīng)消息都支持的頭域內(nèi)容。HTTP頭是頁面通過HTTP協(xié)議訪問頁面時(shí),最先響應(yīng)的請求和響應(yīng)消息,例如HTTP頭中的Location,Location頭用于將頁面重定向到另一個頁面,與Redirect方法相似。
實(shí)例
(1)建立一個新的網(wǎng)站,默認(rèn)主頁為Default.aspx。在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
Response.Status = "302 Object Moved";
Response.AppendHeader("Location","http://www.baidu.com");
(2)運(yùn)行的結(jié)果為:
2、Redirect方法
語法格式
Response.Redirect("重定向網(wǎng)頁方法")方法
實(shí)例
(1)建立一個新的網(wǎng)站,默認(rèn)主頁為Default.aspx。在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
Response.Redirect(@"~/Redirect.aspx");
(2)右擊網(wǎng)站資源管理器,選擇“添加新項(xiàng)”,在“添加新項(xiàng)”對話框中選擇“Web窗體”,命名為Redirect.aspx。
(3)在Redirect.aspx窗體中,添加代碼:
form id="form1" runat="server">
div>這是重定向頁?。?!/div>
/form>
(4)運(yùn)行的結(jié)果為:
四、Response對象與JavaScript結(jié)合使用
有時(shí)候,我們需要在后臺服務(wù)器通過C#語言來執(zhí)行前臺客戶端的JavaScript代碼,有一種方法就是采用Response對象。采用Response.Write()方法將JavaScript腳本寫入客戶端頁面的head>/head>中并執(zhí)行,我們來說說常用的三種方法:
1、彈出提示對話框
Alert在JavaScript中主要用于警告作用,例如將要關(guān)閉一個網(wǎng)頁時(shí),可以提醒用戶網(wǎng)頁將要關(guān)閉。
Response.Write("script>alert('這是提示對話框')/script>");
2、打開窗口
window.open用于打開新的窗口,語法格式如下:
Response.Write("script>window.open(url,windowname[,loctaion])/script>");
可以對打開的新窗口設(shè)置文檔的名稱,窗口的寬高等一些參數(shù)。
3、關(guān)閉窗口
window.close用于關(guān)閉瀏覽器窗口。
Response.Write("script>window.close()/script>");
實(shí)例
(1)建立一個新的網(wǎng)站,默認(rèn)主頁為Default.aspx,打開設(shè)計(jì)視圖,從工具箱拖入三個Button控件,分別設(shè)置為按鈕1,按鈕2,按鈕3。
(2)分別雙擊三個Button控件,添加Click事件的代碼為:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("script>alert('這是提示對話框')/script>");
}
protected void Button2_Click(object sender, EventArgs e)
{
//在新窗口中打開Newwindow.aspx,各參數(shù)如下設(shè)置
string str = "script>window.open('NewWindow.aspx','','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no')/script>";
Response.Write(str);
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Write("script>window.close()/script>");
}
(3)右擊網(wǎng)站資源管理器中的“添加新項(xiàng)”,在“添加新項(xiàng)”的對話框中選擇“Web窗體”,設(shè)置為Newwindow.aspx。在
頁面中添加代碼:
form id="form1" runat="server">
div>
這是window.open打開的新窗體?。?!
/div>
/form>
(4)運(yùn)行的結(jié)果為:
單擊第一個按鈕:
點(diǎn)擊第二個按鈕:
點(diǎn)擊第三個按鈕,我運(yùn)行了Google,F(xiàn)irefox,2345瀏覽器,第三個按鈕均沒有彈出提示框,最后使用IE打開有了效果(這是瀏覽器設(shè)置的原因):
以上就是關(guān)于asp.net內(nèi)置對象Response的實(shí)例介紹,希望對大家了解Response對象更有幫助。
您可能感興趣的文章:- java中response對象用法實(shí)例分析
- JSP response對象實(shí)現(xiàn)文件下載的兩種方式
- Jsp中response對象的所有屬性詳細(xì)介紹
- response對象的使用(實(shí)例講解)