Response对象用于将数据从服务器发送回浏览器。它允许将数据作为请求的结果发送到浏览器中,并提供有关响应的信息;还可以用来在页面中输入数据、在页面中跳转,并传递各个页面的参数。它与HTTP协议的响应消息相对应。
1、Response对象的常用属性和方法
Response对象将HTTP响应数据发送到客户端,并包含有关该响应的信息。
Response对象的常用属性及说明
属性 | 说明 |
Buffer | 获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个响应之后将其发送 |
ContentType | 获取或设置输出流的HTTPMIME类型 |
Cache | 获取Web页的缓存策略,如过期时间、保密性和变化子句等 |
Charset | 设定或获取HTTP的输出字符编码 |
Expires | 获取或设置在浏览器上缓存的页过期之前的分钟数 |
ExpiresAbsolute | 获取或设置从缓存中中移除缓存信息的绝对日期和时间 |
Cookies | 获取当前请求的Cookies集合 |
IsClientConnected | 传回客户端是否仍然和Server连接 |
SuppressContent | 设定是否将HTTP的内容发送至客户端浏览器,若为true,则网页将不会传至客户端 |
Header | 获取响应头的信息 |
Status | 设置返回到客户端的Status栏 |
Response对象的常用方法及说明
方法 | 说明 |
AddHeader | 将一个HTTP头添加到输出流 |
AppendToLog | 将自定义日志信息添加到IIS日志文件 |
BinaryWrite | 将一个二进制字符串写入HTTP输出流 |
Clear | 将缓冲区的内容清除 |
Close | 关闭到客户端的套接字连接 |
End | 将目前缓冲区中所有的内容发送至客户端,然后关闭 |
Flush | 将缓冲区中所有的数据发送至客户端 |
SetCookie | 更新Cookie集合中的一个现有Cookie |
Redirect | 将网页重新导向另一个地址 |
Write | 将数据输出到客户端 |
WriteFile | 将指定的文件直接写入HTTP内容输出流 |
2、在页面中输出数据
Response对象通过Write或WriteFile方法在页面上输出数据。输出的对象可以说字符、字符数组、字符串、对象或文件。
例,使用Write和WriteFile方法实现在页面上的输出,代码如下:
protected voidPage_Load(object sender, EventArgs e){
char c = 'a'; //定义一个字符变量
string s = "HelloWorld!"; //定义一个字符串变量
char[] cArray = { 'H','e', 'l','l', 'o',',', ' ','w', 'o','r', 'l','d' }; //定义一个字符数组
Page p = new Page(); //定义一个Page对象
Response.Write("输出单个字符");
Response.Write(c);
Response.Write("<br>");
Response.Write("输出一个字符串" + s + "<br>");
Response.Write("输出字符数组");
Response.Write(cArray, 0, cArray.Length);
Response.Write("<br>");
Response.Write("输出一个对象");
Response.Write(p);
Response.Write("<br>");
Response.Write("输出一个文件");
Response.WriteFile(@"D:\WriteFile.txt");
}
[注]:应用WriteLine方法输出一个文件时,该文件必须是已经存在的。如果不存在,将产生“未能找到文件”异常。
3、页面跳转并传递参数
Response对象的Redirect方法可以实现页面重定向的功能,并且在重定向到新的URL时可以传递参数。在页面重定向URL时传递参数,使用“?”分隔页面的链接地址和参数,有多个参数时,参数与参数之间使用“&”分隔。
例,将页面重定向到welcome.aspx页面并传递参数的代码如下:
Response.Redirect("~/welcome.aspx?Parameter1=one&Parameter2=other");
[注]:获得传递的参数时代码如下:
string one = Request.Params["Parameter1"];
4、输出二进制图像
Response对象不但可以使用Write或WriteFile方法将文件内容在页面上输出,而且还可以使用BinaryWrite方法显示二进制表示的数据,如图像、图片等。
例,将图像以二进制数据的形式输出到页面,代码如下:
protected voidPage_Load(object sender, EventArgs e){
//打开图片文件,并存在文件流中
FileStream stream = newFileStream(Server.MapPath("picture.gif"), FileMode.Open);
long FileSize = stream.Length;//获取流的长度
byte[] Buffer = newbyte[(int)FileSize];//定义一个二进制数组
stream.Read(Buffer, 0, (int)FileSize);//从流中读取字节块并将该数据写入给定缓冲区中
stream.Close();//关闭流
Response.BinaryWrite(Buffer);//将图片输出在页面上
}
[补充]:Response对象的Write方法与JavaScript脚本语言结合使用
(1)弹出提示对话框
Response.Write方法主要用来在页面上输出信息,该方法可以结合JavaScript脚本语言,弹出提示对话框:Response.Write("<script>alert("Hello Word!")</script>");。
(2)关闭窗口
在ASP.NET中没有提供直接关闭窗口的方法,但是可以使用JavaScript脚本关闭窗口:Response.Write("<script>window.close();</script>");。