asp简单教程及示例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1、创建 ASP 网页 (2)
2、使用脚本语言 (8)
3、使用变量和常量 (11)
4、与客户端脚本交互操作 (16)
5、编写过程 (19)
6、使用集合 (22)
7、处理用户输入 (29)
8、使用组件和对象 (37)
9、设置对象作用域 (41)
10、将内容发送到浏览器 (45)
11、包含文件 (52)
12、管理会话 (54)
13、访问数据源 (62)
14、理解事务 (77)
15、调试 ASP 脚本 (82)
16、内置 ASP 对象 (86)
创建 ASP 网页
Active Server Pages (ASP) 文件是带有 .asp 扩展名的文本文件,它由下列内容组合而成:
∙文本
∙HTML 标记
∙服务器端脚本
使用 .asp 扩展名重命名现有的 .htm 或 .html 文件可以快速创建 .asp 文件。

如果文件不包含任何 ASP 功能,则服务器不进行 ASP 脚本处理,并很快将文件发送到客户端。

这为 Web 开发人员提供了极大的灵活性,因为即使目前不希望在文件中添加 ASP 功能,也可以使用 .asp 作为扩展名。

要在 Web 上发布 .asp 文件,请将新文件保存到网站上的虚拟目录(确保目录启用了“脚本”或“执行”权限)。

然后,使用浏览器输入文件的 URL 来请求文件。

(请注意,必须处理 ASP 网页,因此您无法通过输入其物理路径请求 .asp 文件)。

在浏览器中加载文件之后,可以发现服务器返回了 HTML 页。

这看起来有些奇怪,但要记住在发送文件之前,服务器将解析并执行所有 ASP 服务器端脚本。

用户将始终接收到标准的 HTML。

可以使用任意文本编辑器创建 .asp 文件。

随着对编辑器的深入使用,您将发现使用具有更多 ASP 支持的编辑器(如 Microsoft Visual InterDev 等)效率更高。

详细信息,请访问Microsoft Visual InterDev 网站。

添加服务器端脚本命令
服务器端脚本是一系列指令,用于向 Web 服务器连续发出命令。

(如果您以前开发过网站,可能对运行在Web 浏览器的客户端脚本较为熟悉)。

在 .asp 文件中,脚本通过分隔符与文本和 HTML 标记区分开来。

“分隔符”是一个或一组字符,用来标明单元的起始和结束。

HTML 的分隔符是小于 (<) 和大于 (>) 号,中间包含着 HTML 标记。

ASP 使用分隔符 <% 和 %> 来包括脚本命令。

在分隔符之间,可以包括任何符合所用脚本语言规范的命令。

下面将给出包含脚本命令的 HTML 页示例:
<HTML>
<BODY>
上次刷新此页的时间:<%= Now() %>.
</BODY>
</HTML>
VBScript 函数Now()返回当前的日期和时间。

Web 服务器处理此页时,将<%= Now() %>替换为当前日期和时间,并将此页的下列结果返回到浏览器:
上次刷新此页的时间:01/29/99 2:20:00 PM.
由分隔符括起的命令称为“主脚本命令”。

这些命令使用主脚本语言进行处理。

脚本分隔符内使用的任何命令必须符合主脚本语言的规定。

默认情况下,主脚本语言为 VBScript。

也可以设置其他默认语言。

请参阅使用脚本语言。

如果已经对客户端脚本较为熟悉,您一定了解用于封闭脚本命令和表达式的 HTML <SCRIPT> 标记。

当需要在一个 .asp 文件中以多种语言定义过程时,也可以对服务器端脚本使用 <SCRIPT> 标记。

详细信息,请参阅使用脚本语言。

混合使用 HTML 和脚本命令
可以在 ASP 分隔符内包括主脚本语言所允许的任何语句、表达式、过程或操作符。

VBScript 和其他脚本语言中的“语句”是在语法上完全独立的单元,用来表示某种动作、声明或定义。

下面给出的条件语句If...Then...Else便是常用的 VBScript 语句。

