第四章asp书稿.doc

上传人:飞****2 文档编号:60200894 上传时间:2022-11-15 格式:DOC 页数:15 大小:185KB
返回 下载 相关 举报
第四章asp书稿.doc_第1页
第1页 / 共15页
第四章asp书稿.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《第四章asp书稿.doc》由会员分享,可在线阅读,更多相关《第四章asp书稿.doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、对象篇第四章 常用ASP对象Response和Request要点概述1ASP的语法介绍ASP支持许多不同的程序语言(VBScript、JavaScript、PerScript),其中以VBScript对ASP的支持最为完整,使VBScript成为ASP默认的程序语言。所以,对于网页设计的初学者,使用VBScript来撰写ASP程序是较好的选择。在ASP程序代码中,VBScript将被视为特殊的HTML标记。因为,只要在之间的文字语句,都被视为以VBScript编写的ASP程序代码。例如:或者都是ASP的程序代码。2ASP常用内置对象ASP提供了许多内置的对象,这些对象的特殊性在于它们不须定义,

2、就可以在ASP页内直接使用。这里将介绍ASP最常用的5个对象,如表4-1所示。表4-1ASP对象用 途Request在服务器端ASP程序中取得客户端传送过来的信息。Response在服务器端ASP程序中传送信息给客户端。Server使用服务器端相关的功能与信息。Session用来记录客户端个别的信息。Application用来记录所有客户端共有的信息。3Response对象的方法和属性Response的直译是“响应”,所谓响应,对ASP程序来说,就是把数据传送给客户端的浏览器。在本书前面的章节,我们已经使用过Response对象的Write方法(Response.Write)输出数据到浏览器,

3、例如:Response.Write 看到这个测试网页,就说明您的ASP系统已能正常工作了!。ASP的Response对象提供的常用方法和属性见表4-2。表4-2方法或属性用 途Write方法输出数据到浏览器。Redirect方法改变浏览的网页。End方法结束数据的输出。Buffer属性是否设置缓冲区。Clear方法清除缓冲区内的数据。Flush方法输出缓冲区内的数据。IsClientConnected属性浏览器是否还在联机(网)中。4Request对象的集合Request是与Response相对应的对象,其用途是读取浏览器的数据。对于Request对象,使用最多、功能最强大的是它的集合,表4-

4、3即为Request对象提供的5个集合。表4-3集 合用 途Form用来取得客户端表单上传送过来的信息。QueryString用来取得客户端附加在ASP程序网址后的参数信息。ServerVariables用来取得服务器端的环境变量的值。Cookies用来取得客户端存储的Cookies值。ClientCertificate用来取得客户端的身份认证信息。实践指导注意:本章介绍的ASP程序c4_x_x.asp、HTML程序c4_x_x.htm和图片文件均保存到目录C:Inetpubwwwrootaspchap04下,浏览时请在地址栏内输入http:/127.0.0.1/asp/chap04/c4_x

5、_x.asp(或c4_x_x.htm),虚拟目录/asp的创建方法见第一章的介绍。4.1 Response对象1. Response.Write方法【实验1】写一网页c4_1_1.asp传送服务器端的时间和欢迎信息至客户端,并用HTML标记处理网页中的字体和其他属性,如图4-1所示。图4-1【程序】欢迎光临我的网络小屋!现在时间是:【说明】使用Response对象提供的Write方法可以传送数据到浏览器,其语法如下: Response.Write displaydata (1)Response.Write方法传送的数据为自由类型(Variant)。如果传送的是字符串,则必须使用双引号将该字符串

6、包括起来;若字符串中含有双引号,重复双引号一次即可。 如果输出的是一般文字或者HTML标记,编写时可以省略Response.Write。例如: 由于VBScript将双引号内的数据视为字符串来处理,因此如果要使用Response.Write方法来传送HTML标记,必须将上面的语句改成: % Response.Write % 使用Response.Write来传送HTML标记,若只是将HTML标记的头尾用双引号框住,而里面的双引号没有去掉,例如: % Response.Write %则在执行时会发生错误。这是因为VBScript会将两个双引号括起来的部分(灰色的字符)视为字符串来处理,6和fuc

7、hsia未被括起来而发生错误。在内层双引号都重复一个双引号就不会发生错误: % Response.Write %(2)使用单独一行Response.Write方法传送数据至客户端,如果超过1022个字符,将会出现错误。如果要传送超过1022个字符的字符串,可以分成多行Response.Write输出,或者先将字符串存放到变量中,再用Response.Write将变量输出。(3)如果在之间只有一行Response.Write语句,则可以将它简写成,例如下面两个语句的意义是相同的: 【实验2】编写一个ASP程序c4_1_2.asp,使用Response.Write方法,将某学生的语文、数学、英语成

