ASP Response

Response 对象

ASP Response 对象用于从服务器向用户发送输出的结果。它的集合、属性和方法描述如下:

Cookies集合

Cookies 集合用于设置或取得 cookie 的值。如果 cookie 不存在,就创建它,并赋予它规定的值。

注意:Response.Cookies 命令必须位于 <html> 标签之前。 

语法

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

variablename=Request.Cookies(name)[(key)|.attribute]
参数说明
name必需。cookie 的名称。
value必需(对于 Response.Cookies 命令)。cookie 的值。
attribute可选。规定有关 cookie 的信息。可以是下面的参数之一:
  • Domain - 只写。cookie 仅送往到达该域的请求。

  • Expires - 只写。cookie 的失效日期。如果没有规定日期,cookie 会在 session 结束时失效。

  • HasKeys - 只读。规定 cookie 是否拥有 key(这是唯一一个可与 Request.Cookies 命令使用的属性)。

  • Path - 只写。如果设置,cookie 仅送往到达此路径的请求。如果没有设置,则使用应用程序的路径。

  • Secure - 只写。指示 cookie 是否安全。

key可选。规定在何处赋值的 key。

实例

"Response.Cookies" 命令用于创建 cookie 或者设置 cookie 的值:

<%
Response.Cookies("firstname")="Alex"
%>

在上面的代码中,我们创建了一个名为 "firstname" 的 cookie,并为它赋值 "Alex"。

也可以为 cookie 设置属性,比如设置 cookie 的失效时间:

<%
Response.Cookies("firstname")="Alex" 
Response.Cookies("firstname").Expires=#May 10,2002#
%>

 现在,名为 "firstname" 的 cookie 的值是 "Alex",同时它在用户电脑中的失效日期是 2002 年 5 月 10 日。

"Request.Cookies" 命令用于取回 cookie 的值。

在下面的实例中,我们取回了 cookie "firstname" 的值,并把它显示到页面上:

<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>

输出:

Firstname=Alex

一个 cookie 可以包含一个多值的集合。我们称之为 cookie 拥有 key 。

在下面的实例中,我们要创建一个名为 "user" 的 cookie 集合。"user" cookie 拥有包含有关用户信息的 key :

<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>

下面的代码可读出所有服务器已向用户发送的 cookie 。请注意,我们使用了 HasKeys 属性来判断 cookie 是否拥有 key :

<html>
<body>

<%
dim x,y

for each x in Request.Cookies
  response.write("<p>")
  if Request.Cookies(x).HasKeys then
    for each y in Request.Cookies(x)
      response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
      response.write("<br /")
    next
  else
    Response.Write(x & "=" & Request.Cookies(x) & "<br>")
  end if
  response.write "</p>"
next
%>

</body>
</html>
%>

输出:

firstname=Alex
user:firstname=John
user:lastname=Smith
user:
country=Norway
user:
age=25

Buffer属性

Buffer 属性可规定是否对输出进行缓冲。通常情况下,ASP 脚本在服务器端执行,每句的执行结果都会发送到客户端的浏览器上显示出来。当输出设置缓存时,服务器会阻止向浏览器的响应,直到所有的服务器脚本均被处理,或者直到脚本调用了 Flush 或 End 方法。

注意:如果要设置此属性,它应当位于 .asp 文件中的 <html> 标签之前。

语法

response.Buffer[=flag]
参数说明
flag布尔值,规定是否缓冲页面输出。  

False 指示不缓存,服务器会一边处理一边发送输出。IIS version 4.0 默认为 False,而 IIS version 5.0 及更高的版本默认为 True。

True 指示缓冲。服务器不会发送输出,直到页面上的所有脚本被处理,或者直到 Flush 或 End 方法被调用。

实例

在循环结束前不会被浏览器发送输出。如果 buffer 被设置为 False ,则每循环一次就向浏览器输出一行:

<%response.Buffer=true%>
<html>
<body>
<%
for i=1 to 100
  response.write(i & "<br>")
next
%>
</body>
</html>

CacheControl 属性

CacheControl 属性设置代理服务器是否可缓存由 ASP 生成的输出。默认地,代理服务器不会保持缓存副本。

语法

response.CacheControl[=control_header]
参数说明
control_header缓存的 control header ,可被设置为 "Public" 或 "Private"。

Private 是默认的,仅有私人缓存可以缓存此页。如果为此设置,代理服务器就不会缓存页面。

Public 指示公共缓存。如果为此设置,代理服务器会缓存页面。

实例

<%response.CacheControl="Public"%>

或者:

<%response.CacheControl="Private"%>

Charset属性

Charset 属性向 Response 对象中 content-type 头部追加字符集名称。默认字符集是 ISO-LATIN-1。

注意:此属性可接受任何字符串,不论是否为合法的字符集名称。

语法

response.Charset(charsetname)
参数说明
charsetname为页面规定字符集的字符串。

实例

如果 ASP 页面没有设置 Charset 属性,那么 content-type 头部会是这样的:

