AddHeader AppendToLog BinaryRead BinaryWrite Buffer CacheControl Charset Clear ClientCertificate ContentType End ServerVariables Expires ExpiresAbsolute Flush Form IsClientConnected PICS QueryString Redirect Request.Cookies Request Response.Cookies Response Status TotalBytes Write

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 验证。

应用于

Response 对象

请参阅

FlushWriteBuffer


AppendToLog

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

语法

Response.AppendToLog string
 

参数

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

注释

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

应用于

Response 对象


BinaryRead

BinaryRead 方法获取作为 POST 请求的一部分而从客户端传送到服务器的数据。此方法获取来自客户端的数据并将其储存在 SafeArray 中。SafeArray 是一个数组,其中包含维数和边界信息。

语法

variant = Request.BinaryRead(count)
 

参数

variant
包含由该方法返回的无符号数的数组。该参数的类型为 VT_ARRAY | VT_UI1。
count
在执行前,指定要从客户端读取的字节数。此方法返回后,count 将包含从客户机成功读取的字节数。实际读取的字节总数将小于或等于 Request.TotalBytes

注释

BinaryRead 方法用于读取作为 POST 请求的一部分从客户端发出的未加工数据。此方法用于在底层访问数据,与此相反,Request.Form 集合用于查看在公告请求中发送的表格数据。一旦调用了 BinaryRead,则引用 Request.Form 集合中的任何变量都将导致错误发生。反之,一旦引用了 Request.Form 集合中的一个变量,则调用 BinaryWrite 也将导致错误发生。请记住,如果在访问 Request 集合中的变量时未指定该变量属于哪一个子集,将搜索 Request.Form 集合并强制使用上述规则。

示例

下列示例使用 BinaryRead 方法将请求的内容放入一个安全的数组中。

<%
Dim binread
Dim bytecount 
bytecount = Request.TotalBytes
binread = Request.BinaryRead(bytecount)
%>
 

应用于

Request 对象

请参阅

TotalBytesClientCertificateCookiesFormQueryStringServerVariables


BinaryWrite

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

语法

Response.BinaryWrite data
 

参数

data
写到 HTTP 输出的数据。

示例

如果有一个产生字节数组的对象,就如下调用 BinaryWrite 将这些生成的字节发送给客户端应用程序。

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

应用于

Response 对象

请参阅

Write


Buffer

Buffer 属性指示是否缓冲页输出。当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了 FlushEnd 方法后,服务器才将响应发送给客户端。

服务器将输出发送给客户端后就不能再设置 Buffer 属性。因此,应该在 .asp 文件的第一行调用 Response.Buffer

语法

Response.Buffer [= flag]
 

参数

flag
指定是否缓冲页输出,可为如下值之一。
说明
FALSE 不缓冲。该值是默认值。服务器在处理脚本的同时将输出发送给客户端。
TRUE 除非当前页的所有 ASP 脚本处理完毕或调用了 FlushEnd 方法,否则服务器不将响应发送给客户端。

注释

如果当前 ASP 脚本缓冲设为 TRUE ,但未调用 Flush 方法,则服务器将使客户端的请求保持活动。由于服务器不必为每个客户端创建新的连接,从而节省了时间。

不过,缓冲将在服务器未处理完当前页的所有脚本之前阻止在客户端显示响应。对于长的脚本来说,有可能会感觉到延迟。

您可用元数据库中的 ASPBufferingOn 属性设置脚本缓冲默认值。关于使用元数据库的详细信息,请参阅程序员参考中的 IIS 元数据库

应用于

Response 对象

请参阅

FlushEnd


CacheControl

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

语法

Response.CacheControl [= Cache Control Header ]
 

参数

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

应用于

Response 对象


Charset

Charset 属性将字符集名称(如 ISO-LATIN-7)附加到 Response 对象中 content-type 标题的后面。

语法

Response.Charset(CharsetName)
 

参数

CharsetName
指定该网页的字符集的字符串。字符集的名称将被附加到 Response 对象中的 content-type 标题的后面。

