首页 > 代码库 > Response对象

Response对象

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
 
  

Response对象