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 对象
请参阅
buffer、clear
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 访问该数据。
使用重述符可以遍历表格请求中的所有数据值。例如,用户通过指定两个值填写表格,chocolate
和 butterscotch
。对于 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 集合将包含 name
和 age
两个成员。那么,您就可以使用下面的脚本。
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 对象
请参阅
clientcertificate、cookies、form、servervariables
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 对象
请参阅
clientcertificate、form、querystring、servervariables
request 对象
request 对象在 http 请求期间,检索客户端浏览器传递给服务器的值 。
语法
request[.collection|property|method](variable)
集合
属性
方法
变量参数是一些字符串,这些字符串指定要从集合中检索的项目,或作为方法或属性的输入。有关 variable 参数的详细信息,请参阅各集合说明。
注释
如果指定的变量不是上述的五个集合中的一个,request 对象返回 empty。
可以通过调用 request(variable) 直接使用所有的变量,而不需要集合的名称。正因为这样,web 服务器可以按照下面的顺序搜索集合。
-
querystring
-
form
-
cookies
-
clientcertificate
-
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" %>
在前面的示例中,关键字 type1
和 type2
被破坏且其值也被删除。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 的值。 |
属性
方法
请参阅
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