
第4章ASP常用对象 ASP提供了功能强大的内南对象,包括R中 4.1 Response对象 41.1 Response对象的常用属性 行发。ASP30以上版本默认为e,Windo300的s5中认色为rC 国性设慢页而示中所使用的字符集。比属性设置后在客户浏览器代马的 HTML头信的ma属性增加一个属性值对,char字符集名。 41.2 Response对象的方法 基本用法格式 第1共18页
第 1 页 共 18 页 ASP 提供了功能强大的内部对象,包括 Response、Request、Application、Session、Server 等;另外很多 Web 浏览器还支持其它对象,如 ObjectContext、FileSystemObject 等对象。本 章简要介绍 ASP 常用对象的常用属性、方法、集合的用法,为后续章节的应用奠定必要基础。 4.1 Response 对象 功能:response 对象控制向客户端浏览器输出信息。 语法:response[.属性|方法|集合](“变量”) 1.Buffer Buffer 属性设置页面显示时是否在服务器端缓冲。若设置为 true 则当页面代码全部执行 完毕或调用 Flush 或 End 方法后,服务器才将页面执行结果发送给客户端,否则服务器边执 行边发送。ASP3.0 以上版本默认值为 true;Windows2000 的 IIS5 中默认值也为 true。 2.Charset Charset 属性设置页面显示中所使用的字符集。此属性设置后在客户端浏览器代码的 HTML 头信息的 meta 属性增加一个属性值对,charset=字符集名。 3.Contenttype Contenttype 属性设置客户端 HTTP 文件格式。此属性设置后在客户端浏览器代码的 HTML 头信息的 meta 属性增加一个属性值对,content=网页内容类型。 4.Isclientconnected Isclientconnected 属性为只读属性,表示客户端与服务器端是否连接。若此属性返回值为 True 则表示客户端与服务器端处于连接状态,否则表示客户端与服务器端已经断开。 1.Write 功能:在服务器端将指定数据发送给客户端浏览器。 语法:response.write 变量或字符串 省略用法: 说明:字符串内含有引号时,外层使用双引号,内层使用单引号,不能用单引号时使用 chr(34)替换。 演示示例 1: <%

e&”,据的访问时间是:“&n0ww0% 说明学行串是网L,可以是绝对路轻或相对路 流不示为提不房的用户类型量足用健资 method-pos"action 将教师用户引导至教师网页 将学生用户引号至学生网页 中款 第2真共18页
第 2 页 共 18 页 name="zyj" name & ",您的访问时间是:"& now() %> 2.Redirect 功能:重定向当前客户端浏览器连接到另一个 URL 页面。 语法:response.redirect 字符串 说明:字符串是网页 URL,可以是绝对路径或相对路径。 演示示例 2: 注意:若在 ASP 文件中间使用 Redirect 语句,则必须在页面开头将 Response.Buffer 属性 设置为 true;ASP3.0 以上版本默认值为 true 所以无需设置。 演示示例 3:根据不同的用户类型重定向到相应页面。 Response.Redirect 用法示例 请选择用户类型: 教师 学生 3.Clear 功能:清除服务器缓冲区中的数据

