在Active Sever Pages中使用VBScript

在这一节中,你将学习如何创建可以执行Visual Basic脚本的ASP网页。在本书的第四部分,“用对象和组件创建ASP网页”中,你将学习到关于Active Sever Pages的大部分内容。目前,你可以把ASP网页当作HTML网页看待,不过是把文件名后缀改为.asp。

为了能使用本章中的例子,你需要把所有的文件以后缀名.asp保存,而不是.cfm。如果你不这样做,则脚本不会被解释。当包含脚本的ASP网页被下载时,脚本的实际文本将会出现在浏览器窗口中。这当然是你所不希望见到的。

要使用本章中的例子,你还必须把文件保存在Web服务器的目录下。例如,你可以把文件保存在wwwroot目录下。对要执行的脚本来说,网页必须保存在一个Web服务器可以访问的目录下。

当你下载一个ASP网页时,你不要直接从磁盘上下载。例如,如果你把一个ASP网页保存为C:\Inetpub\wwwroot\mypage.asp,你不要通过在浏览器的地址条中键入这个文件路径来下载该文件。你应该通过Web服务器申请这个文件。例如,如果你的服务器名为mysever,文件保存在Web服务器的根目录下,在浏览器的地址条中键入地址http://mysever/mypage.asp即可。同样,如果你不这样做,该ASP网页中的脚本不会被解释。

你还必须把保存ASP网页的目录设置为允许执行脚本或允许执行程序。如果没有得到许可,Web服务器不会执行一个脚本。要了解这方面的更多信息,请参见第2章,“安装和使用Internet Information Sever”。

注意

当你修改一个ASP网页时,你会发现修改后的内容没有反映到已下载到浏览器中的网页中。这是web服务器使用了内存缓冲区的结果。使用内存缓冲区是为了提高性能。当你开发一个站点时,你也许要取消这个特性。(参见第二章。)

把Visual Basic脚本集成到Active Sever Pages中

把VBScript的脚本集成到Active Sever Pages中的方法不止一种。(要了解详细信息,请参见第13章,“建立Active Sever Pages”。)最容易的方法是使用两个特殊字符<%和%>。例如,下面的Visua Basic脚本在一个ASP网页中自动执行:

<HTML>

<HEAD>

<TITLE> Simple VBScript</TITLE>

</HEAD>

<BODY>

<% FOR myvar=1 TO 500%>

<B> Hello Magic!</B>

<% NEXT %>

</BODY>

</HTML>

这个脚本把句子“Hello Magec!”在一行中显示500次(见图8.1)。注意此例中字符对<%和%>的使用。它们指明Visual Basic脚本的开始和结束。

图8.1 用VBScript来创建ASP页

 

 

 

 

 

 

 

 

 

 

 

 

字符对<%和%>的作用与HTML中的字符对<和>的作用非常相似。不过是<和>用来指明HTML标识,<%和%>用来指明脚本。当Web服务器看到这个特殊字符对时,就试图把它们之间的内容解释为一个脚本。

例如,文本<% FOR myvar=1 TO 500 %>和文本<% NEXT %>都是Visual Basic脚本的例子。这两个脚本结合起来构成了一个迭代500次的循环。

还应注意此例中Visual Basic脚本如何与HTML标识相集成。在ASP网页中,脚本与HTML可以自由混合。文本<B> Hello Magic! </B>不是Visual Basic脚本的一部分,<B>标识是HTML的成分而不是VBScript的。但是,文本<B> Hello Magic! </B>会被解释和显示500次,因为它被括在Visual Basic脚本中。

当把Visual Basic脚本集成到ASP网页中时,你要注意另外一个表达式。你可以用符号对<%=和%>来打印变量或函数的值。考虑下面这个简单的ASP网页:

<HTML>

<HEAD>

<TITLE> Simple VBScript</TITLE>

</HEAD>

<BODY>

<%FOR myvar=1 TO 500%>

<%=myvar%><B>: Hello Magic!</B>

<% NEXT %>

</BODY>

</HTML>

这个例子也把“Hello Magic!显示500次。但是,在每个“Hello Magic!”前面有一个数字,该数字代表变量myvar的值。

表达式<%=myvar%>打印变量myvar的值。符号对<%和%>用来指明一个脚本,而符号对<%=和%>用来指明变量或函数的值。跟在表达式<%=后面的任何内容都将被打印在浏览器窗口中。

这里有一个用符号对<%=和%>打印函数值的例子。下面的ASP网页在网页顶部打印当前的日期和时间:

<HTML>

<HEAD>

<TITLE> Simple VBScript</TITLE>

</HEAD>

<BODY>

This page was created on :<%=NOW%>

<BR>Have a nice day!

</BODY>

</HTML>

VBScript函数NOW返回当前的系统日期和时间。当这个文件被下载到浏览器中时,当前的日期和时间出现在网页的顶部(见图8.2)。

图8.2 用ASP页显示时间和日期

 

 

 

 

 

 

 

 

 

 

 

 

你不要把没有返回值的VBScript命令放在符号对<%=和%>之间。这会导致错误。例如,不要这样做:

<%=FOR I=1 TO 100%>

不要混淆了符号对<%和%>与符号对<%=和%>的作用。一个是用来指明脚本的开始和结束;另一个用来显示变量和函数的值。