《《ASP程序设计》-叶潮流-电子教案及习题答案 第5章Request和Response对象》由会员分享,可在线阅读,更多相关《《ASP程序设计》-叶潮流-电子教案及习题答案 第5章Request和Response对象(49页珍藏版)》请在金锄头文库上搜索。
1、ASP程序设计课件 2008 年 12 月,中国水利水电出版社,本章导读,本章导读: 客户端浏览器和Web服务器之间的信息交流可以通过ASP中的两个内置对象来进行访问和管理,这两个对象分别称为请求对象Request和响应对象Response,也是ASP编程中使用最频繁、最重要的对象。 本章要点:,5.1 Request对象概述,5.1.1 Request对象语法简介 5.1.2 使用Form数据集合 5.1.3 使用Querystring 数据集合 5.1.4 使用Cookies数据集合 5.1.5 使用Servervariables数据结合 5.1.6 使用Clientcertificate
2、数据集合,5.1.1 Request对象语法简介,Request对象的功能是单向的,它只能用来获取客户端浏览器提交的数据信息,其语法格式如下: Request.collection|property|method(“element“),5.1.1 Request对象语法简介,说明: collection:表示数据集合,request对象提供了5个数据集合,如表5-1所示。,表5-1 request对象集合及功能,注:当省略了以上集合时,request对象会按照querystring、form、cookies、servervariables、clientcertificate的顺序搜 索集合,并
3、返回信息,如果没有信息则返回empty。在这些数据集合中,最常用的是form、querystuing和cookies集合。,5.1.1 Request对象语法简介,说明: property:表示属性,request对象只有一个属性,即totalbytes。这是一个只读属性,获取客户端请求正文中发送的字节总数。实际编程中该属性很少使用, 语法如下: ,5.1.1 Request对象语法简介,说明: method:表示方法,request对象只有一个方法:即binaryread。它以二进制的方法获取客户端传递的数据,语法如下: 当数据作为post请求的一部分发往服务器时,从中获取 指定count个
4、字节的数据,返回一个variant数组。 如果ASP代码已经引用了request.form集合,这个方 法就不能用了。当然,如果先用了binaryread方法, 也就不能访问request.form集合。,5.1.1 Request对象语法简介,说明: element:表示成员名,指定从数据集合中要检索的成员名的字符串。,5.1.2 使用Form数据集合,当使用表单的post方法提交数据时,表单中的数据被保存在request对象中的form数据集合中,form数据集合用于获取并返回网页表单元素(表单控件)的内容,也就是表单控件的value属性值。使用form数据集合来传递数据的语法格式如下:
5、Request.form(element)(index)|.count,5.1.2 使用Form数据集合,说明: (1)element:数据集合中的成员名(变量名),对应表单元素的名称(表单控件name属性值),或其索引顺序号,序号从1开始计数,不推荐使用。 如果表单提交数据中有名为username,email和duty这样三个元素,则可以分别用如下的三行代码来获取其数据值: ,5.1.2 使用Form数据集合,说明: (2)index:可选参数,用来检索对象多个值中的一个值时的索引序号。 表单或者表单元素可以有许多值,若要引用对象多个值中的一个值,一般需要指定索引序号index值,若没有指定
6、索引序号index值时,返回值将是以逗号分割的字符串。当检索表单对象多个值中的一个时,index取值从1到request.form.count;当检索表单某元素对象多个值中的一个时,index取值从1到request.form(“element“).count。,5.1.2 使用Form数据集合,说明: (3)count:可选属性,数据集合的属性,用来统计表单在提交数据时具体有多少个表单元素被填写或选择,常用有两种形式: request.form.count 表示网页表单提交的所有表单元素的数据内容个数。 request.form (“element“).count表示名称为“element“
7、的表单元素提交后的所有数据构成的条目数。,5.1.3 使用Querystring 数据集合,querystring 数据集合是用来检索http查询字符串中变量的值,所谓http查询字符串也就是问号(?)后的字符串。 使用querytstring数据集合传递数据的语法格式如下: request.querytstring(“element“)(index)|.count,5.1.3 使用Querystring 数据集合,说明: element是指定http查询字符串中的变量名; index是可选的参数,用来检索变量名“element”的多个值中的某一个值,其值可以是从1到request.query
8、string(“element”).count之间的任何整数;如果未指定index的值,引用该querystring变量时,返回的数据是用逗号分隔的字符串。 request.querystring.count给出querystring数据集合中提交所有变量的个数,如果没有查询字符串被发送,则request.querystring.count值为0; 结合fornext语句和for eachnext语句,即使不知道查询字符串变量的名称,也可以查询字符串中变量的值,或查询字符串中变量的名称和值。,5.1.3 使用Querystring 数据集合,http查询字符串可以由几种不同的方法生成,比较常用
9、的方法有以下三种: (1)通过html表单提交数据时,若将表单的method属性设置为get,则表单数据将以“?”开头查询字符串附加到action所设定的URL后面,表单域中间用“&”隔开,发送到服务器,可通过querystring集合检索表单数据。 (2)使用超链接标记时,可以将查询字符串放在url后面,并使用问号“?”来分隔url与查询字符串。 (3)在浏览器地址栏中键入请求网页的url时,在url后面键入问号“?”和查询字符串,可以通过querystring集合检索查询字符串中变量的值。,5.1.4 使用Cookies数据集合,使用request.cookies集合可以读取客户端的coo
10、kies信息,有关cookies 数据集合的详细信息请参阅5.3节。,5.1.5 使用Servervariables数据结合,ASP网页的动态交互性还体现在自动识别用户身份,作出相对应答。这时就需要使用request对象的servervariables集合来检索预定的环境变量和http标头信息,比如当前请求的ASP网页文件名,客户端的IP地址等,依据检索的信息作出相对响应。 语法格式如下: 格式:Request.Servervariables (服务器环境变量) 说明:服务器环境变量是指定要检索的服务器环境变量名,常见的服务器环境变量名及其含义如表5-2所示。,5.1.5 使用Serverva
11、riables数据结合,表5-2 常见的服务器环境变量名,5.1.6 使用Clientcertificate数据集合,当浏览器请求访问以https:/开头的URL网址时,web服务器要求客户提供一些用于表明客户端身份的证书信息。通过clientcertificate数据集合,可以实现安全认证,让不同的用户打开不同的网页。 语法如下Request.Clientcertificate( keysubfield 说明:clientcertificate包括关键字段和子字段两部分组成。,5.1.6 使用Clientcertificate数据集合,说明: 1)key:关键字段,指定要获取证书的关键字名称
12、,关键字取值及其含义如表5-3所示。,表5-3 关键字取值及其含义,5.1.6 使用Clientcertificate数据集合,说明 2)subfield:子字段,可选作为后缀添加到subject或issuer关键字字段后,子字段取值及其含义如表5-4所示。,表5-4 子字段取值及其含义,5.2 Response对象概述,5.2.1 Response对象语法简介 5.2.2 Response数据集合 5.2.3 Response方法 5.2.4 Response属性,5.2.1 Response对象语法简介,同Request对象一样,它的功能也是单向的,不同的是使用response响应客户端请
13、求,将服务器端的数据发送给客户端, 其语法如下: Response.collection|property|method,5.2.1 Response对象语法简介,说明: collection:表示集合,response对象只有一个集合,即cookies,cookies数据集合允许将cookies相关数据设置在客户端的本地硬盘中。,5.2.1 Response对象语法简介,说明: property:表示属性,response对象提供了9个属性,如表5-5所示。,表5-5 response对象属性及功能,5.2.1 Response对象语法简介,说明: method:表示方法,response对
14、象提供了8个方法,如表5-6所示。,表5-6 response对象方法及功能,5.2.2 Response数据集合,使用response.cookies数据集合可以设置客户端的cookies信息,有关cookies数据集合的详细信息请参阅5.3节。,5.2.3 Response方法,Response对象提供了8种方法,下面详细绍。 1输出数据 格式:response.write variant 说明:直接向客户端浏览器输出数据,使用时注意以下几点: variant可以是一变量,也可以是一具体数据,包括字符、字符串,整数等; 不能直接输出长度超过1022个字符的字符串常量,但可以使用其他形式(如
15、变量)来引用该内容。 有些字符,如输出%、“等不能直接输出,可以通过转义字符%、“来输出; 有效的html标记可以当作字符串形式输出到浏览器并由浏览器负责解释执行; 在编写时,可以用“=”来替代,但任何变量数据或字符串两端都要用标记; 不能使用嵌套输出语句。,5.2.3 Response方法,Response对象提供了8种方法,下面详细绍。 2网页转向 格式:response.redirect url 说明:自动引导(又称网页转向)客户端浏览器到另一页面,使用时注意以下几点: url为新网页网址字符串,引导至同一站点内其他网页时一般使用相对路径; response.redirect url要放
16、在程序的标记前面; 若在标记后调用它,需配合使用,否则导致运行错误。,5.2.3 Response方法,Response对象提供了8种方法,下面详细绍。 3停止输出 格式:response.end 说明:强迫web服务器停止执行其后语句,结束程序运行,并输出当前执行结果。,5.2.3 Response方法,Response对象提供了8种方法,下面详细绍。 4删除缓冲区信息 格式:response.clear 说明:删除缓冲区的所有正文信息,不删除响应标题。 需与配合使用,否则导致运行错误。,5.2.3 Response方法,Response对象提供了8种方法,下面详细绍。 5立即输出缓冲区信息 格式:response.flush 说明:立即输出服务器缓冲区的信息,需与配合使用,否则导致运行错误。,5.2.3 Response方法,Response对象提供了8种方法,下面详细绍。 6追加日志记录 格式:response.appendtolog string 说明:向Web服务器的日志文件末尾添加客户端