语法:rep0nse.clear 说明: 《I)使用该方法时缓冲区必列打开,即Rpn的Bura属性必须为True, 阳使用该方法只能清除HTML,文件的y都分。 4.End 功能:停止执行当前ASP页面代码并输出服务器缓冲区中的已有结果。 语法:response.cnd 说明:使用该方法时缓冲区必须打开,即Response的Buffer属性必须为True. 5.Flush 功能:输出服务器缓冲区中的数据到客户瑞。 语法:response.us 说明:使用该方法时缓冲区必须打开,即Response的Buffer属性必须为True. 6.Binary Wrile 功能:直按向客户瑞输出二进制信息。 语法:response.binarywrite字符串 4.1.3 Response对象的集合 Response对象的Cookics集合实现向客户端写入Cookie数据, 语法格式:Response.Cookics"Cookies变量名(关键字乳.属性]=字符串,其中关键字表 示Cok些变量中含有的子项元素,类似数组元素:属性表示每个Cke数据的属性,包折: Expires,Domain、Pah、Secure,HasKeys, Expires:表示读蚁或设置Cookies数据的有效期限。 Domain:表示指定Cookies数据只能发送到的某个域名或页面 Ph:表示指定Cxki些数据只能发送到的某个路径。 Secure:若设置此属性为真则表示Cookies数裙被如密发送: HasKeys:若比属性为真则表示Cookies果合含有多个关健字。 流示示例4: 4.2 Request对象 功能:Roqucst对象用于获取客户嘴信息,共有5种集合,分别是Query String、Fcm、Cookics、 剪3共18页
第 3 页 共 18 页 语法:response.clear 说明: ⑴ 使用该方法时缓冲区必须打开,即 Response 的 Buffer 属性必须为 True。 ⑵ 使用该方法只能清除 HTML 文件的 Body 部分。 4.End 功能:停止执行当前 ASP 页面代码并输出服务器缓冲区中的已有结果。 语法:response.end 说明:使用该方法时缓冲区必须打开,即 Response 的 Buffer 属性必须为 True。 5.Flush 功能:输出服务器缓冲区中的数据到客户端。 语法:response.flush 说明:使用该方法时缓冲区必须打开,即 Response 的 Buffer 属性必须为 True。 6.BinaryWrite 功能:直接向客户端输出二进制信息。 语法:response.binarywrite 字符串 Response 对象的 Cookies 集合实现向客户端写入 Cookie 数据。 语法格式:Response.Cookies(“Cookies 变量名”)[(关键字)|.属性] = 字符串,其中关键字表 示 Cookies 变量中含有的子项元素,类似数组元素;属性表示每个 Cookie 数据的属性,包括: Expires、Domain、Path、Secure、HasKeys。 Expires:表示读取或设置 Cookies 数据的有效期限。 Domain:表示指定 Cookies 数据只能发送到的某个域名或页面。 Path:表示指定 Cookies 数据只能发送到的某个路径。 Secure:若设置此属性为真则表示 Cookies 数据被加密发送。 HasKeys:若此属性为真则表示 Cookies 集合含有多个关键字。 演示示例 4: 4.2 Request 对象 功能:Request 对象用于获取客户端信息,共有 5 种集合,分别是 QueryString、Form、Cookies

