450 likes | 662 Vues
ASP 脚本语言 —— VBScript. 教学内容: 1. 脚本语言的概述 2. VBScript 代码的基本格式 3. VBScript 的语法. 脚本语言的概述. 脚本语言: ASP 不是一种编程语言,是一套服务端的对象模型,它需要脚本语言来实现。脚本语言是 Visual Basic 、 Java 等高级语言的一个子集,比高级语言简单,当然功能也没有高级语言那么强大的。脚本语言可嵌入在 HTML 文件中。. 脚本语言作用: 在 Web 页面增加脚本程序,可在服务端和客户端实现 HTML 语言无法实现的功能,扩展了 HTML 语言功能. 脚本语言的概述.
E N D
ASP脚本语言——VBScript 教学内容: 1. 脚本语言的概述 2. VBScript代码的基本格式 3. VBScript的语法
脚本语言的概述 脚本语言:ASP不是一种编程语言,是一套服务端的对象模型,它需要脚本语言来实现。脚本语言是Visual Basic、Java等高级语言的一个子集,比高级语言简单,当然功能也没有高级语言那么强大的。脚本语言可嵌入在HTML文件中。 脚本语言作用:在Web页面增加脚本程序,可在服务端和客户端实现HTML语言无法实现的功能,扩展了HTML语言功能
脚本语言的概述 • 脚本语言种类 VBScript和JavaScript等。在ASP中,我们常用的、默认的都是VBScript,如果要用JavaScript脚本语言,必须进行设置或注明。 • 站点默认脚本语言设置 • 【IIS管理器】默认WEB站点的【主目录】或虚拟站点的【虚拟目录】【配置】 【应用程序选项】 修改“默认ASP语言” • 某些脚本程序选用脚本语言的设置 • 修改 Language的属性值,如Language=”VBScript”
VBScript语言的特点 • VbScript是程序开发语言VB的一个子集,是ASP默认的脚本语言。 • 客户端和服务端都支持VbScript • VbScript以对象为基础(对象基础语言不仅支持对象的属性和成员函数,而且可以用来编写动作并反映出对象的相关事件),可以非常容易使用ASP提供的内建对象
客户端VBScript格式 客户端执行的VBScript代码格式: <Script Language=”VBScript” > VBScript代码 </script> 如果要用JavaScript作为脚本语言,只要把Language=”VBScript”的“VBScript”该为 Language=” JavaScript”。 然后插入JavaScript代码就可以了
服务端VBScript格式 服务端执行的VBScript格式: 方法一: <% @language=“vbscript” VBScript代码 %> 方法二: <Script Language=”VBScript” Runat=”server”> VBScript代码 </script>
VBScript语法 VBScript这一脚本语言直接来源于VB,所以VBScript的语法多是继承了VB的语法,但也有变化。 关于VBScript与VB的区别见:VBScript与Vb的比较.DOC
1.VBScript的数据类型 在Visual Basic、C++等高级语言中,数据类型都是分为整数、字符、浮点数等不同的类型,但在VBScript中,只有一种数据类型,称为Variant(变体类型)。 dim a a=2001 ‘VBScript会将它当成整数对待 a=”2001”‘VBScrint会将它当成字符串对待 a=20.01 ‘VBScript会将它当成小数对待 a=false ‘VBScript会将它当成一个布尔值 Variant 根据不同的使用方式,可以包含不同的数据类别信息。所以我们把Variant变量中保存的数据类型称为变量的子类型。
1.VBScript的数据类型 一般情况下VBScript也会根据代码的上下文自动转换数据的子类型。例如:Variable_1=”2001”,这里Variable_1作为一个字符串变量来工作,而如果下面有Variable_2=Variable_1+3,这时VBScript就会自动将Variable_1转换成整数变量,然后参与运算。但有时候,也会遇到一些数据类型不匹配造成的错误。这时,可以使用VBScript的转换函数来强制转换数据的子类型。(见VBScript帮助文件)
2.VBScript常量 声明常量的意义就在于可以在程序的任何部分使用该常量来代表特定的值,从而方便程序的编写和修改。例如在程序中定义 Const PI=3.1415926 Const ConstDate=#2001-1-12# 这样,在接下来的程序编写中就可以直接用PI代表3.1415926,用ConstDate代表#2001-1-12#,简洁明了又不容易出错。
3.VBScript变量 VBScript中的变量的声明和赋值与其他程序语言中的变量的声明和赋值是很相似的,但也有它的不同之处。我们看个例子: Dim a Dim a,b,c VBScript中的变量的声明不需要定义数据类型,因为它只有一种数据类型——Variant。
3.VBScript变量 (1)VBScript中可同时定义多个变量,只要用逗号隔开变量就可以了; (2)在VBScript中,使用变量之前不需要预先声明它,变量赋值时会自动声明该变量,以后即可被引用。虽然这样很方便,但也带来了麻烦,如果不小心输错了,就相当于声明了一个新的变量,引起程序出错,这种错误,特别是在大程序中很难查找。所以建议大家在今后编程使用变量时,要养成先声明后使用的习惯。 (3)强制变量必须先声明后使用可以在第一个<script>标记之后加上Option Explicit语句 或在页面添加<% option Explicit %>。
4. VBScript数组 VBScript中的数组声明和其他程序语言中的数组声明也很相似。 如:Dim a(3)
4. VBScript数组 关于VBScript中的数组需注意几点: (1)数组定义中Dim a(3) 中的3不是指数组a的元素个数,而是数组a的下限是3,所以上面定义的数组a(3)有4个元素; (2)VBScript中的数组的上限是0; (3)数组中每个元素保存的数据的子类型可以不一样 (4)声明多维数组时要定义每一维的下限,如Dim a(4,5).表示的是一个2维数组,第一维有5个元素,第二维有6个元素,一共有30个元素; (5)定义动态数组,即声明数组时可以不确定数组项目数,使用时再确定。
4. VBScript数组 <% Dim a() Redim a(3) a(3)=3 Redim a(5) a(3)=? %> 注意: redim数组后,数组元素中原有的数值全部被清空了。如果希望保留数组元素原有的值不变,则要使用Redim Preserve a(5)。
常量-变量-数组 (1)和许多高级语言一样,VBScript中的常量,变量,数组根据作用域也可分为过程级和全局级,作用域是由声明它的位置决定。在过程定义的变量为过程级变量,在过程外定义的变量为脚本级变量,不过脚本级变量也就只能作用于单个ASP页面。 (2)常量,变量,数组的命名要符合规则:只能包含字母、数字和下划线,并且只能以字母开头。 (3)常量,变量,数组的命名要注意可读性。也就是说能让自己一看就明白,别人也容易看明白。这对程序的合作开发、继承开发尤其重要。
赋值语句 • 多个变量附相同的值时,不能写成: 变量1=变量2=……=表达式 • 声明变量时不能同时赋值,下面语句是错误的: Dim a=2 • 对对象赋值要使用set set rs=server.CreateObject(“ADODB.Recordset”)
5.VBScript运算符 VBScript继承了Visual Basic的所有类别的运算符,包括: 算术运算符:+ - * / mod(取余) ^(指数) 比较运算符:= <> > >= < <= is(核对对象是否相同) 逻辑运算符: not and or 字符串运算符: & + 运算符优先级:括号-算术-比较-逻辑
5.VBScript运算符 算术运算符优先级: ^(指数)+ -(正负号) * /\ mod +-(加减) 比较运算符优先级:相同 逻辑运算符: not and or 运算符优先级:括号算术比较逻辑
6.VBScript函数 VBScript继承了Visual Basic中的一些函数,包括输入输出函数、转换函数、字符串处理函数、日期和时间函数、数学函数。
(1)输入输出函数 MsgBox:输出函数。该函数告诉用户一些信息。语法如下: MsgBox(prompt[,button ][,title]) 其中: prompt——显示在窗口中的文字 button——可选项,用以指定窗口的外观和按钮的类型 title ——可选项,显示在窗口标题中的文字 […]内的内容表示是可选项,如果不选时,则系统会采 用默认设置。
(1)输入输出函数 <html> …… <body bgcolor="#FFFFFF" text="#000000"> <Script Language="VBScript"> MsgBox "我最想做的事是去周游世界!",2,"理想之窗" </Script> </body> </html>
(1)输入输出函数 InputBox:输入函数。该函数用于显示一个输入窗口,要求用户输入数据。语法如下: String=Inputbox(prompt[,title][,default]) 其中: String——文本框中的内容,即用户输入的内容 prompt ——显示在窗口中的提示文字 title ——可选项,显示在窗口标题中的文字 default ——可选项,用于指定窗口中文本输入框内 的默认字符串
(1)输入输出函数 <html> …… <body bgcolor="#FFFFFF" text="#000000"> <Script Language="VBScript"> Option Explicit Dim name1 name1=InputBox("你目前最想做的事情是","输入你所想的") MsgBox "你最想做的事是" & name1 </Script> </body> </html>
(1)输入输出函数 • VbScript在服务端不支持InputBox()和MsgBox()两个函数
(2)转换函数 前面介绍了Variant变量一般会将其代表的数据子类型自动转换成合适的数据类型。但有时候自动转换也会造成一些数据类型不匹配的错误,这时,可以使用VBScript的转换函数来强制转换数据的子类型,例如: <% Num1=1000 Str1=“欢迎你第”&CStr(Num1) &“次光临本店!” %> 在这里,CStr()就将Num1由整数子类型强制转换为字符串子类型。
(2)转换函数 CStr() Cint() Cdate() Csng () Cbool () Clng()
(3)字符串函数 在ASP程序开发中,字符串的使用几率非常高。比如在用户注册时输入的用户名、密码,在留言板中的留言标题、内容、留言人等信息,都是被作为字符串处理的。这样就经常需要用到字符串函数来对字符串进行截头去尾、大小写替换等操作。 例如 Num=InStr(“abc@163.com”,” @”) 。该函数返回给Num的值为”@”在abc@163.com中的位置,假如第一个字符串中不存在第二个字符串,则返回0给num.
(3)字符串函数 InStrrev(“abc@163.com”,” @”) Instr(“abc@163.com”,” @”) mid(“abc@163.com”,2,3) trim(“abc@163.com ”) Ltrim(“abc@163.com ”) Rtrim(“abc@163.com ”)
(4)日期和时间函数 在VBScript中,可以使用日期和时间函数来得到各种格式的日期和时间,比如在留言板里经常要用到Date函数来记载留言日期。 需要提醒大家的是:日期常数要用#日期数值#来标记,如:this_Month=Month(#2004-9-14#) Now() Date() time() Year() month() day() DateAdd(interval, number, date)
7.条件、循环语句 条件语句(if / select case ) 循环语句(for / do while ) VBScript中的条件语句和循环语句的语法规则与VB中的条件语句和循环语句基本上是一样的。
8.VBScript过程 在VBScript中,过程有两种,一种是Sub子程序,一种是Function函数。与许多高级语言相同,两者的区别在于:sub子程序只执行程序而不返回值,而Function函数可以将执行代码后的结果返回给请求程序。子程序名和函数名的命名规则和变量名的命名规则相同。
Sub子程序 Sub子程序的语法如下: Sub 子程序名(参数a,参数b,…) …… End Sub 或 Sub 子程序名() …… End Sub 其中,“参数a,参数b,…”是指由调用过程时传递的常数、变量或表达式。利用这些参数,可以传递数据。如果Sub过程无任何参数,则Sub语句必须使用空括号。
Sub子程序 Sub过程的调用有两种方式: (1)使用Call语句Call 子程序名(参数1,参数2,…) (2)不使用Call语句子程序名参数1,参数2,… 或 子程序名(参数1,参数2,…)
Sub子程序 注意点: (1)过程中的a和b等是形式参数,调用中是m和n等是实际参数,实参和形参的名字可以相同,也可以不同。 (2)运行中实际参数把值传给形式参数,实际参数和形式参数是按位置传递值的。 (3)实际参数可以是常量,可以是变量,可以是表达式,但要保证实际参数和对应的形式参数之间数据类型一致。 (4)因为实参m和n等已经声明过了,所以形参a和b等是不能再声明了。
Function函数 Function函数的语法如下: Function 函数名(参数1,参数2,…) …… End Function 或 Function 函数名() …… End Function 与Sub过程类似,其中“参数1,参数2,…”是指由调用过程传递的常数、变量或表达式。如果Function过程无任何参数,则Function语句必须使用空括号。
Function函数 (1)与Sub过程不同的是,Function函数通过函数名返回一个值,这个值是在过程的语句中赋给函数名的,Function返回值的数据类型是Variant。 (2)Function过程的调用方式只有一种,即通过直接引用函数名,实现函数的调用,而且函数名必须用在变量赋值语句的右端或表达式中。
Function函数 多个ASP页面公用过程的设计: function2.asp:包含一个函数定义 Call_ function2.asp : <!--#Include file=“function2.asp”-->这一语句把function2.asp中的内容插入到该页面Html代码中,所以我们就可以直接调用function2.asp中定义的函数了。
过程和函数 • 过程和函数通常放在head部分的 <script language=“Vbscript” > </script> 或 <script language=“Vbscript” runat=server> </script>
9.注释语句 注释语句在asp程序中虽然不执行,但对于我们程序开发和维护却是有积极作用的。所以提倡编写程序时要进行必要的注释,以便程序的阅读。注释的格式为: <% rem 注释内容 %> 或 <% ‘注释内容 程序语句 ‘注释内容 %>
9.注释语句 以“<%=”开头的输出表达式后不能进行注释 <% =Name ‘代码注释 %>
9.注释标记 • HTML代码中的注释语句 <!-- 注释内容 -- >
10.容错语句 当程序发生错误时,程序终止执行,并在页面显示出错信息。但有时不希望程序终止,也不希望将错误暴露在用户面前,我们就可以用容错语句。 <% on error resume next …… %> 当出错时,程序就会跳过去执行下一句,这样问题就不会暴露出来了,当然对于调试程序就不利了。