跳转到内容

活动服务器页面/基本 ASP 语法

来自维基教科书,开放世界中的开放书籍
上一页:你的第一个页面 索引 下一页:变量类型

在本节中,您将了解活动服务器页面脚本的不同部分。我们不想深入讨论如何编写 ASP 脚本,而是希望介绍 ASP 脚本的不同元素。

活动服务器页面或 ASP 是一种脚本语言,这意味着它不需要编译即可运行。相反,程序代码会实时解析、解释和评估。这意味着您不必编译代码即可执行它。

代码通过将其放置在 Web 服务器上的网页内来执行。ASP 由微软开发,因此,它只在微软的 IIS(互联网信息服务)上完全可靠。我们鼓励您使用微软 IIS 来开发活动服务器页面代码。

语句就像英语中的句子,它描述了 ASP 解释器执行的一个任务。代码块由多个语句组合在一起形成一个网页。

有各种类型的语句,我们将在将来讨论,包括:“(流程)控制、输出、赋值和 HTTP 处理。

在活动服务器页面中,重要的是要认识到每个语句都必须单独出现在一行上。没有特殊的定界符来指示 ASP 语句的结尾。除非您将回车符视为定界符,但实际上您不应该这样做。

您可以在程序块中使用冒号字符“:”将多个语句放在同一行上,例如

<%
Response.Write "Error" : Response.End
%>

实际上,最好避免使用此类编程结构,因为它会使您的代码更难阅读和维护。

另一种在同一行上包含多个语句的方法是使用多个代码块,如下所示

<% If I < 0 Then %>Negative<% End If %>

这里,您有两个不同的语句(尽管它们看起来像一个语句),它们被分为两个不同的代码块。活动服务器页面允许您的网页上使用此结构,因为有时需要这样编写代码来消除出现在网页上的空白。

良好脚本语言的标志之一是语言中的变量类型宽松。这意味着对程序代码使用的变量值的类型检查很少。活动服务器页面被正确地构建为一种脚本语言,类型宽松。这使得您作为程序员可以不必担心变量是什么类型,从而免去您大量的工作来转换值和测试正确的类型。

您不需要在使用变量之前声明它们(如果您愿意,甚至根本不需要声明)。此规则的唯一例外是在页面指令“Option Explicit”生效时。如果您将以下内容放置在 ASP 页面的顶部,您将需要声明所有变量

 <% Option Explicit %>

如果您不希望在所有脚本中都使用此要求,您可以将其省略。这是一个有用的工具,可以放在一个页面上,用来检查拼写错误或使用错误的变量名。如果您拼错了变量,您可能会看到“未定义变量”。

变量用 **Dim** 语句声明,可以包含一个变量或一个用逗号分隔的变量名列表,如下例所示

 <%
 Dim sPhoneNo
 Dim sFirstName, sMidleInitial, sLastName
 %>

ASP 语言中没有全局变量。所有变量都特定于它们所在的网页。页面处理完后,这些值就会丢失。一个例外是 Application 对象。它可以保存许多不同的值,每个值都与一个字符串值相关联。另一种方法是通过 Web 表单或 URL 的一部分将变量传递到 Request 对象中。这些主题的更多信息将在后面介绍。

注释是您可以在 ASP 脚本块内的网页上进行的标记,这些标记不会在网页上输出。它们对您的网站访问者来说是隐藏的,因为他们无法查看网页的 ASP 源代码。这使您可以对代码的功能进行注释。

活动服务器页面使用引号字符(')来定义注释。此注释是“行注释”,这意味着它将注释掉它之后的所有内容,直到行结束。ASP 中没有多行注释。为了注释多行,每行前面必须有一个引号(')。

 <%
 ' example comment - show the current date
 Response.Write Now()
 %>

服务器端包含 (SSI)

[编辑 | 编辑源代码]

服务器端包含允许您从一个网页检索代码并将其插入到另一个页面中。这使您可以创建只需要维护在一个地方的通用代码和 HTML 片段。其他网页可以使用此服务器指令在其页面中包含此内容。

如果您使用服务器端包含指令,则不能在指令中放置 ASP 代码。这是因为指令在解释 ASP 代码之前就已经被评估了。因此,尝试执行以下操作是非法的

<!-- #include virtual="/lib/<%= sLibName %>" -->

但这并不意味着您不能在包含的文件中放置 ASP 代码。因此,如果您包含一个名为 ** /lib/common.asp ** 的文件,您可以在该文件中放置 ASP 代码(就像您在普通 ASP 页面中一样),它将由 IIS 评估,结果将放置在调用页面中。

有趣的是,您的主页面可以使用“.html”扩展名,并包含(通过 SSI)一个 ASP 页面,包含的文件将被解释和处理为 ASP,并包含在 HTML 页面中。

两种不同类型的服务器端包含允许您根据绝对路径(基于网站根目录)或相对于调用页面来检索和包含文件,如下所示;

<%' absolute path - based on web site root %>
<!-- #include virtual="/pathtoinclude/include.asp" -->
<%' relative path - based on folder of calling page  %>
<!-- #include file="../../folder1/include.asp" -->

使用这两者都有好处。一个好的经验法则如下:如果您希望移动 Web 应用程序的整个文件夹(或树),那么相对路径更合适。如果您希望事情基本上保持在您创建它们的位置,那么您应该使用绝对路径。

**请注意:**当使用 IIS6(Windows 2003 服务器)时,默认情况下不会启用相对路径,这会导致任何使用相对路径的服务器端包含停止工作。

复习问题

[编辑 | 编辑源代码]
  • 三种不同的脚本定界符是什么?
  • 编写 ASP 网页时必须使用哪个文件扩展名?
  • 必须使用哪个 Web 服务器来解释 ASP 网页?
  • 如何声明变量?
  • 如何强制执行所有变量必须声明的规则?
  • 服务器端包含的好处是什么?
  • 什么时候应该使用绝对服务器端包含 (SSI)?
  • 如何终止 ASP 中的语句?
  • 什么是“解释型”脚本语言?
  • 如何在活动服务器页面中编写注释?
  • 如何在 ASP 中创建“块注释”?
  • 哪个数据库最适合与 ASP 配合使用?
上一页:你的第一个页面 索引 下一页:变量类型

职业博览会或展览

外部链接

[编辑 | 编辑源代码]
华夏公益教科书