示例

对于不包含 Response.Charset 属性的 ASP 页,content-type 标题将为:

content-type:text/html

如果同样的 .asp 文件包含

<% Response.Charset("ISO-LATIN-7") %>

则 content-type 标题将为:

content-type:text/html; charset=ISO-LATIN-7
 

注释

无论字符串表示的字符集是否有效,该功能都会将其插入 content-type 标题中。

如果某个页包含多个含有 Response.Charset 的标记,则每个 Response.Charset 都将替代前一个 CharsetName。这样,字符集将被设置为该页中 Response.Charset 的最后一个实例所指定值。

在 Macintosh 系统上,默认的 U.S. 字符集设置不是 ISO-LATIN-1。当处理文档时,用于 Macintosh 系统的个人 Web 服务器自动从 Macintosh 字符集转换为 ISO-Latin-1。在 U.S. 版本中,如果未使用 Response.Charset 转换字符集,而且用于 Macintosh 系统的个人 Web 服务器不转换字符集,那么所有网页都被假定为在 U.S. Macintosh 字符集中。

应用于

Response 对象


Clear

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

语法

Response.Clear 
 

应用于

Response 对象

请参阅

EndFlush


ClientCertificate

ClientCertificate 集合从 Web 浏览器发布请求中获取验证字段(由 X.509 标准指定)。

