ASP系列讲座(四)使用脚本语言
网络整理 - 09-12
脚本语言是介于 HTML 和 Java、C++ 和 Visual Basic 之类的编程语言之间的语言。HTML 通常用于格式化文本和链接网页。编程语言通常用于向计算机发送一系列复杂指令。脚本语言也可用来向计算机发送指令,但它们的语法和规则没有可编译的编程语言那样严格和复杂。脚本语言主要用于格式化文本和使用以编程语言编写的已编译好的组件。Active Server Pages 使 Web 开发商用多种脚本语言编写完整的过程成为可能。事实上,在单个 .asp 文件内部就可以使用多种脚本语言。另外,由于脚本是在服务器端读取和处理的,所以请求 .asp 文件的客户端浏览器并不需要支持脚本。
您可以使用任意一种其相应的脚本引擎已安装在 Web 服务器上的脚本语言。脚本引擎是处理用某种语言书写的命令的程序。Active Server Pages 带有两个脚本引擎:Microsoft Visual Basic scripting Edition (VBscript) 和 Microsoft Jscript。您也可以安装和使用其他的脚本语言引擎,例如 REXX 和 Perl。
如果您已经是 Visual Basic 程序员,就可以马上使用 VBscript,它是 Visual Basic 的子集。如果您是 Java、C 或 C++ 程序员,您会发现 Jscript 语法对您来说是熟悉的,虽然 Jscript 与 Java 或 C 并没有联系。
如果您熟悉其他脚本语言,例如 REXX 或 Perl,您可获取和安装相应的脚本引擎,这样就可以使用您熟悉的脚本语言了。Active Server Pages 是 ActiveX 脚本的宿主。要使用一种语言,必须安装脚本引擎,该引擎必须遵循 ActiveX 脚本标准并作为一个 COM (组件对象模型)对象驻留在 Web 服务器上。
设置主脚本语言
ASP 主脚本语言是用来处理在分界符 <% 和 %> 内部的命令的语言。默认时,主脚本语言是 VBscript。您可以将任何一种具有脚本引擎的脚本语言作为主脚本语言。您可以逐页设置主脚本语言,也可以在 ASP 应用程序中设置所有页的主脚本语言。
为某页设置语言
要设置单个页的主脚本语言,可将 <%@ LANGUAGE %> 指令添加到 .asp 文件的开头。该指令的语法是:
<%@ LANGUAGE=scriptingLanguage %>
其中 scriptingLanguage 就是您所设置的页的主脚本语言。如果对某页进行了设置,那么该页将忽略在应用程序中对所有页的全局设置。
请遵循使用 ASP 指令的指导。详细信息。
注意 要将不支持Object.Method 语法的语言作为主脚本语言使用,必须先创建 LanguageEngines 注册表键。
为应用程序设置语言
在应用程序中,如要为所有页设置主脚本语言,可在 Internet 服务管理器的“App 选项”选项卡上设置“默认的 ASP 语言”属性。
在服务器上使用 VBscript 和 Jscript
在服务端通过 ASP 使用 VBscript 时,两个 VBscript 特征将失效。由于 Active Server Pages 脚本是在服务器端执行的,表示用户接口的元素的 VBscript 语句 InputBox 和 MsgBox 将不被支持。另外,在服务器端的脚本中,请不要使用 VBscript 函数 CreateObject 和 GetObject。而要使用 Server.CreateObject,这样 ASP 就可以跟踪对象实例了。用 CreateObject 或 GetObject 创建的对象不能访问 ASP 内建对象,也不能参与事务处理。该规则的一个例外是如果您使用的是 Admin 对象和 Java monikers。
包含注释
由于 ASP 脚本是在服务器端处理的,所以即使客户端的浏览器不支持脚本语言,也不必通过包含进 HTML 注释标记来隐藏脚本,但客户端的脚本则通常需要这样处理。在内容送到浏览器之前,所有 ASP 命令都已被处理好了。您可用 HTML 注释将注释加进 HTML 页。注释将返回给浏览器,若用户浏览 HTML 源文件,就可以看见。
VBscript 注释
VBscript 支持撇号型注释。与 HTML 注释不同,当处理脚本时,它们将被删除,而不是被送到浏览器。
<%
'This line and the following two are comments.
'The PrintTable function prints all
'the elements in an array.
Call PrintTable(myarray())
%>
输出表达式不能包括注释。例如,下面的第一行将正常运行,而第二行则不能,因为它是以 <%= 开头的。
<% i = i +1 'this increments i. This script will work. %>
<%= name 'this prints the variable name. This script will fail. %>
Jscript 注释
Jscript 支持 // 注释符。每一个注释行中都必须使用该注释符。
<% Call PrintDate %>
<script LANGUAGE=Jscript RUNAT=Server>
// This is a definition for the procedure PrintDate.
function PrintDate()
{
var x
x = new Date()
// This line sends the current date to the browser,
// translated to a string.
Response.Write(x.toString())
}
</script>
大小写敏感性
VBscript 不区分大小写。例如,您可以用 Request 或 request 来引用 ASP Request 对象。不区分大小写的后果是您不能用大小写来区分变量名。例如,您不能创建两个名为 Color 和 color 的单独变量。
Jscript 区分大小写。要在脚本中使用 Jscript 关键字,就必须按参考页中所示的大小写来书写。例如,用 date 来代替 Date 将导致错误。在 Jscript 中,对象名必须大写;方法名和属性名可大写也可小写。本文所示的 ASP 内建对象的情况将在 Jscript 命令中正常工作。