首页 编程ASPResponse对象

Response对象

  Request也是Asp中一个重要的对象,他负责将服务器端的响应信息传递给客户机的浏览器。该对象与Request对象相对应,共同实现Asp程序的输入/输出功能。因此他们也是动态WEB交互的基础。Response的语法和Request很相近:
  
  Response.Collection|Property|Method
  其中依次表示Response的集合、属性与方法。

Response的集合

  Response有一个Cookies集合,用来设置Cookies的值,与Request的Cookies集合相对应,共同实现Cookies的读写操作。

Request的属性

  Buffer 表明页面输出是否启用缓冲。
  CacheControl 决定代理服务器是否能缓存 ASP 生成的输出。
  Charset 将字符集的名称添加到内容类型标题中。
  ContentType 指定响应的 HTTP 内容类型。
  Expires 在浏览器中缓存的页面超时前,指定缓存的时间。
  ExpiresAbsolute 指定浏览器上缓存页面超时的日期和时间。
  IsClientConnected 表明客户端是否与服务器断开。
  Pics 将 PICS 标记的值添加到响应的标题的 PICS 标记字段中。
  Status 服务器返回的状态行的值。

Response的方法

  AddHeader 从 名称 到 值 设置 HTML 标题。
  AppendToLog 在该请求的 Web 服务器日志条目后添加字符串。
  BinaryWrite 将给出信息写入到当前 HTTP 输出中,并且不进行任何字符集转换。
  Clear 清除任何缓冲的 HTML 输出。
  End 停止处理 .asp 文件并返回当前的结果。
  Flush 立即发送缓冲的输出。
  Redirect 将重指示的信息发送到浏览器,尝试连接另一个 URL。
  Write 将变量作为字符串写入当前的 HTTP 输出。
Buffer

  Buffer 属性指示是否缓冲页输出。当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了 Flush 或 End 方法后,服务器才将响应发送给客户端。
  服务器将输出发送给客户端后就不能再设置 Buffer 属性。因此,应该在 .asp 文件的第一行调用 Response.Buffer 。语法:

  Response.Buffer [= flag]

  Flag指定了是否启用缓冲输出,false不缓冲。该值是默认值。服务器在处理脚本的同时将输出发送给客户端。True 除非当前页的所有 ASP 脚本处理完毕或调用了 Flush 或 End 方法,否则服务器不将响应发送给客户端。

  如果当前 ASP 脚本缓冲设为 TRUE ,但未调用 Flush 方法,则服务器将使客户端的请求保持活动。由于服务器不必为每个客户端创建新的连接,从而节省了时间。不过,缓冲将在服务器未处理完当前页的所有脚本之前阻止在客户端显示响应。对于长的脚本来说,有可能会感觉到延迟。
  您可用元数据库中的 ASPBufferingOn 属性设置脚本缓冲默认值。

CacheControl

  CacheControl 属性忽略 Private 默认值。当你设置其属性为 Public 时, 代理服务器可以缓冲由 ASP 产生的输出。

  语法
  Response.CacheControl [= Cache Control Header ]

  参数
  Cache control Header
  缓冲存储器控制标题可以是 Public 或 Private。
ContentType

  ContentType 属性指定响应的 HTTP 内容类型。如果未指定 ContentType,默认为 text/HTML。

  语法
  Response.ContentType [= ContentType ]

  参数
  ContentType

  描述内容类型的字符串。该字符串通常被格式化为类型/子类型,其中类型是常规内容范畴而子类为特定内容类型。有关支持内容类型的完整列表,请参阅 Web 浏览器文档或当前的 HTTP 规格说明。
示例
  下面的示例将内容类型设置为 Channel Definition Format(CDF)。

  <% Response.ContentType = “application/x-cdf” %>

  下面的示例将 ContentType 属性设置为其他的常见值。

  <% Response.ContentType = “text/HTML” %>
  <% Response.ContentType = “image/GIF” %>
  <% Response.ContentType = “image/JPEG” %>
Expires

  Expires 属性指定了在浏览器上缓冲存储的页距过期还有多少时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区中的版本。

  语法
  Response.Expires [= number]

  参数
  number

  距过期还有多少分钟。将此参数设置为 0 可使缓存的页立即过期。

  注释

  若此属性在一页上设置了多次,则使用最短的时间。
ExpiresAbsolute

  ExpiresAbsolute 属性指定缓存于浏览器中的页的到期日期和时间。在未到期之前,若用户返回到该页,该缓存的页就显示。如果未指定时间,该主页在当天午夜到期。如果未指定日期,则该主页在脚本运行当天的指定时间到期。

  语法
  Response.ExpiresAbsolute [= [date] [time]]
 

  参数
  date
  指定页的到期日期。该值在符合 RFC-1123 日期格式的到期标题中发送。

  time
  指定页的到期时间。该值在到期标题发送之前转化为 GMT 时间。

  注释
  如果该属性在页中被多次设置,则以最早到期的日期和时间为准。

  示例
  以下示例指定页在 1996 年 5 月 31 日下午 1:30 分 15 秒到期。

  <% Response.ExpiresAbsolute=#May 31,1996 13:30:15# %>
