WEB程序设计复习及习题答案 下载本文

第1章 ASP程序设计概述 习题1

1. 选择题(可多选)

(1)静态网页的扩展名一般是: A.htm B .php C.asp D.jsp 答案:A

(2)ASP文件的扩展名是: A.htm B. txt C. doc D. asp 答案:D

(3)当前的Web程序开发中通常采用什么模式? A. C/S B. B/S C. B/B D. C/C 答案:B

解释:C/S是客户机(client)/服务器(server),B/S是浏览器(browser)/服务器。C/S一般要求用户有特定的客户端。比如QQ就是C/S模式,你的桌面上的QQ就是腾讯公司的特定的客户端,而服务器就是腾讯的服务器。而B/S模式则不需要特定的客户端,只要有普通浏览器,就可以访问到服务器了,Web页就是B/S 模式。

(4)小王正在家里通过拨号上网访问搜狐主页,此时,他自己的计算机是: A. 客户端 B. 既是服务器端又是客户端 C. 服务器端 D. 既不是服务器端也不是客户端 答案:A

(5)小王正在访问自己计算机上的网页,此时,他自己的计算机是: A. 客户端 B. 既是服务器端又是客户端 C. 服务器端 D. 既不是服务器端也不是客户端 答案:B

(6)ASP脚本代码是在哪里执行的? A. 客户端 B. 第一次在客户端,以后在服务器端 C. 服务器端 D. 第一次在服务器端,以后在客户端 答案:C

解释:ASP脚本代码是在服务器端运行的,服务器将其解释执行为标准的HTML代码,然后发送到客户端。

(7)在以下URL中,从形式上看正确的是: A. http://www.sina.com.cn/history/1998/intro.asp B. http://www.sina.com.cn/news/1.jpg

C. ftp://ftp.sina.com.cn /history/1998/intro.asp D. ftp://ftp.sina.com.cn/news/1.jpg 答案:A B C D

解释:从形式上看,都是正确的。 (8)如果在chapter1下建立了一个子文件夹images,并且在其中放置了一个图片文件1.jpg,那么以下URL正确的是:

A. http://localhost/asptemp/chapter1/images/1.jpg B. http://127.0.0.1/asptemp/chapter1/images/1.jpg

C. http://localhost/inetpub/wwwroot/asptemp/chapter1/images/1.jpg D. http://127.0.0.1/inetpub/wwwroot/asptemp/chapter1/images/1.jpg 答案:A B

(9)对于1.5.5节建立的1-2.asp,以下浏览方式正确的是: A. http://localhost/temp/1-2.asp B. http://127.0.0.1/temp/1-2.asp

C. http://localhost/asptemp/chapter1/temp/1-2.asp D. http://127.0.0.1/asptemp/chapter1/temp/1-2.asp 答案:A B C D

解释:AB两种方式利用了建立的虚拟目录,CD实际上没有用到这个虚拟目录,此时和1-1.asp没有什么区别。

(10)以1.5.5节的示例为基础,假如现在在C:\\inetpub\\wwwroot\\asptemp\\chapter1\\temp下又建立了一个子文件夹temp,其中建立了一个ASP文件1-3.asp,则浏览方式正确的是: A. http://localhost/temp/temp/1-3.asp B. http://127.0.0.1/temp/temp/1-3.asp

C. http://localhost/asptemp/chapter1/temp/temp/1-3.asp D. http://127.0.0.1/asptemp/chapter1/temp/temp/1-3.asp 答案:A B C D

解释:AB利用了建立的虚拟目录,CD没有用到虚拟目录。 2. 问答题

(1)名词解释:静态网页、动态网页、服务器端、客户端、URL 答案:

静态网页——所谓静态网页,就是说该网页文件里没有程序代码,只有HTML标记,这种网页的扩展名一般是.htm或.html。静态网页一经制成,内容就不会再变化,不管何时何人访问,显示的都是同样的内容,如果要修改内容,就必须修改源文件,然后重新上传到服务器上。