<%
Dim dtmHour
dtmHour = Hour(Now())
If dtmHour < 12 Then
strGreeting = "早上好!"
Else
strGreeting = "您好!"
End If
%>
<%= strGreeting %>
根据时间的不同,此脚本将值“Good Morning!”或值“Hello!”分配给字符串变量strGreeting。

<%= strGreeting %>语句则将变量的当前值发送到浏览器。

这样,如果用户在中午 12:00(以 Web 服务器所在时区为准)之前查看此脚本,将看到如下文字:
早上好!
如果在中午 12:00 之后查看此脚本,则文字变为:
您好!
可以将 HTML 文本包括在一个语句的不同部份之间。

例如下列脚本将 HTML 文本夹在If...Then...Else 语句之中,所得到的结果与上例相同:
<%
Dim dtmHour
dtmHour = Hour(Now())
If dtmHour < 12 Then
%>
早上好!
<% Else %>
您好!
<% End If %>
如果条件为真,即如果时间在中午之前,Web 服务器将条件之后的 HTML 文本(“Good Morning”)发送到浏览器,否则向浏览器发送Else(“Hello!”)之后的 HTML 文本。

这种将 HTML 和脚本命令混合使用的方法对于将多行 HTML 文本嵌入If...Then...Else语句十分方便。

如果想在网页中的多个地方显示问候语,上面的示例是很有帮助的。

只需设置一次变量值,便可重复用于显示。

如果不想将 HTML 文本分散在脚本命令之间,也可以从脚本命令内将 HTML 文本返回浏览器。

可以使用 ASP 内置对象Response将文本返回浏览器。

下列示例程序与上面两个脚本的输出结果相同:
<%
Dim dtmHour
dtmHour = Hour(Now())
If dtmHour < 12 Then
Response.Write "早上好!"
Else
Response.Write "您好!"
End If
%>
Response.Write将其后面的文本发送到浏览器。

如果希望动态创建返回到浏览器的文本,请在语句中使用Response.Write。

例如,可以建立包含多个变量值的字符串。

如希望详细学习Response对象以及其他常用对象,请参阅使用组件和对象以及将内容发送到浏览器。

而现在,可以使用多种方法将脚本命令插入 HTML 网页。

可以将使用默认主脚本语言编写的过程包括在 ASP 分隔符之内。

详细信息,请参阅使用脚本语言。

如果您正在使用 JScript 命令,可以将作为语句块标志的大括号直接插入 ASP 命令,即使它们穿插在HTML 标记和文本之间。

