收藏 分享(赏)

response对象.doc

上传人:cjc2202537 文档编号:1196745 上传时间:2018-06-17 格式:DOC 页数:28 大小:113.50KB
下载 相关 举报
response对象.doc_第1页
第1页 / 共28页
response对象.doc_第2页
第2页 / 共28页
response对象.doc_第3页
第3页 / 共28页
response对象.doc_第4页
第4页 / 共28页
response对象.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、Response 对象Response 对象的作用是在向浏览器发送数据。将 Response 对象与上一节介绍的接收数据的 Request 对象一起使用,就可以达到服务端浏览器间的交互,这也是实现动态网页的基础。 Response 对象的属性及方法在 ASP 中极其常用。下面几节将针对 Response对象的常用属性、方法及集合进行详细讲解,对于不常用的也给出了说明。 一、Response 对象的常用属性 1、 Buffer 属性 其值为布尔型,即只有 True 和 False 两种情况,表明输出的 Asp 页是否被缓冲, 使用 Buffer 属性后,只有当前页的所有服务器脚本处理完毕或者调了

2、 Flush 或 End 方法后,服务器才将响应发送给浏览器,在服务器将部分响应发送给浏览器后就不能再设置 Buffer 属性,因此通常在 .asp 文件的第一行调用 Response.Buffer。 设置 Buffer 属性方法如下: 2、 ContentType 属性 ContentType 属性指定服务器响应的 HTTP 内容类型。如果未指定 ContentType,默认为 text/HTML。即在服务器响应的 HTTP 中显示content-type:text/html。如果要用到特殊的 ContentType 属性,应按照以下示例中的方式调用: 3、 Charset 属性 Chars

3、et 属性用于设置字符集的名称并将其添加到内容类型标题(content-type)的后面,若未在 Asp 页中设置 Charset 属性,则 content-type 为 content-type:text/html,若将 Charset 属性设置为“gb2312“则content-type 为 content-type:text/html; charset=gb2312。 设置 Charset 属性的方法如下: 小技巧: 无论设置的字符集是否有效,该设置都会将设置的字符集写到内容类型标题(content-type)后面,所以在使用该属性时要保证设置字符集的有效性。 如果页面包含多个 Char

4、set 设置,则以最后一次被执行的 Charset 设置为准。 常用的字符集还有 ASCII Latin1 gb2312 big5 gbk gb18030 Unicode等,如果要做国际化网站建议使用 Unicode。 4、 Expires 属性 Expires 属性用于指定在浏览器缓存页面距超时还有多少时间,若用户在指定时间内回到此页,服务器会将缓存的页面返回给用户,设置的数字的单位是分。 设置 Expires 属性的方法如下: 上例表示本页三分钟后超时。 小技巧: 设置 Response.Expires=0 则使缓存页浏览后立即超时,这样做可以确保页面信息的安全。 5、 ExpiresAb

5、solute 属性 ExpiresAbsolute 属性与 Expires 属性类似,只是其值应设置为一个具体时间。 下例表示缓存页到 2006 年 10 月 30 日 20:22:00 过期: 6、 IsClientConnected 属性 该属性为只读属性,用于判断上次向浏览器输出响应后,浏览器是否仍和服务器连 接。 7、 CacheControl 属性 CacheControl 属性用于决定代理服务器是否能缓存 ASP 生成的输出,默认值为 False。如果将其设置为 True 将会大大降低网站的安全性。 8、 Pics 属性 将 PICS 标记的值添加到响应的标题的 PICS 标记字段

6、中,指定某一网页的内容级 别,如:暴力、色情、儿童不宜等。 该属性的使用方法: 9、 Status 属性 Status 属性服务器返回的状态行的值。 该属性的使用方法: 二、Response 对象的常用方法 1、Write 方法 将变量作为字符串写入当前的 HTTP 输出 几种使用方法: 或: 如果要输出变量则用如下方法: 小技巧: 在直接输出到浏览器时通常可用 来代替 小技巧: 如要输出一个” ,可以将” 用两个双引号代替,例如: 在浏览器上输出的内容就是”了 小技巧: 对于 HTML 与服务器变量的交替输出,请不要将 HTML 代码与输出语句混写,例如: 此类情况最好写成: ” & i &