动态网页——所谓动态网页,就是说该网页文件不仅含有HTML标记,而且含有程序代码,这种网页的扩展名一般根据不同的程序设计语言而不同,如ASP文件的扩展名为.asp。动态网页能够根据不同的时间、不同的来访者而显示不同的内容。如常见的BBS、留言板、聊天室一般是用动态网页实现的。

服务器端、客户端——一般来说,凡是提供服务的一方称为服务器端,而接受服务的一方称为客户端。比如,当我们在浏览搜狐主页的时候,搜狐主页所在的服务器就称为服务器端,而我们自己的计算机就称为客户端。 URL——大家在上网的时候,需要在浏览器地址栏中输入一个网址,回车后就可以打开相应的网页了,这个网址又叫做统一资源定位符(URL:Uniform Resource Locator)。在Internet中的每一个网页文件或其他类型的文件都有自己的URL,它的一般形式是: 协议://服务器地址(域名或IP地址): 端口号/路径(含文件名) (2)请结合URL知识简述静态网页和动态网页的工作原理。 答案:静态网页的工作原理是当你在浏览器里输入一个网址回车后,就向服务器端提出了一个浏览网页的请求。服务器端接到请求后,就会找到你要浏览的静态网页文件,然后发送给你。

动态网页的工作原理是服务器端接到客户端发出的请求后,首先会找到你要浏览的动态网页文件,然后就解释执行其中的程序代码,将含有程序代码的动态网页转化为标准的静态网页,然后将静态网页发送给你。

(3)请简单比较ASP、PHP和JSP的优缺点。

答案:总的来说,ASP、PHP和JSP基本上都是把脚本语言嵌入到了HTML文档中。如果要说它们最主要的优点:ASP学习简单,使用方便;PHP软件免费,运行成本低;JSP多平

台支持,转换方便。

(4)某同学开发了一个显示来访时间的ASP文件,存放在C:\\inetpub\\wwwroot下,然后在Windows资源管理器中双击该文件,却不能正常显示,请问是什么原因?

答案:ASP文件是不能直接双击运行的,必须通过浏览器访问,由服务器端来解释执行为标准的HTML代码,然后才可以显示在浏览器中。

(5)在1.4.3节中讲的是如何访问ASP文件,如果希望访问HTML网页文件,可以用类似的方法吗?

答案:可以。对于HTML文件,服务器端找到到该文件后,直接发送给客户端即可。 (6)想一想,把一个HTML网页文件直接更改扩展名为.asp行不行?

答案:可以。相当于一个不含有任何动态代码的ASP文件,运行时服务器端也会对其进行解释执行,只不过实际上没有代码需要解释执行而已。 (7)什么是应用程序?为什么要建立应用程序?

答案:简单的说,添加了虚拟目录的文件夹就可以称为应用程序。建立应用程序后,多个网站之间就可以独立了,一些公共变量就不会混淆。 3. 实践题

(1)请根据自己的实际情况搭建ASP的运行环境。 答案:请按照教材中1.2节说明搭建,具体步骤略。 (2)请上网下载并安装EditPlus。

答案:从http://www.editplus.com下载安装程序后,直接双击安装即可,具体步骤略。 (3)请在文件夹C:\\Inetpub\\wwwroot\\asptemptj\\chapter1下新建一个asp文件,在页面上显示来访日期(日期函数为Date())。

答案:打开EditPlus,在其中输入清单date所示的程序代码,然后将其保存到C:\\Inetpub\\wwwroot\\asptemptj\\chapter1文件夹下,名称为date.asp。 清单date date.asp 显示来访日期

一个简单的ASP程序

<% Dim a '声明一个变量 a=\您来访的日期是:\ '给变量赋值,其中Date是日期函数 Response.Write a '在页面上输出变量a的值 %>

保存完毕后,打开浏览器,在其中输入http://localhost/asptemptj/chapter1/tj1-1.asp即可。 (4)请在C:\\Inetpub\\wwwroot\\asptemptj\\chapter1下面新建一个文件夹tempb,然后为该文件夹添加虚拟目录aspb,并设置默认文档为index.asp和index.htm。 答案:请参考教材1.5节进行,具体步骤略。 (5)(选做题)请参考IIS的专门书籍好好研究一下,是否一定要在C:\\Inetpub\\ wwwroot下