如果 Web 浏览器使用 SSL3.0/PCT1 协议(也就是说,它使用以 https:// 开头的 URL,而不是 http://)连接服务器及服务器请求验证,则浏览器将发送验证字段。

如果没有发送验证,ClientCertificate 集合将返回 EMPTY。

必须先将 Web 服务器配置为要求客户端验证,然后才能使用 ClientCertificate 集合。

语法

Request.ClientCertificate( Key[SubField] )
 

参数

Key
指定要获取的验证字段名称。客户端验证包括下列字段。
意义
Certificate 按 ASN.1 格式的二进制流字符串,其中包括完整的验证内容。
Flags 一组标志,提供其他客户端验证信息。可以设置下面的标志:

ceCertPresent - 当前的客户端验证。

ceUnrecognizedIssuer - 该链上来自未知的发布者的最后一个验证。

注意 要使用以上标志,必须在 ASP 页中包含客户端验证包含文件。若您正在使用 VBScript,则应包含 cervbs.inc。这些文件安装在 \Inetpub\ASPSamp\Samples 目录下。

Issuer 包含子字段值的列表的字符串,此列表包含验证发布者的信息。若该值在无 SubField 项的情况下指定,则 ClientCertificate 集合返回一个以逗号分隔的子字段列表。例如,C=US, O=Verisign 等。
SerialNumber 包含验证的序列号的字符串,序列号以连字符 (-) 分隔的 16 进制 ASCII 码表示。例如,04-67-F3-02。
Subject 包含子字段值的列表的字符串,此列表包含有关验证的主题信息。若该值在无 SubField 项的情况下指定,则 ClientCertificate 集合返回一个以逗号分隔的子字段列表。例如,C=US, O=Verisign 等。
ValidFrom 指定验证何时有效。此日期遵循 VBScript 格式并随国家(地区)设置而变化。例如,在美国可表示为 9/26/96 11:59:59 PM.
ValidUntil 指定验证何时到期。


SubField
可选参数,用于按 Subject 或 Issuer 关键字检索单独的字段。此参数作为一个后缀添加到 Key 参数中。例如,IssuerO 或 SubjectCN。下表列出了一些通用的 SubField 值。
意义
C 指定原国家(地区)名。
CN 指定公用用户名。(此子字段仅同 Subject 关键字一起使用。)
GN 指定给定的名称。
I 指定一组首字母。
L 指定所在地。
O 指定公司或组织名称。
OU 指定机构的名称。
S 指定州或省。
T 指定此人或组织的头衔。

与在上述列表中所列的值不同,SubField 的值可被 ASN.1 标识所识别。ASN.1 标识的格式是一串通过句点 (.) 分隔的一系列数。例如: 3.56.7886.34。

注释

可以通过关键字用循环来遍历 ClientCertificate 集合。下面的例子对此进行演示。

<%
For Each key in Request.ClientCertificate
  Response.Write( key & ": " & Request.ClientCertificate(key) & "<BR>")
Next
%>
 

示例

下面的示例使用 Subject 关键字测试客户端验证是否存在。

<%
If Len(Request.ClientCertificate("Subject")) = 0
  Response.Write("No client certificate was presented")
End if
%>
 

下面的示例获取发布客户端验证的公司的公用名。

<%= Request.ClientCertificate("IssuerCN") %>
 

下面的示例检查客户端验证主题的组织名。

<% 
If (Request.ClientCertificate("Subject")="Msft")
  Response.Write("Good Choice!")
End if
%>
 

下面的示例显示客户端验证何时到期。

This certification will expire on 
<%= Request.ClientCertificate("ValidUntil") %>
 

下面的示例使用 Flags 关键字测试客户端验证的发布者是不是已知的。第一行的 include 命令使脚本可使用已命名标志 ceUnrecognizedIssuer

<!--#include file="cervbs.inc" -->
<%
If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then
  Response.Write "Unrecognized issuer"
End If
%>
 

应用于

Request 对象

请参阅

CookiesFormQueryStringServerVariables


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" %>
 

应用于

Response 对象


End

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

语法

Response.End
 

注释

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

<% 
Response.Clear
Response.End
%> 
 

应用于

Response 对象

请参阅

BufferClear


ServerVariables

ServerVariables 集合检索预定的环境变量。

语法

Request.ServerVariables (server environment variable)
 

参数

服务器环境变量
指定要检索的服务器环境变量名。可以使用下面列出的值。
变量 说明
ALL_HTTP 客户端发送的所有 HTTP 标题文件。
ALL_RAW 检索未处理表格中所有的标题。ALL_RAW 和 ALL_HTTP 不同,ALL_HTTP 在标题文件名前面放置 HTTP_ prefix,并且标题名称总是大写的。使用 ALL_RAW 时,标题名称和值只在客户端发送时才出现。
APPL_MD_PATH 检索 ISAPI DLL 的 (WAM) Application 的元数据库路径。
APPL_PHYSICAL_PATH 检索与元数据库路径相应的物理路径。IIS 通过将 APPL_MD_PATH 转换为物理(目录)路径以返回值。
AUTH_PASSWORD 该值输入到客户端的鉴定对话中。只有使用基本鉴定时,该变量才可用。
AUTH_TYPE 这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。
AUTH_USER 未被鉴定的用户名。
CERT_COOKIE 客户端验证的唯一 ID,以字符串方式返回。可作为整个客户端验证的签字。
CERT_FLAGS 如有客户端验证,则 bit0 为 1。

如果客户端验证的验证人无效(不在服务器承认的 CA 列表中),bit1 被设置为 1。

CERT_ISSUER 用户验证中的颁布者字段(O=MS,OU=IAS,CN=user name,C=USA)。
CERT_KEYSIZE 安全套接字层连接关键字的位数,如 128。
CERT_SECRETKEYSIZE 服务器验证私人关键字的位数。如 1024。
CERT_SERIALNUMBER 用户验证的序列号字段。
CERT_SERVER_ISSUER 服务器验证的颁发者字段。
CERT_SERVER_SUBJECT 服务器验证的主字段。
CERT_SUBJECT 客户端验证的主字段。
CONTENT_LENGTH 客户端发出内容的长度。
CONTENT_TYPE 内容的数据类型。同附加信息的查询一起使用,如 HTTP 查询 GET、 POST 和 PUT。
GATEWAY_INTERFACE 服务器使用的 CGI 规格的修订。格式为 CGI/revision。
HTTP_<HeaderName> HeaderName 存储在标题文件中的值。未列入该表的标题文件必须以 HTTP_ 作为前缀,以使 ServerVariables 集合检索其值。

注意 服务器将 HeaderName 中的下划线(_)解释为实际标题中的破折号。例如,如果您指定 HTTP_MY_HEADER,服务器将搜索以 MY-HEADER 为名发送的标题文件。

HTTPS 如果请求穿过安全通道(SSL),则返回 ON。如果请求来自非安全通道,则返回 OFF。
HTTPS_KEYSIZE 安全套接字层连接关键字的位数,如 128。
HTTPS_SECRETKEYSIZE 服务器验证私人关键字的位数。如 1024。
HTTPS_SERVER_ISSUER 服务器验证的颁发者字段。
HTTPS_SERVER_SUBJECT 服务器验证的主字段。
INSTANCE_ID 文本格式 IIS 实例的 ID。如果实例 ID 为 1,则以字符形式出现。使用该变量可以检索请求所属的(元数据库中)Web 服务器实例的 ID。
INSTANCE_META_PATH 响应请求的 IIS 实例的元数据库路径。
LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多个 IP 地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要。
LOGON_USER 用户登录 Windows NT® 的帐号。
PATH_INFO 客户端提供的额外路径信息。可以使用这些虚拟路径和 PATH_INFO 服务器变量访问脚本。如果该信息来自 URL,在到达 CGI 脚本前就已经由服务器解码了。
PATH_TRANSLATED PATH_INFO 转换后的版本,该变量获取路径并进行必要的由虚拟至物理的映射。
QUERY_STRING 查询 HTTP 请求中问号(?)后的信息。
REMOTE_ADDR 发出请求的远程主机的 IP 地址。
REMOTE_HOST 发出请求的主机名称。如果服务器无此信息,它将设置为空的 MOTE_ADDR 变量。
REMOTE_USER 用户发送的未映射的用户名字符串。该名称是用户实际发送的名称,与服务器上验证过滤器修改过后的名称相对。
REQUEST_METHOD 该方法用于提出请求。相当于用于 HTTP 的 GET、HEAD、POST 等等。
SCRIPT_NAME 执行脚本的虚拟路径。用于自引用的 URL。
SERVER_NAME 出现在自引用 UAL 中的服务器主机名、DNS 化名或 IP 地址。
SERVER_PORT 发送请求的端口号。
SERVER_PORT_SECURE 包含 0 或 1 的字符串。如果安全端口处理了请求,则为 1,否则为 0。
SERVER_PROTOCOL 请求信息协议的名称和修订。格式为 protocol/revision
SERVER_SOFTWARE 应答请求并运行网关的服务器软件的名称和版本。格式为 name/version
URL 提供 URL 的基本部分。

注释

如果客户端发送的标题文件在上述表格中找不到,可以在调用 Request.ServerVariables 中给标题文件名加上 HTTP_ 的前缀以检索其值。例如,如果客户端发送标题文件

SomeNewHeader:SomeNewValue
 

您可以通过使用下面的语法检索 SomeNewValue

<% Request.ServerVariables("HTTP_SomeNewHeader") %>
 

您可使用重述符以循环遍历所有的服务器变量名。例如,使用下面的脚本打印出所有的服务器名。

<TABLE>
<TR><TD><B>Server Variable</B></TD><TD><B>Value</B></TD></TR>
<% For Each name In Request.ServerVariables %> 
<TR><TD> <%= name %> </TD><TD>  <%= Request.ServerVariables(name) %> </TD></TR>
</TABLE>
<% Next %> 
 

示例

下面的例子使用 Request 对象显示一些服务器变量。

<HTML>
<!-- This example displays the content of several ServerVariables. --> 
ALL_HTTP server variable = 
<%= Request.ServerVariables("ALL_HTTP") %> <BR>
CONTENT_LENGTH server variable = 
<%= Request.ServerVariables("CONTENT_LENGTH") %> <BR> 
CONTENT_TYPE server variable = 
<%= Request.ServerVariables("CONTENT_TYPE") %> <BR>
QUERY_STRING server variable = 
<%= Request.ServerVariables("QUERY_STRING") %> <BR> 
SERVER_SOFTWARE server variable = 
<%= Request.ServerVariables("SERVER_SOFTWARE") %> <BR> 
</HTML>
 

下一个示例使用 ServerVariables 集合将服务器名插入一个超文本链接。

<A HREF = "http://<%= Request.ServerVariables("SERVER_NAME") %>
/scripts/MyPage.asp">Link to MyPage.asp</A>
 

应用于

Request Object

请参阅

ClientCertificate, Cookies, Form, QueryString


Expires

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

语法

Response.Expires [= number]
 

参数

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

注释

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

应用于

Response 对象

请参阅

ExpiresAbsolute


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# %> 
 

应用于

Response 对象

请参阅

Expires


Flush

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

语法

Response.Flush
 

注释

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

应用于

Response 对象


Form

Form 集合通过使用 POST 方法的表格检索邮送到 HTTP 请求正文中的表格元素的值。

语法

Request.Form(element)[(index)|.Count] 
 

参数

element
指定集合要检索的表格元素的名称。
index
可选参数,使用该参数可以访问某参数中多个值中的一个。它可以是 1 到 Request.Form(parameter).Count 之间的任意整数。

注释

Form 集合按请求正文中参数的名称来索引。Request.Form(element) 的值是请求正文中所有 element 值的数组。通过调用 Request.Form(element).Count 来确定参数中值的个数。如果参数未关联多个值,则计数为 1。如果找不到参数,计数为 0 。

要引用有多个值的表格元素中的单个值,必须指定 index 值。index 参数可以是从 1 到 Request.Form(element).Count 中的任意数字。如果引用多个表格参数中的一个,而未指定 index 值,返回的数据将是以逗号分隔的字符串。

在使用 Request.Form 参数时,Web 服务器将分析 HTTP 请求正文并返回指定的数据。如果应用程序需要未分析的表格数据,可以通过调用不带参数的 Request.Form 访问该数据。

使用重述符可以遍历表格请求中的所有数据值。例如,用户通过指定两个值填写表格,ChocolateButterscotch。对于 FavoriteFlavor 参数,您可以使用下面的脚本检索这些值。

<%
For Each item In Request.Form("FavoriteFlavor")
  Response.Write item & "<BR>"
Next
%>
 

上述脚本显示如下。

Chocolate
Butterscotch
 

使用 For...Next 循环可以生成同样的输出,如下列脚本所示。

<%
For i = 1 To Request.Form("FavoriteFlavor").Count
  Response.Write Request.Form("FavoriteFlavor")(i) & "<BR>"
Next
%>
 

使用该复述符可以显示参数名。如下列脚本所示。

<% For Each x In Request.Form %>
Request.Form( <%= x %> ) = <%= Request.Form(x) %> <BR>
<% Next %>
 

该脚本在浏览器上显示下列信息。

FavoriteFlavor = Chocolate
FavoriteFlavor = Butterscotch
 

示例

请考虑下列表格。

<FORM ACTION = "/scripts/submit.asp" METHOD = "post">
<P>Your first name: <INPUT NAME = "firstname" SIZE = 48>
<P>What is your favorite ice cream flavor: <SELECT NAME = "flavor">
<OPTION>Vanilla 
<OPTION>Strawberry 
<OPTION>Chocolate 
<OPTION>Rocky Road</SELECT>
<p><INPUT TYPE = SUBMIT>
</FORM>
 

下列的请求正文可以从该脚本中发送。

firstname=James&flavor=Rocky+Road
 

可以使用下面的脚本。

Welcome,  <%= Request.Form("firstname") %>. 
Your favorite flavor is <%= Request.Form("flavor") %>.
 

下面的输出就是结果。

Welcome, James. Your favorite flavor is Rocky Road.
 

如果使用下面的脚本

The unparsed form data is:  <%= Request.Form %> 
 

结果为

The unparsed form data is:  firstname=James&flavor=Rocky+Road
 

应用于

Request Object

请参阅

ClientCertificate, Cookies, QueryString, ServerVariables


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
%>

应用于

Response 对象


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) & " 替换每个引号。