7、 ” Next % 因为在前一种写法中服务器端解析器不断在 HTML 与 VBScript 中跳转将会很大程度上影响执行速度。 小技巧: 对于输出大量连接而成的字符串,通常使用以下方法: 但如果面对很大的数量,如 的情况下,执行会极其之慢(大概 12 秒)。 这是因为 VBScript 在申请字符串变量的内存是要浪费大量时间。 但可以通过以下代码提高效率,使执行时间接近 300 毫秒。 2、Redirect 方法 将页面转向一个 URL: 使用方法: 则页面将跳转到 http:/ 小技巧: 网页的重定向也可以用 Server 对象的 Transfer 方法。 但 Server. Transfe

8、r 与 Response.ReDirect 有所不同。 Response.ReDirect 可以转向任意网页、而 Server. Transfer 只能转向本虚拟目录下的网页。 Response.ReDirect 不可以传递网页参数、而 Server. Transfer 却可以传递参数。 Response.ReDirect 跳转后浏览器中显示的 URL 也随之改变、而 Server. Transfer 却仍显示原来的 URL。 3、End 方法 End 方法使 Web 服务器停止处理脚本并返回当前结果。文件中剩余的内容将不被处理。如果 Response.Buffer 已设置为 TRUE,则调用

9、 Response.End 将缓冲输出。 例如: 则浏览器中输出的结果为 1 End 方法执行后即按本页执行完毕处理。 小技巧: 在网页中有错误,但还不能确定错误所在位置时。 可以添加一个 Response.End 并通过移动其位置,起到调试程序的目的。 4、Flush 方法 Flush 方法立即发送缓冲区中的输出。如果没有将 Response.Buffer 设置为 TRUE,则该方法将导致运行时错误。 5、Clear 方法 可以用 Clear 方法清除缓冲区中的所有 HTML 输出。但 Clear 方法只清除响应正 文而不清除响应标题。可以用该方法处理错误情况。但是如果没有将 Respons

10、e.Buffer 设置为 TRUE,则该方法将导致运行时错误。 6、BinrayWrite 方法 将信息写入到当前 HTTP 输出中,并且不进行任何字符集转换。通常用于输出图片文件。 7、AppendToLog 方法 在请求的 Web 服务器日志条目后添加字符串。 8、AddHeader 方法 从名称到值设置 HTML 标题。 二、Response 对象的常用集合 Response 对象的集合只有一个,就是 cookies, Cookies 集合用于设置 cookie 的值。若指定的 cookie 不存在,则创建它。若存在,则设置新的值并且将过去存储的值删去。 语法 Response.Cook

11、ies(cookie)(key)|.attribute=value 这里的 cookie 是指定 cookie 的名称。而如果指定了 key,则该 cookie 就是一个字典。 attribute 指定 cookie 自身的有关信息。attribute 参数可以是下列之一 : 1、Domain 只写属性,该值若被指定,则 cookie 将被发送到对该域的请求中去。 2、Expires 只写属性,该值指定 cookie 的过期日期。为了在会话结束后将 cookie 存储在客户端磁盘上,必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后 cookie 将到期。 3、HasKeys 该值

12、指定 cookie 是否包含关键字。 4、Path 该值若被指定,则 cookie 将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。 5、Secure 用于设定 Cookies 是否在一个安全的渠道传递。当一个安全渠道没有在HTTP 首页被发现,Cookies 信息将不被发送。 下面给出一个 cookie 的使用示例: 在 ASP 中操作 HTTP 报头方法分析我们已经在几处见到 ASP 如何创建或修改在响应页面请示时被发送到客户的 HTTP 报头。在 Response对象中有几个属性和方法可帮助我们做到一点。下面是一些报头方法: 控制缓存和有效期。 创建状态和定制的 HT

