创建 ASP 网页

Active Server Pages (ASP) 文件是带有 .asp 扩展名的文本文件,它由下列内容组合而成:

使用 .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="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>

© 1997-2001 Microsoft Corporation. 保留所有权利。