《第3章 JSP基础.ppt》由会员分享,可在线阅读,更多相关《第3章 JSP基础.ppt(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3 3章章 JSPJSP基础基础3.1 JSP3.1 JSP基础基础 3.1.1数据类型数据类型JSP常用数据类型如下:(1)整型整型 整型变量根据存放的数据的范围不同,可分为下列类型:byte型 位数为8位,存放-27(27-1)之间的整数。short型 位数为16位,存放-215(215-1)之间的整数。Int型 位数为32位,存放-231(231-1)之间整数。long型 位数为64位,存放-263(263-1)之间的整数。例如:(2)浮点型浮点型float型 位数为32位,数的范围为3.4e-0383.4e+038。对于foat型常量后面要跟小写f,否则会认为是double型。另外
2、,双精度浮点小数可以采用科学计数发来表示。double型 位数为64位,数的范围为1.7e-3081.7e+308。例如:(3)字符型字符型字符型即char型,在计算机中用16位无符号数表示,其取值范围为065535,所以可以表示Unicode字符集。字符型常量是用单引号引起来的一个字符,转义字符用“”引导。例如:ddd1-3位8进制数的字符uxxxx 1-4位16进制数的字符 单引号字符 斜杠字符r 回车字符n 换行字符例如:(4)逻辑型逻辑型 逻辑型(又称布尔型)数据主要用来存放逻辑判断的结果。取值为True(真)或False(假)。当将其他数据类型转换为逻辑数据时,非0转换为True,0
3、转换为False。例如:%booleanb1=true;booleanb2=1;booleanb3=1注意:注意:数值常量一般用十进制表示,也可以用其他进制表示。十六进制表示用0 x引导,例如:0 xffff为65535。常量也可以看成一个变量,其内容为固定不变。JSP中定义这种常量,要加关键字“final”。例如:3.1.2 3.1.2 运算符和表达式运算符和表达式1.JSP中的运算符中的运算符JSP中常用运算符分为算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符。l算术运算符算术运算符如表3-1所示。运算符运算符说明说明例例(初值初值x=10)结果结果+加x+313-减x-37*乘
4、x*330/除x/33.33%余数X%31+递增x+11-递减x-9表表3-1 算术运算符说明算术运算符说明l赋值运算符赋值运算符如表3-2所示。运算符说明例(初值x=10)x的结果=等于赋值x=1010+=加赋值x+=313-=减赋值x-=37*=乘赋值x*=330/=除赋值x/=33.33%=余数赋值x%31.=字符串赋值x.=”abc”“10abc”l关系运算符关系运算符如表3-3所示。运算符说明例(初值x=10)结果=等于x=10true!=不等于x!=10false大于x12false=大于等于x=8true小于x=小于等于x3falsel位运算符 运算符如表3-5所示。运算符说明例
5、(二进制)结果(二进制)&按位与00101010&0001011100000010|按位或00101010|0001011100111111按位非0010101011010101按位异或00101010|0001011100111101左移00101010右移0010101021110101020000101011111010无符号右移11101010200111010l条件运算符 逻辑表达式?结果1:结果2 如果“逻辑表达式”为真,则值为结果1,否则为结果2。2.运算符的优先级运算符的优先级 对一个包含多种类型的运算符表达式进行运算时,要按运算符的优先顺序从高向低进行,同级的运算符则从左到右
6、的方向进行。运算符的优先顺序如表3-6所示。优先次序(优先次序依次降低)运算符一元运算符+,-,!,乘、除法运算符*,/,%加、减法运算符+,-移位运算符,关系运算符,=关系运算符=,!=按位与运算符&按位异或运算符按位或运算符|逻辑与运算符&逻辑或运算符|条件运算符?:赋值运算符=,+=,=,*=,/=,%=,=,&=,|=,=,=3.JSP的表达式的显示的表达式的显示显示表达式的语法规则为:其中,expression是符合JSP语法的表达式。在运行后被自动转化为字符串然后插入到这个表达式的位置显示。因为表达式的值已经被转化为字符串,所以只能在一行文本中插入这个表达式。当使用表达式的时候,应
7、该注意以下几点:l不能在表达式后面使用分号;l可以使用任何合法的(即符合JAVA语言规范的)表达式;l如果一个表达式有多个部分,则计算表达式的值时应该遵循从左到右的规则。3.1.3 3.1.3 条件语句条件语句 条件语句的作用是根据条件表达式决定执行程序的某一部分而不执行另外一部分。ifelse语句根据判定条件的逻辑值来决定要执行的语句。当要执行语句一条以上时,需要用括起。1格式格式1if(判断条件)条件成立执行的语句或if(判断条件)条件成立执行的语句或if(判断条件)条件成立执行的语句1else条件不成立执行的语句22格式格式2if(判断条件1)条件1成立执行的语句elseif(判断条件2
8、)条件2成立执行的语句else条件1和条件2都不成立执行的语句注意:else子句不能单独作为语句使用,它必须和if配对,else总是与离它最近的if或elseif配对。3.1.4循环语句循环语句循环语句的作用是反复执行一段代码,直到满足终止循环的条件为止。一个循环一般应包括2部分内容:循环体:这是反复循环的一段代码,可以是单一的一条语句,也可以是复合语句。循环终止条件:通常是一个条件表达式,以确定循环是否终止。JSP循环形式主要有for语句、while语句和dowhile语句三种形式。1.for语句语句格式:for(初始化;循环终止条件;迭代)循环体这里初始化在第一次循环开始前执行,用来设置循
9、环的一些初始条件。迭代部分是在当前循环结束、下一次循环开始前执行的语句,常用来使计数器加1或者减1。“初始化”、“循环终止条件”和“迭代”这三部分都可以是空语句,但是分号不能省略。终止条件为空的时候,相当于一个无限循环。2.while语句语句格式:while(循环条件)循环体循环条件成立(逻辑表达式为true),循环体被执行。While每次循环前都要判断“循环条件”,如果“循环条件”的值为false,循环结束。3.dowhile语句语句格式:do循环体while(循环终止条件);dowhile语句首先执行循环体中的语句,然后再判断“循环终止条件”。也就是说,循环体至少被执行一次。在循环体部分,
10、都可以用break、continue语句控制循环的流程。其中break用于强行退出循环。而continue则跳到循环结束位置,不执行循环中剩余的语句。break语句格式:breaklabel;如果没有label的标号,则break使得程序从循环体出来;如果有label标号,则程序跳转到标号所指明的程序的位置。continue语句格式:continuelabel;如果没有label的标号,continue语句结束本次循环,跳过循环体,接着进行循环终止条件的判断;如果有label标号,continue则可以跳转到标号所指明的位置。例如以下代码显示1到10的奇数。%for(inti=1;i3.1.5
11、 3.1.5 自定义函数自定义函数1.自定义函数自定义函数自定义函数的格式:自定义函数可以传送参数,自定义函数返回值通过return语句得到。自定义函数的调用与系统函数相同。例如:2.全局变量和局部变量的声明全局变量和局部变量的声明和主程序中所声明的变量为全局变量,作用于整个页面文件。自定义函数中声明的变量,为局部变量,只能在自定义函数内部应用。例如:其中,声明区声明的变量a,b,c和程序声明区的变量e是全局变量,函数中声明的变量d为局部变量。3.1.6 数组 数组是最简单的数据集合形式,在一个数组中,多个变量使用一个变量名和各自的编号命名。JSP使用字符和 标记数组。声明格式:数组类型数组名
12、=new数组类型元素数量 例如:JSP可以使用多维数组,多维数组的声明与赋值方法如下:3.2 JSP系统常用类3.2.1常用数值类常用数值类JSP常用数值类有Integer类、Float类、Math类和Random类等,这些类大部分属于java.lang包。1.Integer类类Integer类的方法常用于整型与字符串的相互转化、整型数与进位法转换等。方法说明见表3-7。方 法说 明compareTo(int)比较两数大小。前者比后者大为1,小为-1,相等为0。parseInt(String)转换成整数decode(String)转换字符串为整数equals(Object)比较两数是否相等to
13、BinaryString(int)转换成二进制数字符串toOctalString(int)转换成八进制数字符串toHexString(int)转换成十六进制数字符串floatValue()返回浮点数值intValue()返回整数数值valueOf(String)字符串转换成整型2.Float类类Float类常用在字符与浮点数的相互转化、判断相同、转化为整形数等方法。方法说明见表3-8。方 法说 明compareTo(float)比较两数大小equals(Object)比较两数是否相等toString()转换成字符串floatValue()返回浮点数值intValue()返回整数数值valueO
14、f(String)字符串转换成Float3.Math类类 该类提供了常用的数学方法,如四舍五入、取绝对值、弧度角度转换等方法。方法说明见表3-9。方 法说 明round(double)返回四舍五入后的整数abs(long)返回绝对值max(Object,Object)返回最大值min(Object,Object)返回最小值sqrt(double)返回平方根log(double)返回自然对数pow(double1,double2)返回double1的 double2 次方toDegrees(double)返回角度toRadians(double)返回弧度sin(double)返回正弦值cos(d
15、ouble)返回余弦值tan(double)返回正切值random()返回随机数4.Random类类Random()方法产生一个Random对象。使用它所提供的方法,可以产生随机整数、随机浮点数、随机双精度数、随机长整数。方法说明见表3-10。方 法说 明nextInt()返回随机整数nextFloat()返回随机浮点数nextDouble()返回随机双精度数nextLong()返回随机长整数3.2.2常用字符串类常用字符串类1.Character类类Character类用于单个字母的处理、判断与转换的方法,属于java.lang包。方法说明见表3-11。Character类方法说明类方法说明
16、方 法说 明charValue()返回对象的字符 compareTo(Object)返回本对象与指定对象的ASCII差值,返回值为整数类型。equals(Object)返回本对象与指定对象是否相同,返回true/falsegetType(char)返回变量的字符种类并以整数表示1:大写 2:小写 3:数字 isDigit(char)判断变量是否为十进制数isLowerCase(char)判断字符是否为小写字母isUpperCase(char)判断字符是否为大写字母toLowerCase(char)将字符转换为小写toUpperCase(char)将字符转换为大写2.String类类String
17、类用于字符处理:可以进行“字符比较”、“字符转换”、“字符串搜索”以及“字符串链接及插入”。(1)基本方法String类的基本方法方法见表3-12。(2)比较处理方法String类比较处理方法见表3-13。方 法说 明length()返回字符串对象的字符长度,为整数类型charAt(int)返回字符串对象于指定位置上的字符getChars(int_strat,int_end,char、int)从当前字符串中复制若干字符到char 中方 法说 明compareTo(String)比较两个字符串大小startsWith(String)判断特定位置的字符串是否为指定字符串 endsWith(Stri
18、ng)判断结束字符串是否为指定字符串equals(Object)判断两个字符串是否相同regionMatches(int_start,String,int_start,int_len)判断两个字符串子串是否相等(3)搜索方法字符转换及字符串搜索方法见表3-14。3.StringBuffer类类字符串多重连接及插入方法见表3-15。方 法说 明replace(char,char)替换字符串中的指定字符toLowerCase()将字符串对象中的字母都转换为小写字母toUpperCase()将字符串对象中的字母都转换为大写字母trim()去除字符串前后的空格符toString()返回字符串对象ind
19、exOf(String)在字符串对象中搜索第一次出现指定字符串的位置lastIndexOf(String)在字符串对象中搜索最后一次出现指定字符串的位置substring(int_start,int_end)选取字符串对象起始位置到结束位置的内容concat(String)合并字符串方 法说 明append(String)将准备插入的对象置入StringBuffer中insert(int_start,String)将指定的插入对象,插入本字符串对象指定的开始位置中3.2.33.2.3常用日期时间类常用日期时间类日期和时间有关的类属于java.util包。1.Date类类 该类可产生Date对象
20、,并可指定对象内容为现在时间或则是指定时间。对象产生方式为:Date对象名称=newDate();Date对象名称=newDate(毫秒数);方法说明见表3-16。方 法说 明toString()返回现在时间,并以字符串类型显示getTime()返回1970年1月1日到现在的毫秒数,为长整形类型setTime(long)设置本对象自1970年1月1日起的毫秒数equals(Object)判断两个对象是否相等compareTo(Object)比较两个对象的大小2.Calender类类方法说明见表3-17。说明:常用叙述式为:YEAR,MONTH,DAY_OF_MONTH,DAY_OF_WEEK,
21、HOUR_OF_DAY,MINUTE,SECOND等。3.2.4常用系统信息类常用系统信息类1.Package类类 该类属于java.lang包。方法说明见表3-18。方 法说 明equals(Object)判断两个对象是否相等getTime()返回时间set(int,int,int,int,int,int)设置时间get(Object)按叙述式内容取出对象信息 方 法说 明toString()返回字符串getName()返回程序名称getSpecificationVersion()返回版本信息getSpecificationVendor()返回厂商名称getImplementationTit
22、le()返回包的名称getPackage(String)返回指定程序的包getPackages()返回所有包数组表表3-18 Package类方法说明类方法说明2.Runtime类类该类属于java.lang包。方法说明见表3-19。3.Hashtable类类该类属于java.util包。方法说明见表3-20。方 法说 明getRuntime()返回本对象的Runtime对象totalMemory()返回JVM全部内存freeMemory()返回当前可用内存gc()回收不用的内存 traceInstructions(boolean)追踪Java命令traceMethodCalls(boolea
23、n)追踪Java方法exec(String)执行命令表表3-20Hashtable类方法说明类方法说明方 法说 明put(Object,Object)存对象get(Object)取对象toString()返回字符串clear()清空Hash表size()返回对象数contains(Object)返回Hash表中是否含有指定对象containsKey(Object)返回Hash表中是否含有指定对象的键值remove(Object)删除对象 keys()返回键值返,返回值为Enumeration类型 elements()返回对象值,返回值为Enumeration类型 isEmpty()判断Hash
24、表是否为空4.System类类该类属于java.lang包。方法说明见表3-21。方 法说 明arraycopy(Object,int_start,Object,int,int_len)复制数组currentTimeMillis()返回当前系统时间exit(int)终止JVM运行getProperties()返回系统属性对象getProperty(String)返回系统属性对象的值identityHashCode(Object)返回对象的Hash码setProperty(Property)设置系统属性getSecurityManager()返回安全管理器对象3.3 JSP3.3 JSP面向对象
25、程序设计面向对象程序设计3.3.1认识类和对象认识类和对象 类是一个创建对象的摸板,包含属性和方法。JSP的类包括系统已经定义好的类和用户自定义类。类实例化后就是对象。例如:Date是一个系统已经定义好的类,date是Date类生成的一个对象。上例代码用来显示系统日期和时间。用户可以自定义类,自定义类的语法如下:class类名定义变量;定义方法函数;例如:自定义一个手机类phoneclassphoneStringname;Stringprice;Stringphone_name(Stringphone_name)this.name=phone_name;return(this.name);/t
26、his代表对象本身Stringphone_price(Stringphone_price)this.price=phone_price;return(this.price);此类中定义了手机的两个属性和两个方法函数:属性为:“name”和“price”;方法函数为:“phone_name”和“phone_price”。对该类进行实例化。实例化语法为:类名对象名=new类名();例如:phoneMyphone=newphone();实例化后就可以使用该类的方法了,格式为:对象名类方法(参数);例如:out.print(Myphone.phone_name(Amoi)+);/设置手机品牌out.p
27、rint(Myphone.phone_price(1200元)+);/设置手机价格复制对象,格式为:类名新对象名=要复制的对象名;例如:phoneYourphone=Myphone;3.3.2继承与构造函数继承与构造函数1继承继承继承是面向对象程序设计的一个重要概念。它是在已有的一个类的基础上,建立一个与其相关的新类,这种关系成为继承。原有的类成为父类,新建的类则为子类。继承的语法如下:class子类名extends父类名定义变量;定义方法函数;2构造函数构造函数构造函数是定义在类中的同名方法,在生成新对象时会自动执行该方法。3.4JavaScript脚本语言脚本语言 脚本语言的语法与一般的编
28、程语言并没有什么不同,只是减少了一些可能会对Web浏览用户产生伤害的功能。目前可以使用两种脚本语言:JavaScript和VBScript。在Web中应用JavaScript可以大大加强Web页的交互性,可以使Web页上显示的文本信息动起来,或者加入一些动画,使Web页更加灵活。它嵌入在标准的HTML语言中。JavaScript可以在用户端和服务器端执行。VBScript是一种常用的脚本语言,是简化的MicrosoftVisualBASIC。VBScript和JavaScript一样,是嵌入于HTML文档中的,能更加灵活地控制网页的格式和内容,并且可以设计出生动活泼、互动的Web页和Web-b
29、ased应用程序。VBScript可以在用户端和服务器端执行。虽然JavaScrip具有一定的交互性,但本身不具有将数据传回服务器的能力,也不具有访问服务器上数据的能力。要与服务器打交道,还要通过JSP。因为JavaScript与JSP基本的语法相同,所以没有必要再系统介绍JavaScript,重点介绍JavaScript的系统特定浏览器对象。3.4.1 JavaScript3.4.1 JavaScript浏览器对象浏览器对象 1Window对象对象Window对象描述浏览器窗口特征,它是Document,Location和History对象的父对象。另外Window对象还可以认为是其他任何对
30、象的假定父对象,例如语句alert(“2008北京欢迎您”),相当于语句Window.alert(“2008北京欢迎您”)。(1)Window对象属性对象属性Name属性Name属性用于指定窗口的名称。浏览器可同时打开多个窗口,窗口名称可以区分它们。用Window对象的Open方法打开一个新窗口时可指定窗口名称;A标记的TARGET属性指定窗口的名称,单击该锚点可链接到该窗口。下例中的超链接将打开一个Name属性为“IE_Window”的Window对象。南京师范大学Parent属性Parent属性代表当前窗口(框架)的父窗口,可以使用它返回对象的方法和属性。Opener属性Opener属性返
31、回产生当前窗口的窗口对象,可以使用它返回对象的方法和属性。Top属性Top属性代表主窗口,是最顶层的窗口,是所有其他窗口的父窗口,其他窗口都是它的子窗口,可以通过这个对象访问当前窗口的方法和属性。Self属性Self属性返回当前窗口的一个对象,可以通过这个对象访问当前窗口的方法和属性。DefaultStatus属性DefaultStatus属性可以返回或者设置将在浏览器状态栏中显示的缺省内容。Status属性Status属性可以返回或者设置将在浏览器状态栏中显示的内容。例如在浏览器状态栏中显示浏览当天的日期:Status=DatrFormat(Date);(2)Window对象的方法对象的方法
32、lAlert方法Alert方法是用来显示一个警告对话框,包含一条信息和一个“确定”按钮。语法格式:Alert(参数)它的参数就是提示信息。执行Alert方法时,脚本的执行过程暂停下来,直到用户单击“确定”按钮。例如:Window.Alert(欢迎访问南京师范大学)lConfirm方法Confirm方法是用来显示一个确认对话框,包含一条指定的信息,还包含“确定”和“取消”按钮。语法格式:Confirm(参数)它的参数就是提示信息。如果单击“确定”按钮,返回True;如果单击“取消”按 钮,则返回False。例如:Res=Confirm(欢迎访问南京师范大学)ifResthenForm.Submi
33、tlPrompt方法Prompt方法可以显示个提示对话框,提示用户输入数据。语法格式:Prompt(参数1,参数2)参数1给出提示信息,参数2指定默认响应。执行Prompt时,将显示一个提示对话框,让用户在文本框中输入字符串,完成输入后,如果单击“确定”按钮,则返回所输入的字符串;如果单击“取消”按钮,则不返回任何信息。其作用类似于InputBox函数lOpen方法Open方法可以打开一个已存在的窗口,或者创建一个新窗口,并在该窗口中加载一个文档。语法格式:NewWindow=Window.Open(URL,name,窗口参数设置表)其中NewWindow用于接受Open方法的返回值,是一个W
34、indow对象。URL:指定要在窗口中显示的文档的URL。name:指定要打开的窗口的名称。如果指定的窗口已存在,则在该窗口中显示 新文档,原有的内容被取代;如果指定的窗口不存在,则以指定的名称 创建并打开一个新窗口,并且在该窗口中显示新文档。窗口参数设置表格式:参数1=值,参数2=值,窗口参数用于描述打开的窗口,参数可以多个,是可选的。例如:SetNewWindow1=Window.open(Jsp.htm,WindowIE,toolbar=no,location=no)这行语句将在“WindowIE”窗口中打开“Jsp.htm”文件,并且产生一个句柄为 NewWindow1的对象。lClo
35、se方法Close方法可以用来关闭一个打开的窗门。例如,在“Mywin”窗口中打开example.htm页面,该窗口没有状态栏、工具栏、菜单栏和地址栏。Mywin=Window.Open(“example.htm”,“mywin”,“Status=no,toolbar=no,menubar=no,location=no”)把上面打开的窗口关闭:Mywin.CloselNavigate方法Navigate方法可以用来在当前窗口中显示指定网页。语法格式:NavigateURL 其中URL参数用于指定要显示的新文档的URL。例如,在当前窗口打 开南京师范大学主页:Window.Navigate“ht
36、tp:/”lSetTimeout方法SetTimeout方法可以用来设置一个计时器,在经过指定的时间间隔后调用一个过程。语法格式:变量名=Window.SetTimeout过程名,时间间隔,脚本语言其中,变量名用于保存SetTimeout方法的返回值,这是一个Timer对象。过程名给出当指定的时间间隔到要调用的过程或函数的名称。时间间隔以毫秒为单位。例如,打开窗口3s后调用MyProc过程:TID=Window.SetTimout(“MyProc”,3000,“JavaScript”)lClearTimeout方法ClearTimeout方法可以将指定的计时器复位。语法格式:Window.Cl
37、earTimeout对象 其中对象是用SetTimeout方法返回的计时器对象。例如:Window.ClearTimeoutTID 这行代码可以清除名字为“TID”的计数器对象。lFocus方法Focus方法可以使一个Window对象得到当前的焦点。例如要使NewWindow对象得到焦点,可以使用如下语句:NewWindow.FocuslBlur方法Blur方法可以使一个Window对象失去当前的焦点。例如要使NewWindow对象失去焦点,可以使用如下语句:NewWindow.Blur (3)Window对象的事件对象的事件Window对象事件如表3-22所示。2Document对象对象Do
38、cument对象表示在浏览器窗口或其中一个框架中显示的HTML文档,通过该对象的属性和方法可以获得和控制页面对象的外观和内容。Document对象包含以下对象和集合:All(文档中所有元素的集合)、Anchors(锚集合)、Applets(Java小程序集合)、Body(文档主体对象)、Children(子元素集合)、Embeds(嵌入对象)、Forms”,”。数值常量分为整型数、长整型数和浮点数。整型数(长整型数):可以用十进制、十六进制和八进制3种形式来表示。系统默认为十进制,十六进制数前面加上H前缀,八进制数前面加上O前缀。对于长整型数,使用十六进制或八进制形式表示时,还要在数字后面加上
39、后缀。例如:-1028,&O26,&H8FA23&。浮点数:浮点数分为单精度浮点数和双精度浮点数。可以用小数形式表示,也可以用科学记数法表示。在科学记数法中,浮点数由尾数、指数符号和指数3部分组成,其中尾数本身也是一个浮点数。对于单精度浮点数,指数符号为E;对于双精度浮点数,指数符号为D。例如:26E-9,-1028.642D18。浮点数也称为实型数。符号常量符号常量符号常量是用一个标识符表示的常量,用于代替数字或字符串。在VBScript提供了许多预定义符号常量,用户可自定义符号常量。VBScript预定符号常量可以直接使用,不必在使用之前定义它们。例如,vbCrLf表示回车符和换行符的组合
40、,vbGreen表示绿色的数值。用户自定义常量通过Const语句来创建。例如:ConstVBS=VBScript脚本语言ConstPI=3.1415923.5.3 VBScript3.5.3 VBScript变量变量 变量可以存储脚本运行时可更改的数据。变量使用前可以先声明变量,也可以直接使用变量(系统认为是隐式声明)。若强制显式声明所有变量,可以在脚本程序的开头处使用下面的语句:OptionExplicit变量中存放的数据的类型可以变化,变量的类型可随赋的值的类型改变而改变。1.声明变量声明变量 在VBScript中,显式声明变量语法格式如下:Dim变量名,变量名 在VBScript中,可以
41、通过赋值语句指定变量的值,此时变量位于等号的左边,要赋的值位于等号的右边,该值可以是任何数值、字符串、常数或表达式。例如:Dimkc_1,cj1cj1=90cssj1=#1985-1-1#kc_1=”VBScript脚本语言”kc_1=cj12.命名规则命名规则 变量的命名规则如下:第1个字符必须是字母,不能包含嵌入的句点(.),长度不能超过255个字符,在被声明的作用域内必须惟一,不能与VBScript的关键词相同。3.变量的作用域变量的作用域变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值。这种变量过程执行时产生,该过程结束后随之消失。在不同过
42、程中可以使用同名的变量,这是因为每个变量只被声明它的过程使用。如果在过程之外声明变量,则该变量可以被脚本中所有地方使用,具有脚本级作用域。脚本运行结束,脚本级变量被释放。3.5.4 VBScript3.5.4 VBScript运算符运算符VBScript运算符包括算术运算符、连接运算符、比较运算符和逻辑运算符等。当表达式包含多个运算符时,将按系统预定运算符优先级顺序计算。运算符优先级顺序从高到低如下:算术运算符连接运算符比较运算符逻辑运算符运算时先括号内后括号外,优先级相同时按照从左到右的顺序执行。1.算术运算符算术运算符算术运算符及优先级顺序从高到低如下:(指数)-(负号)*(乘法)或/(除
43、)或(整除)Mod(取模)+(加法)或(减法)其中:指数运算符,计算数值表达式的乘方或方根/:除法运算符,两个数值相除并返回以浮点数形式表示的结果:整除运算符,两个数值相除并返回以整数形式表示的结果Mod:取模运算符,计算两个数值相除的余数2.连接运算符连接运算符&:把两个字符串连接起来3.比较运算符比较运算符比较两个表达式,比较条件成立则返回真,否则返回假。有下列比较运算符:=,=比较两个对象的引用变量,使用运算符“Is”。若Is两边是同一对象,则返加真,否则返回假。比较运算符优先级相同。4.逻辑运算符逻辑运算符逻辑运算符及优先级顺序从高到低如下:Not(非)And(与)Or(或)Xor(异
44、或)其中:Not:逻辑非运算符,对运算对象进行取反操作,即 由真变假或由假变真And:逻辑与运算符,两个表达式同时为真,结果为真;两个表达式中只要有一个为假,结果即 为假。Or:逻辑或运算符,两个表达式中只要有一个为真,结果即为真;两个表达式同时为假,结果为假。Xor:逻辑异或运算符,两个表达式同时为真或同时为假,结果为假;两个表达式中有一个为真,另一个为假,结果为真。3.5.5 VBScript3.5.5 VBScript程序流程控制程序流程控制VBScript脚本语言同VisualBasic语言类似,提供了相同的程序流程控制语句。1.条件语句条件语句 条件语句有两种形式:即单行形式和块形式
45、。If条件1Then语句1ElseIf条件2Then语句2Else语句3EndIf 其中:条件是逻辑表达式,其运算结果是True或False,如果为Null,则被视为False。条件也可以是形如“TypeOf对象Is对象类型”的表达式,对象属于指定对象类型,则表达式为True,否则为False。2.选择语句选择语句选择语句提供的功能与IfThenElse语句类似,即根据表达式的值执行几组语句之一,但它可以使代码更加简洁易读。选择语句语法格式如下:Select Case expCase 值1 语句1Case 值2 语句1Case Else 语句End Select其中exp是任意表达式,如果ex
46、p=值1,则执行语句1;如果exp=值2,则执行语句2;以此类推。如果exp与多个Case子句中的值匹配,则只有第一个匹配的语句被执行。当exp不匹配所有Case子句的值时则执行Case Else后的语句。3.循环语句循环语句使用循环语句可以重复执行一组语句(称为循环体),循环语句分为以下几种:Do while条件Loop语句:当条件为True时执行循环体。Do until条件Loop语句:直到条件为True时执行循环体。While条件Wend语句:当条件为True时执行循环体。For 循环次数控制Next语句:当循环次数未到,重复执行循环体。ForEachNext语句:对于集合中的每项或数组
47、中的每个元素,重复执行循环体。其中:条件是逻辑表达式,其运算结果是True或False,如果为Null,则被视为False。条件也可以是形如“TypeOf 对象Is 对象类型”的表达式,对象属于指定对象类型,则表达式为True,否则为False。具体用法在这里不再详细介绍。4过程过程过程是有一个名称并可以作为单元来执行的语句序列,在VBScript中,可以定义两种类型的过程:Sub过程和Function过程。Sub过程不返回值,Function过程将返回值,这是二者的主要区别。(1)Sub过程过程Sub过程是没有返回值的过程,可以用Sub语句来声明其名称、参数以及构成其主体的代码,语法格式如下
48、:Public|PrivateSub过程名(参数表)过程体EndSub 其中:Public表示Sub过程可以被所有脚本中的所有其他程序访问。Private表示Sub过程只可以被声明该过程的脚本中的其他过程访问。如果没有显式地指定使用Public或Private,则Sub过程默认为Public。参数表代表在调用时要传递给Sub过程的变量列表,用逗号隔开多个变量。语法格式为:ByVal|ByRef变量名ByVal表示该参数是按值传递的,也就是将参数的值而不是地址传递给过程,并允许过程访问变量的一个副本,但是不能更改变量的实际值;ByRef表示该参数按引用传递,也就是将参数的地址而不是值传递给过程,
49、并允许过程访问和更改实际变量。省略ByVal|ByRef,默认为ByRef。(2)Function过程Function过程是有返回值的过程,可以用Function语句来声明其名称、参数以及构成其主体的代码,语法格式如下:Public|PrivateFunction过程名(参数表)过程体EndSub 其中:Public表示Function过程可以被所有脚本中的所有其他程序访问。Private表示Function过程只可以被声明该过程的脚本中的其他过程访问。如果没有显式地指定使用Public或Private,则Function过程默认为Public。Function过程的参数表定义同Sub过程中参数表定义,在此不再赘述。