您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 第8课 WEB数据库-Request对象及其使用
8.1课前导读8.2课堂教学8.3上机练习8.4课后作业第8课Request对象及其使用8.1课前导读输入、处理和输出是所有程序设计语言的基本模式,ASP作为一种类程序设计语言也不例外。在ASP中,Request和Response对象分别完成输入和输出的大部分功能,是ASP技术中非常重要的两个对象:Response对象:用来访问服务器端所创建的并发回到客户端的响应信息,包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。它也提供了一系列的方法用来创建输出,例如无处不在的Response.Write方法。Request对象:为脚本提供了当客户端请求一个页面或者传递一个窗体时,客户端提供的全部信息。这包括能指明浏览器和用户的HTTP变量,在这个域名下存放在浏览器中的cookie,任何作为查询字符串而附于URL后面的字符串或页面的FORM段中的HTML控件的值。也提供使用SecureSocketLayer(SSL)或其他加密通信协议的授权访问,及有助于对连接进行管理的属性。值得一提的是:虽然Request对象的属性与方法各有一个,比Response对象的9个属性8种方法少了许多,但Request对象的集合确有5种,除Cookies集合与Response对象的Cookies集合相对应外,新增的4种集合大大丰富了Request对象获取输入信息的能力。8.2课堂教学8.2.1Request对象概述8.2.2ASP与表单的交互8.2.3使用Form集合8.2.4使用Querystring集合8.2.5使用Cookies集合8.2.6使用ClientCertificate集合8.2.1Request对象概述1.Request对象的集合2.Request对象的属性3.Request对象的方法4.Request对象的使用8.2.1Request对象概述Request对象是负责从客户端浏览器获取用户信息的对象。它是ASP中重要的服务器内置对象,它连接着Web服务器和Web客户端程序。利用Request对象可以接收基于HTTP请求的所有用户信息,如用Post方法或Get方法传送来的参数以及Cookie和ServerVariable等等。1.Request对象的集合Request对象提供了5个集合,可以用来获取客户端对Web服务器请求的各类信息,其说明见表8-1。表8-1Request对象的集合及说明集合名称说明ClientCertificate当客户端访问一个页面或其他资源时,用来向服务器表明身份的客户证书的所有字段或条目的数值集合,每个成员均是只读Cookies根据用户的请求,用户系统发出的所有cookie的值的集合,这些Cookie仅对相应的域有效,每个成员均为只读FormMETHOD的属性值为POST时,所有作为请求提交的FORM段中的HTML控件单元的值的集合,每个成员均为只读QueryString依附于用户请求的URL后面的名称/数值对或者作为请求提交的且METHOD属性值为GET(或者省略其属性)的,或FORM中所有HTML控件单元的值,每个成员均为只读ServerVariables随同客户端请求发出的HTTP报头值,以及Web服务器的几种环境变量的值的集合,每个成员均为只读在这些集合之中,最常使用的是Form、Cookies和QueryString集合。2.Request对象的属性Request对象唯一的属性是TotalBytes,它提供关于用户请求的字节数量的信息:返回由客户端发出的请求信息的字节数。使用中通常关注客户端各项请求信息的值而非整个请求字符串,因此该属性很少被用于ASP页。3.Request对象的方法Request对象唯一的方法是BinaryRead,它允许访问从用户页面FORM段中传递给服务器的请求信息的完整内容。其语法格式为:Request.BinaryRead(count)说明:①count表示当数据作为POST请求的一部分发往服务器时,从客户请求中获得数据的字节数。②该方法返回一个Variant数组(或者SafeArray)。③如果ASP代码已经引用了Request.Form集合,这个方法就不能再用。同样,如果用了BinaryRead方法,也不能再访问Request.Form集合。4.Request对象的使用在ASP中,当客户端请求一个页面或传递一个表单时,Request对象为脚本提供了客户端浏览器所提供的全部信息,包括用户请求的所有信息、用户为该域名存放在浏览器下的Cookie、使用SecureSocketLayer(SSL)或其它加密通信协议的授权访问以及对连接进行管理的属性等。Request对象可以利用集合、属性、方法等来进行参数的传递。其语法格式为:Request.[集合|属性|方法](变量)Request对象中有5个集合可以用来完成客户端对ASP服务器的请求的响应。实际上Request对象是由一群对象的集合组成,在引用客户端页面定义的变量时,有多种方法可以使用。例如,要在Request对象的Form中取得名为“姓名”的信息,可以使用下述赋值命令:name=Request.Form(姓名)也可以不指定集合名(Form),直接使用命令:name=Request(姓名)程序会以QueryString、Form、Cookies和ServerVariables的顺序搜索所有集合,当发现一个匹配的变量时,就认定它是要引用的成员。当然,编程实践中,为避免不同集合中同名变量引用的二义性,最好显式地指定集合。8.2.2ASP与表单的交互在动态网页设计中,表单是必不可少的元素,许多功能的实现都与表单密不可分。表单的主要功能是接受用户填写在表单中的文字、选择项等内容,在HTTP的POST方法之后,由客户端浏览器将信息发送到服务器端。由表单接受用户输入的信息一般要按照程序预设的逻辑判断进行检查,这种检查根据需要可以在客户端或服务器端进行。客户端的逻辑判断一般与表单放在一个页面内,常适用于较为简单的判断;服务器端的逻辑判断只能由表单内action属性所指向的ASP网页来完成,由于服务器端有功能更为强大的对象模型,能实现更为复杂的逻辑判断,因此适用于复杂的逻辑判断。网页中的表单与集合Form是两个不同的概念,虽然它们的英文名称相同。表单的功能是在客户端接受用户的输入信息,是在客户端由浏览器解释的HTML标记,而集合Form则是在服务器端的一种数据结构。一般情况下,客户端表单的信息在执行网页的Post方法后,在服务器端Request对象的Form集合中会有相应的量与之对应。在HTML网页中,表单以标记FORM/FORM开始和结束。表单标记的语法格式为:FORMmethod=传送方式action=URL…/FORM其中①“URL”设置表单处理程序的相对或绝对位置(若要将表单数据寄到电子邮件信箱,可以设置该电子邮件信箱的URL;若没有设置Action属性的值,表示使用默认的表单处理程序);②“传送方式”用于指明交互表单的信息传送方式,有Post和Get两种。③其他属性及其说明见表8-2。表8-2表单的其他属性说明属性名说明accept-charset设置表单数据的字符编码方式,服务器依据该属性指定的字符编码方式处理表单数据。字符编码方式定义于RFC2045,中间以逗号隔开accept设置作为服务器处理表单数据的Mime类型enctype设置将表单数据返回服务器时所采取的编码方式,默认值为application/x-,若您允许浏览者上传文件给服务器,那么ENCTYPE的值须为Multipart/Form-Data;若要将表单数据寄到电子邮件信箱,那么enctype的值可为Text/Plain。name设置表单的名称(限英文),此名称可供Script使用。target设置用来显示表单处理程序结果的目标框架。在表单中可以使用INPUT、SELECT/SELECT、OPTION/OPTION、TEXTAREA/TEXTAREA等控件来定义表单信息项,参见第6课。单击表单中的“Submit”控件,将触发表单的提交事件:onSubmit;单击表单中的“Reset”控件,将触发表单的重置事件:onReset。使用表单传送信息的方式通常有下述三种:①由HTML网页中的表单传送信息给处理该信息的ASP文件;②由ASP文件中的表单传送信息给另一个ASP文件,后者处理该信息;③在ASP文件中的表单所传送的信息由其自身进行处理。其中第3种方式效率较高,但编程较复杂。【例8-1】ASP与表单的交互。使用HTML网页中表单输入并提交信息,网页文件名为8_1.htm,其代码如下:HTMLHEADTITLE利用表单输入信息/TITLE/HEADBODY请输入FORMAction=8_1_1.aspMethod=post姓名:INPUTtype=Textname=姓名size=8br性别:男INPUTtype=Radioname=性别value=男Checked女INPUTtype=Radioname=性别value=女pINPUTtype=Submitvalue=提交INPUTtype=Resetvalue=重写/FORM/BODY/HTML当用户在浏览器中输入表单数据并单击“提交”按钮后,服务器端的表单处理程序8_1_1.asp可以利用Request对象读取浏览器端的数据并返回相应信息。表单处理程序8_1_1.asp的代码如下:HTMLHEADTITLE使用Request对象获得表单信息/TITLE/HEADBODYpalign=center欢迎您登录本站点p%Response.write您是:&Request.Form(姓名)ifRequest.Form(性别)=男thenResponse.write大侠elseResponse.write侠女endif%pahref=8_1.htm如不对,返回/a/P/BODY/HTML上例可以改为使用一个ASP文件传送和处理信息。【例8-2】表单所传送的信息由其所在的ASP文件自身进行处理。代码如下:HTMLHEADTITLE利用表单输入信息/TITLE/HEADBODYH3align=centerASP与表单的交互/H3%xm=Request.Form(姓名)xb=Request.Form(性别)ifxmthenResponse.writep欢迎登录本站点,Response.write您是&xmifxb=男thenResponse.write大侠elseResponse.write侠女endifResponse.writepahref='8_2.asp'如不对,返回/aResponse.endendif%请输入FormAction=8_2.aspmethod=Post姓名:InputType=textName=姓名Size=8性别:男InputType=radioName=性别Value=男Checked女InputType=radioName=性别Value=女pInputType=SubmitValue=提交InputType=ResetValue=重写/Form/BODY/HTML8.2.3使用Form集合当使用表单的Post方式提交数据时,表单中的数据被保存在Request对象的Form集合中。使用Form集合来传递数据的语法格式如下:Request.Form(element)[(index)]|.Count]其中,element为Form集合所要检索的表单元素(控件)名称;Index用于指定表单元素多个值中的某一个,当然此表单元素有多个值时此项才有意义;Cou
本文标题:第8课 WEB数据库-Request对象及其使用
链接地址:https://www.777doc.com/doc-859775 .html