1第7章ASP动态网页制作基础学习目标ASP的特点及相关概念如何在HTML页面中嵌入VBScriptVBScript的变量定义及语法规则ASP内置对象的特性和方法ASP内置组件的使用方法2第7章ASP动态网页制作基础教学内容7.1ASP简介7.2VBscript脚本语言7.3ASP内置对象7.4ASP内置组件本章小结返回总目录37.1ASP简介返回目录ASP(ActiveServerPages)是微软公司1996年底推出的Web应用程序开发技术,其主要功能是为生成动态交互的Web服务器应用程序提供功能强大的方法和技术。ASP既不是一种语言也不是一种开发工具,而是一种技术框架,是位于服务器端的脚本运行环境。ASP内含于IIS(InternetInformationServer)3.0和4.0之中,我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。ASP所独具的一些特点:1.使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,可快速完成网站的应用程序。2.容易编写,无须编译,所使用的脚本语言均在WEB服务器端执行。3.使用普通文本编辑器进行编辑设计,如Windows的记事本。47.1ASP简介4.与浏览器无关,用户端只要使用可执行HTML代码的浏览器就能浏览ASP所设计的网页内容。5.能与任何ActiveXscripting语言相容。除了与VBScript和Jscript相容之外,还通过plug-in方式使用由第三方提供的其他脚本语言,如REXX、Perl、Tcl等。脚本引擎是处理脚本程序的COM(ComponentObjectModel)物件。6.源程序不会被传到客户浏览器,能避免所写程序源代码被他人剽窃,提高了程序的安全性。7.可使用服务器端的脚本来产生客户端的脚本。8.面向对象(Object-oriented)。9.ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。可以使用VisualBasic、Java、VisualC++、COBOL等语言编写ActiveXServerComponent。返回目录57.1ASP简介第一个ASP程序第一步:打开一个文本编辑器(比如记事本),输入以下代码:HTMLHEADTITLEASP实例/TITLE/HEADBODY%Response.write(“Helloworld”)%/BODY/HTML第二步:以文件名Hello.asp存盘。因为.asp文件由服务器端的ASP环境来解释,所以进入第三步。第三步:将Hello.asp文件放在服务器的目录下。在安装了PWS的Win98系统里,缺省路径是C:\Wroot,也可以自己建一个子目录,比如C:\asp。第四步:打开浏览器,地址栏中输入,浏览器上立即显示HelloWorld,就这么简单。(“yourservername”要换具体的服务器名)返回目录67.2VBscript脚本语言—VBscript简介VBScript是ASP的缺省语言,它通过变量、操作符、循环、分支、函数和子例程扩展了HTML。可以在HTML文件中直接嵌入VBScript脚本,使静态HTML网页变为动态网页。VBScript是一种脚本语言,脚本语言的句法比较简单,这意味着它比Basic语言容易使用。但是,简单的句法也使开发大的应用程序变得很困难,这也使得它比Basic语言难用。VBScript可以作为客户端编程语言,由浏览器解释执行.VBScript也可以作为服务器端编程语言。服务器端编程语言是在服务器上执行的语言,服务器为一个站点提供文件,浏览器接收这些文件。服务器端编程语言将执行站点主机上的所有操作。返回目录77.2VBscript脚本语言—在HTML页面中嵌入VBscript在HTML页面中嵌入VBScript要使用Script元素,该元素用于将VBScript代码添加到HTML页面中。VBScript代码要写在成对的<SCRIPT>标记之间。例如,以下代码是一个测试传递日期的过程:例7-2测试传递日期的过程代码<SCRIPTLANGUAGE=”VBScript”><!--FunctionTT(Dt)TT=(CDate(Dt)-Now())>2EndFunction--></SCRIPT>说明:VBScript代码的开始和结束部分都有SCRIPT标记。LANGUAGE属性用于指定所使用的脚本语言。返回目录87.2VBscript脚本语言—在HTML页面中嵌入VBscript上例是一个通用函数(不依赖于任何窗体控件),可将其包含在页面的HEAD部分:例7-3测试传递日期的脚本编写<HTML><HEAD><TITLE>订购</TITLE><SCRIPTLANGUAGE=”VBScript”><!--FunctionTT(Dt)TT=(CDate(Dt)-Now())>2EndFunction--></SCRIPT></HEAD><BODY>…Script块可以出现在HTML页面的任何地方(BODY或HEAD部分之中),但最好将所有的Script目标代码放在HEAD部分中,Script代码集中放置,能确保在BODY部分调用代码之前所有Script代码都被读取并解码。返回目录97.2VBscript脚本语言—在HTML页面中嵌入VBscript一个值得注意的例外情况是,在窗体中提供内部代码以响应窗体中对象的事件。以下示例在为窗体中嵌入Script代码以响应窗体中按钮的双击事件。例:窗体内部代码响应窗体中按钮的双击事件<HTML><HEAD><TITLE>测试按钮事件</TITLE></HEAD><BODY><FORMNAME=”Forml”><INPUTTYPE=”Bunon”NAME=”Buttonl”VALUE=”双击”><SCRIPTFOR=”Buttonl”EVENT=”OnClick”LANGUAGE=”VBScript”>MsgBox”按钮被双击!”</SCRIPT></FORM></BODY></HTML>返回目录107.2VBscript脚本语言—变量、常量及数组1.变量(1)声明变量声明变量的一种方式是使用Dim语句,例如:Dimtt。声明多个变量时,使用逗号分隔变量。例如:Dimtop,bottom,left,right。另外一种方式是通过直接在Script中使用变量名,这一简单方式可隐式地声明变量,但不提倡这样做,因为有时会因为变量名被拼错而导致运行Script时出现意外结果。(2)变量的作用域VBScript变量都有相应作用域,作用域由声明变量的位置决定,在过程中声明的变量只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并称为过程级变量。在过程之外声明变量可以被脚本中所有过程识别,称为全局变量。返回目录117.2VBscript脚本语言—变量、常量及数组(3)变量子类型用DIM语句声明一个变量时无须为变量定义数据类型,因为VBScript中所有变量都是相同的数据类型:variant型。variant是一种特殊的变量类型,它可以代表许多其他类型的变量。Variant包含的基本数据类型称为子类型。当用一个变量代表一个数字时,只要把数字分配给该变量,不用引号定界。当用一个变量代表一个字符串时,把字符串分配给该变量时要用引号定界。一个variant型变量可自动与赋给它的值的类型保持一致。用TYPENAME()函数可以显示variant型变量的子类型。例如:<%aa=”Hello!”%><%=TYPENAME(aa)%><%aa=3%><%=TYPENAME(aa)%>在上例中,变量被分配了两个不同类型的值,对每种类型的值,可以用VBScript函数TYPENAME()显示该变量所代表的实际数据的子类型。当给变量aa分配字符串数据“Hello!”时,variant型变量aa的子类型是string。当给变量aa分配整数3时,aa的子类型是integer。返回目录127.2VBscript脚本语言—变量、常量及数组(4)空变量和空值变量在给一个变量分配值之前,该变量是空的。可以用函数ISEMPTY()检测一个变量是否为空。如下例所示:例7-5用函数ISEMPTY()检测变量是否为空<%aa=”Hello!”%>aa:<%=ISEMPTY(aa)%>bb:<%=ISEMPTY(bb)%>在这个例子中,检测了两个变量aa和bb,看它们是否为空。因为aa已经被分配了值,当以aa为函数ISEMPTY()的参数时,函数返回False。而bb没有分配数据,以bb为参数时,函数ISEMPTY()返回True。返回目录137.2VBscript脚本语言—变量、常量及数组2.常量VBScript可以声明常量,一旦声明了一个常量,该常量的值将不能被改变。例如:<%CONSTTOP=21.1%>在例子中,常量TOP被分配了值21.1。因为TOP是一个常量,所以在脚本中不能再给TOP分配新值。试图改变常量的值将收到错误信息:IllegalAssignmenterror。对于不希望在脚本中被改变的数值可使用常量。例如站点注册费是一个固定价格,应定义为常量。若将来某一天改变这个价格,可通过手工修改方式更改这个常量的值。可以一次定义多个常量,把每个常量定义用逗号隔开即可。例如:<%CONSTTOP=21.1,BOTTOM=52.5,AA=”Hello!”%>返回目录147.2VBscript脚本语言—变量、常量及数组3.数组数组是一个可以存储一组值的变量。当需要存储一组相关的值时应该使用数组。例如:创建一个数组,用来存储站点上出售的一系列商品。例:创建存储商品的数组<%DIMProduct(10)Product(0)=”TradingCard”Product(1)=”BookonActiveSeverPages”Product(2)=”ComputerMonitor”%>例子中,DIM语句声明了一个可以存储11个值的数组,数组在使用之前必须声明。VBScript中数组的下标从0开始,声明了一个数组之后,可以用一个索引为数组元素赋值。数组可以多维,如:Dimtt(4,6)。返回目录157.2VBscript脚本语言—VBscript过程过程是一组能执行指定任务且具有返回值的脚本命令。用户可以定义自己的过程,然后在脚本中反复调用它们。也可以将过程定义放在调用过程的.asp文件中,还可以将通用过程放在一个共享的.asp文件中,用SSI#include指令将其包含到其他调用其过程的.asp文件中。还有另一种方法,即把这些功能打包在ActiveX组件中。过程定义常出现在<SCRIPT>和</SCRIPT>内部,必须遵循声明脚本语言规则。如果过程所用语言与主脚本语言不同,则要使用<SCRIPT>元素。主脚本语言中的过程用脚本分界符“<%”和“%>”分隔。使用HTML<SCRIPT>标记时,必须用RUNAT和LANGUAGE属性来保证服务器端能够处理脚本。返回目录167.2VBscript脚本语言—VBscript过程过程是一组能执行指定任务且具有返回值的脚本命令。用户可以定义自己的过程,然后在脚本中反复调用它们。也可以将过程定义放在调用过程的.asp文件中,还可以将通用过程放在一个共享的.asp文件中,用SSI#include指令将其包含到其他调用其过程的.asp文件中。还有另一种方法,即把这些功能打包在ActiveX组件中。过程定义常出现在<SCRIPT>和</SCRIPT>内部,必须遵循声明脚本语言规则。如果过程所用语言与主脚本语言不同,则要使用<SCRIPT>元素。主脚本语言中的过程用脚本分界符“<%”和“%>”分隔。使用HTML<SCRIPT>标记时,必须用RUNAT和LANGUAGE属性来保证服务器端能够处理脚本。返回目录177.2V