开发ASP文件?可不可以放在别的文件夹下?

答案:其实可以在其他文件夹下,比如在D:\\asptemp下建立ASP文件,具体步骤如下: 第1步:首先建立D:\\asptemp文件夹。

第2步:在IIS中为该文件夹建立虚拟目录asptemp(注意,也可以用别的名称). 第3步:下面就可以在asptemp文件夹下分章建立子文件夹和ASP文件了,比如建立chapter1子文件夹,然后在其中建立1-1.asp文件。

第4步:建立ASP文件后,在浏览器中输入http://localhost/asptemp/chapter1/1-1.asp即可。

第2章 HTML基础知识 习题2

1. 选择题(可多选)

(1)HTML文档包含的两个部分是指: A. 文档头部 B. 标题 C. 注释 D. 文档主体 答案:A D

(2)HTML中的注释格式是: A. B. C. <%-- 注释内容 --%> D.

该页面用来演示文档头部

第3章 VBScript基础知识 习题3

1. 选择题(可多选)

(1)下列哪一个变量名称是正确的? A. 1_ab B. ab_1 C. _ab D. ab? 答案:B

(2)在一段程序中a是一个变量,那么\是: A. 变量 B. 直接常量 C. 字面常量 D. 符号常量 答案:D

(3)下面哪条语句可以正确执行?(注:第四句我的主页两边是中文引号) A. Response.Write \我的主页

\ B. Response.Write \我的主页\C. Response.Write \我的主页\

D. Response.Write \“我的主页”\ 答案:BCD

解释:在两个双引号中再次用到双引号时,可以用单引号或两个双引号来代替。 (4)执行语句a=\后,变量a的数据子类型是? A. 字符串 B. 日期 C. 数值 D. 布尔 答案:A

(5)执行语句a=\后,变量a的数据子类型是? A. 字符串 B. 日期 C. 数值 D. 布尔 答案:A

(6)假设变量a=5、b=3,则执行语句c=\后,变量c的数据子类型是? A. 字符串 B. 日期 C. 数值 D. 布尔 答案:A

(7)语句a=\运行完毕后,变量a的数据子类型是? A. 数值 B. 字符串 C. 布尔 D. 日期 答案:C

解释:右侧是一个比较运算,结果是True,然后再赋值给a (8)执行语句a=3: a=a+5后,变量a的值是: A. 3 B. 5 C. 8 D. 出错

答案:C

解释:ASP中,冒号(:)是用来做语句分割的,也就是说可以将两行语句合成为一行来写。因此a=3: a=a+5就等价于a=3

a=a+5,结果自然就是8.

(9)已知x=120,那么执行语句y=x \\10 Mod 10后,变量y的值是? A. 0 B. 1 C. 2 D. 3 答案:C

解释:这是一个算术运算,运算顺序为从左至右,x\\10表示x整除10后的值,为12,然后再计算12 Mod 10,表示12除以10的余数,结果为2.

(10)已知a= \,那么执行语句b=\后,变量b的值是? (提示:请注意题目和答案中的空格) A. \B. \ C. \ D. \答案:A

(11)下面的语句执行完毕后,变量a、b、c、d的值分别是? <% a=\ b=\ c=\ d=\A. \、\、\、\ B. \、2、\、\ C. 2、2、\、\ D. \、\、2、2 答案:B

解释:做算术运算+的时候,如果有一个操作数是数值型,另一个是可以转换为数值的字符串,则会自动转换为数值,并执行相加运算。但是如果用&,则任何时候都是执行连接运算。 (12)请问表达式Not(6+3<5+2)的值是? A. True B. False C. 9 D. 无法计算 答案:A

(13)请问Int(3.45)和Int(-3.45)的值分别是什么? A. 4、-4 B. 3、-4 C. 3、3 D. 3、-3 答案:B

解释:Int:返回数的整数部分,且对于负数,将返回小于或等于 number 的第一个负整数。 (14)执行语句a=Int(10 * Rnd())后,则a的值不可能出现的有? A. 0 B. 1 C. 10 D. 11 答案:CD