Server Variables.ClientCertificate. 清法:Rquc对象[集合1属性方法](“变量”) 注意:若简写为Request对象(“变量")则AsP依次在Query String、Fcm,Cookies、 Server Variables,ClientCertificate集合巾枪查是杏有变量信息传人. 4.2.1 Request对象的属性 Rt对象的Toys属性返同从客户花按收到的数据的字节长度, 语法格式:Reqe过对象.TotalBytes 4.2.2 Request对象的方法 Requcst对象的BinaryRead方法以二进制形式从客户端读取指定字节的po以方法提交的 数据。 语法格式:ariantArra=Reques以对象.BinaryRead(count),其中,count表示指定读取的 字节数:riantArray表示返回数据存储的变体数组. 注意:使用该方法读取客户镯数据,客户端必须使用0过方法发送给服务器。 4.2.3 Request对象的集合 1.Q1 ueryString集合 QueryString集合获取证过方法发送给服务器的数据,包括两种形式,一是将数据放 在URL后面,多个变量参数之间用&连接:二是将b表单的数据以t方式提交。 方式一语法:文件名甲?变量1-参数1业变量2-梦数2业变量-参数n 方式二语法: 4*+ 端示示例5:将一个页面中的变量处名、年龄发送给另一个页面并显示出来。 方式一: c1-41p页面代码> chead> tite>满试Query String用法方式一title c/headb chody 单击下面的超链接p心 显示信息 <-c4-2.p页面代码-≥ chtmb 第4页共18页
第 4 页 共 18 页 ServerVariables、ClientCertificate。 语法:Request 对象[.集合|属性|方法](“变量”) 注意:若简写为 Request 对象(“变量”)则 ASP 依次在 QueryString、Form、Cookies、 ServerVariables、ClientCertificate 集合中检查是否有变量信息传入。 Request 对象的 TotalBytes 属性返回从客户端接收到的数据的字节长度。 语法格式:Request 对象.TotalBytes Request 对象的 BinaryRead 方法以二进制形式从客户端读取指定字节的 post 方法提交的 数据。 语法格式:VariantArray=Request 对象.BinaryRead(count),其中,count 表示指定读取的 字节数;VariantArray 表示返回数据存储的变体数组。 注意:使用该方法读取客户端数据,客户端必须使用 post 方法发送给服务器。 1.QueryString 集合 QueryString 集合获取通过 get 方法发送给服务器的数据,包括两种形式,一是将数据放 在 URL 后面,多个变量参数之间用&连接;二是将 Web 表单的数据以 get 方式提交。 方式一语法:文件名.asp?变量 1=参数 1&变量 2=参数 2 ……&变量 n=参数 n 方式二语法: …… 演示示例 5:将一个页面中的变量姓名、年龄发送给另一个页面并显示出来。 方式一: 测试 QueryString 用法方式一 单击下面的超链接 显示信息

title>测试Query String用法 注意;使用方式一也可直接在训觉器地址栏中输入带有UL变量后缀的网址。 http://127.0.0.1/example/c4-2.asp'name-zyj&age=32 方式二: ce4.1hm页面代码> chtmb chead> ctitle>测试Query String用法方式二cile> c/headb 姓名: 年故: c/form> c/body> Form表单元素 0444 c/form> ASP文件中Fcm集合使用语法:Request下cem(m“)【(subindex)],其中vm表示表单 各元素的变量名,subindex表示同名表单元素的下标,从1开始计数. 演示示例6:两个效相加的计算器, c-e4-3.ap-2 绮5实共18项
第 5 页 共 18 页 测试 QueryString 用法 注意:使用方式一也可直接在浏览器地址栏中输入带有 URL 变量后缀的网址。 http://127.0.0.1/example/e4-2.asp?name=zyj&age=32 方式二: 测试 QueryString 用法方式二 姓名: 年龄: e4-2.asp 页面代码与方式一相同。 2.Form 集合 Form 集合获取通过 post 方法发送给服务器的数据。 Form 表单 HTML 语法: Form 表单元素 …… ASP 文件中 Form 集合使用语法:Request.Form(“var”)[ (subindex)],其中 var 表示表单 各元素的变量名,subindex 表示同名表单元素的下标,从 1 开始计数。 演示示例 6:两个数相加的计算器

chimb> chead ctitle>Fotm集合示例1 cAitle2 asinput type='text"name="a"size=8>+ b …447-> shead中 itle>Form集合示例I c% a-Request.Form("a") b=Request.Form("b") c-CInt(a)+CInt(b) Response Wrile 'a+h-"&CStr(c) %> 说明:用户在页面c4-3.即输入两个数,单击“计算”按缸后将表单元素变量a,b发送 给action属性指定的页面c4-4.ap,在页面c4-4.a即中利用Requcs对象的Fom集合获取a、 b的值并相加。 将以上两个页面合并为一个页面434即,若第一次打开此页面时由于没有输入整数、 b所以只输出提示信息“请输入两个望数后按计算按红”;用户输入两个数,单击“计算”按 钮,页面将变量a、b发送给自身页面,表单的at0n属性可以设置为空串或自身文件名。 clm4-34.p> title>Form集合示例2itle心 剪6页共18页
第 6 页 共 18 页 Form 集合示例 1 a+ b Form 集合示例 1 说明:用户在页面 e4-3.asp 输入两个数,单击“计算”按钮后将表单元素变量 a、b 发送 给 action 属性指定的页面 e4-4.asp,在页面 e4-4.asp 中利用 Request 对象的 Form 集合获取 a、 b 的值并相加。 将以上两个页面合并为一个页面 e4-34.asp,若第一次打开此页面时由于没有输入整数 a、 b 所以只输出提示信息“请输入两个整数后按计算按钮”;用户输入两个数,单击“计算”按 钮,页面将变量 a、b 发送给自身页面,表单的 action 属性可以设置为空串或自身文件名。 Form 集合示例 2

asinput type="text'name="a"> bcinput type="text"name="b"> cps 3.Cookies集合 Cookies集合获取客户端:录的Cookies数据,Cookies是保存在客户端的一·定格式的文 本串。Cookies有两种形式:会话Cookies和水久Cookics,前者是临时性的,只在浏览器打 开时存在,后者永久存于磁盘中。 ASP中使用Rege以对象的Cookies集合获取在客户端记录的Cookies数据,语法格式知 下: Requcst.Cookies("CookiesName"(key)l.Attribute] 其中,CookiesName表示Cookies变量名:key表示集合中的索引;Attribute表示Cookies 变量的属性,包括5个:Expires,Domain,Pamh,Secure,HasKey,具体含义参见“4.1.3 Respons深 利象的集合”部分。 演示示例?:在网灾中显示您是第几次光临本站。 c-e4.5.ap2 c%Respxonse Buffer-True% chead> title>(Cookies综合示例 % 第了页共18页
第 7 页 共 18 页 a + b "" and Request.Form("b")<>"" Then ' 判断 a 与 b 的值是否输 入 a=Request.Form("a") b=Request.Form("b") c=CInt(a)+CInt(b) Response.Write "a+b=" & CStr(c) Else Response.Write "请输入两个整数后按计算按钮" End If %> 3.Cookies 集合 Cookies 集合获取客户端记录的 Cookies 数据。Cookies 是保存在客户端的一定格式的文 本串。Cookies 有两种形式:会话 Cookies 和永久 Cookies,前者是临时性的,只在浏览器打 开时存在,后者永久存于磁盘中。 ASP 中使用 Request 对象的 Cookies 集合获取在客户端记录的 Cookies 数据,语法格式如 下: Request.Cookies(“CookiesName”)[(key)|.Attribute] 其中,CookiesName 表示 Cookies 变量名;key 表示集合中的索引;Attribute 表示 Cookies 变量的属性,包括 5 个:Expires、Domain、Path、Secure、HasKey ,具体含义参见“4.1.3 Response 对象的集合”部分。 演示示例 7:在网页中显示您是第几次光临本站。 Cookies 综合示例 <%

Dim Number ·定义一个访问次数变量 Number=Request.Cookies("Number") ·读取Cookies值 if Number=""then Number=l ·如果是第次,则令访问次数为1 Else Number=Number+l ·如果不是第一次,则令访问次数如1 EndIf Response.rile"您是第&Number&"次访间本站 Response Cookies("Number")-Number 将新的访问次数存到Coks中 Response..Cookies("Number).Expires="2020-1-1P·设置有效期 %> 4.ServerVariables集合 Server Variahles集合获取Web服务器瑞和客户端河览器的有关环境信息. 语法格式:Re四以.Server Variables(环境变量名") 常用的环境变量如下表所示: AUTH TYPE 当用户访问一个被保护的脚本时,该参数判断是否是一个有效的 用户。 CONTENT LENGTH 客户端所提交的正文的长度 CONTENT TYPE 正文数据的类型。可以使用该参数判断用户提交数据的方法。它 的值可以是POST、PUT或是其他。 GATEWAY_INTERFACE 服务器端所使用的CG1悠订版本。格式:CG1/修订版本 LOGON USER 用户是否是以Windows NT的账户登录 PATH_INFO 客户端的路径信息,用户可以通过物理路径和PATH一INFO参数 米访问脚本 QUERY_STRING 在一个HTTP请求中的查询信(Queryinformation)就是一个 HTTP请求中问号(?)后面的部分 REMOTE_ADDR 发送请求的远程主机的IP地址 REMOTE_HOST 发送情求的远程主机名,如果远蹭服务器不包含该信息,则返回 空字符申.但设置REMOTE_ADDR参数. REQUEST METHOD 数燕请求的方法。对于HTTP,可以是GET、HEAD、POST或是 其他方法。 SCRIPT_MAP 给出URL的基本部分 效8剪共18项
第 8 页 共 18 页 Dim Number ' 定义一个访问次数变量 Number=Request.Cookies("Number") ' 读取 Cookies 值 if Number="" then Number=1 ' 如果是第一次,则令访问次数为 1 Else Number=Number+1 ' 如果不是第一次,则令访问次数加 1 End If Response.Write "您是第" & Number & "次访问本站" Response.Cookies("Number")=Number ' 将新的访问次数存到 Cookies 中 Response.Cookies("Number").Expires="2020-1-1" ' 设置有效期 %> 4.ServerVariables 集合 ServerVariables 集合获取 Web 服务器端和客户端浏览器的有关环境信息。 语法格式:Request. ServerVariables(“环境变量名”) 常用的环境变量如下表所示: AUTH_TYPE 当用户访问一个被保护的脚本时,该参数判断是否是一个有效的 用户。 CONTENT_LENGTH 客户端所提交的正文的长度 CONTENT_TYPE 正文数据的类型。可以使用该参数判断用户提交数据的方法。它 的值可以是 POST、PUT 或是其他。 GATEWAY_INTERFACE 服务器端所使用的 CGI 修订版本。格式:CGI/修订版本 LOGON_USER 用户是否是以 Windows NT 的账户登录 PATH_INFO 客户端的路径信息。用户可以通过物理路径和 PATH—INFO 参数 来访问脚本 QUERY_STRING 在一个 HTTP 请求中的查询信息(Queryinformation)就是一个 HTTP 请求中问号(?)后面的部分 REMOTE_ADDR 发送请求的远程主机的 IP 地址 REMOTE_HOST 发送请求的远程主机名。如果远端服务器不包含该信息,则返回 空字符串。但设置 REMOTE_ADDR 参数。 REQUEST_METHOD 数据请求的方法。对于 HTTP,可以是 GET、HEAD、POST 或是 其他方法。 SCRIPT_MAP 给出 URL 的基本部分

SCRIPT NAME 执行脚本的虚拟路径,或自指定的UL路径。 SERVER NAME 该服务器的名称,DNS的别名,共P地址以及自指定的URL路 径。 SERVER PORT 数据请求所使用的端口号 SERVER PORT_SECURE 端口的安全性。如果数据请求所使用的端口是被保护的,那么返 回“1”,否则返回“o”(注:这里返回的1或者0是字符,不是 数值.) SERVER PROTOCOL 要求信息的协议及修订版木。格式:协议,修订版本 SERVER SOFTWARE 服务器端运行的软件名称及版本号。格式:名称,版本号 URL 得到系统的URL路径 演示示例8:显示页面防客IP地址。 ctitle>Server Variables用法chitle c/head sbody> 4.3 Session对象 Sa对象用于存储特定用户访问站点期问的数据信息,也可控制用户与服务器的会话 Session对象是针对一个客户的,不同客户的信息用不同的Session对象保存.Session的工作 原理:在一个应用程序中,当客户端启动一个Session时,ASP白动产生一个长整数SessionID 并将此SessionlD发送到客户嘴削览器,刻览器把北SessionlD存放在客户猎Cookies中,当 客户嘴再次向服务器州送出HTTP请求时,会将页面中出现的Session对象的SessionlD从客 户端发送到限务器端,ASP会自动检查请求表头的SessionlD,并派回该SessionlD对应的 Sesm倍息,Sen对象的功能需要借助Cookies实见,因此刘览器必须支持使用Cks 功能。Ssso对象的作用范田:在用户访问站点期间,有效时间内在各个页面上都有效。 4.3.1 Session对象的常用属性 1.SessionlD 功能:SessionID属性返回当前会话的D编号:每·个会话开始时,服务器产生·个的 剪9页共18页
第 9 页 共 18 页 SCRIPT_NAME 执行脚本的虚拟路径,或自指定的 URL 路径。 SERVER_NAME 该服务器的名称,DNS 的别名,其 IP 地址以及自指定的 URL 路 径。 SERVER_PORT 数据请求所使用的端口号 SERVER_PORT_SECURE 端口的安全性。如果数据请求所使用的端口是被保护的,那么返 回“1”,否则返回“o”(注:这里返回的 l 或者 0 是字符,不是 数值。) SERVER_PROTOCOL 要求信息的协议及修订版本。格式:协议,修订版本 SERVER_SOFTWARE 服务器端运行的软件名称及版本号。格式:名称,版本号 URL 得到系统的 URL 路径 演示示例 8:显示页面访客 IP 地址。 ServerVariables 用法 4.3 Session 对象 Session对象用于存储特定用户访问站点期间的数据信息,也可控制用户与服务器的会话。 Session 对象是针对一个客户的,不同客户的信息用不同的 Session 对象保存。Session 的工作 原理:在一个应用程序中,当客户端启动一个 Session 时,ASP 自动产生一个长整数 SessionID 并将此 SessionID 发送到客户端浏览器,浏览器把此 SessionID 存放在客户端 Cookies 中。当 客户端再次向服务器端送出 HTTP 请求时,会将页面中出现的 Session 对象的 SessionID 从客 户端发送到服务器端,ASP 会自动检查请求表头的 SessionID,并返回该 SessionID 对应的 Session 信息。Session 对象的功能需要借助 Cookies 实现,因此浏览器必须支持使用 Cookies 功能。Session 对象的作用范围:在用户访问站点期间,有效时间内在各个页面上都有效。 ⒈ SessionID 功能:SessionID 属性返回当前会话的 ID 编号。每一个会话开始时,服务器产生一个长

整型会话编号,作为此会话的唯一标志。 语法:Session对象.SessionID 2.Timeout 功能:指定会话超时的时间,单位是分钟。用户在指定时问内没有制新贞而或链接其它 页面,服务器将终止本次会话。该属性的默认值是20分钟. 语法:Ssin.Timeoul--设置时间 4.3.2Sc5sin对象的常川方法 1.Abandon 功能:清隐Session对象中的全部数据,样放其所占货源。河用该方法时,若ASP文件 中还有代码没有执行完,则存储在Sss0n对象中的数据不会立即清空,而是等到该页面执行 完成后再清空。 语法:Session.Abandon 演示示例9:真面oe,asp代码如下: 标记创建的Sen对象, 第10页共18真
第 10 页 共 18 页 整型会话编号,作为此会话的唯一标志。 语法:Session 对象. SessionID ⒉ Timeout 功能:指定会话超时的时间,单位是分钟。用户在指定时间内没有刷新页面或链接其它 页面,服务器将终止本次会话。该属性的默认值是 20 分钟。 语法:Session. Timeout=设置时间 ⒈ Abandon 功能:清除 Session 对象中的全部数据,释放其所占资源。调用该方法时,若 ASP 文件 中还有代码没有执行完,则存储在 Session 对象中的数据不会立即清空,而是等到该页面执行 完成后再清空。 语法:Session. Abandon 演示示例 9:页面 one.asp 代码如下: 页面 other.asp 代码如下: 在页面 one.asp 中虽然执行了 session.abandon,但 Session 对象中的数据不会立即清空, 因此能够显示 Session 变量 username 的值;页面执行完毕后清空 Session,因此在页面 other.asp 中不能输出 Session 变量 age 的值。 ⒉ Remove 功能:删除一个指定的 Session 数据。 语法:Session.Contents.Remove(item),其中 item 是 Session 变量或对象名。 ⒊ Contents.RemoveAll 功能:删除 Session.Contents 中的全部数据。 语法:Session.Contents.RemoveAll ⒈ Contents 功能:此集合包含除用标记创建的全部 Session 变量或对象。 语法:Session.Contents(key),其中 key 为变量名、对象名或数字下标。 ⒉ StaticObjects 功能:此集合包含所有用标记创建的 Session 对象