应用

Response 对象


QueryString

QueryString 集合检索 HTTP 查询字符串中变量的值。HTTP 查询字符串由问号 (?) 后的值指定。几个不同的进程都可以生成查询字符串。如,anchor 标记

<A HREF= "example?string=this is a sample">string sample</A>

生成值为 "this is a sample" 的变量名字符串。通过发送表格或由用户在其浏览器的地址框中键入查询也可以生成查询字符串。

语法

Request.QueryString(variable)[(index)|.Count] 
 

参数

variable
在 HTTP 查询字符串中指定要检索的变量名。
index
这是一个可选参数,可以用来检索 variable 的多个值中的某一个值。这可以是从 1 到 Request.QueryString(variable).Count 之间的任何整数。

注释

QueryString 集合是在 ServerVariables 集合中 QUERY_STRING 变量的分析版本 。它可以让您以名称检索 QUERY_STRING 变量。Request.QueryString (参数) 的值是出现在 QUERY_STRING 中所有参数 的值的数组。通过调用 Request.QueryString(parameter).Count 可以确定参数有多少个值。如果变量未关联多个数据集,则计数为 1。如果找不到变量,计数为 0。

要在多个数据集合的一个中引用 QueryString 变量,请指定 index 的值。index 参数可以是 1 到 Request.QueryString(variable).Count 中任意值。如果没有指定 index 的值,引用多个 QueryString 变量中的某个变量时,返回的数据是逗号分隔的字符串。