解释:Rnd()返回一个大于等于0且小于1的随机数。 (15)在取整时按四舍五入进行的函数是? A. Int B. Fix C. Round D. CInt 答案:C

(16)请问Mid(\八千里路云和月\的返回值是什么? A. \千里\ B. \里路\ C. \里\ D. \路云\答案:B

解释:表示从第三个字符开始取两个字符。

(17)执行语句a=InStr(Trim(Replace(\ abcdef \后,变量a的值是? A. 0 B. 1 C. 4 D. 5 答案:C

解释:注意Replace(\ abcdef \是将字符c替换为空,而不是空格。 Instr()是返回第二子串在第一个串中第一次出现的位置。

(18)函数DateDiff(\的返回值是?

A. 1 B. 2 C. 54 D. 5 答案:2

(19)对于数组a(3,4),函数UBound(a,2)的值是: A. 1 B. 2 C. 3 D. 4 答案:D

解释:UBound()返回数组的指定维数的最大可用下标.

(20)假如变量a的值是\,则IsNumeric(a)和VarType(a)的值分别是? A. True、2 B. True、8 C. False、2 D. False、8 答案:B

解释:IsNumeric()会先转化变量a的类型为数值,如果能转化,就为True。而VarType函数只返回当前的类型,而\当前确实是字符串。

(21)假如变量a的值是\,则IsDate(a)和VarType(a)的值分别是? A. True、2 B. True、8 C. False、2 D. False、8 答案:B

解释:同上题。

(22)执行语句a=Chr(Asc(\后,则a的值是: A. \ B. \ C. 65 D. 出错 答案:B

解释:Asc()函数返回与字符串的第一个字母对应的 ANSI 字符代码,而Chr函数返回该ANSI代码对应的字符,所以最后为\。 (23)退出Do循环的语句是? A.Exit For B. Exit Do C. Exit Sub D. Exit Function 答案:B

(24)在示例3-11和3-12中,循环结束后,I的值分别是多少? A. 100、100 B. 101、101 C. 100、101 D. 101、100 答案:B

(25)以下哪些语句可以嵌套使用? A. For…Next B. Do…Loop C. Select Case D. If…Then…Else 答案:ABCD 2. 问答题

(1)名词解释:单目运算符、双目运算符、操作数、函数、子程序、过程 单目运算符——就是指该运算符只对一个操作数起作用。 双目运算符——指运算符对它左右两侧的操作数都起作用。 操作数——参与运算的数。 函数——就是由若干语句组成的程序模块,它可以实现一个特定的功能,并返回一个函数值。 子程序——就是只执行程序而不返回值的程序模块。 过程——就是自己定义的函数,过程有两种:一种是Sub子程序,一种是Function函数。两者的区别在于:Sub子程序只执行程序而不返回值,而Function函数执行程序后会返回值。

(2)脚本级变量和过程级变量有什么重要区别?

答案:脚本级变量在整个ASP文件内都可以被引用,而过程级变量,只能在过程内使用。 (3)在页面A中定义的变量可以在页面B中引用吗?

答案:一般是不可以的,但是如果把A页面包含在B中,就是可以的。

(4)程序中的符号常量可以用变量来代替吗? 答案:可以。

(5)请简述四类运算符的优先级顺序。

答案:算术运算符>连接运算符>比较运算符>逻辑运算符 (6)不同过程中的变量名是否可以一样?

答案:可以,因为过程级变量,只在本过程中有效。但不推荐这样使用。 (7)Function函数中的形参和实参名称是否可以一样?

答案:可以,形参和实参名称可以一样,也可以不一样,因为两者是按位置对应的。 (8)在For?Next循环中,可以给计数器变量赋值吗?

答案:虽然也是可以的,但是不建议更改计数器变量,因为很容易引起变量值的混乱。 (9)请以示例3-12为例简述Do?Loop循环的执行过程。 答案:略,请参考3.11.2节的讲解。

(10)如何将两个变量的值互换?(提示:用一个中间变量)

答案:首先定义一个中间变量,将第一个变量的值赋给中间变量,然后再将第二个变量的值赋给第一个变量,最后将中间变量的值赋给第二个变量,这样就实现了两个变量值的互换。 3. 实践题

(1)请在你的个人主页上添加时间显示信息,显示当天的日期、时间及星期几。

答案:参见asptemptj/chapter3/Time_list.asp,注意学习select case的写法, 并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Time_list.asp即可访问,清单如下: 清单Time_list Time_list.asp. 显示时间信息代码

习题3-2-(1) <% Response.Write Date() & \ Time() Select Case Weekday(Date()) Case 1 Response.Write \星期日\ Case 2 Response.Write \星期一\ Case 3 Response.Write \星期二\ Case 4 Response.Write \星期三\ Case 5 Response.Write \星期四\ Case 6 Response.Write \星期五\ Case 7 Response.Write \星期六\ End Select

%>

(2)请编写程序段,判断当天日期,如果是25日,则显示“请注意,明天可能有病毒发作”。 答案:参见asptemptj/chapter3/Date_meg.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Date_meg.asp即可访问,清单如下: 清单Date_meg Date_meg.asp. 判断当天日期

<% If Day(Date())=25 Then Response.Write \请注意:明天可能有病毒发作。\ End If %>

(3)请编写程序段,随机产生一个0到9的整数。如果是偶数,则在页面上输出“生成的是偶数”,否则输出“生成的是奇数”。

答案:参见asptemptj/chapter3/Random.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Random.asp即可访问,清单如下: 清单Random.asp 判断奇偶数码

<% Dim s s=Int(10 * Rnd()) If (s Mod 2)=0 Then Response.Write \生成的是偶数\ Else Response.Write \生成的是奇数\ End if %>

(4)S=12+32+52+?+992,请利用两种循环语句编写程序,计算S的值。

答案:参见asptemptj/chapter3/Cycle.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Cycle.asp即可访问,清单如下: 清单Cycle Cycle.asp 计算平方和

<% '第1种算法: Dim I,Sum Sum=0 For I=1 To 99 Step 2 Sum=Sum+I^2 Next Response.Write \ %>

<% '第2种算法 I=1 Sum=0 Do While I<=99 Sum=Sum+I^2 I=I+2 Loop Response.Write \ %>

(5)请编写函数计算a到b的立方和,并举例调用,调用时a、b分别为3和6。

答案:参见asptemptj/chapter3/Cute_sum.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Cute_sum.asp即可访问,清单如下: 清单Cute_sum.asp 计算立方和

<% '下面是函数 Function lifanghe(a,b) Dim Sum,I Sum=0 For I=a To b Sum=Sum+I^3 Next

lifanghe=Sum End Function '下面是主程序,用来调用 Dim S S=lifanghe(3,6) Response.Write \立方和=\ %>

(6)请编写函数能够随机产生从a到b之间的整数,并举例调用。

答案:参见asptemptj/chapter3/Rnd_ab.asp,注意产生a到b之间随机整数的写法为:Int((b-a+1)*Rnd)+a,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Rnd_ab.asp即可访问,清单如下:

清单Rnd_ab Rnd_ab.asp 产生从a到b之间随机数

<% '下面是函数 Function Rndab(a,b) Rndab=Int((b-a+1)*Rnd)+a End Function '下面是主程序,用来调用 Dim S S=Rndab(3,10) Response.Write \产生3到10之间的一个随机整数为\ %>

(7)请结合示例3-13开发一个函数,使其能实现Join函数的功能。

答案:参见asptemptj/chapter3/Join.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/Join.asp即可访问,清单如下: 清单Join Join.asp 构造Join函数

<% Option Explicit '强制声明变量%> <% '下面是将全部数组元素连接在一起的函数

Function join_string(S_temp) Dim strSum,Item For Each Item in S_temp '执行循环,取出每个元素 strSum=strSum & Item Next join_string=strSum End Function '下面是主程序,用来调用 Dim S(3) '定义一个数组 Dim Return_string S(0)=\ S(1)=\ S(2)=\ S(3)=\ Return_string=join_string(S) Response.Write \全部数组元素连接成的字符串为\ %>

(8)请在示例3-14的基础上增加一段代码,从而可以计算所有数组元素的平方和。(提示:请用嵌套循环)

答案:参见asptemptj/chapter3/Pingfanghe.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Pingfanghe.asp即可访问,清单如下: 清单Pingfanghe Pingfanghe.asp 计算所有数组元素的平方和

<% Option Explicit '强制声明变量%> <% Dim intA(9,9),intSum '声明一个10行10列的二维数组 Dim I,J 'I是外层循环计数器变量,J是内层循环计数器变量 For I=0 To 9 '外层循环 For J=0 To 9 '内层循环 intA(I,J)=10 '给每一个元素赋初值10 Next Next For I=0 To 9 '外层循环 For J=0 To 9 '内层循环 intSum=intSum+intA(I,J)^2 '给每一个元素赋初值10 Next Next Response.write \该数组元素的平方和是\ intSum

%>

(9)(选做题)有100个人吃100个馒头,大人1人吃4个,孩子4人吃1个,问有多少个大人和多少个孩子?(提示:使用嵌套循环和条件语句)

答案:参见asptemptj/chapter3/Bread.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Pingfanghe.asp即可访问,清单如下: 清单Bread Bread.asp 计算吃馒头的人数

大小和尚吃馒头问题 <% Dim I,J,ren,mantou For I=1 To 100 '大和尚从1到100循环 For J=1 To 100 '小和尚从1到100循环 ren=I+J '计算总人数 mantou=I*4+J*0.25 '计算总馒头数 If ren=100 And mantou=100 Then Response.write\大和尚=\小和尚=\ End If Next Next %>

(10)(选做题)其实VBScript也可以在客户端运行的,请大家参考VBScript专门教程进行学习,尤其要注意其中的MsgBox函数。 答案:略。

第4章 Request和Response对象 习题4

1. 选择题(可多选)

(1)对于Request对象,如果省略集合,如Request(\,将按什么顺序依次检查是否有信息传入?

A. Form、QueryString、Cookies、ServerVariables、ClientCertificate B. QueryString、Form、Cookies、ServerVariables、ClientCertificate C. Cookies、QueryString、Form、ServerVariables、ClientCertificate D. Form、QueryString、Cookies、ServerVariables、ClientCertificate 答案:B

(2)Request对象的QueryString、Form、Cookies集合获取的数据子类型分别是? A. 数字、字符串、字符串 B. 字符串、数字、数字 C. 字符串、字符串、字符串 D. 必须根据具体值而定 答案:D

(3)在表单中,下列哪个属性用于设定表单的提交方法? A. method B. action C. POST D. GET 答案:A

(4)若表单提交时采用GET方法,则下面哪种集合可以获取表单元素的值? A. Request.Form(\元素名\ B. Request.QueryString(\元素名\ C. Response.Form(\元素名\ D. Response.QueryString(\元素名\ 答案:B

(5)下面哪种集合可以获取查询字符串中的信息? A. Response(\元素名\ B. Request(\元素名\C. Request.Form(\元素名\ D. Request.QueryString(\元素名\ 答案:BD

(6)请问下面语句执行完毕后,页面上显示内容是什么?

<% Response.Write \新浪\A. 新浪 B. 新浪 C. 新浪(超链接) D. 错误信息 答案:C

(7)请问下面程序段执行完毕,页面上显示的内容是什么? <% =\北京\=\上海\%>

A. 北京上海 B. 北京(换行)上海 C. 北京 D. 错误信息 答案:D

解释:当使用简写方式输出时,每一句两边都要加上<%和%>。 (8)请问下面程序段执行完毕,页面上显示的内容是什么? <%

Response.Write \ Response.Flush: Response.Write \ Response.Clear Response.Write \ Response.End: Response.Write \%> A. ac B. cd C. bd D. ad 答案:A 解释:Flush方法会立即输出内容;Clear方法会清空缓冲区中的内容;End方法会结束输出。 (9)Response对象的什么方法可以将缓冲区中的页面内容立即输出到客户端? A. Write B. End C. Clear D. Flush 答案:D

(10)下列哪个集合可以返回客户端IP地址?

A. Request(\B. Request.ServerVariables(\C. Request.ServerVariables(\D. Request.ServerVariables(\答案:AB

2. 问答题

(1)请问是否可以将4-1.asp的扩展名改为.htm?

答案:可以,因为4-1中只是将表单信息提交给4-2.asp,本身并没有动态代码,所以可以修改。

(2)假如变量a=\,那么Request(a)和Request(\返回值一样吗?

答案:不一样。因为用代入法,Request(a)是获得名称为b的变量的值,而Request(\则是获得名称为a的变量的值。

(3)当表单分别以POST方法和GET方法提交时,获取数据的方法有什么区别?

答案:用POST 方法提交表单,获取数据用的是Request.Form方法;而用GET 方法提交表单,获取数据用的是Request.QueryString方法。

(4)请问有什么方法可以检验各种集合返回值的数据子类型? 答案:一般集合返回值的数据子类型是取决于集合值本身的类型,因此是没有一个固定的方法可以判断出某集合返回值的数据子类型,但常用的有三个函数IsNumeric、IsDate、IsNull可以辅助来判断一下返回值的数据子类型。

(5)请结合第1章讲的WWW的工作原理来讲述4-3.asp的运行过程? 答案:当用户在浏览器中输入网址第1次访问本文件时,服务器端就会从头到尾解释执行本文件。首先输出表单中的元素内容(文字、文本框、按钮),然后执行If判断语句,此时因为是第一次访问该文件,还没有提交表单,所以Request.Form(\,Request.Form(\,If语句中条件表达式的返回值为False,因此执行Else后面输出语句;接下来当用户输入两个数并提交表单后,此时就会第2次访问本文件,服务器端就会再次从头到尾解释执行本文件,先输出表单元素内容,然后再次执行If判断语句,此时因为已经提交了表单,所以Request.Form(\输入的值, Request.Form(\输入的值,If语句中条件表达式的返回值为True,因此执行运算语句,最后输出两个数的和。 (6)请简述Response的Write方法的两种写法的区别及注意事项。

答案:两种写法分别为Response.write和<%=%>,前者多用于在VBScript代码中,用来向客户端输出服务器端的信息;后者则多用于大量HTML代码中嵌入少量VBScript代码的时候。 (7)请简述Redirect方法的工作原理?

答案:Redirect是指将网页重新定向到另一个新的网址,该定向发生在客户端,当执行到该语句时,客户端浏览器就会向相应的服务器端发出一个请求,然后该服务器端就会返回这个新的页面给客户端。

(8)请问Redirect方法和超链接的区别是什么?

答案:两者都可以引导用户至另一个页面,但是超链接必须要用户单击超链接才行,而Redirect可以自动引导用户至另一个页面。

(9)请问当使用Redirect方法时,为什么有时要在文件开头加“Reponse.Buffer=True”语句?在Windows 2000以上系统中一般需要加吗?

答案:因为如果Response.Buffer=False,就表示将页面直接输出到客户端,那么如果已经输出了部分页面内容到客户端,又想重定向到另一个页面,这是不允许的。而令Buffer等于True后,将把页面先输出到缓冲区,在缓冲区中则可以随时重定向页面,Windows 2000以上操作系统中则默认为True,所以Windows 2000以上系统中一般不需要加。 (10)本章中都有哪些方法可以将一个变量从一个页面传递到另一个页面?

答案:可以利用表单提交和在URL地址后面加上变量进行传递,也可以使用Cookie传递变量。

3. 实践题

(1)请将4-4.asp和4-5.asp合并为一个页面。

答案:参见asptemptj/chapter4/Register.asp,注意其中判断表单是否提交的写法,并打开浏览器,在其中输入http://localhost/asptemptj/chapter4/ Register.asp即可访问,清单如下: 清单Register Register.asp 合并4-4.asp和4-5.asp为一个页面

姓名: 爱好: 职业:
简述: