Response对象是HttpResponse类的一个实例。该类主要是封装来自ASP.NET操作的HTTP响应信息。
Response属性:
BufferOutput:获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页之后将其发送
如果缓冲了到客户端的输出,则为true;否则为false。默认为true
Cache:获取Web页的缓存策略(过期时间、保密性、变化子句)
包含有关当前响应的缓存策略信息的HttpCachePolicy对象
Charset:获取或设置输出流HTTP字符集
IsClientConnected:获取一个值,通过该值指示客户端是否仍连接在服务器上
如果客户端当前仍在连接,则为true;否则为false
实例:使用缓冲区
由于Response对象的BufferOutput属性默认为True,所以要输出到客户端的数据都暂时存储在缓冲区内,等到所有的事件程序,以及所有的页面对象全部解译完毕后,才将所有在缓冲区中的数据送到客户端的浏览器。下面的例子将演示缓冲区是如何工作的。
<%Response.Write("缓存已清除" + "<Br>"); %>
<Script Language="C#" Runat="Server"> void Page_Load(Object sender, EventArgs e) {
Response.Write("缓存清除前" + "<Br>"); Response.Clear(); }
</Script>
上述程序代码实例首先在“Page_Load”事件中送出“缓存清除前”这一行,此时的数据存在缓冲区中。接着使用Response对象的Clear方法将缓冲区的数据清除,所以刚刚送出的字符串已经被清除。然后IIS开始读取HTML组件的部分,并将结果送至客户端的浏览器。由执行结果只出现“缓存已清除”可知,使用Clear方法之前的数据并没有出现在浏览器上,所以程序开始时是存在缓冲区内的。如果在相同的程序中加入“Response.BufferOutput=false”:
<%Response.Write("清除之后的数据<Br>"); %>
<Script Language="C#" Runat="Server"> void Page_Load(Object sender, EventArgs e) {
Response.BufferOutput=false;
Response.Write("清除缓冲区之前的数据" + "<Br>"); Response.Clear(); }
</Script>
可以发现,执行的结果并没有因为使用Clear方法而将缓冲区的数据清除,这表明数据是直接输出而没有存放在缓冲区内。
Response对象的方法
Response对象可以输出信息到客户端,包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。下表列举了几个常用的方法
Write:将指定的字符串或表达式的结果写到当前的HTTP输出
End:停止页面的执行并得到相应结果
Clear:用来在不将缓存中的内容输出的前提下,清空当前页的缓存,仅当使用了缓存输出时,才可以利用Clear方法
Flush:将缓存中的内容立即显示出来。该方法有一点和Clear方法一样,它在脚本前面没有将Buffer属性设置为True时会出错。和End
方法不同的是,该方法调用后,该页面可继续执行
Redirect:使浏览器立即重定向到程序指定的URL