例如:
<%
if (screenresolution == "low")
{
%>
这是一个纯文本网页。

<%
}
else
{
%>
这是一个多媒体网页。

<%
}
%>
--或--
<%
if (screenresolution == "low")
{
Response.Write("这是一个纯文本网页。

")
}
else
{
Response.Write("这是一个多媒体网页。

")
}
%>
使用 ASP 指令
ASP 提供了您所使用的脚本语言中未包括的指令:输出指令和处理指令。

ASP 的输出指令<%= 表达式%>显示表达式的值。

此输出指令与使用Response.Write所显示的信息相同。

例如,输出表达式<%= city %>将在浏览器上显示单词Baltimore(变量的当前值)。

ASP 的“处理指令” <%@ 关键字%>为 ASP 提供处理 .asp 文件所需的信息。

例如,下列指令将VBScript 设置为网页的主脚本语言:
<%@ LANGUAGE=VBScript %>
处理指令必须位于 .asp 文件的首行。

要在网页中添加多条指令,这些指令必须位于相同的分隔符内。

请勿将处理指令置于由#include语句包括的文件内。

(详细信息,请参阅包含文件。

)必须在符号 @ 和关键字之间加入空格。

处理指令具有下列关键字:
∙LANGUAGE关键字设置 .asp 文件使用的脚本语言。

请参阅使用脚本语言。

∙ENABLESESSIONSTATE关键字指定 .asp 文件是否使用会话状态。

请参阅管理会话。

∙CODEPAGE关键字设置 .asp 文件的代码页(字符编码)。

∙LCID关键字设置文件的区域设置标识符。

∙TRANSACTION关键字指定 .asp 文件将在事务环境下运行。

请参阅理解事务。

要点可以在一条指令中包含多个关键字。

关键字/值对必须由空格分开。

等号两边不要留有空格。

下列示例既设置了脚本语言也设置了代码页:
<%@ LANGUAGE="JScript" CODEPAGE="932" %>
脚本中的空格
如果主脚本语言是 VBScript 或 JScript,ASP 将从命令中删除空格。

对于所有其他脚本语言,ASP 将保留空格,以便对书写位置或缩进有所要求的语言能被正确解释。

空格包括一般的空格、制表符、回车符和行缩进等。

对于 VBScript 和 JScript,可以在起始分隔符和结束分隔符之间使用空格,以使命令简单易读。

下列语句均为有效:
<% Color = "绿色" %>
<%Color="绿色"%>
<%
Color = "绿色"
%>
ASP 将删除语句结束分隔符和下一条语句的起始分隔符之间的空格。

不过,使用空格来增强可读性倒是一个良好的习惯。

如果需要保留两个语句间的空格(如显示语句中变量的值时),请使用 HTML 不间断空格符 (&nbsp;)。

例如:
<%
'Define two variables with string values.
strFirstName = "Jeff"
strLastName = "Smith"
%>
<P>This Web page is customized for "<%= strFirstName %>&nbsp;<%= strLastName %>." </P>
使用脚本语言
编程语言(如 Visual Basic、C++ 和 Java)提供对计算机资源的低级访问,可用来创建复杂的大型程序。

而脚本语言则用来创建功能有限的“脚本”程序,以便在 Web 服务器或浏览器上执行网站功能。

与其他较复杂的编程语言不同,脚本语言是可以“解释”的,指令语句由中间程序(即命令解释程序)顺序执行。

虽然解释过程降低了执行效率,但脚本语言简单易学并提供了强大的功能。

脚本可以嵌入 HTML 网页中,确定内容的格式,也可以用来实现封装高级商业逻辑的 COM 组件。

通过 Active Server Pages,Web 开发人员可以使用多种脚本语言编写在服务器上执行的脚本。

实际上,在同一 .asp 文件中可以使用多种脚本语言。

另外,由于脚本在服务器端读取和处理,因此,请求 .asp 文件的浏览器并不需要支持脚本。

虽然可以使用任何脚本语言,但 Web 服务器上必须安装了该语言相应的脚本引擎。

所谓“脚本引擎”就是一种处理以特定语言编写的命令的程序。

Active Server Pages 提供两种脚本引擎:Microsoft Visual Basic Scripting Edition (VBScript) 和 Microsoft JScript。

也可以安装和使用其他脚本语言的引擎,如 REXX、PERL 和 Python。

VBScript 是 Visual Basic 的一个子集。

因此,对于 Visual Basic 编程人员,可以立即开始使用。

尽管JScript 与 Java 或 C 没有直接关系,但对于 Java、C 或 C++ 编程人员,可能会发现 JScript 语法非常熟悉。

对于熟悉其他脚本语言(如 REXX、Perl 或 Python)的开发人员,可以获取并安装相应的脚本引擎,以便继续使用已经熟知的语言。

Active Server Pages 是一种 COM 脚本主机;要使用脚本语言,必须安装一种脚本引擎,而且此脚本引擎需要符合 COM 脚本标准并作为 COM(组件对象模型)驻留在 Web 服务器上。

设置主脚本语言
ASP 主脚本语言是一种用于处理 <% 和 %> 分隔符内命令的语言。

默认情况下,主脚本语言为 VBScript。

可以使用任何脚本语言作为主脚本语言,但必须安装此语言相应的脚本引擎。

既可以逐页设置主脚本语言,也可以一次性设置 ASP 应用程序中所有网页的主脚本语言。

设置应用程序的语言
要设置对应用程序中所有网页的主脚本语言,只需在 Internet 信息服务管理单元中“应用程序选项”选项卡上设置“默认 ASP 语言”。

详细信息,请参阅配置 ASP 应用程序。

设置网页的语言
要单独设置每个网页的主脚本语言,只需在 .asp 文件开始处添加<%@ LANGUAGE %>。

此命令的语法为:
<%@ LANGUAGE=ScriptingLanguage %>
其中,ScriptingLanguage是要设置的特定网页的主脚本语言。

单独网页的主语言将覆盖对应用程序中所有网页的全局设置。

必须遵守 ASP 命令的使用原则;详细信息,请参阅创建 ASP 网页。

注意要使用不支持 Object.Method 语法的语言作为主脚本语言,必须首先创建 LanguageEngines 注册表项。

详细信息,请参阅关于注册表。

在服务器上使用 VBScript 和 JScript
在服务器上与 ASP 一起使用 VBScript 时,将禁用两个 VBScript 功能。

因为使用 Active Server Pages 编写的脚本将在服务器上执行,所以不支持用来提供用户界面元素的 VBScript 语句 InputBox 和MsgBox。

另外,不要在服务器端脚本中使用 VBScript 函数 CreateObject 和 GetObject。

而应使用Server.CreateObject,以便 ASP 可以跟踪对象例程。

由 CreateObject 语句或 GetObject 语句创建的对象既不能访问 ASP 内置对象,也不能参与事务。

但在使用 IIS Admin 对象或 Java 标记时例外。

详细信息,请参阅使用 IIS Admin 对象和从 Java 类创建对象。

关于所有 VBScript 和 JScript 操作符、函数、语句、对象、属性和方法的列表与说明,请参阅“VBScript 语言参考”和“JScript 语言参考”。

可以在Windows Script Technologies网站上找到这些参考。

包含注释
因为 ASP 中的所有脚本都在服务器端进行处理,所以,没有必要使用 HTML 注释标记对不支持脚本的浏览器隐藏脚本,但这是客户端脚本的通常做法。

所有 ASP 命令都将在内容发送到浏览器之前处理。

可以使用HTML 注释向 HTML 页中添加备注;这些注释将被返回给浏览器,如果用户查看 HTML 源文件,将可以看到这些注释。

VBScript 注释
VBScript 支持撇号格式的注释。

与 HTML 注释不同,处理脚本时将删除这些注释并且不会发送到浏览器。

<%
'此行以及下面的两行是注释。

'PrintTable 函数打印数据中的
'所有元素。

PrintTable MyArray()
%>
输出表达式中不能包含注释。

例如,下面第一行能正常工作,而第二行则无法工作,因为此行以<%=开始。

<% i = i +1 '此语句用于递增i 值。

(此脚本将正常运行。

)%>
<%= name '此语句用于打印变量名。

(此脚本将失败。

)%>
JScript 注释
JScript 支持使用//作为注释符。

每个注释行都必须使用这些符号。

<%
var x
x = new Date()
// 此行用于将当前日期发送给浏览器,
// 并转换为字符串。

Response.Write(x.toString())
%>
VBScript 不区分大小写。

例如,使用 Request 或 request 都可以引用 ASP Request 对象。

因为不区分大小写,所以无法通过大小写来区分变量名。

例如,无法创建两个单独的变量 Color 和 color。

JScript 区分大小写。

在脚本中使用 JScript 关键字时,键入的关键字必须与参考页中的关键字完全一样。

例如,如果使用 date 而不是 Date 就会导致错误。

本文档中所示 ASP 内置对象的大小写适用于 JScript 命令。

使用变量和常量
“变量”是计算机内存中已命名的存储位置,它包含数据,如数值或文本字符串。

变量中包含的数据称为变量的“值”。

变量使用有助于理解脚本功能的名称来存储、检索和管理值。

声明和命名变量
遵循下列脚本语言规则和原则来命名和声明变量。

即使不要求在使用之前声明变量,但先声明变量的良好开发习惯将有助于减少错误。

“声明”变量也就是告诉脚本引擎特定名称的变量已经存在,可以在脚本中引用此变量。

VBScript
VBScript 不要求变量声明,但在使用之前先声明所有变量是一种良好的脚本编程习惯。

可以使用Dim、Public或Private语句在 VBScript 中声明变量。

例如:
<% Dim UserName %>
可以在 .asp 文件中使用 VBScript Option Explicit语句,要求必须使用Dim、Private、Public和ReDim 语句显式声明变量。

Option Explicit语句必须位于任何 ASP 命令之后、任何 HTML 文本或脚本命令之前。

此语句只影响使用 VBScript 编写的 ASP 命令;并不影响 JScript 命令。

<% Option Explicit %>
<HTML>
<%
Dim strUserName
Public lngAccountNumber
%>
有关这些命令的详细信息,请参阅Windows Script Technologies网站中的“VBScript 语言参考”。

虽然 JScript 通常不要求变量声明,但在使用之前先声明所有变量是一个良好的脚本编程习惯。

可使用var语句声明变量。

例如:
<% var UserName %>
通常,只有在需要将函数内部变量与在函数外部使用的“全局”变量区分开时,才有必要在 JScript 中声明变量。

在这种情况下,如果不区分两个变量,JScript 会假定只引用全局变量。

关于var语句的详细信息,请参阅Windows Script Technologies网站中的“JScript 语言参考”。

变量范围
变量“范围”或生存期确定哪些脚本命令可以访问变量。

在过程中声明的变量具有“局部范围”;每次执行过程时创建和消除此变量。

无法从过程外部访问此变量。

在过程外部声明的变量具有“全局范围”;ASP 网页中的任何脚本命令都可以访问和修改此变量值。

注意将变量范围限制在过程中有利于提高性能。

声明变量时,局部变量和全局变量可以同名。

修改其中一个变量的值,不会影响另一个变量。

不过,如果不声明变量,则有可能在无意中修改全局变量的值。

例如,在下例中虽然有两个变量 Y,但脚本命令返回值 1:
<%
Option Explicit
Dim Y
Y = 1
SetLocalVariable
Response.Write Y
Sub SetLocalVariable
Dim Y
Y = 2
End Sub
%>
与此相反,在下例中因为没有显式声明变量,所以脚本命令返回值 2。

当过程调用设置 Y 为 2 时,脚本引擎认为过程要修改全局变量:
<%
Option Explicit
Dim Y = 1
SetLocalVariable
Response.Write Y
Sub SetLocalVariable
Y = 2
End Sub
%>
要避免此类问题的发生,有必要养成显式声明所有变量的习惯。

这一点当使用#include语句在 .asp 文件中包含其他文件时尤其重要。

被包含的脚本虽然在单独的文件中,但却当作是包含文件的一部分。

除非声明变量,否则很容易忘记必须在主脚本和被包含脚本中使用不同的变量名。

指定变量的 Session 或 Application 作用域
全局变量只能在单个 .asp 文件内访问。

要从单独网页外部访问变量,需提供变量的 Session 或Application 作用域。

Session 作用域变量对单个用户请求的 ASP 应用程序的所有页都可用。

Application 作用域变量对任何用户请求的 ASP 应用程序的所有页都可用。

Session 变量适用于存储单个用户的信息,如首选项、用户名或标识。

应用程序变量适用于存储特定应用程序所有用户的信息,如应用程序需要的特定欢迎词或常规值。

ASP 提供了两种内置对象,您可以在其中存储变量:Session对象和Application对象。

也可以用 Session 或 Application 作用域来创建对象实例。

详细信息,请参阅设置对象作用域。

Session 作用域
要给变量提供 Session 作用域,可通过给对象中已命名条目赋值将变量存储在Session对象中。

例如,下列命令将在Session对象中存储两个新变量:
<%
Session("FirstName") = "Jeff"
Session("LastName") = "Smith"
%>
要从Session对象中检索信息,可使用输出命令 (<%=) 或Response.Write访问已命名的条目。

下列示例使用输出命令显示 Session("FirstName") 的当前值:
Welcome <%= Session("FirstName") %>
可以在 Session 对象中存储用户首选项,然后通过访问这些首选项来确定将哪些页返回给用户。

例如,可以允许用户在应用程序首页中指定只查看纯文本内容,然后将此项选择应用于用户在此应用程序中访问的所有后续页。

<%
strScreenResolution = Session("ScreenResolution")
If strScreenResolution = "Low" Then
%>
这是一个纯文本网页。

<% Else %>
这是一个多媒体网页。

<% End If %>
注意如果在脚本中要多次引用 session 作用域变量,可以考虑如上例所示,将此变量赋给一个局部变量以便提高性能。

Application 作用域
要提供变量 Application 作用域,可通过给对象中已命名条目赋值来将变量存储在Application对象中。

例如,下列命令在Application对象中存储应用程序特定的欢迎词:
<% Application("Greeting") = "Welcome to the Sales Department!" %>
要从Application对象中检索信息,可使用 ASP 输出命令 (<%=) 或Response.Write来从应用程序中的任何后续页访问已命名的条目。

下列命令使用输出命令来显示 Application("Greeting") 的值:
<%= Application("Greeting") %>
同样地,如果脚本重复引用 Application 作用域变量,应将此变量赋给全局变量以便提高性能。

使用常量
“常量”是用来取代数值或字符串的名称。

随 ASP 提供的部分基本组件,如 ActiveX 数据对象 (ADO),定义了可在脚本中使用的常量。

组件可以在“组件类型库”中声明常量,组件类型库是一个包含 COM 组件支持的对象和类型的信息的文件。

一旦在 .asp 文件中声明了类型库,就可以在同一 .asp 文件的所有脚本中使用已定义的常量。

类似地,可以在 Global.asa 文件中声明类型库,以便在应用程序的所有 .asp 文件中使用已定义的常量。

要声明类型库,可以在 .asp 文件或 Global.asa 文件中使用 <METADATA> 标签。

例如,要声明 ADO 类型库,可使用下列语句:
<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library"
TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->
或者,如果不引用类型库的通用唯一标识符 (UUID),也可通过文件路径引用类型库:
<!-- METADATA TYPE="typelib" FILE="c:\program files\common
files\system\ado\msado15.dll"-->
然后,即可在 .asp 文件中使用 ADO 常量,此文件声明了类型库或者驻留在包含 Global.asa 文件(声明了 ADO 类型库)的应用程序中。

在下列例子中,adOpenKeyset 和 adLockOptimistic 是 ADO 常量:
<%
'创建并打开Recordset 对象。

Set rstCustomerList = Server.CreateObject("ADODB.Recordset") rstCustomerList.ActiveConnection = cnnPubs
rstCustomerList.CursorType = adOpenKeyset
rstCustomerList.LockType = adLockOptimistic
%>
下表列出了常用的类型库和 UUID:
关于 <METADATA> 标签的参考信息,请参阅TypeLibrary 声明。

在以前版本的 ASP 中,部分组件以文件形式提供了常量定义,这些文件必须包含在使用这些常量的所有ASP 文件中。

虽然仍可以通过#include命令包含常量定义,但使用类型库更方便,也更容易升级脚本。

在未来的 ASP 版本中,组件可能不提供常量定义文件。

注意使用 <METADATA> 标签(而不是#include命令)可以提高 Web 应用程序的性能。

可以定义自己的常量。

在 VBScript 中,使用Const语句。

在 JScript 中,可以使用var语句将常量值赋给变量。

如果要在多个 .asp 文件中使用常量,则需要将定义放在单独文件中,并在所有使用此常量
的 .asp 文件中包含这些定义。

与客户端脚本交互操作
使用 ASP 生成或操作客户端脚本,可以增强 ASP 的有效性。

例如,可以编写服务器端脚本,根据服务器特有的变量、用户浏览器类型或 HTTP 请求参数,对客户端脚本加以组合。

如下例模板所示,向客户端脚本中添加一些服务器脚本语句(由 HTML <SCRIPT> 标记括起来),可以在请求时动态初始化和更改客户端脚本。

<SCRIPT LANGUAGE="VBScript">
<!--
变量= <%=服务器端定义的值%>.
客户端脚本
<% 用于生成客户端语句的服务器端脚本%>
客户端脚本.
. -->
</SCRIPT>
结合这些功能,可开发出一些即有用又有趣的应用程序。

例如,下面是一个对客户端脚本(使用 JScript 编写)进行操作的服务器端脚本(使用 VBScript 编写)示例:
<%
Dim dtmTime, strServerName, strServerSoftware, intGreeting
dtmTime = Time()
strServerName = Request.ServerVariables("SERVER_NAME") strServerSoftware = Request.ServerVariables("SERVER_SOFTWARE")
'生成一个随机数。

Randomize
intGreeting = int(rnd * 3)
%>
<SCRIPT LANGUAGE="JScript">
<!--
//调用函数显示问候语
showIntroMsg()
function showIntroMsg()
{
switch(<%= intGreeting %>)
{
case 0:
msg = "<%= strServerName%> Web 服务器正在运行<%= strServerSoftware %>。

"
break
case 1:
msg = "欢迎使用<%= strServerName%> Web 服务器。

当地时间是<%= dtmTime %>。

"
break
case 2:
msg = "此服务器正在运行<%= strServerSoftware %>。

"
break
}
document.write(msg)
}
-->
</SCRIPT>
可以扩展这种类型的脚本,例如配置客户端数据库或 DHTML 个性化脚本。

创造性地运用这项技术,还可以减少往返过程和服务器处理时间。

编写过程
“过程”是一组脚本命令,可以执行特定任务并返回值。

可以定义自己的过程,并在脚本中重复调用这些过程。

可以将过程定义放在调用此过程的同一 .asp 文件中,或者可以将常用的过程放在共享的 .asp 文件中,并使用#include命令将此文件包含在调用此过程的其他 .asp 文件中。

另外,您还可以将具有某种功能的过程封装在 COM 组件中。

定义过程
过程定义可以出现在 <SCRIPT> 和 </SCRIPT> 标签内,并且必须符合已声明的脚本语言的规则。

用主脚本语言之外的其他语言编写的过程将使用 <SCRIPT> 元素。

但是,用主脚本语言编写的过程使用脚本分隔符(<% 和 %>)。

使用 HTML <SCRIPT> 标签时,必须使用两个属性以便确保服务器端能够处理脚本。

使用 <SCRIPT> 标签的语法为:
<SCRIPT LANGUAGE=JScript RUNAT=SERVER>
过程定义
</SCRIPT>
RUNAT=SERVER 属性通知 Web 服务器处理服务器上的脚本。

如果不设置此属性,将由客户端浏览器处理脚本。

LANGUAGE 属性确定此脚本块使用的脚本语言。

您可以为服务器指定任何语言,但服务器上必须已经安
装了此语言的脚本引擎。

可使用值“VBScript”指定 VBScript。

可使用值“JScript”指定 JScript。

如果没有设置 LANGUAGE 属性,则使用主脚本语言解释脚本块。

脚本块中的命令必须以所选脚本语言形成一个或多个完整的过程。

例如,下列命令定义 JScript 过程MyFunction。

<HTML>
<SCRIPT LANGUAGE=JScript RUNAT=SERVER >
function MyFunction()
{
Response.Write("您调用了MyFunction()。

")
}
</SCRIPT>
要点不要在服务器端 <SCRIPT> 标记内包含任何不属于完整过程的脚本命令。

不属于过程的命令可能导致无法预知的结果,因为代码是按下列顺序执行的:先按照出现的顺序执行的非默认语言编写的脚本块,然后是内嵌代码,最后是用默认语言编写的脚本块。

此外,不能在过程中使用 ASP 输出定向命令<%= %>。

而应当使用 Response.Write 将内容发送到浏览器。

调用过程
要调用过程,需在命令中包含过程名。

如果从 VBScript 中调用 JScript 过程,则过程名后必须使用括号;如果过程没有变量,则使用空括号。

如果从 JScript 中调用 VBScript 或 JScript 过程,则过程名后必须总是使用括号。

对于 VBScript,调用过程时也可以使用关键字 Call。

不过,如果调用的过程要求变量,则变量列表必须包含在括号内。

如果省略关键字 Call,同时也必须省略包含变量列表的括号。

如果使用 Call 语句调用任何内置函数或用户定义函数,将丢弃函数的返回值。

下例分别采用两种不同的脚本语言(VBScript 和 JScript)说明如何创建和调用过程。

<%@ LANGUAGE=VBScript %>
<HTML>
<BODY>。

相关文档
最新文档