content-type:text/html

如果我们使用了 Charset 属性:

<%response.Charset="ISO-8859-1"%>

content-type 头部会是这样的:

content-type:text/html; charset=ISO-8859-1

ContentType属性

ContentType属性为response对象设置HTTP内容类型。

语法

response.ContentType[=contenttype]
参数说明
contenttype描述内容类型的字符串。

如需完整的内容类型列表,请参阅您的浏览器文档或 HTTP 规范。

实例

如果 ASP 页面没有设置 ContentType 属性,那么默认的 content-type 头部是这样的:

content-type:text/html

其他一些常用的 ContentType 值:

<%response.ContentType="text/HTML"%>
<%response.ContentType="image/GIF"%>
<%response.ContentType="image/JPEG"%>
<%response.ContentType="text/plain"%>

此例会在浏览器中打开一个 Excel 电子表格(如果用户已经安装了 Excel ):

<%response.ContentType="application/vnd.ms-excel"%>
<html>
<body>
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr>
</table>
</body>
</html>

Expires属性

Expires 属性设置页面在失效前被缓存的时间。如果用户在页面失效前返回同一页面,缓存的版本将显示出来。

语法

response.Expires[=number]
参数说明
number页面过期前的时间(分钟)

实例

下面的代码指示页面不会被缓存:

<%response.Expires=-1%>

ExpiresAbsolute属性

ExpiresAbsolute 属性设置缓存页面在浏览器上的失效日期和时间。如果用户在此日期/时间之前返回同一张页面,那么会显示出缓存的版本。

语法

response.ExpiresAbsolute[=[date][time]]
参数说明
date规定页面的失效日期。

如果不规定此参数,那么页面会在脚本运行当日的指定时间失效。

time规定页面的失效时间。

如果不规定此参数,那么页面会在指定日期的午夜失效。

实例

下面的代码指示,页面会在 2012 年 10 月 11 月 4:00 PM 失效:

<%response.ExpiresAbsolute=#October 11,2012 16:00:00#%>

IsClientConnected 属性

IsClientConnected 属性指示出客户机是否已与服务器断开连接。

语法

response.IsClientConnected

实例

<%
If response.IsClientConnected=true then
  response.write("The user is still connected!")
else
  response.write("The user is not connected!")
end if
%>

PICS属性

PICS 属性可向响应头部的 PICS 标记追加值。

注意:此属性可接受任何字符串值,无论是否是合法的 PICS 标记。

什么是 PICS ?

PICS(Platform for Internet Content Selection)分级系统用于对网站内的内容进行分级。它看起来类似这样:

PICS-1.1 "http://www.rsac.org/ratingsv01.html" by "your@name.com" for "http://www.somesite.com" on "2002.10.05T02:15-0800" r (n 0 s 0 v 0 l 0)

部分说明
PICS-1.1PICS 版本号
"http://www.rsac.org/ratingsv01.html"分级机构
by "your@name.com"标签的作者
for "http://www.somesite.com"已被分级的文档的 URL
on "2002.10.05T02:15-0800"失效日期
r (n 0 s 0 v 0 l 0)等级

最流行的分级系统之一是 RSACi(Recreational Software Advisory Council on the Internet)。RSACi 使用四种类型:violence(暴力)、nudity(裸体)、sex(性)以及 language(不雅言论)。数字从 0 到 4分别分配给了这四种类型。0 表示页面不包含任何攻击性的内容,4 表示潜在攻击性内容的最高级别。

级别暴力分级裸体分级性分级言论分级
0None of the below or sports relatedNone of the belowNone of the below or innocent kissing; romanceNone of the below
1Injury to human beingRevealing attirePassionate kissingMild expletives
2Destruction of realistic objectsPartial nudityClothed sexual touchingModerate expletives or profanity
3Aggressive violence or death to humansFrontal nudityNon-explicit sexual actsStrong language or hate speech
4Rape or wanton, gratuitous violenceFrontal nudity (qualifying as provocative display)Explicit sexual acts or sex crimesCrude, vulgar language or extreme hate speech

您有两种方式为您的网站获得评级。您可以自己为网站评级,或者利用一个评级提供者,比如 RSACi 。他们会要求您填写一些问题。在填写完成后,您会得到用于您的网站的分级标签。

Microsoft IE 3.0 及更高的版本和 Netscape 4.5 及更高的版本均支持内容分级。您可以在 IE 5 中设置分级,选择工具菜单中的 Internet 选项。选择内容选项卡,然后单击启用。当等级超过了所定义的级别,内容顾问就会阻止此网站。在 Netscape 4.7 中,您可以通过选择 Help 和 NetWatch 来设置分级。

我们可以使用 META 标签或者 response.PICS 属性为网站添加分级。 

语法

response.PICS(picslabel)

参数说明:picslabel--格式正确的PICS标签。

实例

ASP文件包含以下代码:

注意:由于PICS标签含有引号,必须把引号替换为“& chr(34) &”。