8、绩(假设分别为84、96、89)及教师评语(平均成绩在80分以上,评语“成绩优良,请再接再厉!”;否则评语“别泄气,要继续努力哦”)传送到客户端的浏览器,如图4-2所示。图4-2【程序】=80 Then word=成绩优良,请再接再厉!Else word=别泄气,请继续努力哦!End If%语文成绩:数学成绩:英语成绩:教师评语:【说明】像c4_1_2.asp这样的ASP网页可以说是结构相当不错的动态网页。整个原始文件被分成VBScript程序和HTML标记两部分,其中VBScript程序部分用来产生Chinese、Maths、English、word等变量的值。而HTML标记部分则会利用Re

9、sponse.Write方法将Chinese、Maths、English、word变量的值嵌入到HTML标记中,从而实现浏览器中的显示效果。2. Response.Redirect方法【实验】编写程序c4_1_3.asp,可以根据今天是星期几转移到同一目录下的对应网页(星期日转移到00.htm、星期一转移到01.htm星期六转移到06.htm)。【程序】提示:程序中的DatePart(w,Date()会返回今天是星期几(星期日=1、星期一=2星期六=7)。【说明】Response对象的Redirect方法可以让我们将目前的网页转移到另一个网页,语法如下: Response.Redirect U

10、RL 产生错误(1)Response.Redirect方法必须使用在未输出任何数据到浏览器之前,否则会出现错误。在下面的程序中: 由于在调用Redirect方法前,已经输出、到浏览器,所以Response.Redirect语句会发生错误。出于同样的原因,Response.Redirct方法也必须写在Response.Write方法之前。(2)使用Redirect方法的优点是,可以把内容比较复杂的网页分成几个子网页,甚至可以存放在不同的文档、目录或者Web Server里,然后由主网页来判断当时的情况,以决定跳转到哪个子网页。3Response.End方法【实验】使用Response.End方法

11、编写使用期限为2001/12/31的网页c4_1_4.asp,一般情况下网页中显示“欢迎光临!”;如果上网者在使用期限过后浏览该网页,则显示“对不起,本网页已过使用期限!”;此外,设置网页的开放时间为8:0020:00,若在其他时间访问它,则显示“对不起,本网页的开放时间为8:00至20:00!”。【程序】#2001/12/31# Then Response.Write对不起,本网页已过使用期限! Response.EndEnd IfIf Time#20:00:00# Then Response.Write对不起,本网页的开放时间为8:00至20:00! Response.EndEnd If%

12、Welcome!欢迎光临!【说明】Response.End方法的主要作用是告诉浏览器数据已经下载完毕,另外使用它也可以让IIS/PWS不再解读后面的HTML标记和ASP程序,从而达到终止.asp程序执行的目的。例如,在下面的程序中: % Response.Write大家好! Response.End Response.Write我是小明 %Response.End后面的那个Response.Write语句将不被执行。4输出缓冲区的设置【实验】将使用Response.Write方法输出的数据“大家好!我是小明。”写到缓冲区(buffer),然后使用Response.Flush方法将缓冲区内的数据

13、下载给浏览器。【程序】【说明】(1)调用Response.Write方法可以将要输出的数据下载给浏览器,但我们也可以将Response.Buffer的属性值设置为True,要求IIS/PWS先将要输出的数据写到缓冲区(buffer),然后等到以下几种情况出现时,再将缓冲区内的数据下载给浏览器: IIS/PWS解读完ASP程序时; 过程调用了Response.End方法时; 过程调用了Response.Flush方法时。需要强调的是,将Response.Buffer的属性值设置为True,必须在没有任何数据或者HTML标记输出到浏览器之前进行;所以我们最好像上面程序中所做的那样,将“Respon

14、se.Buffer =True”放在ASP程序的最前面。(2)调用Response.End、Response.Flush方法可以强制将缓冲区内的数据输出,此外,也可以调用Response.Clear方法中途取消(清除)缓冲区内的数据,请看以下例子: 其中,调用Response.Clear方法将缓冲区内的数据“大家好!我是小明。”、“取消缓冲区内的数据”一并清除。4.2 Request对象1. Request.Form集合提示:利用表单(Form)在不同网页之间传递上网者的信息是最可靠的,因为它适用于任何浏览器。当然也可以选择其他的方式,例如QueryString、Java applet、Act

15、iveX控件等。但是,如果建立的ASP网页针对的是Internet上更多层次的使用者,最好还是以HTML的Form作为传递参数的主要方式。【实验1:接收表单上填写的信息】制作一个表单c4_2_1.htm,传送数据的方式为POST,在表单中设计一个输入帐号的单行文本框、一个输入密码的密码文本框,当输入数据(如图4-3所示)以后单击“提交数据”按钮,会启动c4_2_1.asp程序,使用Request.Form来取得表单中所输入的信息,分别放入指定的变量中,并在浏览器中显示出来(如图4-4所示)。图4-3图4-4【程序1:c4_2_1.htm】 请输入帐号: 请输入密码: 注意:请不要使用浏览器的“

16、文件/打开”来浏览c4_2_1.htm,虽然那样做也可以看到同样的表单网页,但接下来进入ASP网页,却不会执行其中的ASP程序。正确的浏览方式是在浏览器的网址栏中输入该网页的网址,例如: http:/127.0.0.1/asp/chap04/c4_2_1.htm 【说明】对于上面的HTML程序代码,相信大家已经很熟悉了。这里要介绍一下几个重要属性的设置值:标记的action属性:等于c4_2_1.asp,表示按下“提交数据”按钮之后,服务器端处理这个输入表单的程序是c4_2_1.asp。标记的method属性:等于POST,浏览器会等待Server来读取数据;若设置成GET,则按下“提交数据”

17、按钮后,表单上的数据会附在网址之后一起送到Server。为此,在设计含有密码文本框的表单时,建议您将表单的method属性设置为POST,如果使用GET,则在浏览器的网址栏上可以清楚地看到输入的密码。表单字段的name属性:两个文本输入框的名称分别为txtID和txtpassword,而它们将成为c4_2_1.asp读取这两个输入字段的根据。【程序2:c4_2_1.asp】请核对您所输入的帐号和密码: 帐号: 密码:【说明】使用Request对象的Form集合可以取得客户端表单各字段所输入的数据,语法如下: Request.Form (fieldname) (1)fieldname是表单中字段

18、的名称。使用Request.Form(fieldname)可以取得客户端提交的表单上各字段所填写的数据。c4_2_1.htm中,将表单的传送方式设置为method=POST,这种方式适合于传送较大量的数据(数据长度可大于256 bytes),但速度较慢。当点击表单上的提交(Submit)按钮时,浏览器会将表单中填写的数据放在表头(即之间),然后将数据一次提交给服务器端。(2)Request.Form(fieldname)中的Form可以省略不写,将此语句简写为Request (fieldname)。Request.Form(fieldname)还有一种写法,例如: Request.Form(1

19、) 其中“1”代表该数据在Form集合中的序号,在上面的程序中Request.Form(1)等于文本框txtID中填入的数据。【实验2:处理带有多个参数值的参数】制作表单c4_2_2.htm(如图4-5所示),传送数据的方式为POST,其中selweb字段的选项有“上海热线、电脑之家、中文Yahoo、证券之星、华军软件园”且为多选。然后完成处理这个表单的ASP程序c4_2_2.asp,并将输入的数据回传给上网者(如图4-6所示)。图4-5图4-6【程序1:c4_2_2.htm】 请输入您的姓名: 请选择您喜欢的网站(可多选): 上海热线 电脑之家 中文Yahoo 证券之星 华军软件园 【程序2

20、:c4_2_2.asp】,您好!您选择的网站是:%For i=0 to UBound(webs) Response.Write & webs(i)Next%【说明】若上网者在c4_2_2.htm的下拉菜单中同时选择了两个选项“电脑之家”和“证券之星”,则Request.Form(selweb)将得到以下的数据: 电脑之家, 证券之星 两个选项之间用“,及空格”分隔 要把多个选项分开,使用的代码是: web=Request.form(selweb) webs=Split(web, ) For i=0 to UBound(webs) 利用webs(i)读取各个选项 Next这段代码中调用了Spli

21、t函数,其作用是根据分隔符(例如以上程序的“,”)将某一字符串分割成多个字符串,然后将分割好的多个字符串指定给字符串数组,如webs(0)等于“电脑之家”、webs(1)等于“证券之星”。而使用UBound函数的作用是取得数组中最大的下标,使用时需传入数组的名称。 2. Request.QueryString集合提示:QueryString集合的功能和Form差不多,唯一的差别在于前者可以直接取得加在网址后面的附加参数,这些参数通常以问号来连接,如“http:/?”。【实验】编写一c4_2_3.asp网页,使用Request.QueryString读取来自浏览器网址栏所输入的数据,包含“Nam

22、e=姓名”、“S1=语文成绩”、“S2=数学成绩”,并告知您的各科成绩和平均成绩,如图4-7所示。直接在网址后输入数据 图4-7【程序】学生成绩单同学的成绩单语文成绩:数学成绩:平均成绩:注意:语句Average=(Clng(Chinese)+Clng(Maths)/2中,Clng函数的作用是将Chinese和Maths数据转化为长整数(原本的数据是“字符串”),接着才可以进行算术运算。【说明】(1)在图4-6中,笔者在网址http:/127.0.0.1/asp/chap04/c4_2_3.asp之后附带了“?Name =李红&S1=86&S2=97”的输入数据,它所表示的意义如下:?表示后面

23、是附带的数据数据之间使用&来隔开?Name = 李红 & S1=86 & S2=97当Name、S1、S2的参数值改变时,例如我们在网址栏中输入: http:/127.0.0.1/asp/chap03/c3_2_3.asp?Name =刘明&S1=94&S2=86 显示的结果也会相应地发生变化。那么ASP程序又是如何读取数据的呢?首先要知道参数名称(例如上面网址中的Name、S1、S2),然后利用下面的语句读取: Name=Request.QueryString(Name) 读取Name参数值,并将其赋值给Name Chinese=Request.QueryString(S1) 读取S1参数值

24、,并将其赋值给Chinese Maths=Request.QueryString(S2) 读取S2参数值,并将其赋值给Maths(2)和Form集合一样,检索和读取QueryString集合中某一参数值有三种方法,例如要在c4_2_3.asp中读取“Name”参数的参数值,可以使用以下三种方法: Request(Name) Request.QueryString(Name) Request.QueryString(1)其实,无论是使用Form来传递参数值,还使用QueryString来传递参数值,都可以使用Request(parameter)来读取参数parameter的参数值。因为服务器本身

25、会自动区别“parameter”是属于Form集合中的参数,还是属于QueryString集合中的参数。3. Request.ServerVariables集合【实验】使用Request.ServerVariables来取得服务器端的IP和本网页所在的虚拟路径,如图4-8所示。(提示:关于虚拟路径的概念请见第五章的“要点概述”)图4-8【程序】服务器端计算机的IP地址:本网页所在的虚拟路径:【说明】ASP程序中可以通过Request.ServerVariables来取得服务器端的环境信息,语法如下: Request.ServerVariable(ServerEnviVariablname) 其

26、中ServerEnviVariablname参数是指服务器端的环境变量名称(共有20多项),表4-4列出的是一些常用的环境变量。表4-4环境变量名称用 途Auth_Password取得客户端所传来的认证使用者密码。Auth_User取得客户端所传来的认证使用者帐号。Gateway_Interface传回服务器端的CGI版本。Content_Type传回客户端文件传送的形式。Local_Addr传回服务器端计算机的IP地址。Path_Info取得网页的虚拟路径。Query_String取得放在HTTP:/后以?开头的字符串数据。Remote_Addr取得远程主机的IP地址。Remote_Host

27、取得远程主机的名称。Remote_User取得远程的使用者名称。Request_Method取得HTTP的请求方式如:POST、HEAD、GET。Script_Name取得所执行的ASP程序的路径与文件名。Server_Name传回服务器的计算机名称、DNS别名或IP地址。Server_Port取得服务器的连接口(Port)号码。Server_Protocol取得HTTP的版本。Server_Software取得服务器端的服务器名称和版本。URL取得目前网页的存储地址(虚拟路径)。4.3 ASP包含文件【实验】使用包含c4_1_1.asp及c4_2_1.htm(都在虚拟路径/asp/chap0

28、4下),制作如图4-9所示的网页c4_3_1.asp。图4-9【程序】【说明】使用可以在一个ASP程序中包含其它文本文件。当同样的内容被多个网页所使用时,我们可以将其写成一个单独的文件,然后使用将该文件包含到ASP网页中。filename为文件名称,必须在名称中指定文件的相对路径。要注意的是,不可以包括在符号中,否则会发生错误。思考与练习1. ASP默认的程序语言是什么?能否使用其它程序语言来编写ASP程序,如何使用?2. ASP最常用的内置对象有哪几个?他们的用途分别是什么?3. 设计一个简易留言板c4_lx1.htm(使用无边框的表格布局表单),在留言板中填写数据(如图4-10所示)后单击“写完发送”按钮,服务器端使用c4_lx1.asp程序来处理留言,如果表单中有数据未填写,则要求重新输入,否则显示确认信息(如图4-11所示)。图4-10图4-114. 使用Response对象的哪种属性可以将要输出的数据写到缓冲区(buffer)?缓冲区内的数据在何种情况下会下载给浏览器?使用Response对象的哪种方法可以中途取消(清除)缓冲区内的数据?5. Request.QueryString集合的功能是什么?它与Request.Form集合有什么区别?6. ASP程序中如何取得服务器端的环境信息?取得服务器端的服务器名称和版本的环境变量是什么?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com