IsClientConnected

  IsClientConnected 属性只读,它指示自上次调用 Response.Write 之后,客户端是否与服务器相连。

  语法
  Response.IsClientConnected ( )

  注释
  该属性允许用户在客户端与服务器没有连接的情况下有更多的控制。例如,在从客户端提出请求起到服务器作出响应,其间要用去很长一段                                         时间的情况下,这就可能有助于确保在继续处理脚本之前客户端仍是连通的。

  示例
  <%
  ’check to see if the client is connected
  If Not Response.IsClientConnected Then
  ’get the sessionid to send to the shutdown function
  Shutdownid = Session.SessionID
  ’perform shutdown processing
  Shutdown(Shutdownid)
  End If
  %>
PICS

  PICS 属性向响应标题的 pics 标签字段添加值。

  语法
  Response.PICS(PICSLabel)

  参数
  PICSLabel
  经适当格式化的 PICS 标签字符串。由 PICSLabel 指定的值将被添加到响应标题中的 PICS 标签字段之后。
  示例
  对于包含

<%
Response.PICS(“(PICS-1.1 <http://www.rsac.org/ratingv01.html> labels on ” & chr(34) & “1997.01.05T08:15-0500″ & chr(34) & ” until” & chr(34) & “1999.12.31T23:59-0000″ & chr(34) & ” ratings (v 0 s 0 l 0 n 0))”)
%>

的 .asp 文件,将添加以下标题:

PICS-label:(PICS-1.1 <http://www.rsac.org/ratingv01.html> labels on “1997.01.05T08:15-0500” until “1999.12.31T23:59-0000″ ratings (v 0 s 0 l 0 n 0))

  注释
  PICS 属性在标题中插入任何字符串,不管它是否表示有效的 PICS 标签。

  若一个单页包含多个包含 Response.PICS 的标记,则每个实例代替上一个 PICS 标签设置的 PICS 标签。结果是,PICS 将被设置为页中上一个 Response.PICS 实例所指定的值。

  由于 PICS 标签包含引号,所以必须用 ” & chr(34) & ” 替换每个引号。
Status

  Status 属性指定服务器返回的状态行的值。HTTP 规格中定义了 Status 值。

  语法
  Response.Status = StatusDescription
 

  参数
  StatusDescription
  包含表示状态码的三位数和该代码简短说明的字符串。例如,310 Move Permanently。
  注释
  使用该属性修改服务器返回的状态行。

  示例
  下面示例设置响应状态。

<% Response.Status = “401 Unauthorized” %>
AddHeader

  AddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除。

  此方法仅供高级用户使用。若其他 Response 方法提供了您所需的功能,建议您使用该方法。

  语法
  Response.AddHeader name, value

  参数
  name
  新的标题变量的名称。

  value
  存储在新的标题变量中的初始值。

  注释
  为避免命名不明确,name 中不能包含任何下划线字符 (_)。ServerVariables 集合将标题中的下划线字符解释为反斜杠。例如,下面的脚本使服务器查找一个名为 MY-HEADER 的标题名。

<% Request.ServerVariables(“HTTP_MY_HEADER”) %>

  由于 HTTP 协议要求所有的标题都必须在内容之前发送,所以您必须在任何的输出(例如由 HTML 或 Write 方法生成的输出)发送到客户端之前在脚本中调用 AddHeader。但当 Buffer 属性被设置为 TRUE 时例外。若输出被缓冲,那么您就可以在脚本中的任何地方调用 AddHeader 方法,只要它在 Flush 之前执行即可。否则,对 AddHeader 的调用将产生一个运行错误。

下面的两个 .asp 文件对这一点进行了解释。

——-file1.asp———
<% Response.AddHeader “WARNING”, “Error Message Text” %>
<HTML>
Some text on the Web page.
</HTML>

在前面的例子中,页没有缓冲。但是,因为在服务器将输出

Some text on the Web page

发送到客户端之前调用了 AddHeader 方法,所以脚本能正常工作。如果调换一下顺序,则对 AddHeader 方法的调用将产生一个运行时错误。

——file2.asp———-
<% Response.Buffer = TRUE %>
<HTML>
Here’s some text on your Web page.
<% Response.AddHeader “WARNING”, “Error Message Text” %> Here’s some more interesting and illuminating text.
<% Response.Flush %>
<%= Response.Write(“some string”) %>
</HTML>

  在前面的示例中,页被缓冲了,其结果是,直到此页上所有的 ASP 脚本执行后或 Flush 方法被调用后,服务器才会将输出发送到客户端。带缓冲的输出中对 AddHeader 的调用可在脚本的任何地方出现,只要在 Flush 调用之前即可。在前面的示例中,若对 AddHeader 的调用在对 Flush 的调用之后出现,脚本将产生一个运行时错误。

  您可以通过这一方法用不同的值发送同一标题的多份拷贝,比如用 WWW-Authenticate 标题。

  示例
  下面这个示例使用 AddHeader 方法要求客户端使用 BASIC 验证。

  <% Response.Addheader “WWW-Authenticate”, “BASIC” %>

  注意 前面的脚本仅通知客户端浏览器使用哪个验证。若您在 Web 应用程序中使用该脚本,则一定要启用 Web 服务器的 BASIC 验证。

AppendToLog

  AppendToLog 方法将字符串添加到 Web 服务器日志条目的末尾。可以在脚本的同一部分中多次调用该方法。每次调用该方法时,都会在当前条目中添加指定的字符串。

  语法
  Response.AppendToLog string

  参数
  string
  要添加到日志文件中的文本。由于 IIS 日志中的字段由逗号分隔,所以该字符串中不能包含逗号 (,)。字符串最大长度为 80 个字符。
 

  注释
  为使指定的字符串被记录到日志文件中,必须启用站点 Extended Logging 属性页的 URI Query 选项,该站点是要登录的活动站点。有关配置 Extended Logging 的详细信息,请参阅 Customizing W3C Extended Logging。
BinaryWrite

  BinaryWrite 方法不经任何字符转换就将指定的信息写到 HTTP 输出。该方法用于写非字符串信息(如客户端应用程序所需的二进制数据)。

  语法
  Response.BinaryWrite data

  参数
  data
  写到 HTTP 输出的数据。
  示例
  如果有一个产生字节数组的对象,就如下调用 BinaryWrite 将这些生成的字节发送给客户端应用程序。

<%
Set BinGen = Server.CreateObject(MY.BinaryGenerator)
Pict = BinGen.MakePicture
Response.BinaryWrite Pict
%>
Clear

  Clear 方法删除缓冲区中的所有 HTML 输出。但 Clear 方法只删除响应正文而不删除响应标题。可以用该方法处理错误情况。请注意,如果未将 Response.Buffer 设置为 TRUE,则该方法将导致运行时错误。

  语法
  Response.Clear
End

  End 方法使 Web 服务器停止处理脚本并返回当前结果。文件中剩余的内容将不被处理。

  语法
  Response.End

  注释
  如果 Response.Buffer 已设置为 TRUE,则调用 Response.End 将缓冲输出。如果不希望将输出返回给用户,应调用

  <%
  Response.Clear
  Response.End
  %>
Flush

  Flush 方法立即发送缓冲区中的输出。如果未将 Response.Buffer 设置为 TRUE,则该方法将导致运行时错误。

  语法
  Response.Flush

  注释
  如果在 ASP 页上调用 Flush 方法,则服务器将响应该页上保持活动的请求。
Redirect

  Redirect 方法使浏览器尝试连接到其他 URL。

  语法
  Response.Redirect URL

  参数
  URL
  浏览器重定向到的统一资源定位符 (URL)。
 

  注释
  任何在页中显式设置的响应正文内容都将被忽略。然而,此方法不向客户端发送该页设置的其他 HTTP 标题。将产生一个将重定向 URL 作为链接包含的自动响应正文。Redirect 方法发送下列显式标题,其中 URL 是传递给该方法的值。

HTTP/1.0 302 Object Moved
Location URL
Write

  Write 方法将指定的字符串写到当前的 HTTP 输出。

  语法
  Response.Write variant

  参数
  variant
  需要写的数据。该参数可以是任何 Visual Basic Scripting Edition 的 VARIANT 数据类型,包括字符、字符串和整数。该值不能包括字符组合 %>,如果需要,可用转义序列 %> 代替。Web 服务器在处理脚本时,将转换这一转义序列。
示例
以下示例用 Response.Write 方法将输出发送到客户端。

I just want to say <% Response.Write “Hello World.” %>
Your name is: <% Response.Write Request.Form(“name”) %>

以下示例将 HTML 标记添加到 Web 页输出。由于 Write 方法返回的字符串不包含字符组合 %>,代之的是 %>。以下脚本

<% Response.Write “<TABLE WIDTH = 100%>” %>

  输出

<TABLE WIDTH = 100%>

  本篇文章摘录自:http://www.yesky.com/imagesnew/software/asp/innerobject/response/intr5sj8.htm,有所删减,特此声明。