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