Request.QueryString 中使用参数时,服务器分析发送给请求的参数,并返回指定的数据。如果应用程序需要未分析的 QueryString 数据,可以通过调用不带参数的 Request.QueryString 检索到这个数据。

可以使用复述符在查询字符串中循环遍历所有的数据值。例如,如果发送以下的请求

http://NAMES.ASP?Q=Fred&Q=Sally
 

而且 Names.asp 包含下面的脚本,

---NAMES.ASP---
<%
For Each item In Request.QueryString("Q")
  Response.Write item & "<BR>"
Next
%>
 

Names.asp 将显示如下。

Fred
Sally
 

上述脚本也可以用 Count 来写。

<%
For I = 1 To Request.QueryString("Q").Count	
  Response.Write Request.QueryString("Q")(I) & "<BR>"
Next
%>
 

示例

客户端请求

/scripts/directory-lookup.asp?name=fred&age=22
 

results in the following QUERY_STRING value.

name=fred&age=22.
 

QueryString 集合将包含 nameage两个成员。那么,您就可以使用下面的脚本。

Welcome,  <%= Request.QueryString("name") %>. 
Your age is  <%= Request.QueryString("age") %>.
 

将输出

Welcome, Fred. Your age is 22.
 

如果使用下面的脚本

The unparsed query string is:  <%=Request.QueryString %>
 

