|
引言什么是对象呢?客观世界中的任何实体都可以称为对象。例如:学生、班级、学校等等。所以:对象是一个封装数据属性和操作行为的实体。数据属 性描述了对象的静态特征,即对象的状态。操作又称为方法和服务,他描述的是对象的执行功能。一个对象可以包含有多个数据属性和操作。所以 :简单说对象就是一个被封装好的,具有一定特征的事物,作为用户可以不需要知道对象的内部结构和原理,直接使用。引言AtiveSe rverPages提供了可在脚本中直接使用的内建对象,称为内置对象.它有七个内置。它们分别是:request对象、respo nse对象、session对象、application对象、server对象和objectcontext对象、aperror对象。 引言第四章请求与响应本章主要内容:1. 了解HTML中数据传递方式2. 了解Request对象及其成员3. 使 用Request对象获取数据4. 了解Response对象及其成员5. 理解Cookie,以及Cookie的使用4.1 HTML中数据传递方式一、POST方法POST方法是通过Form表单的形式来实现的。method="post"action="">Name:Form表单的名称Method:数据的传递方法A ction:接收并处理数据的程序4.1HTML中数据传递方式例如:“post"action="4-1.asp">请填写您的个人信息 姓 名:
年龄:
ttype="reset"name="Submit2"value="重填">4.1HTML中数据传递方 式二、GET方法GET方法传递数据有两种形式。1、通过Form表单的形式来实现数据传递"method="GET"action="">4.1HTML中数据传递方式2、通过附加地址形式进行数 据传递方法:在连接的地址后面附加数据的形式进行数据传递。例如:2>说明:使用?将连接与传递的数据分开;传递多个数据时使用&符号分开;name=白芸,name是传递的数据名,白芸是进行传 递的数据,注意书写格式,没有引号。4.1HTML中数据传递方式三、GET方法和POST方法的区别GET方法和POST方 法的最大区别就是:GET方法是通过附加地址进行数据传递的;POST方法则是以单独的模块将数据发送到服务器的。所以:GET方法适用 于传递数据较少,传递信息的长度有限,具体与客户端浏览器和版本有关,还有使用GET方法所输入的信息在许多浏览器地址框内直接显示,适用 于安全性要求不高的情况;POST方法适用于传递数据较大,传递信息的长度没有限制,适用于安全性要求高的情况。4.2Reque st对象Request对象的语法描述如下:Request[.collection|property|method](var iable)Request对象共提供了1个属性,1个方法和5个数据集合4.2Request对象一、Request对象属 性属性名称:totalbytes语法格式:request.totalbytes含义:从客户断接收字节的长度4.2Req uest对象二、Request对象的方法方法名称:binaryread语法格式:request.binaryread 含义:以二进制方式读取客户端使用post方法传送来的数据注意:使用该方法就不能使用数据集合,使用数据集合也不能使用该方法。所以实 际应用中多使用数据集合,而方法使用的很少4.2Request对象三、Request对象的数据集合集合就是由数据所组成 的数组。Request对象共有五个数据集合:Form数据集合、QueryString数据集合、cookies数据集合、Serve rVariables数据集合和ClientCertificate数据集合。如果指定的变量不是上述五个集合中的一个,Request对 象将返回empty值。采用下面的语法可取得某个特定数据集合的内容值:内容值=Request[.collection]( “变量名称”)4.2Request对象(一)、Form数据集合功能:获取HTML的Form表单中,method方法为p ost时,所传递的数据。4.2Request对象例如:"post"name="form1">姓名:
密码: 性别:puttype="radio"name="sex"value="男">男ttype="radio"name="sex"value="女">女 爱好:e="checkbox"name="love"value="音乐">音乐type="checkbox"name="love"value="计算机">计算机 职业:lectname="career">教育业 option>金融业 其它 r>ttype="reset"value="重新填写"size="20">简述:roduction"rows="2"cols="40"wrasp="soft"> >4.2Request对象方法一:通过表单控件名称获取集合中的数据<%Dimuser_ name,password,sex,love,career,introduction''定义变量user_name=Req uest.Form("user_name")password=Request.Form("password")sex=Req uest.Form("sex")love=Request.Form("love")career=Request.Form("c areer")introduction=Request.Form("introduction")%>姓名:<%=user_n ame%> 密码:<%=password%> 性别:<%=sex%> 爱好:<%=love%> 职 业:<%=career%> 简介:<%=introduction%>4.2Request对象方法二:通过表单控件 的整数索引获取集合中的数据<%Dimuser_name,password,sex,love,career,introduct ion''定义变量user_name=Request.Form("user_name")password=Reques t.Form(1)sex=Request.Form(2)love=Request.Form(3)career=Request .Form(4)introduction=Request.Form(5)%>姓名:<%=user_name%> 密码 :<%=password%> 性别:<%=sex%> 爱好:<%=love%> 职业:<%=career% > 简介:<%=introduction%>此方法当表单控件发生变化时,会引起值的错误,并且程序的可读性差,不推荐使用 4.2Request对象方法三:通过集合的count属性,修改方法二通过集合的count属性,可以读出集合的数量<% Fori=0toRequest.Form.countResponse.writeRequest.Form(i)nex t%>此方法可读性差,输出格式控制不方便,不推荐使用4.2Request对象方法四:使用foreach语句获取集合 中的数据foreachformelementinrequest.formresponse.writerequest .form(formelement)&" "next4.2Request对象说明:1、如下情况request.form(“user_name”)的值应是什么?4.2Reques t对象2、如下情况 爱好:音乐ype="checkbox"name="love"value="数学">数学ame="love"value=“计算”>计算 request.form(“love”)的值应是什 么?4.2Request对象3、对于复选框,还可以定义不同的名字,而可以省略value属性(当然也可以不省略).ormaction="4-2.asp"method="post"name="form1">爱好:type=“checkbox”name=“love1”>音乐e2">数学计算4.2Re quest对象4、对于下拉列表控件,如下情况name="form1">职业: 教育业e="金融业">金融业其它> 对于包含multiple属性的下拉列表控件,requ est.form(“career”)的值是什么?同上。注:Multiple属性允许一次可选多个选项;缺省时,一次只能选一项。 4.2Request对象5、关于form中的action属性,如果action="",则表示由程序本身处理表单。这样表单和 处理程序就可以写在一个程序中。4.2Request对象例如:t"name="form1">姓名:
密码: <%I fRequest.Form("user_name")<>""andRequest.Form("password")<>"" thenDimuser_name,password,sex,love,career,introduction''定义 变量user_name=Request.Form("user_name")password=Request.Form("pa ssword")endif%>姓名:<%=user_name%> 密码:<%=password%> 注意 if语句的使用。4.2Request对象6、Request.Form("user_name")书写,还可以简化为:Re quest("user_name")不推荐使用该方法表单验证在B/S结构模式中,为了保证客户端数据提交的正确,在设计时通 常对客户端的数据进行验证。表单数据验证可在客户端进行,也可在服务器端进行。客户端验证主要采用JS技术。服务器端则采用ASP技术。 如果进行服务器端验证,则会增加服务器的负担,所以通常大都在客户端验证。为了确保数据的正确,通常是采用双重验证,即先在客户端验证 ,然后在服务器端验证。下面主要介绍客户端数据验证。ipt">od="POST"action="add1.php"onSubmit="returnsubmitit();">le>名称: | "name"type="text"> | |
联系电话: | | >电子信箱: | > | le"bgcolor="#EFEFEF"> ="重置">
例2:利用ajax技术实 现表单验证4.2Request对象(二)QueryString数据集合使用QueryString集合可以获取:A、获 取表单中以get方法传送的数据B、获取超连接传送的数据4.2Request对象例如1:< formname="form1"method="get"action="submit3.asp"> 请填写您的个人信息 姓名:xt"size="16"> 年龄:="text"size="6"> mit"value="确定">重填">4.2Request对象处理程序如下:>下面是你的个人信息你的姓名:<%=request.querystring("name")%>
你的年龄:<%=request.querystring("age")%> 4.2Re quest对象例如2:e=20&major=电子商务>查看郑宁的资料=19&major=电子商务>查看董建的资料4.2Request对象处理表单输 入程序SUBMIT4.ASP下面是你的个人信息<%response.writ e"你的姓名:"&request.querystring("name")&" "response.write"你的性别 :"&request.querystring("sex")&" "response.write"你的年龄:"&reque st.querystring("age")&" "response.write"你的专业:"&request.query string("major")&" "%>4.2Request对象(三)Serve rvariables数据集合语法Request.Servervariables(“ServerenvironmentV ariable”)参数说明:ServerenvironmentVariable是环境变量名称也可以是HTTPHeader s。下表列出了常用的环境变量。4.2Request对象例:建立一个简单的使用Servervariables集合显示服务 器环境变量的程序server5.asp<%d=request.servervariable s("local_addr")response.write"接受请求的服务器地址为:"&d%> 4.2Request对象例:<%foreachnameinrequest.ser vervariablesresponse.writename&":"&request.servervariables(name )&" "next%>4.2Request对象(四)ClientCertifi cate数据集合ClientCertificate数据集合是从Web浏览器发布的请求中获取验证字段(由X.509标准指定)。语 法格式:Request.Clientcertificate(“关键字[子字段]”)4.2Request对象(五)Co okies数据集合我们将在Response对象中与Response对象的Cooikes数据集合一块儿说明,在这里我们就不介绍了。 4.3Response对象4.3.1Response对象的成员4.3Response对象4.3Respo nse对象4.3.2Response对象方法的使用一、Write方法1、语法:Response.Writevaria nt参数说明:variant代表需要输出的数据,它可以是任何合法的数据类型,也可以是字符串。值得注意的是,字符串并不包括字符 组合“%>”或“””,如果需要,可用转义序列“%\>”或重复使用“””字符来实现。注意:此方法还可以简写成<%=variant% >,但是当简写时,必须在每个variant的两端都有<%和%>。4.3Response对象<% response.write“Hello,myfriend!”&” ”response.write“您好!”% >4.3Response对象4.3Response对象二、Redirect方法1、 语法:Response.RedirectURL参数说明:URL表示浏览器重定向到的统一资源定位符。URL须放在“”的里 面。注意:在使用时,必须在脚本页面的首行加上<%Response.Buffer=true%>语句,否则脚本在运行时会出错 。此方法是立刻生效的,在其后边的脚本语句都不会执行,服务器也就不会将缓存的内容发送给客户端。此方法将产生一个将重定向URL作为链 接包含的自动响应正文。在使用此方法时,必须放在所有HTML元素之前,否则将出现错误信息。4.3Response对象例 首先是一个用户注册的页面,如果姓名处填写teacher,则显示一个“这是教师页面”的页面,如果填写student,则显示一个“这是 学生页面”的页面,否则出现一个“对不起,你是非法用户,请返回重新填写”的页面4.3Response对象注册界面4.3 Response对象<%response.buffer=true%><%dimnamena me=request.form("name")ifname="teacher"thenresponse.redirect "redirectc9.asp"elseifname="student"thenresponse.redire ct"redirectd9.asp"elseresponse.write"对不起,你是非法用户,请"&"href=''redirecta9.asp''>"&"返回"&""&"重新填写"endifendif%> html>4.3Response对象三、Response对象的其他方法简介1、Flush方法Flush方 法可以决定服务器是否将缓冲区的信息立即发送到客户端。如果未将Response.Buffer设置为TRUE,则该方法在运行时将会出 错。语法如下:Response.flush例如:<%response.buffer=true%>ody><%Response.write“今天是星期一”Response.flushResponse.write“今天 是星期日”Response.clear%>4.3Response对象三、Respons e对象的其他方法简介2、Clear方法此方法用来删除缓冲区中的所有HTML输出,但此方法只删除响应正文,而不删除响应标题。它一 般用来处理错误情况,应该注意的是必须将Response.Buffer设置为TRUE,否则该方法在运行时将会出错。语法如下: Response.Clear说明:A、该方法只清除HTML中的body部分,而html中head部分仍保留B、clea r方法使用时,response的buffer属性一定要设置为true例如:<%response.buffer=true%>< html><%Response.write“今天是星期一”Response.write“今天是星期日”R esponse.clear%> | |