《Request和Response对象.ppt》由会员分享,可在线阅读,更多相关《Request和Response对象.ppt(61页珍藏版)》请在三一办公上搜索。
1、第4章 Request和Response对象,本章内容简介,4.1 ASP内部对象概述,什么叫对象?对象的属性、方法和事件 ASP几个重要的内部对象Request对象从客户端获取数据Response对象-向客户端输出数据 Session对象-记载特定客户的信息Application对象-记载同一个应用程序中的所有用户之间的共享信息 Server对象-提供服务器端的许多应用函数,如创建COM对象和Scripting组件等,4.2 利用Request对象从客户端获取信息,4.2.1 Request对象简介4.2.2 使用Form数据集合获取表单信息4.2.3 使用QueryString获取查询字符
2、串信息4.2.4 使用ServerVariables获取环境变量4.2.5 使用ClientCertificate获取身份验证4.2.6 TotalBytes属性4.2.7 BinaryRead方法,4.2.1 Request对象简介,Request对象用来获取客户端信息,主要依靠5种数据集合,分别是QueryString、Form、Cookies、ServerVariables、ClientCertificate。语法为:Request.数据集合(参数)例如:Request对象还有两个不太常用的属性TotalBytes和方法BinaryRead,Request对象的属性,Request对象的
3、方法,4.2.2 使用Form数据集合获取表单信息,在ASP中,获取FORM表单中的信息就是用Form获取方法来实现的。语法:Request.Form(参数),例4-1 简单的计算器,例4-3 简单的计算器,例4-4 简单的计算器,Form数据集合示例1,示例1:一个简单的计算器表单的例子,Form数据集合示例2,示例2:表单和表单处理写在同一个文件中,Form数据集合示例3,填写注册信息的例子,4.2.3 使用QueryString获取字符串信息,可以利用QueryString获取方法取到标识在URL后面的所有变量及其值;为什么要用该获取方法?语法:Request.Querystring(“
4、参数”),QueryString集合是Request对象中最常用的一个集合,它是将并不是客户端输入的内容从一个页面传送到另一个页面。此方法与form方法类似,唯一不同的是QueryString方法读取参数时,HTML表单的Method应该设置为get。,例4-6 利用超链接传递信息,例补充4-6a 使用get方法,例4-6b QueryString数据集合获取客户端数据信息,在地址栏输入:http:/localhost/ch4/bucong4-2.asp?mm=wxf&pwd=123,则输出结果为:,QueryString方法示例,4.2.4 使用ServerVariables获取环境变量,利
5、用该方法可以获取服务端或客户端的一些信息,如来访者的IP地址。语法如下:Request.ServerVariables(variablename)其中variablename表示环境变量名称字符串,常用的环境变量 有:LOCAL_ADDR服务器端IP地址REMOTE_ADDR客户端IP地址SCRIPT_NAME正在运行的脚本文件的路径信息例4-8 显示来访者IP,ServerVariables方法示例,4.2.5 使用ClientCertificate获取身份验证,如果客户端浏览器支持SSL(Secure Sockets Layer,安全套接层)协议,并且服务器端要求进行身份验证,则利用Cli
6、entCertificate数据集合就可以获取客户端浏览器的身份验证信息。语法如下:Request.ClientCertificate(keyword)例如:Request.ClientCertificate(Subject)可返回验证主题信息。,4.2.6 TotalBytes属性,该属性用来获取客户端发出的请求数据的字节大小,语法如下:Request.TotalBytes例如:,4.2.7 BinaryRead方法,该方法用来以二进制方式获取客户端用POST方法提交的数据。语法为:Request.BinaryRead(count)其中count表示准备读取数据的字节大小,取值可以是0至Re
7、quest.TotalBytes的整数。比如下面的例子将以二进制方式获取提交的全部数据:,4.3 Response对象向客户端输出信息,4.3.1 Response对象简介4.3.2 使用Write方法输出信息4.3.3 使用Redirect方法实现页面重定向4.3.4 使用End 方法停止处理脚本程序4.3.5 Buffer属性、Clear方法、Flush方法4.3.6 BinaryWrite方法4.3.7 关于HTTP响应信息的复杂操作,关于Response对象,每当客户端向服务器端发出一个HTTP请求信息,服务器端就会给客户端返回一个HTTP响应信息。在该信息中不仅包含了要输出到页面上的
8、信息,也包括HTTP内容类型、字符集名称等信息。而这些信息都要靠Response对象来输出。以前已经多次用到Response.write方法了。,4.3.1 Response对象简介,Response对象用来向客户端输出信息。Response对象常用的方法有:1Write:直接送出信息给客户端。2Redirect:引导客户端至另一个URL位置。3.End:结束程序运行。4Flush:立刻输出缓冲区中的页面内容。常用的属性有下面两个:1Buffer:设置为缓冲信息。2Expires:页面在缓存中保存的时间。Response对象的数据集合:Cookies,它负责设置客户端浏览器的Cookie值。,
9、使用Write方法输出信息,向客户端输出信息语法:Response.Write 变量数据或字符串如:Response.Write 您来访的日期是&Date()输出一个字符串表达式简略语法:如:,Write方法示例,示例:用两种方法输出信息,例4-9 用两种方法输出信息,4.3.3 Redirect方法实现页面重定向,为什么要使用该方法?语法为:Response.Redirect url其中url表示相对路径、绝对路径或URL字符串.例如:,示例:根据不同的用户类型引导至相应的页面,例4-10 重定向,4.3.4 使用End方法停止处理脚本程序,在ASP程序中碰到Response.End语句后,
10、程序立即终止,不过它会将之前的页面内容发送到客户端,只是不再执行后面的语句了。该方法经常用在调试程序的时候,可以暂时用该语句屏蔽后面的语句,类似于逐条注释掉后面的语句。,例4-11 用end方法终止程序,End方法示例,4.3.5 Buffer属性和Clear、Flush方法,Buffer属性用来设置服务器端是否将页面先输出到缓冲区,它的值为True或False。当Buffer为True时,它要把页面输出至缓冲区,当Buffer为False时,服务器端不再将页面输出至缓冲区,会直接将页面输出至客户端浏览器。当Buffer的值为True时,Clear方法用于将缓冲区中的当前页面内容全部清除,Fl
11、ush方法用于将缓冲区中的当前页面内容立刻输出到客户端。想一想为什么要在redirect方法中用Buffer属性?,Clear、Flush方法示例,请分析输出结果。,例bucong4-3 缓冲区的使用,4.3.6 BinaryWrite方法,该方法用于在不进行任何字符转换的情况下以二进制方式输出信息。其语法为:Response.BinaryWrite 二进制数据变量该方法还可以和TotalBytes属性、BinaryRead方法联合起来使用,以二进制方式获取客户端提交的表单信息并以二进制方式输出到页面上。,4.3.7 关于HTTP响应信息的复杂操作,Response对象还有几个不常用的属性和方
12、法用于控制输出信息方式和添加HTTP响应信息。(1)缓存网页CacheControl属性用于设置是否允许缓存,Public表示允许,Private表示不允许。(2)创建HTTP响应信息的状态行信息利用Status属性就可以给客户端发送一个状态行信息(3)添加HTML文档头信息 利用AddHeader方法也可以动态添加有关信息(4)设置内容类型和字符集利用Content-Type和Charset属性可以设置输出页面的内容类型和字符集,4.4 使用Cookie在客户端保存信息,4.4.1 Cookie简介4.4.2 使用Response对象设置Cookie4.4.3 使用Request对象获取Co
13、okie4.4.4 Cookie综合示例,4.4.1 Cookie简介,Cookie俗称甜饼,可以在客户端长期保存信息。它是服务器端发送到客户端的一些文本,保存在客户的硬盘上,一般在Windows文件夹下临时文件夹下的Cookies文件夹里。每个网站都可以有自己的Cookie,但是每个网站只能读取自己的Cookie。Cookie有两种形式:会话Cookie和永久Cookie。前者是临时性的,只在浏览器打开时存在;后者则永久地存在于用户的硬盘上并在有效日期之前一直可用。ASP利用Response对象的Cookies数据集合设置Cookie的值,利用Request对象的Cookies数据集合来获取
14、Cookie的值。,4.4.2 使用Response对象设置Cookie,可以使用Response对象的Cookies数据集合设置Cookie的值,语法如下:Response.Cookies(cookiename)(keyword)|.attribute=valueResponse的Cookies数据集合的主要属性Expires:设定Cookie的有效日期。如果省略,则关闭浏览器时该Cookie则消失。,设置Cookies,(1)设置不含关键字的单值Cookie设置单值Cookie很简单,只要指定Cookie名称和它的值即可。例如:(2)设置含关键字的多值Cookie多值Cookie就类似于一
15、个数组,可以包含多个元素,分别用关键字指定即可。例如:,(3)设置Cookie的有效期如果不设置Cookie的有效期,则关闭浏览器后该Cookie就消失了/下面就针对上面的例子设置有效期:,4.4.3 使用Request对象获取Cookie,可以利用Request对象的Cookies数据集合获取Cookie的值,语法如下:Request.Cookies(cookiename)(keyword)|.attribute,获取Cookie的值,(1)获取单值Cookie的值(2)获取含关键字多值Cookie的值,(3)判断Cookie是否含有关键字如果想知道一个Cookie是否含有关键字,可以利用H
16、askeys属性。返回值True表示含有关键字,False表示不含关键字。如:,4.4.4 Cookie综合示例,综合示例,用来显示用户第几次光临本站。,例4-12 缓冲区的使用,4.5 本章小结,本章重点之一就是服务器端如何利用Request对象的Form、QueryString和Cookies数据集合获取客户端的信息;重点之二就是如何利用Response对象Write方法和Cookies数据集合向客户端输出信息。,5.5 使用Cookies集合551 知识讲解Cookies方法1Cookies基本知识(1)什么是Cookies?Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记
17、忆一定的信息。Cookies的工作原理是:第一次由服务器端写入到客户端的系统中,以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端进行判断,然后再产生HTML代码返回给客户端。(2)Cookies为何能够持久发挥作用?如果服务器没有检测到与用户的对话对应的独一无二的ID,它将生成一个ID并以Cookies的形式发送至客户端。因此,如果用户接受此Cookies,只需接受一次即可。如果不接受此Cookies,伴随每一次点击,都将收到同样的Cookies接受请求,直至接受为止。,(3)Cookies对于访问者有什么作用?浏览网上商店时,如果选择了几款货物放到购物车里,然
18、后离开。借助Cookies,几天以后再回来时,可以不必重复以前的操作,所选择的货物会仍然保存在购物车中。此外,借助Cookies技术,还可以更好地使用广告页面或网站特定访问区域提供的信息。总体上说,Cookies能够让我们通过分析数据流检测到什么对自己有用,什么没有用,因此可以帮助网站开发者提供更好的网站。2使用Response对象设置CookiesCookies是通过Response对象的Cookies来创建的。Cookies共有5个属性,如表5-9所示。,Response.Cookies(Cookies名)key.属性=值下面是几个具体实例。(1)设置一个不含key的Cookies。(2)
19、设置一个含key的Cookies。(3)设置Cookies有效期。3使用Request对象获取Cookies利用Request对象的Cookies集合的目的在于获取Cookies的值。Request.Cookies(Cookies名)key.属性例如:,553 拓展训练“制作Ccookies用法示例”网页例bucong4-4 创建Cookies并读取Cookies用法示例,Cookies数据集合Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记
20、录你的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器。反过来,如果你希望把Cookie发送到客户机,就可以使用Response.cookie。,注意:通常Cookies文件存放在C:WindowsCookies目录中(对于Win98/Me系统),对于Win2000/XP系统,Cookies文件通常存放在C:Documents a
21、nd Settings中该用户目录下的Cookies子目录中。如果客户关闭了Cookies选项,Session就不起作用了。在IE6.0中,点击“工具”菜单中的“Inetnet选项”菜单项,打开“Intenet选项“对话框,选择”隐私“选项卡,单击其中的”高级“按钮,在打开的”高级隐私策略设置“对话框中选中”覆盖自动Cookies处理“复选框,然后选择”拒绝“选项,这时就关闭了Cookies,使用格式为:Response.Cookie(Cookie名).(键名).属性Request.cookie(String)(key)|.attributes其中,String指要检索其值的Cookie,Ke
22、y为可选参数,用于从字典中检索子关键字的信息。Attribute属性指定Cookies自身的有关信息,它可以是下列之一:ExpiresAbsolute属性该属性可以赋一个日期,过了这个日期Cookie就不能再被使用了。通过给Expires属性赋一个过期的日期,就可以删除Cookie。Domain属性该属性定义Cookie要传送的唯一域。HasKeys确定Cookie是否包含多个关键字,若包含则Cookie返回true,否则返回false。Path如果此项被指定,则Cookie将只发送到对该路径的请求中,若未设置则使用应用程序的路径。Secure设置Cookie的安全性。,例bucong4-5.
23、asp Cookie的使用 名为user的Cookie 有下列值)next else Response.Write(user&的值是:&Request.Cookies(user)&)end if%运行,bucong4-6.asp 将cookies写入计算机硬盘HTMLwritecookies.asp,bucong4-7.asp读取Cookies readcookies读Cookie的示例-for each key in Request.Cookies(cookie)Response.Write Key 名字:&key&,值:&Request.Cookies(cookie)(key)&next else,Response.Write Cookie 名字:&Request.Cookies(cookie)&end if next%,以上程序是读取每一个未过期有cookies文件并显示其所有值,下面的显示结果正是上例所建立的cookies。,Thank You!,