将输出

The unparsed query string is: name=fred&age=22
 

应用于

Request 对象

请参阅

ClientCertificateCookiesFormServerVariables


Redirect

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

语法

Response.Redirect URL
 

参数

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

注释

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

HTTP/1.0 302 Object Moved
Location URL
 

应用于

Response 对象


Cookies

Cookies 集合允许用户检索在 HTTP 请求中发送的 cookie 的值。

语法

Request.Cookies(cookie)[(key)|.attribute] 
 

参数

cookie
指定要检索其值的 cookie。
key
可选参数,用于从 cookie 字典中检索子关键字的值。
attribe
指定 cookie 自身的有关信息。其属性参数如下:
名称 说明
HasKeys 只读。指定 cookie 是否包含关键字。

注释

可以通过包含一个 key 值来访问 cookie 字典的子关键字。如果访问 cookie 字典时未指定 key,则所有关键字都会作为单个查询字符串返回。例如,如果 MyCookie 有两个关键字, First Second ,而在调用 Request.Cookies时并未指定其中任何一个关键字,那么将返回下列字符串。

First=firstkeyvalue&Second=secondkeyvalue
 

如果客户端浏览器发送了两个同名的 cookie,那么 Request.Cookie 将返回其中路径结构较深的一个。例如,如果有两个同名的的 cookie,但其中一个的路径属性为 /www/ 而另一个为 /www/home/,客户端浏览器同时将两个 cookie 都发送到 /www/home/ 目录中,那么 Request.Cookie 将只返回第二个 cookie。

