ASP学习资料PPT课件_第1页
ASP学习资料PPT课件_第2页
ASP学习资料PPT课件_第3页
ASP学习资料PPT课件_第4页
ASP学习资料PPT课件_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 4 1课前指导4 2课堂教学4 3上机练习4 4课后作业 第4课VBScript编程语言 一 2 4 1课前导读4 1 1VBScript介绍4 1 2客户端和服务器端编程语言 3 VBScript是一种脚本语言 属于MicrosoftVisualBasic的简化版本 如果对VisualBasic或VisualBasicforApplications VBA 有所了解 就会很快熟悉VBScript 如果没有学过VisualBasic 只要学会VBScript 就能够使用所有的VisualBasic语言进行程序设计 4 4 1 1VBScript介绍VBScript是ActiveSeverPages的缺省语言 当然也可以在ASP网页中使用其它脚本语言 如Jscript等 但是 本书中所有的ASP例子程序都使用VBScript 可以在HTML文件中直接嵌入VBScript脚本 从而扩展HTML 使它不仅仅是一种页面格式语言 带有VBScript脚本的网页在每次下载到浏览器时都可以是不同的 而且可以对用户的操作作出反应 5 4 1 2客户端和服务器端编程语言VBScript既可以作为客户端编程语言 也可以作为服务器端编程语言 客户端编程语言是可以由浏览器解释执行的语言 当以客户端编程语言编制的程序被下载到一个兼容的浏览器中时 浏览器将自动执行该程序 客户端编程语言的优点是浏览器完成了所有的工作 这可以减轻服务器的负担 而且客户端程序运行起来比服务器端程序快得多 当一个浏览器的用户执行了一个操作时 不必通过网络对其作出响应 客户端程序就可以作出响应 6 但是 一般来说 可以解释VBScript脚本的浏览器只有MicrosoftInternetExplorer 而NetscapeNavigater将忽略VBScript脚本 如果需要 可以使用Java和Jscript JavaScript作为客户端编程语言 VBScript也可以作为服务器端编程语言 服务器端编程语言是在服务器上执行的语言 服务器为一个站点提供文件 而浏览器接收这些文件 当创建ASP网页时 将用VBScript作为服务器端编程语言 用VBScript作为服务器端编程语言的好处是VBScript不受浏览器的限制 VBScript脚本在网页通过网络传送给浏览器之前被执行 Web浏览器收到的只是标准的HTML文件 7 4 2课堂教学4 2 1在HTML页面中添加VBScript代码4 2 2VBScript的输入与输出4 2 3VBScript的数据类型4 2 4VBScript的变量4 2 5VBScript的数组变量4 2 6VBScript的常数4 2 7VBScript的运算符与表达式4 2 8VBScript的常用函数4 2 9语句 8 4 2 1在HTML页面中添加VBScript代码在HTML文件中 使用标记引用VBScript代码 VBScript代码写在标记 之间 标记 可以出现在HTML页面的任何地方 BODY或HEAD部分之中 然而最好将所有的一般目标脚本代码放在HEAD部分中 以使所有脚本代码集中放置 这样可以确保在BODY部分调用代码之前所有脚本代码都被读取并解码 9 众志成城 例4 1 第一个VBScript例子 利用记事本编写如下代码 10 以4 1 htm或4 1 asp为文件名存盘 存放位置为工作目录H ASP例 ch4 参见1 2 3 有以下两种方式可以执行HTML文件4 1 htm 打开Internet信息服务器窗口 找到虚拟目录myasp ch4 在右边的文件列表中选择文件4 1 htm 然后在 操作 菜单中选择 浏览 项 打开浏览器 在地址栏中直接输入虚拟目录名及文件名 http 127 0 0 1 myasp ch4 4 1 htm在浏览器上的显示效果 11 说明 代码的开始和结束部分都有标记 LANGUAGE属性用于指定所使用的脚本语言 由于浏览器能够使用多种脚本语言 所以必须在此指定所使用的脚本语言 VBScript代码被嵌入在注释标记 中 这样能够避免不能识别标记的浏览器将代码显示在页面中 12 SCRIPT块可以出现在HTML页面的任何地方 BODY或HEAD部分之中 然而最好将所有的一般目标脚本代码放在HEAD部分中 以使所有脚本代码集中放置 这样可以确保在BODY部分调用代码之前所有脚本代码都被读取并解码 但是当脚本代码作为对象的事件代码时 则不必把它放在HEAD部分中 可以就近放在对象附近 如下例所示 13 例4 2 以下代码将脚本代码放在按钮对象的定义之后以响应按钮的单击事件 简单验证简单验证请输入任何数据 MsgBox 您输入的数据是 Text1 Value 在浏览器上的显示效果 说明 代码中使用了内部控件标记 其属性Type指定控件的类型 文本框Text和命令按钮Button 其详情参见第6课 14 控件的事件代码可以单独放在过程中 如按钮Button1的单击 onclick 事件代码 MsgBox 您输入的数据是 Text1 Value 可以改写为 SubButton1 onClickMsgBox 您输入的数据是 Text1 ValueEndSub 大多数脚本代码在Sub或Function过程中 仅在其他代码要调用它时执行 然而 也可以将VBScript代码放在过程之外 SCRIPT块之中 这类代码仅在HTML页面加载时执行一次 这样就可以在加载Web页面时初始化数据或动态地改变页面的外观 15 4 2 2VBScript的输入与输出1 信息框函数2 输入框函数 16 VBScript中实现信息输入与输出的方法有两种 一种是使用Document对象及其子对象的方法和属性 一种是使用VBScript的内置函数 1 信息框函数信息框函数 MsgBox 是常用的输出信息的函数 例4 1和4 2中都使用了该函数 MsgBox函数在对话框中显示信息 等待用户单击按钮 并返回一个整数以标明用户单击了哪个按钮 其语法格式为 变量 MsgBox 信息内容 对话框类型 对话框标题 说明 17 信息内容 指定在对话框中出现的文本 在信息内容中使用硬回车符 CHR 13 可以使文本换行 对话框的高度和宽度随着信息内容的增加而增加 最多可有1024个字符 对话框类型 指定对话框中出现的按钮和图标 一般有三个参数 其取值和含义见表4 1 表4 2 表4 3 表4 1参数1 出现按钮 18 表4 2参数2 图标类型 表4 3参数3 默认按钮 上述三种参数值可以相加以达到所需要的样式 19 对话框标题 指定对话框的标题 下述代码将显示如图4 3所示的对话框 图4 3信息对话框 aa msgbox 请确认输入的数据是否正确 51 VBscript 数据检查 Msgbox 返回的值指明了在对话框中选择哪一个按钮 见表4 4 表4 4Msgbox函数的返回值 20 代码中的值可以是数值 也可以是数值常量 如果省略了某些可选项 必须加入相应的逗号分隔符 若不需要返回值 则可以使用MsgBox的命令形式 MsgBox 信息内容 对话框类型 对话框标题 在程序运行的过程中 有时需要显示一些简单的信息如警告或错误等 此时可以利用 信息对话框 来显示这些内容 当用户接收到信息后 可以单击按钮来关闭对话框 并返回单击的按钮值 21 2 输入框函数输入框函数 InputBox 函数显示一个能接受用户输入的对话框 并返回用户在对话框中输入的信息 其语法格式为 变量 InputBox 信息内容 对话框标题 默认内容 说明 信息内容 指定在对话框中出现的文本 在 信息内容 中使用硬回车符 CHR 13 可以使文本换行 对话框的高度和宽度随着 信息内容 的增加而增加 最多可有1024个字符 22 对话框标题 指定对话框的标题 默认内容 可以指定输入框的文本框中显示的默认文本 如果用户单击 确定 按钮 文本框中的文本 字符串 将返回到变量中 若用户单击 取消 按钮 返回的将是一个零长度的字符串 下述代码将显示如图4 4所示的输入框 aa InputBox 信息内容 对话框标题 默认内容 注意 如果省略了某些可选项 必须加入相应的逗号分隔符 图4 4输入框 23 4 2 3VBScript的数据类型VBScript只有一种数据类型 称为Variant 变体类型 因为Variant是VBScript中唯一的数据类型 所以它也是VBScript中所有函数返回值的数据类型 Variant是一种特殊的数据类型 根据使用的方式 它可以包含不同类别的信息 最简单的Variant可以包含数字或字符串信息 Variant用于数字上下文中时作为数字处理 用于字符串上下文中时作为字符串处理 也可以将数字包含在引号 中使其成为字符串 24 除简单数字或字符串以外 Variant可以进一步区分数值信息的特定含义 例如使用数值信息表示日期或时间 此类数据在与其他日期或时间数据一起使用时 结果也总是表示为日期或时间 从Boolean值到浮点数 数值信息是多种多样的 Variant包含的数值信息类型称为子类型 大多数情况下 可将所需的数据放进Variant中 而Variant也会按照最适用于其包含的数据的方式进行操作 表4 5显示了Variant包含的数据子类型 可以使用转换函数来转换数据的子类型 另外 可使用VarType函数返回数据的Variant子类型 25 表4 5Variant包含的数据子类型 26 4 2 4VBScript的变量1 变量的命名规则2 声明变量3 变量的作用域与存活期4 给变量赋值 27 变量是一种使用方便的占位符 用于引用计算机内存地址 该地址可以存储脚本运行时可更改的程序信息 例如 可以创建一个名为ClickCount的变量来存储用户单击Web页面上某个对象的次数 使用变量并不需要了解变量在计算机内存中的地址 只要通过变量名引用变量就可以查看或更改变量的值 在VBScript中只有一个基本数据类型 即Variant 因此所有变量的数据类型都是Variant 28 1 变量的命名规则变量命名必须遵循VBScript的标准命名规则 第一个字符必须是字母 不能包含嵌入的句点 长度不能超过255个字符 在被声明的作用域内必须唯一 29 2 声明变量声明变量的一种方式是使用Dim语句 Public语句和Private语句在脚本中显式声明变量 并分配存储空间 声明变量的语法为 Dim Private Public 变量名 变量名2 变量名3 说明 Public语句变量可用于全部脚本中的所有过程 用Dim声明的Script级变量可用于脚本中的所有过程 过程级变量只能用于过程中 Private语句变量只能在声明该变量的脚本中使用 变量名 遵循VBScript的标准命名规则 30 例如 DimDegreesFahrenheit声明多个变量时 使用逗号分隔变量 例如 DimTop Bottom Left Right另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量 这通常不是一个好习惯 因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外的结果 因此 最好使用OptionExplicit语句显式声明所有变量 并将其作为脚本的第一条语句 注意 OptionExplicit语句的位置很特殊 必须把OptionExplicit语句作为一个ASP网页的起始语句之一 即它必须出现在任何HTML标识或其它VBScript命令之前 否则 该语句将被视为非法语句 31 3 变量的作用域与存活期变量的作用域由声明它的位置决定 如果在过程中声明变量 则只有该过程中的代码可以访问或更改变量值 此时变量具有局部作用域并且是过程级变量 如果在过程之外声明变量 则该变量可以被脚本中所有过程所识别 称为Script级变量 具有脚本级作用域 变量存在的时间称为存活期 Script级变量的存活期从被声明的一刻起 直到脚本运行结束 过程级变量的存活期仅是过程运行的时间 该过程结束后 变量随之消失 可以在不同过程中使用同名的局部变量 这是因为每个局部变量只被声明它的过程识别 32 4 给变量赋值使用赋值语句可以将指定的值赋给某个变量 赋值语句的一般格式为 名称 值 说明 名称 是任何变量或可写的属性 值 可以是任何数值或字符串文字 常数或表达式 赋值语句是先计算 表达式 然后再赋值 将计算所得的表达式值赋给 左边的变量或属性 赋值号 不是数学上的等号 a 5应读作 将数值5赋给变量a 或是 使变量a的值等于5 可以理解为 a 5 33 4 2 5VBScript的数组变量1 数组的声明2 动态数组 34 1 数组的声明数组变量和标量变量是以相同的方式声明的 唯一的区别是声明数组变量时变量名后面带有括号 声明数组的语法为 Dim Private Public ReDim 变量名 维数 变量名2 维数2 说明 维数 是指数组变量的维数 最多可以声明60维的数组 维数 参数使用以下语法 上界 上界2 35 数组的下界总是0 如下面的命令代码声明了一个包含11个元素的一维数组 DimA 10 虽然括号中显示的数字是10 但由于在VBScript中所有数组的下界都是0 所以这个数组实际上包含11个元素 通常 VBScript中数组元素的数目总是括号中显示的数目加1 这种数组被称为固定大小的数组 在数组中使用索引为数组的每个元素赋值 从0到10 将数据赋给数组的元素 如下所示 A 0 256A 1 324A 2 100 A 10 55 36 与此类似 使用索引可以检索到所需的数组元素的数据 例如 S A 8 数组并不仅限于一维 数组的维数最大可以为60 尽管大多数人不能理解超过3或4的维数 声明多维数组时用逗号分隔括号中每个表示数组大小的数字 在下例中 MyTable变量是一个有6行和11列的二维数组 DimMyTable 5 10 在二维数组中 括号中第一个数字表示行的数目 第二个数字表示列的数目 37 2 动态数组也可以声明动态数组 即在运行脚本时大小发生变化的数组 对动态数组的最初声明使用Dim语句或ReDim语句 括号中不包含任何数字 例如 DimMyArray ReDimAnotherArray 38 要使用动态数组 必须随后使用ReDim确定维数和每一维的大小 在下例中 ReDim将动态数组的初始大小设置为25 而后面的ReDim语句将数组的大小重新调整为30 同时使用Preserve关键字在重新调整大小时保留数组的内容 ReDimMyArray 25 ReDimPreserveMyArray 30 重新调整动态数组大小的次数是没有任何限制的 尽管将数组的大小调小时 将会丢失被删除元素的数据 39 4 2 6VBScript的常数常数是指具有一定含义的名称 用于代替数字或字符串 其值从不改变 VBScript定义了许多内部常数 也允许程序员创建用户自定义常数 使用Const语句可以创建名称具有一定含义的字符串型或数值型常数 并给它们赋原义值 其语法格式为 Public Private Const 常数名 表达式 40 说明 Public可选项用于在Script级中声明可用于所有脚本中所有过程的常数 不允许在过程中使用 Private可选项用于在脚本级中声明只可用在声明所在的脚本中的常数 不允许在过程中使用 在默认情况下常数是公用的 过程中的常数总是专有的 其可见性无法改变 Script中 可用Private关键字来改变脚本级常数可见性的默认值 常数名 必选项为常数的名称 根据标准的变量命名规则 41 表达式 必选项 文字或其他常数 或包括除Is外的所有算术运算符和逻辑运算符的任意组合 常数声明中不能使用变量 用户自定义的函数或VBScript内部函数 另外也不能从含有运算符的表达式中创建常数 即只允许使用简单常数 要在同一行中声明若干个常数 可用逗号将每个常数赋值分开 用这种方法声明常数时 如果使用了Public或Private关键字 则该关键字对该行中所有常数都有效 在Sub或Function过程中声明的常数是该过程的局部常数 在过程外声明的常数是声明所在的脚本中的全局常数 可以在任何使用表达式的地方使用常数 42 下面代码说明如何使用Const语句 ConstMyString 这是一个字符串 ConstMyAge 49请注意字符串文字包含在两个引号 之间 这是区分字符串型常数和数值型常数的最明显的方法 日期文字和时间文字包含在两个井号 之间 例如 ConstCutoffDate 6 1 97 最好采用一个命名方案以区分常数和变量 这样可以避免在运行脚本时对常数重新赋值 例如 可以使用 vb 或 con 作常数名的前缀 或将常数名的所有字母大写 将常数和变量区分开可以在开发复杂的脚本时避免混乱 43 4 2 7VBScript的运算符与表达式1 算术运算符2 比较运算符3 连接运算符4 逻辑运算符5 运算符优先级 44 运算是对数据进行加工的过程 描述各种不同运算的符号称为运算符 而参与运算的数据称为操作数 表达式用来表示某个求值规则 它由运算符和配对的圆括号将值 常数 变量 函数 对象等操作数以合理的形式组合而成 表达式可用来执行运算 操作字符或测试数据 每个表达式都产生唯一的值 表达式的类型由运算符的类型决定 VBScript有一套完整的运算符 包括算术运算符 比较运算符 连接运算符和逻辑运算符 45 1 算术运算符VBScript有7个算术运算符 见表4 2 在这7个算术运算符中 除取负 是单目运算符外 其他均为双目运算符 加 减 乘 浮点除法 取负 乘方 运算的含义与数学中基本相同 表4 2算术运算符 46 说明 和 的区别 1 2 0 5 1 2 0 整除号 用于整数除法 在进行整除时 如果参加运算的数据含有小数 首先将它们四舍五入 使其成为整型数或长整型数 然后再进行运算 其结果截尾成整型数 模运算符Mod用来求整型除法的余数 其结果为第一个操作数整除第二个操作数所得的余数 例如 9Mod7的值为2 若表达式为 25 58Mod6 91 则首先把25 58和6 91分别取整为26和7 其值5 进行除法 包括整除 运算时 除数为0或进行乘幂运算时指数为负数而底数为0时 都会产生算术溢出的错误信息 47 例4 3 华氏温度和摄氏温度相互转换的网页 利用输入框输入温度 利用信息框输出转换后的温度 输入一个华氏温度可以得到相应的摄氏温度 而输入一个摄氏温度则可以得到相应的华氏温度 分析 设C为摄氏温度 F为华氏温度 则有 因此可以得到 48 编写如下HTML代码 温度转换华氏温度和摄氏温度相互转换c InputBox 请输入摄氏温度值 摄氏转华氏 0 f 32 9 c 5MsgBox 摄氏 c 度 华氏 f 度 f InputBox 请输入华氏温度值 华氏转摄氏 0 c 5 f 32 9MsgBox 华氏 f 度 摄氏 c 度 注意 代码中的双引号 逗号和其他运算符必须是英文字符 在浏览器中代码的执行结果 49 2 比较运算符VBScript有7个比较运算符 用于比较表达式 其说明见表4 3 表4 3比较运算符 50 说明 当比较两个表达式时 或许不容易确定比较的表达式是作为数值或作为字符串 表4 4描述了如何对表达式进行比较 以及比较的结果 表4 4比较的子类型 51 3 连接运算符连接运算符用于连接两个或更多的字符串 VBScript只有一种连接运算符 即 其语法格式为 字符串1 字符串2 字符串3 当两个字符串用连接运算符连接起来后 第二个字符串直接添加到第一个字符串的尾部 结果是一个更长的 包含两个源字符串的全部内容的字符串 如果要把多个字符串连接起来 每两个字符串之间都要用 号分隔 52 例如 ABC123 666xyz 连接后结果为 ABC123666xyz 计算机 世界 连接后结果为 计算机世界 12345 abcd xyz 连接后结果为 12345abcdxyz 除用 把两个表达式强制连接成一个字符串外 还可以用 把两个字符串连接成一个字符串 为了避免与算术加法运算符产生混淆 应该用 号 另外 会自动将非字符串子类型的数据转换成字符串后再进行连接 而 则不能自动转换 例如 123 456 abc 连接后结果为 123456abc 53 4 逻辑运算符VBScript提供的布尔运算符有 And Or Not Xor Eqv Imp等6种 见表4 5 其中常用的为前三种 表4 5逻辑运算符 54 说明 逻辑运算符两侧若有数值数据出现 则将数值数据转换为二进制数 补码形式 进行按位运算 此时 1为真 0为假 逻辑运算的结果见表4 6 真值表 表4 6逻辑运算真值表 55 5 运算符优先级当表达式包含多个运算符时 将按预定顺序计算每一部分 这个顺序被称为运算符优先级 可以使用括号越过这种优先级顺序 强制首先计算表达式的某些部分 运算时 总是先执行括号中的运算符 然后再执行括号外的运算符 但是 在括号中仍遵循标准运算符优先级 当表达式包含多种运算符时 首先计算算术运算符 然后计算比较运算符 最后计算逻辑运算符 所有比较运算符的优先级相同 即按照从左到右的顺序计算比较运算符 运算符的优先级见表4 7 56 表4 7运算符的优先顺序 57 说明 同级运算按照它们从左到右出现的顺序进行计算 可以用括号改变优先顺序 强令表达式的某些部分优先运行 括号内的运算总是优先于括号外的运算 在括号之内 运算符的优先顺序不变 58 4 2 8VBScript的常用函数1 数学运算函数2 字符串函数3 日期和时间函数4 随机数语句和函数5 数据类型转换函数6 测试函数 59 函数的概念与一般数学中函数的概念没有什么根本区别 函数是一种特定的运算 在程序中要使用一个函数时 只要给出函数名并给出一个或多个参数 就能得到它的函数值 在VBScript中 有两类函数 内部函数和用户定义函数 用户定义函数是由用户自己根据需要定义的函数 内部函数也称标准函数 VBScript提供了大量的内部函数 在这些函数中 有些是通用的 有些则与某种操作有关 这些函数可分为 转换函数 数学函数 字符串函数 日期时间函数 随机函数 下面列出一些常用的内部函数 其具体用法参见附录B 60 1 数学运算函数数学运算函数用于各种数学运算 常用数学运算函数见表4 8 表4 8常用数学运算函数 61 2 字符串函数VBscript提供了大量的字符串函数 具有强大的字符串处理能力 见表4 9 表4 9常用字符串函数 62 3 日期和时间函数时间和日期函数使程序能向用户显示日期和时间 提供某个事件何时发生及持续时间长短的信息 时间和日期函数见表4 10 表4 10常用日期和时间函数 63 4 转换函数在测试 模拟和游戏程序中 经常要使用随机数 随机数语句和函数见表4 11 表4 11随机数函数和语句 64 每个类型转换函数都可以强制将一个表达式转换成某种特定数据子类型 例如 Area CDbl txtLength Text txtWidth Text 注意 如果传递给函数的参数超过转换目标数据类型的范围 将发生错误 例如 如果想把Long型数转换成Integer型数 那么 Long型数必须在Integer数据类型的有效范围之内 一般不必了解VBScript为特殊变量使用哪一种变量子类型 若想了解VBScript正在使用哪种变量子类型 可使用VarType函数 65 6 测试函数在VBScript中 还提供了一些测试函数 用来测试传入参数的各种形态 测试函数见表4 13 表4 13测试函数 66 说明 Null值表示变量不包含有效数据 Null与Empty不同 后者表示变量未经初始化 Null与零长度字符串 也不同 零长度字符串往往指的是空串 在某些情况下想使表达式取值为True 例如IfVar Null和IfVarNull 但它们通常总是为False 这是因为任何包含Null的表达式本身就为Null 所以表达式的结果为False 此时使用IsNull函数可以判断表达式是否包含Null值 例如 下面的示例利用IsNull函数决定变量是否包含Null DimMyVar MyCheckMyCheck IsNull MyVar 返回False MyVar Null 赋为Null MyCheck IsNull MyVar 返回True MyVar Empty 赋为Empty MyCheck IsNull MyVar 返回False 67 4 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论