13、TP 报头。 指定 MIME 类型或内容类型。 添加 PICS 标签。接下来将简要地研究每一个方面。可在“Response Object”主页(show_response.asp)上,单击相关属性名或方法名,来检查我们所说的属性和方法。 1. 缓存和“到期”ASP 网页用户的浏览器以及他们和服务器这间的任一代理服务器,都可以缓存 HTML 和用 ASP 创建的网页。当用户随后请求页面时,浏览器就发送一个“最新修改”的请求到服务器(使用一个包含缓存版本的日期的HTTP_IF_MODIFIED_SINCE 报头),询问网页是否已被修改。若没有被修改,服务器应用状态码和消息“304 Not Modi

14、fied”来响应,浏览器将使用缓存的内容而不会通过网络下载一个副本。若已经存在已修改的版本,它就会与“200 OK”状态码和消息一道被发送出去。1) Response.CacheContol 属性其他的一些因素也会影响这一处理过程。然而,任一被网页使用的网络路由内的代理服务器(一般位于客户机端),能被通过设置 Response.CacheControl 属性为 Private 来放弃缓存网页。在 ASP 3.0 中对ASP 网页这是缺省的,不用设置。但在网页为个别访问者特别定制时尤其有用。这可以阻止别的在同一网络上的用户进入同一网页。当 CacheControl 的属性值被设定为 Public

15、 时,允许服务器缓存网页。注意,一些代理服务器可能表现得不尽相同,或忽视或越过这个报头。在 IE4 中,在代理服务器缓存可用时,有可能得到一个虚假的“This page has expired”消息。我们已提供了一个网页(expiretest_form.asp),可以通过自己的代理服务器在网络上做试验,来检查这一属性的影响。可以通过在“Response Object”主页中单击“Response. CacheControl”链接来显示这个网页。如下图所示:这一页面提交到 expiretest_result.asp 网页时,能够设置 Response.CacheControl 属性,然后在网页中

16、插入值和脚本被执行的时间:%If Request.Form(“public”) = “on” Then Cache-Control check box was tickedResponse.CacheControl = “Public”ElseResponse.CacheControl = “Private”End If%HTML.Cache-Control is: B% = Response.CacheControl %/BPValue in text box is: B% Response.Write Request.Form(“textbox”) %Response.Write Righ

17、t(“0” & Hour(Now),2) & “:” & Right(“0” & Minute(Now),_& 2) & “:” & Right(“0” & Second(Now),2)%/B通过单击浏览器上的“Back”和“Forward”,能看到代码是自动执行还是使用缓存的副本。2) Response.Expires 和 Response.ExpiresAbsolute 属性控制缓存的网页存放时间的两个属性为 Response 对象的 Expires 和 ExpriesAbsolute 属性。Response.Expires 定义了风页在从缓存区被丢弃前应保持有效的时间长度,以创建以来的分

18、钟数形式表示。ExpiresAbsolute 属性为到期时间设置了一个绝对的日期和时间。我们提供一个命名为 addheaders_form.asp 的例子网页,用于演示如何使用这些属性。在“Response Object”主页中单击对这两种属性的链接。在得到的页面中,可加入自己定制的 HTTP 报头,并可设置一些影响响应的 HTTP 报头的多种属性。在“提交查询内容”按钮上单击时,页面 show_headers.asp 在返回的数据流中添加所选的报头,然后显示用来完成此操作的代码,显示相应的执行时间,可用来检查页面是被缓存还是被再次执行。show_headers.asp 网页中的代码创建和添加

19、 HTTP 报头,程序如下:%Write HTTP headers before any other outputIf Request.Form(“expires”) = “on” Then _Response.Expires = Request.Form(“expires_value”)If Request.Form(“expiresabs”) = “on” Then _Response.ExpiresAbsolute = Request.Form(“expiresabs_value”)If Request.Form(“lastmod”) = “on” Then _Response.AddH

20、eader “LAST-MODIFIED”, Cstr(Request.Form(“lastmod_value”)If Request.Form(“pragma”) = “on” Then _Response.AddHeader “PRAGMA”, CStr(Request.Form(“pragma_value”)If Request.Form(“refresh”) = “on” Then _Response.AddHeader “REFRESH”, CStr(Request.Form(“refresh_value”)If Request.Form(“addheader”) = “on” And Len(Request.Form(“addheader_name”) Then _

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报