要确定某个 cookie 是不是 cookie 字典(cookie 有否有关键字),可使用下列脚本。

<%= Request.Cookies("myCookie").HasKeys %> 
 

如果 myCookie 是一个 cookie 字典,则前面的赋值为 TRUE。否则,为 FALSE。

可以通过循环遍历 Cookies 集合中的所有 cookie 或 cookie 中的所有关键字。但是,通过关键字在没有关键字的 cookie 上遍历将不产生任何输出。使用 HasKeys 语法先检查一下 cookie 是否有关键字,可以避免这种情况。下面的例子对此进行演示。

<% 
'Print out the entire cookie collection.
For Each cookie in Request.Cookies
  If Not cookie.HasKeys Then
    'Print out the cookie string 
%>
    <%= cookie %> = <%= Request.Cookies(cookie)%>
<%
Else
  'Print out the cookie collection
  For Each key in Request.Cookies(cookie)
%>
  <%= cookie %> (<%= key %>) = <%= Request.Cookies(cookie)(key)%>
<%
  Next 
End If
Next 
%> 
 

示例

下面的例子打印 Web 页中的 myCookie 的值。

这是名为 myCookie 的 cookie 值: 
<%= Request.Cookies("myCookie") %> 
 

应用于

Request 对象

请参阅

ClientCertificateFormQueryStringServerVariables


Request 对象

Request 对象在 HTTP 请求期间,检索客户端浏览器传递给服务器的值 。

语法

Request[.collection|property|method](variable) 
 

集合

ClientCertificate 存储在发送到 HTTP 请求中客户端证书中的字段值。
Cookies HTTP 请求中被发送的 cookie 的值。
Form HTTP 请求正文中表格元素的值。
QueryString HTTP 中查询字符串中变量的值。
ServerVariables 预定的环境变量的值。

属性

TotalBytes 只允许读。指定客户端在请求正文中发送的字节总数。

方法

BinaryRead 检索从客户端发送到服务器作为 POST 请求的一部分的数据。

变量参数是一些字符串,这些字符串指定要从集合中检索的项目,或作为方法或属性的输入。有关 variable 参数的详细信息,请参阅各集合说明。

注释

如果指定的变量不是上述的五个集合中的一个,Request 对象返回 EMPTY。

可以通过调用 Request(variable) 直接使用所有的变量,而不需要集合的名称。正因为这样,Web 服务器可以按照下面的顺序搜索集合。

  1. QueryString

  2. Form

  3. Cookies

  4. ClientCertificate

  5. ServerVariables

如果同名的变量出现在多个集合中,Request 对象返回遇到的第一个实例。

我们建议在涉及 ServerVariables 集合的成员时使用全名。例如,不用 Request.(AUTH_USER) 而用Request.ServerVariables(AUTH_USER) 。

请参阅

Response 对象


Cookies

Cookies 集合设置 cookie 的值。若指定的 cookie 不存在,则创建它。若存在,则设置新的值并且将旧值删去。

语法

Response.Cookies(cookie)[(key)|.attribute] = value 
 

参数

cookie
cookie 的名称。
key
可选参数。如果指定了 key,则 cookie 就是一个字典,而 key 将被设置为 value
attribute
指定 cookie 自身的有关信息。attribute 参数可以是下列之一:
名称 说明
Domain 只允许写。若被指定,则 cookie 将被发送到对该域的请求中去。
Expires 只允许写。cookie 的过期日期。为了在会话结束后将 cookie 存储在客户端磁盘上,必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后 cookie 将到期。
HasKeys 只允许读。指定 cookie 是否包含关键字。
Path 只允许写。若被指定,则 cookie 将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。
Secure 只允许写。指定 cookie 是否安全。


