第三章Request和Response对象1.对象知识简介2.利用Request对象从客户端获取信息3.利用Response对象向客户端输出信息重点:Request和Response对象的使用方法3.1对象知识简介•面向过程程序设计:从解决问题的每一个步骤入手,适合解决规模较小的简单问题。•面向对象程序设计:按照现实世界的特点管理复杂的事物,事物抽象为对象,并具有自己的状态和行为,通过消息反应来完成一定的任务。•对象:属性、事件和方法的集合。一切事物均可视为一个对象。3.2利用Request对象从客户端获取信息•Request对象用来从客户端获取有关的信息,有五种方法:QueryString、Form、Cookies、ServerVariable和ClientCertificate。•本章仅介绍Form和QueryString两种方法,其它方法以后再介绍。3.2.1使用Form获取方法•上网时经常会遇到填写注册信息这类的界面。它是通过HTML中的FORM表单实现的,一般包括文本框、按钮、单选框、复选框、下拉框等基本元素,填写好后,单击【确定】或【提交】按钮将输入的信息传送到服务器,然后调用相应的程序来处理输入的信息。3.2.1使用Form获取方法(续)HTML中的FORM格式:Formaction=处理程序名或网址method=“get”|”Post”name=该Form的名称onreset=按下reset键所调用的程序onsubmit=按下submit键所调用的程序target=输出窗口或分页名称……Form元素……/Form3.2.1使用Form获取方法(续)•在ASP中,获取HTML的Form表单中的信息使用Form方法,method方法应用post•HTML的Form负责规定信息输入界面及信息输入;而ASP的Form是Request对象的获取信息的一种方法。3.2.1.1单行文本框的制作htmlheadtitle单行文本输入举例/title/headbodyForm请输入学校名称:InputType=TextName=Ex01Value=上海大学Size=30MaxLength=50/Form/body/html3.2.1.1单行文本框的制作(续)Input的属性:(1)Type=“Text“设置输入内容是文本类型(2)Name=“Ex01“将输入内容命名为Ex01(3)Value=“上海大学”预置文本内容为上海大学(4)Size=30设置输入窗口的长度为30字节(5)MaxLength=50设置最多输入字节数为503.2.1.1单行文本框的制作(续)3.2.1.2多行文本框的制作htmlheadtitle行文本输入举例/title/headbodyFormTextAreaName=x2Rows=10Cols=60建议如下:/TextArea/Form/body/html3.2.1.2多行文本框的制作(续)3.2.1.3单选按钮的制作htmlheadtitle单选按钮举例/title/headbodyForm请任选一项:pInputType=RadioName=SexValue=男男InputType=RadioName=SexValue=女女/Form/body/html3.2.1.3单选按钮的制作3.2.1.3多选按钮的制作htmlheadtitle多选按钮举例/title/headbodyForm请任选几项:pInputType=CheckBoxName=x1Value=篮球篮球InputType=CheckBoxName=x2Value=排球排球InputType=CheckBoxName=x3Value=足球足球InputType=CheckBoxName=x4Value=游泳游泳/Form/body/html3.2.1.3多选按钮的制作3.2.1.4提交和重置按钮的制作Form请任选几项:pInputType=CheckBoxName=x1Value=篮球篮球InputType=CheckBoxName=x2Value=排球排球InputType=CheckBoxName=x3Value=足球足球InputType=CheckBoxName=x4Value=游泳游泳pInputType=SubmitValue=提交InputType=ResetValue=重置/Form3.2.1.4提交和重置按钮的制作(续)3.2.1.5下拉菜单的制作Form职业:selectname=careeroptionvalue=教育业教育业/optionoptionvalue=银行业银行业/optionoptionvalue=保险业保险业/optionoptionvalue=证券业证券业/optionoptionvalue=其它其它/option/select/Form3.2.1.5下拉菜单的制作(续)3.2.1.5下拉菜单的制作(续)Select带有Name、Size和Multiple三个属性:(1)Name属性指定当Form提交时输入信息的名字;(2)Size属性指定同时显示在菜单中的选项数;缺省值为1;(3)Multiple属性允许一次可选多个选项;缺省时,一次只能选一项。Option的Selected指定选项缺省3.2.2将表单数据以E-Mail形式发送•如果想将表单数据以E-Mail形式发送给指定的收件人,可以使用Form标记的Action属性指定收件人的E-Mail地址。•示例:FormMethod=“Post”Action=“mailto:info@shu.edu.cn”3.2.3用Request.Form()方法读取表单数据•Request.Form(参数)•例如:%Request.Form(“User_Name”)%3.2.3Request.Form()示例•Request.Form(参数)•例如:%Request.Form(“User_Name”)%formaction=4-2.aspmethod=postname=form1姓名:inputtype=textname=user_namebr密码:inputtype=passwordname=passwordbr性别:inputtype=radioname=sexvalue=男男inputtype=radioname=sexvalue=女女br爱好:inputtype=checkboxname=lovevalue=音乐音乐inputtype=checkboxname=lovevalue=计算机计算机br职业:selectname=careeroptionvalue=教育业教育业/optionoptionvalue=金融业金融业/optionoptionvalue=其它其它/option/selectbrinputtype=submitvalue=确定size=20inputtype=resetvalue=重新填写size=20简述:textareaname=introductionrows=2cols=40wrasp=soft/textareabr/form%Dimuser_name,password,sex,love,career,introduction'定义变量user_name=Request.Form(user_name)‘前面的user_name是一个变量,后面的user_name是表单中一个元‘素的名字,不是一回事password=Request.Form(password)sex=Request.Form(sex)love=Request.Form(love)career=Request.Form(career)introduction=Request.Form(introduction)%姓名:%=user_name%br密码:%=password%br性别:%=sex%br爱好:%=love%br职业:%=career%br简介:%=introduction%3.2.2QueryString获取方法•网页之间的信息传递还可以利用QueryString方法获取标识在URL后面的所有返回变量及其值•例如:当客户端发出如下请求时,QueryString将可得到name和age两个变量的值。ahref=“4-1.asp”?name=白芸&age=223.2.2QueryString获取方法示例htmlheadtitleQueryString用法示例/title/headbodyahref=4-5.asp?name=白芸&age=22显示/a/body/html3.3QueryString获取方法示例htmlheadtitleQueryString用法示例/title/headbody%Dimname,agename=Request.QueryString(name)age=Request.QueryString(age)%您好,您的姓名是%=name%,您的年龄是%=age%/body/html3.2.2利用Response对象向客户端输出信息•ASP的内部对象Response用于控制对客户端的信息输出。•Response对象有如下:方法:Write:直接输出信息到客户端Redirect:引导客户端至另一个URL位置Cookies:设置Cookies值属性:Buffer:设置缓冲区信信息ContentType:控制送出的信息类型3.2.2.1使用Write方法输出信息•格式:Response.Write变量/字符串%=变量/字符串%•功能:在客户端显示变量/字符串的值•例%Response.Writeuser_name&”您好!”Response.Write“您好”&age%3.2.2.1Write方法示例%Dimname,ageName=“赵芳”Age=20Response.Writename&您好,欢迎您Response.Write,您的年龄是&Cstr(age)%%=name&您好,欢迎您%%=,您的年龄是&Cstr(age)%3.2.2.1Write方法示例3.2.2.2Redirect方法•格式:Response.Redirect网址变量/字符串•功能:引导客户端到网址变量/字符串所指定的网页。•例Response.Redirect“index.asp”ThisURL=“”Response.RedirectThisURL3.2.2.2Redirect方法•Redirect使用注意:Redirect语句必须放在所有HTML元素之前;否则,要在ASP文件开头加上%Response.Buffer=True%3.2.2.2Redirect方法示例%Dimuser_typeuser_type=teacherIfuser_type=teacherThenResponse.Redirectteacher.aspElseResponse.Redirectstudent.aspEndIf%3.2.2.3Buffer属性•格式:Response.Buffer=True/False•功能:为True时,页