《第4章Request和Response对象》由会员分享,可在线阅读,更多相关《第4章Request和Response对象(38页珍藏版)》请在金锄头文库上搜索。
1、第4章Request和Response对象 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life, there is hope。有生命必有希望。有生命必有希望利用利用RequestRequest对象从客户端获取信息对象从客户端获取信息 4.2使用使用CookieCookie在客户端保存信息在客户端保存信息 4.4本章小结本章小结 4.5利用利用ResponseResponse对象向客户端输出信息对象向客户端输出信息4.3本章内容简介本章内容简介ASPASP内部对象概述内部对象概述4.14.1 ASP4.1 ASP内部对象概述内部
2、对象概述什么叫对象?对象的属性、方法和事件 ASP几个重要的内部对象Request对象从客户端获取数据Response对象-向客户端输出数据 Session对象-记载特定客户的信息Application对象-记载同一个应用程序中的所有用户之间的共享信息 Server对象-提供服务器端的许多应用函数,如创建COM对象和Scripting组件等 4.2 4.2 利用利用RequestRequest对象从客户端获取信息对象从客户端获取信息4.2.1 Request4.2.1 Request对象简介对象简介4.2.2 4.2.2 使用使用FormForm数据集合获取表单信息数据集合获取表单信息4.2.
3、3 4.2.3 使用使用QueryStringQueryString获取查询字符串信息获取查询字符串信息4.2.4 4.2.4 使用使用ServerVariablesServerVariables获取环境变量获取环境变量4.2.5 4.2.5 使用使用ClientCertificateClientCertificate获取身份验证获取身份验证4.2.6 TotalBytes4.2.6 TotalBytes属性属性4.2.7 BinaryRead4.2.7 BinaryRead方法方法4.2.14.2.1 RequestRequest对象简介对象简介Request对象用来获取客户端信息,主要依靠
4、5种数据集合,分别是QueryString、Form、Cookies、ServerVariables、ClientCertificate。 语法为:Request.数据集合(参数) 例如:Request对象还有两个不太常用的属性TotalBytes和方法BinaryRead4.2.2 4.2.2 使用使用FormForm数据集合获取表单信息数据集合获取表单信息在ASP中,获取FORM表单中的信息就是用Form获取方法来实现的。语法:Request.Form(参数)FormForm数据集合示例数据集合示例1 1 示例示例1 1:一个简单的计算器表单的例子:一个简单的计算器表单的例子 FormFo
5、rm数据集合示例数据集合示例2 2示例示例2 2:表单和表单处理写在同一个文件中:表单和表单处理写在同一个文件中FormForm数据集合示例数据集合示例3 3填写注册信息的例子填写注册信息的例子 4.2.3 4.2.3 使用使用QueryStringQueryString获取字符串信息获取字符串信息可以利用QueryString获取方法取到标识在URL后面的所有变量及其值; 为什么要用该获取方法?语法:Request.Querystring(“参数”)QueryStringQueryString方法示例方法示例4.2.4 4.2.4 使用使用ServerVariablesServerVaria
6、bles获取环境变量获取环境变量利用该方法可以获取服务端或客户端的一些信息,如来访者的IP地址。语法如下:Request.ServerVariables(variablename)其中variablename表示环境变量名称字符串,常用的环境变量 有:LOCAL_ADDR服务器端IP地址REMOTE_ADDR客户端IP地址SCRIPT_NAME正在运行的脚本文件的路径信息ServerVariablesServerVariables方法示例方法示例4.2.5 4.2.5 使用使用ClientCertificateClientCertificate获取身份验证获取身份验证如果客户端浏览器支持SSL
7、(Secure Sockets Layer,安全套接层)协议,并且服务器端要求进行身份验证,则利用ClientCertificate数据集合就可以获取客户端浏览器的身份验证信息。语法如下:Request.ClientCertificate(keyword)例如:Request.ClientCertificate(Subject)可返回验证主题信息。 4.2.6 TotalBytes4.2.6 TotalBytes属性属性该属性用来获取客户端发出的请求数据的字节大小,语法如下:Request.TotalBytes例如:4.2.7 BinaryRead4.2.7 BinaryRead方法方法该方法
8、用来以二进制方式获取客户端用POST方法提交的数据。语法为:Request.BinaryRead(count)其中count表示准备读取数据的字节大小,取值可以是0至Request.TotalBytes的整数。比如下面的例子将以二进制方式获取提交的全部数据:4.3 Response4.3 Response对象向客户端输出信息对象向客户端输出信息4.3.1 Response4.3.1 Response对象简介对象简介4.3.2 4.3.2 使用使用WriteWrite方法输出信息方法输出信息4.3.3 4.3.3 使用使用RedirectRedirect方法实现页面重定向方法实现页面重定向4.3
9、.4 4.3.4 使用使用End End 方法停止处理脚本程序方法停止处理脚本程序4.3.5 Buffer4.3.5 Buffer属性、属性、ClearClear方法、方法、FlushFlush方法方法4.3.6 BinaryWrite4.3.6 BinaryWrite方法方法4.3.7 4.3.7 关于关于HTTPHTTP响应信息的复杂操作响应信息的复杂操作关于关于ResponseResponse对象对象每当客户端向服务器端发出一个HTTP请求信息,服务器端就会给客户端返回一个HTTP响应信息。在该信息中不仅包含了要输出到页面上的信息,也包括HTTP内容类型、字符集名称等信息。而这些信息都要
10、靠Response对象来输出。 以前已经多次用到Response.write方法了。4.3.1 Response4.3.1 Response对象简介对象简介Response对象用来向客户端输出信息 。Response对象常用的方法有:1Write:直接送出信息给客户端。2Redirect:引导客户端至另一个URL位置。3. End :结束程序运行。4Flush :立刻输出缓冲区中的页面内容 。常用的属性有下面两个:1Buffer:设置为缓冲信息。2Expires :页面在缓存中保存的时间。Response对象的数据集合:Cookies,它负责设置客户端浏览器的Cookie值 。 使用使用Wri
11、teWrite方法输出信息方法输出信息 向客户端输出信息语法: Response.Write 变量数据或字符串如:Response.Write 您来访的日期是 & Date() 输出一个字符串表达式简略语法:如:WriteWrite方法示例方法示例示例:用两种方法输出信息示例:用两种方法输出信息4.3.3 Redirect4.3.3 Redirect方法实现页面重定向方法实现页面重定向为什么要使用该方法?语法为:Response.Redirect url其中url表示相对路径、绝对路径或URL字符串 .例如:RedirectRedirect方法示例方法示例示例:根据不同的用户类型引导至相应的页
12、面示例:根据不同的用户类型引导至相应的页面 4.3.4 4.3.4 使用使用EndEnd方法停止处理脚本程序方法停止处理脚本程序在ASP程序中碰到Response.End语句后,程序立即终止,不过它会将之前的页面内容发送到客户端,只是不再执行后面的语句了。该方法经常用在调试程序的时候,可以暂时用该语句屏蔽后面的语句,类似于逐条注释掉后面的语句。 EndEnd方法示例方法示例4.3.5 Buffer4.3.5 Buffer属性和属性和ClearClear、FlushFlush方法方法Buffer属性用来设置服务器端是否将页面先输出到缓冲区,它的值为True或False。当Buffer为True时
13、,它要把页面输出至缓冲区,当Buffer为False时,服务器端不再将页面输出至缓冲区,会直接将页面输出至客户端浏览器。当Buffer的值为True时,Clear方法用于将缓冲区中的当前页面内容全部清除,Flush方法用于将缓冲区中的当前页面内容立刻输出到客户端。 想一想为什么要在redirect方法中用Buffer属性?ClearClear、FlushFlush方法示例方法示例请分析输出结果。4.3.6 BinaryWrite方法该方法用于在不进行任何字符转换的情况下以二进制方式输出信息 。其语法为:Response.BinaryWrite 二进制数据变量该方法还可以和TotalBytes属
14、性、BinaryRead方法联合起来使用,以二进制方式获取客户端提交的表单信息并以二进制方式输出到页面上。4.3.7 4.3.7 关于关于HTTPHTTP响应信息的复杂操作响应信息的复杂操作Response对象还有几个不常用的属性和方法用于控制输出信息方式和添加HTTP响应信息。(1)缓存网页CacheControl属性用于设置是否允许缓存,Public表示允许,Private表示不允许。 (2)创建HTTP响应信息的状态行信息利用Status属性就可以给客户端发送一个状态行信息 (3)添加HTML文档头信息 利用AddHeader方法也可以动态添加有关信息 (4)设置内容类型和字符集利用Co
15、ntent-Type和Charset属性可以设置输出页面的内容类型和字符集 4.4 4.4 使用使用CookieCookie在客户端保存信息在客户端保存信息4.4.1 Cookie简介4.4.2 使用Response对象设置Cookie4.4.3 使用Request对象获取Cookie4.4.4 Cookie综合示例4.4.1 Cookie4.4.1 Cookie简介简介Cookie俗称甜饼,可以在客户端长期保存信息。它是服务器端发送到客户端的一些文本,保存在客户的硬盘上,一般在Windows文件夹下临时文件夹下的Cookies文件夹里。每个网站都可以有自己的Cookie,但是每个网站只能读取
16、自己的Cookie。Cookie有两种形式:会话Cookie和永久Cookie。前者是临时性的,只在浏览器打开时存在;后者则永久地存在于用户的硬盘上并在有效日期之前一直可用。ASP利用Response对象的Cookies数据集合设置Cookie的值,利用Request对象的Cookies数据集合来获取Cookie的值。4.4.2 4.4.2 使用使用ResponseResponse对象设置对象设置CookieCookie可以使用Response对象的Cookies数据集合设置Cookie的值,语法如下:Response.Cookies(cookiename)(keyword)|.attribu
17、te = valueResponse的Cookies数据集合的主要属性Expires:设定Cookie的有效日期。如果省略,则关闭浏览器时该Cookie则消失。设置Cookies(1)设置不含关键字的单值Cookie设置单值Cookie很简单,只要指定Cookie名称和它的值即可。例如:(2)设置含关键字的多值Cookie多值Cookie就类似于一个数组,可以包含多个元素,分别用关键字指定即可。例如:(3)设置Cookie的有效期如果不设置Cookie的有效期,则关闭浏览器后该Cookie就消失了/下面就针对上面的例子设置有效期:4.4.3 4.4.3 使用使用RequestRequest对象
18、获取对象获取CookieCookie可以利用Request对象的Cookies数据集合获取Cookie的值,语法如下:Request.Cookies(cookiename)(keyword)|.attribute获取获取CookieCookie的值的值 (1)获取单值Cookie的值(2)获取含关键字多值Cookie的值(3)判断Cookie是否含有关键字如果想知道一个Cookie是否含有关键字,可以利用Haskeys属性。返回值True表示含有关键字,False表示不含关键字。如:4.4.4 Cookie4.4.4 Cookie综合示例综合示例综合示例,用来显示用户第几次光临本站。综合示例,用来显示用户第几次光临本站。 4.5 4.5 本章小结本章小结本章重点之一就是服务器端如何利用Request对象的Form、QueryString和Cookies数据集合获取客户端的信息;重点之二就是如何利用Response对象Write方法和Cookies数据集合向客户端输出信息。