《第5章Web表单和Request对象ppt课件》由会员分享,可在线阅读,更多相关《第5章Web表单和Request对象ppt课件(30页珍藏版)》请在金锄头文库上搜索。
1、第5章 Web表单和Request对象本章要点: WEB中表单的设计和数据的提交 掌握文本框、复选框、下拉菜单、单选按钮等控件的运用 Request对象详解v在Web应用程序中,用户浏览信息、输入信息以及与服务器的交互,都通过浏览器实现。用户提交请求数据,必须先在浏览器页面上输入数据,然后通过表单向服务器提交请求数据,服务器将处理的结果通过浏览器再输出到相应的页面中。v第4章介绍了有关Response对象的运用,它主要作用是把数据下载到浏览器,而Request对象则是用来读取浏览器的信息,例如获取用户通过浏览器输入的数据。本章详细介绍如何设计用户输入数据的表单以及如何处理用户请求的数据。5.1
2、 Web表单v5.1.1表单数据的提交v在一个Web应用程序中,HTML表单也称窗体是收集用户请求数据最基本的方法。要建立一个交互式的Web应用程序,需要使用HTML表单,它可以让用户输入信息,并对此做出反应。使用表单可以建立类似复选框、单选按钮以及文本框等常用控件也可称为元素)。在网上可以经常看到诸如会员注册、用户登录、留言簿、论坛等用表单形式实现各种交互功能的应用。格式里包含的属性:v name属性v表示该表单的名称。v method属性v表示表单的请求类型,服务器应该如何处理由浏览器提供的URL信息。通常包括两种常用的属性值:get和post。表单在发送数据时,若采用get方法,会把数据
3、作为URL的参数。而用post方法提交,发送的信息包含在请求的主体之中,不会显示在URL中。通常采用post方法比较多。v action属性v表示将当前表单中的数据发送到哪个文件进行处理,通常是一个ASP文件。如在5_1a.asp文件的表单中action=5_1b.asp,表示将当前表单中的所有控件的值发送到5_1b.asp文件进行处理。由此可知,为什么点击“提交按钮后,浏览器会自动转到5_1b.asp页面。如果提交到本页面,则可以省略action属性。格式里包含的属性:v enctype属性v表示数据传送MIME类型,通常可以省略。v target属性v表示输出窗口或分页的名称,在框架中处理
4、表单时,经常会使用。比如在点击“提交按钮后,使action所指的目标也在新建页面中打开,则可把target属性设置为“_blank”。通常可以省略。v在这里强调的是:表单控件包括文本框、密码框、复选框、单选按钮、下拉菜单控件、列表框、提交按钮、多行文本框以及隐藏控件必须添加在之间,添加在之外的控件的数据,将不会被正确提交到目标页中。而且,一般在表单中应该至少包含一个提交按钮,如。在浏览器中通过单击该提交按钮,将把表单中的数据发送到目标页面中进行处理。注意它的类型往往会是submit。5.1.2用Request对象接收表单数据v前面介绍通过指定表单的action属性,可将表单控件的数据发送到目标
5、页。而在目标页中,如何接收表单提交过来的数据呢?这里,需要使用Requeset对象进行数据接收,Request对象接收数据简化的格式为:vRequest (参数)v 其中的参数表示form表单中控件或元素的名称或者是变量名。form的method属性和Request对象接收集合的对应关系method属性Request对象的集合PostRequest.form(参数),其中参数一般为表单form中控件的名称getRequest.QueryString (参数),参数可以是控件的名称,也可以是URL后跟的参数变量名5.2 Web表单控件v众所周知,要建立一个交互式的网页,需要使用HTML表单,它可
6、以让管理员收集访问该网站的用户提供的信息,并对此做出反应。使用表单,可以建立像文本框、按钮、复选框、单选按钮及列表框等控件。有了这些控件用户就可以随心所欲的进行交互。5.2.1文本框v文本框是最基本的表单控件,几乎每个表单都要用到文本框控件。它的HTML格式如下:vv在该格式中,以为基本标记,其中包含了type、name、size、maxlength、value等属性,下面逐一介绍。v1.标志v该标记是文本框控件的起始标记,以Input开头的控件还有:按钮、密码框、复选框、单选按钮、隐藏控件等,在缺省其它属性的情况下表示文本框控件。v2.type属性v该属性说明控件的类型。如type=text
7、,表示文本框;type=password,表示密码框等。实际上在表示文本框时,type属性可以省略,因为标记符缺省type属性设为text。例如语句,虽然没有指定属性type=text,同样可以表示一个文本框控件。5.2.1文本框v3.name属性v表示控件的名称,一般任何一个要提交数据的控件都必须要加入该属性。它也是Request对象接收数据的依据。例如,要接收文本框输入的内容,就要用Request(text1)来接收。其中的text1就是name属性的值,作为Request对象的参数。v4.value属性v表示文本框控件的默认值,指定在用户输入前缺省状态下文本框中显示的文字。例如,假设有一
8、个文本框,让用户在其中输入国别,预计大部分用户都是中国人,则可以使用将文本框的缺省值设为“中国”。5.2.1文本框v5.size属性v该属性控制文本框的宽度,使用时可根据需要以字符数来指定size属性的值。v6.maxlength属性v该属性限制文本框输入字符的个数。例如,想让用户输入6个数字的邮政编码,也就是不让用户输入超过6个字符,这就要靠maxlength来实现。5.2.2按钮v在HTML表单中使用的典型按钮有三种,分别是重置按钮、提交按钮和普通按钮,它们的HTML格式代码如下:vvvv三种按钮都是以标记开头,决定三种按钮类型的是type属性,其中submit表示提交按钮,是专门用于提交
9、表单内容的;reset表示重置按钮,将当前表单中控件都恢复为默认值value属性的值);button表示普通按钮,它本身没有特殊作用,一般要结合客户端脚本语言使用。其中,提交按钮和重置按钮一般都使用在表单域中。value属性的值决定了在按钮上显示的文字。1.提交按钮v前面已经介绍过提交按钮。当单击提交按钮时,表单内容会提交到action属性所指定的页面进行处理。因而,一般在表单中提交按钮必不可少。当在FrontPage中插入表单时,一般会自动生成提交按钮和重置按钮。且提交按钮必须放置在表单内部,如果放在表单之外,它将起不到提交数据的作用。2.重置按钮v重置按钮的主要作用是将同一表单中的控件都恢
10、复为默认值,所谓控件的默认值就是value属性的值。这样可以避免数据被错误修改。 3.普通按钮v普通按钮本身没有特殊作用,通常需要结合客户端脚本语言VBScript和JavaScript脚本一起使用,例如单击按钮时出现某种特效,这就要结合OnClick事件和客户端脚本进行编程。代码5-3使用单击按钮,用于关闭当前窗口。5.2.3密码框v密码框的工作原理与文本框类似,只是当输入数据时不明确显示,而是用*来代替。这样一来,在一定程度上防止了密码外泄。密码框主要运用在用户注册和登录界面中。5.2.4滚动文本框v普通文本框只能在一行上输入数据,输入的数据比较有限。滚动文本框弥补普通文本框的缺陷,它可以
11、输入更多的数据,且可以换行输入。在FrontPage中要插入滚动文本框可以选择菜单【插入】【表单】【滚动文本框】选项。如果需要设置滚动文本框的属性,则可在插入的滚动文本框上单击鼠标右键,选择“表单域属性”,呈现“滚动支本框属性窗口。使用滚动文本框要注意以下几点v 由于滚动文本框可输入的数据较多,当某一表单要使用滚动文本框时,最好将Method属性设置为Post,若设置成Get,则会受到传输数据量的限制,造成文字传输不完整。v 如果要在ASP程序中使用Response.Write方法显示滚动文本框的内容这儿所指的不是显示在滚动文本框上),特别需要注意换行符。滚动文本框的换行符在VbScript脚
12、本中可使用常量VbCrlf等于Chr(13)+Chr(10))表示,只是它在浏览窗口显示时并不体现换行。所以应该先将其转换成HTML语言中的换行标记或者。而如果是显示在滚动文本框上,则不需要转换。5.2.5复选框和单选按钮v在某些表单中用户不需要输入数据,而只需提供一些固定的选项让用户选择,复选框和单选按钮就是此类控件。复选框可在众多选项中选择多个,而在一组单选按钮中则只允许选择其中一个。5.2.6下拉菜单和列表框v复选框和单选按钮都是可以让用户选择要输入的内容,下拉菜单和列表框也是提供用户选择的控件。v 5.2.7隐藏控件v隐藏控件不显示在窗体中,但控件信息却可以在窗体提交时被包含。v隐藏控
13、件有时候十分有用。在设计ASP程序时,往往会在网页之间传递隐藏信息。使用隐藏控件可以建立不依赖于Cookies的变量,这样做既有优点也有缺点。5.3 Request对象综述v在介绍表单的同时,已经使用了Request对象接收从表单中的数据。实际上,用Request 对象可以访问任何基于HTTP请求传递的信息,包括从HTML表格用POST方法或GET方法传递的参数,cookie和用户认证也可以访问客户端发送给服务器的二进制数据。Request对象包含QueryString、Form、Cookies、ServerVariables、ClientCertificate五个集合和一个BinaryRea
14、d方法以及一个TotalBytes属性。5.3.1Form集合vForm集合可以接收HTML表单中用Post方法提交过来的数据。格式如下: vRequest.Form (element) (index)|.Count v其中,参数element用于指定集合要检索的表单控件元素的名称;index为可选参数,使用该参数可以访问多个数据值中的一个,可以是1到Request.Form(element).Count之间的任意整数;参数Count用于指定集合中元素的个数 。5.3.2QueryString集合vQueryString集合用于接收用Get方法提交的表单数据,也可以检索HTTP查询字符串中变量
15、的值。HTTP查询字符串由问号后面的值所指定,例如有下列一个超链接:v学校 v在Example.asp的问号(?)后传递一个变量School,变量值为“浙江工业职业技术学院”。这样在Example.asp代码中,就可以用Request.QueryString(School)来接收School变量传递的值。GET方法提交的表单或者由用户在浏览器地址栏中键入查询均可以生成查询字符串。5.3.3Cookies集合vCookies俗称甜饼,可以在客户端长期保存访问某个网站的信息。当第一次访问一个WEB站点时,它会将有关信息保存到计算机的硬盘上。下一次访问同一个站点时,站点的页面会读取计算机上的Cook
16、ies,并将新的信息保存到计算机上。5.3.4ServerVariables集合v浏览器浏览网页使用的是HTTP协议,在HTTP的标题文件中会记录一些客户端的信息,如客户的IP地址等等,有时服务器端需要根据不同的客户端信息做出不同的反映,此时需使用ServerVariables集合获取信息。该集合语法如下:vRequest.ServerVariables(服务器环境变量) 5.3.5ClientCertificate集合vRequest对象的ClientCertificate集合提供了客户数字认证。当客户浏览器支持安全套节字层Secure Sockets Layer,SSL协议即URL以HTT
17、PS:/ 开头),而且浏览器所连接到Web服务器页运行于SSL的时候,客户认证将被发送给Web服务器。语法如下:vRequest.ClientCertificate (关键字)5.3.6TotalBytes属性vRequest对象只有一个只读属性即TotalBytes,用来指定客户端在请求中发送的总字节数。语法如下:vCounter=Request.TotalBytesv例如,用来返回客户端发送的总字节数脚本。v5.3.7BinaryRead方法vRequest对象只有一个BinaryRead方法,检索用POST方法从客户端发送到服务器的一部分数据。Request.BinaryRead方法可以
18、直接读取一定字节数的参数,并返回变体类型的数组,其中包含从请求的POST段中得到的字节(例如在ASP的Form集合中数据)。语法如下:vVariant=Request.BinaryRead(Count)v其中参数Variant是个变体类型的数组,用来存储通过BinaryRead返回的信息。Count是用BinaryRead方法所读取的字节数目,通常这个变量的值用于计算利用Request对象的TotalBytes属性返回的值。小结v本章首先通过一个实例展开Web表单的设计和数据提交,深入介绍了文本框、复选框、下拉菜单、单选按钮等的内容;此外,对ASP中的Request对象也进行较为详尽的语法和实例分析。本章对进一步掌握ASP技术有着非常深远的意义。