Value
指定分配给 key attribute 的值。

注释

如果创建了一个带有关键字的 cookie,如下列脚本所示,

<% 
Response.Cookies("mycookie")("type1") = "sugar"
Response.Cookies("mycookie")("type2") = "ginger snap"
%> 
 

则此标题将被发送出去。

Set-Cookie:MYCOOKIE=TYPE1=sugar&TYPE2=ginger+snap
 

如果在指定 myCookie 时不指定关键字,将破坏 type1 type2。如下面示例所示。

<% Response.Cookies("myCookie") = "chocolate chip" %> 
 

在前面的示例中,关键字 type1type2 被破坏且其值也被删除。myCookie cookie 只有 chocolate chip 的值。

反之,如果您用一个关键字调用 cookie,就会毁坏 cookie 包含的任何无关键字的值。例如,如果在上述代码后,用下面的语句调用 Response.Cookies

<% Response.Cookies("myCookie")("newType") = "peanut butter" %> 
 

chocolate chip 的值将被删除且 newType 会被设置为 peanut butter

要确定 cookie 是否有关键字,可使用下面的语法。

<%= Response.Cookies("myCookie").HasKeys %> 
 

如果 myCookie 是一个 cookie 字典,则前面的值为 TRUE。否则,为 FALSE。

可以通过循环来设置 cookie 的属性。例如,要将所有的 cookie 设置为在一个特定的日期到期,可使用下面的语法。

<% 
For Each cookie in Response.Cookies
  Response.Cookie(cookie).Expires = #July 4, 1997#
Next
%> 
 

您可以使用一个循环设置一个集合中的所有 cookie 或一个 cookie 中的所有关键字。然而,循环在 cookie 没有关键字时若被引用将不会执行。为避免这种情况,你可以先使用 .HasKeys 语法检查一个 cookie 是否有关键字。下面的示例对此进行说明。

<% 
If Not cookie.HasKeys Then
  'Set the value of the cookie 
  Response.Cookies(cookie) = ""
Else
  'Set the value for each key in the cookie collection
  For Each key in Response.Cookies(cookie)
    Response.Cookies(cookie)(key) = ""
  Next key
%> 
 

示例

下面的示例说明如何设置 cookie 的值以及如何为其属性赋值。

<% 
Response.Cookies("Type") = "Chocolate Chip"
Response.Cookies("Type").Expires = "July 31, 1997"
Response.Cookies("Type").Domain = "msn.com"
Response.Cookies("Type").Path = "/www/home/"
Response.Cookies("Type").Secure = FALSE
%> 
 

应用于

Response 对象

请参阅

Request.Cookies


Response 对象

使用 Response 对象可以将输出发送到客户端。

语法

Response.collection|property|method 
 

集合

cookie 指定 cookie 值。可以使用该集合设置 cookie 的值。

属性

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

方法

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

请参阅

Request 对象


Status

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

语法

Response.Status = StatusDescription 
 

参数

StatusDescription
包含表示状态码的三位数和该代码简短说明的字符串。例如,310 Move Permanently。

注释

使用该属性修改服务器返回的状态行。

示例

下面示例设置响应状态。

<% Response.Status = "401 Unauthorized" %>
 

应用于

Response 对象


TotalBytes

TotalBytes 属性指定客户端在请求正文中发送的总字节数。该属性只允许读。

语法

Counter = Request.TotalBytes
 

参数

Counter
指定一个变量来接收客户端在请求中发送的总字节数。

示例

以下脚本设置一个等于请求对象中包括的总字节数的变量。

<%
Dim bytecount
bytecount = Request.TotalBytes
%>

应用于

Request 对象

请参阅

BinaryRead


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%> 
 

应用于

Response 对象

请参阅

BinaryWrite


© 1997 by Microsoft Corporation. All rights reserved.

www.51windows.Net