《ASP 程 序 设 计》由会员分享,可在线阅读,更多相关《ASP 程 序 设 计(25页珍藏版)》请在金锄头文库上搜索。
1、第三章、脚本语言 VBScript3-1、服务器端脚本和客户端脚本 ASP程序由HTML标记、脚本语言和文本组成,其中的脚本语 言可以用任何一种脚本VBScript和Jscript编写,本章主要讲述 VBScript。 编程时既可编写服务器端脚本也可编写客户端脚本,服务器端 脚本在Web服务器上运行,客户端脚本由客户端的浏览器运行。 1、服务器端脚本 在2-19.asp中,没有对客户端用户输入的数据进行验证,如果 用户没有输入任何数据就点击提交,则服务器端将收到“空字 符串”,此时可在2-19a.asp中加入服务器端脚本进行验证,见 例3-1.asp和3-1a.asp。 例3-1服务器端脚本(
2、3-1.asp) 程序3-1.asp的处理程序:(3-1a.asp) 2、客户端脚本 上例中所讨论的脚本程序在服务器端运行,每次用户输入的数 据都要传到服务器端,验证后再传回客户端,效率并不高,此 时可采用客户端脚本,见下例。 例3-2客户端脚本(3-2.asp)程序3-2.asp的处理程序(3-2a.asp) 可见3-2a.asp程序与2-19a.asp程序的作用完全相同,但效率不同 。注:因为Netscape的Navigator不支持VBScript,编写VBScript 客户端脚本时最好加上。 *3-2、常量(数) 一、数据的类型 数据是对客观事物及其属性的描述在计算机的程序语言中,身高
3、、体重等可以参加算术运算的数 据又叫“数值型数据”;姓名、籍贯等不参与算术运算的数据 又叫“字符型数据”;出生年月又叫“日期型数据”;性别等 只有两种结果的数据又称为“逻辑型数据”。 计算机中数据的类型 : 数值型数据字符型数据日期型数据辑型数据 整型 -32768-+32767之间的整数长整型 -2147483648-+2147483647之间的整数单精度数 又精度数 见P79页 例如:某人姓名张三、年龄19岁,身高1.78,体重200公斤, 这里的张三,19,1.78,200就是数据。 二、数据的表示方法 数值型数据直接书写:(可用前缀来区分进制) 如:100 十进制&H64 十六进制&0
4、144 八进制字符型数据(字符串)必须用单引号或双引号括起来: 如:“西双版纳职业技术学院” 日期型数据必须用一对#号括起来: 如:#9/21/2005 8:00:01# 逻辑型数据只有真True或假False两种取值 在VBScript中,只有一种数据类型,即Variant类型。 三、常量 在程序运行期间,值不发生变化的量,叫常量。 如:定义常量后,在程序中的任何地方可用PI来引用3.141593-3、变量 一、概念 在程序运行期间,值会发生变化的量,叫变量。 变量常用来临时存储数据,在VBScript中变量可以未经声明就使 用,且不区分大小写,因此VBScript又被称为弱类型语言。见下
5、列程序: 例2-19a.asp 这样做的好处方便了程序员,但如果程序中变量较多时,程 序员自己可能也不知道变量中到底存储了什么值,给今后阅 读程序增加了困难。因此,建议养成良好的习惯,使用变量 前先声明,后使用。 二、变量的声明 变量的声明用:DIM 语句,如:DIM X声明多个变量时,用逗号分隔。如:Dim x,y,z 数组变量 具有相同变量名的一组下标变量,称为数组。 声明数组变量时,变量名后带括号()。 如:下例声明一个包含11个元素的一维数组:Dim A(10) VBScrript的数组下标总是从0开始。Dim A(10)相当于定义了: A(0)、A(1)、A(2)、A(3)、A(4)
6、、A(5)、A(6)、A(7)、A(8)、A(9)、 A(10)共十一个元素(下标变标变 量),下标标用来指明数组组元素的位置。 *用一个下标标就能确定一个元素在数组组中的位置,则该则该 数组组称为为一维维数组组。 右下图为图为 一维维数组组A(10)的元素在内存中获获得的空间间 。 由此可见,声明数组时不要太大,够用即可,否则浪费内存 。 A(0) A(1) A(2) A(10) 上界下界数组组并不仅仅限于一维维,可以是二维维、三维维、,声明多维维数 组时组时 用逗号分隔括号中每个表示数组组大小的数字。如:下例声 明了一个二维维数组组: Dim B(1,2) 相当于声明了以下六个元素:B(0
7、,0) B(0,1) B(0,2)B(1,0) B(1,1) B(1,2) 三、变量命名规则 右图为二维数组B(1,2)的 元素在内存中获得的空间 。 B(0,0) B(0,1) B(0,2) B(1,0) B(1,1) B(1,2) 以字母开头变量名长度不得超过255个字符中间不能有空格和句号 上例中可加入:dim x 存放姓名dim y 存放密码 3-4、运算符 表示运算关系的符号 1、 算术运算符+(加) -(减) *(乘) /(除) MOD(取模) (乘方) 注:算术运算符的运算优先顺序与数学中的相同:() * / Mod + -四、变量的赋值 在VBScript中,用赋值赋值 号“=
8、”对变对变 量赋值赋值 ,如X=1,y=“张金龙 “。 *2、关系运算符 =或 ! 注:关系运算符的结结果只能是逻辑逻辑 型的值值,即 T 或 F ,关系运算一般用作程序中的“条件” 如: x+y thenresponse.write(“True”)elseresponse.write(“False”)end if%此时时的屏幕输输出结结果是: True 而不是 False演示程序3-3.asp 3、连连接字符串运算符 & 和 + 例如:4、逻辑逻辑 运算符 not (非) and (与) or (或) XOR(异或) EQV(同或) (1)逻辑非 not x当逻X的值为真时,结果为假;当X的
9、值为假时,结果为真。如:36 (真)0-1 (真)96 and 0-1 (真) (3)逻辑或 x or y仅当量x和y的值同时为假时,结果才为假;否则为真。如:96 (真)06 XOR 06 (真)06 EQV 0,如果为假,再测试,依次类推,直到找到一个 为真的条件。当找到一个为真条件时,就执行相应的语句块,然后执行end if后的语句;如果条件都不为真,则执行else后的语句块。 例3-5条件分支结构(3-5.asp)(二)、选择分支 1、语法格式case值2case elseend select%2、作用先计计算表达式的值值,然后与每个 case值比较。若相等,就执行与该 case关联的
10、语句块。当找到一个为真 条件时,就执行相应的语句块,然后 执行end select后的语句。 或者:(根据表达式的值值,从多个case语语句中选选 择择一个符合条件的case语语句执执行。) *例3-6选择分支结构(3-6.asp)x x=4000编程序要求:屏幕提示用户输入x的值,传到服务器后,计算y值,然后传回 给用户。程序如下:3-6.asp 程序3-6.asp的服务务器处处理程序3-6a.asp: 说说明:分支语语句可以嵌套,嵌套的层层数没有限定 。例如 If thenIf thenend ifelseIf thenend ifend if三、循环结环结 构 程序在运行过过程中,有时时
11、需要重复执执行某段 语语句块块,使程序在某一局部出现现循环环,这这就 需要能产产生循环环的语语句。 VBScript提供了以下实现实现 循环环的语语句:for循环环,do循环环。以下介绍绍几个它们们的变变种 。 (一)、for/next步长长循环语环语 句 1、格式:For = to stepexit forNext 2、功能循环变量从开始重复执行,直到等于,才执行next后的语句。其中:可正可负Exit for 用于退出for循环环。 例3-7 计算y=1+3+5+99 用For/next循环语句实现(3-7.asp): (二)、for/each循环环语句 1、格式:For each 元素
12、in 数组(对象集合)exit forNext 2、功能对对数组组中的每一个元素重执执行。 如:假设数组A(5)中存放了0,1,3,5,7,9的值,则可用以下语句输出。说说明:循环语环语 句可以嵌套,嵌套的层层数没有限定,随着嵌套层层数的加大,程序运行 速度会变变慢。 for I for J nextnext如果不知道循环终值时,用For循环较为方便。(三)、Do while/loop循环1、格式:Do while loop 2、功能先测试测试 ,如果为为假,则则不执执行;否则执则执 行。 例3-8 7的多少次方可超过7845(四)、Do / loop while循环1、格式:Do loop
13、while 2、功能先执执行循环环体,再测试测试 ,如果为为假,则则不执执行;否则则重复执执行。 说明:这种形式保证至少执行一次。 例3-9 7的多少次方可超过7845 7的多少次方可超过78453-6、Sub过程和Function函数 一、过程procedure在编编写脚本程序时时,有时时某一段程序代码码可能会反复使用,可将该该段代码码命 名成过过程,在需要时调时调 用。 过过程是用来执执行特定任务务的程序段代码码。 (一)、过程的命名sub 过程名(形参表)代码段end sub 注:当要传递传递 的参数为为多个时时,用逗号分隔 (二)、过程的调用方法1:call 过程名(实参表)方法2:过过程名 实实参表 例如:3-10.asp 二、函数Function 与过过程一样样,函数也是具有一定功能的一段代码码,但调调用时时函数将返回一个值值。 (一)、函数的命名Function 函数名(形参表)代码段函数名=表达式end Function (二)、函数的调用方法1:call 函数名(实参表) 此时函数无返回值方法2:变变量=函数名(实实参表) 例:3-11.asp三、VBScript的内置标标准函数 为为方便用户户,VBScript提供了很多函数,在使用时时只需调调用即可。见见P95-98或者 P289-302。 例:3-12.asp *