<%
response.PICS("(PICS-1.1 <http://www.rsac.org/ratingv01.html>
by " & chr(34) & "your@name.com" & chr(34) &
" for " & chr(34) & "http://www.somesite.com" & chr(34) &
" on " & chr(34) & "2002.10.05T02:15-0800" & chr(34) &
" r (n 2 s 0 v 1 l 2))")
%>

被添加的头部:

PICS-label:(PICS-1.1 <http://www.rsac.org/ratingv01.html>
by "your@name.com"
for "http://www.somesite.com"
on "2002.10.05T02:15-0800"
r (n 2 s 0 v 1 l 2))

Status属性

Status 属性规定由服务器返回的状态行的值。

提示:请使用此属性来修改由服务器返回的状态行。

语法

response.Status=statusdescription

参数说明:statusdescription--三位数的数字,以及代码的描述,比如 404 Not Found 。
注意:状态值是在 HTTP 规范中定义的。         

实例

<%
ip=request.ServerVariables("REMOTE_ADDR")
if ip<>"194.248.333.500" then
  response.Status="401 Unauthorized"
  response.Write(response.Status)
  response.End
end if
%>

AddHeader 方法

AddHeader 方法向 HTTP 响应添加一个新的 HTTP 头部和值。

注意:一旦头部被添加,就无法删除。

注意:在 IIS 4.0 中,您调用此方法需要在任何的输出送往浏览器之前。在 IIS 5.0 中,您可以在脚本中的任何点调用 AddHeader 方法,只要它先于对 response.Flush 方法的调用。

语法

response.AddHeader name,value

参数说明:

name--必需。新头部变量的名称(不能包含下划线)。    

value--必需。新头部变量的初始值。         

实例

<%Response.AddHeader "WARNING","Error message text"%>

AppendToLog方法

AppendToLog 方法向服务器日志文件的末端添加字符串。您可在脚本文件中多次调用此方法。当它每次被调用,就会向日志追加指定的字符串。

语法

response.AppendToLog string

参数说明:string--必需。向日志文件追加的文本(不能包含任何逗号字符)。

实例

<%Response.AppendToLog "My log message"%>

BinaryWrite 方法

BinaryWrite 方法在不进行字符转换的情况下直接向输出写数据。

提示:此方法可用于从数据库向浏览器写图像数据(BLOB)。

语法

response.BinaryWrite data

参数说明:data--必需。被发送的二进制信息。

实例

如果您有一个可生成字节数组的对象,可使用 BinaryWrite 向应用程序发送字节:

<%
Set objBinaryGen=Server.CreateObject("MyComponents.BinaryGenerator")
pic=objBinaryGen.MakePicture
response.BinaryWrite pic
%>

Clear方法

Clear 方法清空任何已缓冲的 HTML 输出。

注意:此方法无法清除响应的头部,只能清空响应的正文。

注意:假如 response.Buffer 为 false,那么此方法会引起一个 run-time 错误。

语法

response.Clear

实例

<%
response.Buffer=true
%>
<html>
<body>
<p>This is some text I want to send to the user.</p>
<p>No, I changed my mind. I want to clear the text.</p>
<%
response.Clear
%>
</body>
</html>

输出:

(nothing)

End方法

End 方法停止对脚本的处理,并返回当前的结果。

注意:如果 Response.Buffer 被设置为 true ,此方法会输出缓存的内容。如果您不希望向用户返回任何任何输出,应该首先调用 Response.Clear 。

语法

Response.End

实例

<html>
<body>
<p>I am writing some text. This text will never be
<%
Response.End
%>
finished! It's too late to write more!</p>
</body>
</html>

输出:

I am writing some text. This text will never be

Flush方法

Flush 方法立即发送已缓存的 HTML 输出。

注意:假如 response.Buffer 为 false ,此方法会引起一个 run-time 错误。

语法

Response.Flush

实例

<%
Response.Buffer=true
%>
<html>
<body>
<p>I write some text, but I will control when the
text will be sent to the browser.</p>
<p>The text is not sent yet. I hold it back!</p>
<p>OK, let it go!</p>
<%
Response.Flush
%>
</body>
</html>

输出:

I write some text, but I will control when the
text will be sent to the browser.

The text is not sent yet. I hold it back!

OK, let it go!

Redirect方法

Redirect 方法把用户重定向到一个不同的 URL 。

语法

Response.Redirect URL

参数说明:URL--必需。用户浏览器被重定向的URL。

实例

<%
Response.Redirect "https://www.imooc.com"
%>

Write方法

Write 方法向输出写一段指定的字符串。

语法

Response.Write variant

参数说明:variant--必需。要写的数据。    

实例

<%
Response.Write "Hello World"
%>

输出:
Hello World


本内容均来自互联网,仅供参考,如有侵权请及时通知本站予以删除。邮箱:wiki#imooc.com (#改成@)

意见反馈 帮助中心 APP下载
官方微信