当前位置:首页 » 网站技术 » ASP

创建 Active Server Page 页

...

Active Server Pages(ASP)文件是以 .asp为扩展名的文本文件,这个文本文件可以包括下列部分的任意组合:

文本 HTML标记 ASP脚本命令

创建ASP文件非常容易。如果要在 HTML文件中添加脚本,只需将该文件的扩展名 .htm或 .html替换为 .asp就可以了。要使 .asp文件可用于 Web用户,请将这个新文件保存在 Web站点上的目录中(请确定启用了该目录的脚本和执行权限)。使用浏览器查看该文件时,可以看到 ASP处理并返回了 HTML页。现在可以在 .asp文件中添加脚本命令了。

注意因为 .asp文件需要额外的处理,请不要将所有的 HTML页都转换为 ASP页。应该只将包含脚本命令的文件转换为 .asp文件。.asp和 .htm文件可以放置在相同的目录中。

使用任何的文本编辑器都可以创建 .asp文件。使用那些带有 ASP增强支持的编辑器将更能提高效率,如 Microsoft? Visual InterDev?。如果您从未使用过 HTML,请考虑先使用 Microsoft FrontPage。使用 FrontPage创建文档和格式化文本就象使用文字处理工具一样简单。接下来还可以使用 Insert Script命令在 FrontPage创建的 HTML页中加入简单的 ASP命令。

加入 Script命令

脚本是一系列的命令和指令。与 HTML标签不同,script命令指示 Web服务器执行操作,而 HTML标签只是简单地格式化文本或读取图形、视频及音频文件。Script命令可以在变量中存储用户名,在返回到浏览器的页中显示用户名或将用户名存储在数据库中。

脚本命令通过定界符与文本区别开来。定界符是字符或一串字符,它标志单元开始或结束。HTML使用定界符棗小于号(<)和大于号(>)括入 HTML标签。

ASP使用定界符 <%和 %>括入脚本命令。您可以在定界符中括入任何命令,只要这些命令对正在使用的脚本语言有效。下面的例子展示了包含脚本命令的简单的 HTML页:

<HTML>

<BODY>

This page was last refreshed on <%= Now %>.

</BODY>

</HTML>

VBScript函数 Now返回当前的日期和时间。Web服务器处理该页时,会使用当前的日期和时间替换 <%= Now %>并且将该页返回到浏览器:

This page was last refreshed on 8/1/97 2:20:00 PM.

定界符括入的命令被称为主脚本命令。这些命令被主脚本语言处理。在脚本定界符中使用的任何命令都必须对主脚本语言有效。默认情况下,主脚本语言是 VBScript。要设置另一种语言。请参阅使用脚本语言。

如果您已经熟悉了客户端脚本编写(编写在浏览器上运行的脚本),请注意不要用 HTML <SCRIPT>元素括入表达式。在编写服务器端脚本时,只用 <SCRIPT>元素在主脚本语言外的其他语言中定义过程。关于详细信息,请参阅使用脚本语言。

合成 HTML和脚本命令

在 ASP定界符中可以包含任何在主脚本语言中合法的语句、表达式、过程或操作符。在 VBScript和其他脚本语言中,语句是语法完整的单元,该单元表达某项活动、声明或定义。下面的条件语句 If...Then...Else是一条常见的 VBScript语句。

<% If Time >= #12:00:00 AM# And Time < #12:00:00 PM# Then

Greeting = "Good Morning!"

Else

Greeting = "Hello!"

End If

%>

<%= Greeting %>

这条语句将值 "Good Morning!"或值 "Hello!"存储在变量 greeting中。<%= Greeting %>命令将当前的变量值发送到浏览器中。


这样,在(Web服务器所在时区的)正午 12点前浏览该脚本的用户将看到:

Good Morning!

在正午 12点或以后浏览此脚本的用户将看到:

Hello!

在语句的不同部分之间可以加入 HTML文本。例如,下面的脚本在If...Then...Else语句中加入了 HTML,产生了与上面脚本同样的结果:

<% If Time >= #12:00:00 AM# And Time < #12:00:00 PM# Then %>

Good Morning!

<% Else %>

Hello!

<% End If %>

如果条件为真棗也就是说,如果时间为午夜、午夜以后或者中午以前,那么 Web服务器将跟随条件(“Good Morning”)的 HTML发送到浏览器;否则,将跟随 Else的 HTML(“Hello”)发送到浏览器。这种混合 HTML和脚本命令的方式可以方便地将 If...Then...Else语句变换为几行 HTML文本。如果要在 Web页上显示多处问候,前一个例子更为有用。只需要设置一次变量,就可以重复显示。

最好从脚本命令中将 HTML文本返回到浏览器,而不用脚本命令散布 HTML文本。要将文本返回到浏览器,请使用 ASP的内建对象 Response。下面的例子可以产生与前一个脚本同样的结果:

<%

If Time >= #12:00:00 AM# And Time < #12:00:00 PM# Then

Response.Write "Good Morning!"

Else

Response.Write "Hello!"

End If

%>

Response.Write将跟随的文本发送到浏览器。要动态构造返回浏览器的文本,请在语句中使用 Response.Write。例如,可能要构造包含一些变量值的字符串。在使用组件和对象以及向浏览器传送内容中了解到更多有关 Response对象和一般对象的信息。现在,先了解将脚本命令插入到 HTML页中的几种方法。

在 ASP定界符中可以包含用默认主脚本语言编写的过程。详细信息,请参阅使用脚本语言。

如果正在使用 JScript命令,可以插入花括号指示语句块直接进入 ASP命令,而不用考虑它是否夹杂着 HTML标签和文本。例如:

<% if (screenresolution == "low") { %>

This is the text version of a page.

<% } else { %>

This is the multimedia version of a page.

<% } %>

使用 ASP指令

ASP提供了您使用的脚本语言以外的指令。这是一些输出指令和处理指令。

ASP的输出指令 <%= expression %>显示表达式的值。这个输出指令等同于使用 Response.Write显示信息。例如,输出表达式 <%= sport %>将文字 climbing(变量当前的值)传送到浏览器。

ASP处理指令 <%@ keyword %>为 ASP提供处理 .asp文件所需的信息。例如,下面的指令将 VBScript设为该页的主脚本语言:

<%@ LANGUAGE=VBScript %>

处理指令必须出现在 .asp文件的第一行。不要将处理指令放在包含 #include语句的文件中。必须在 at标记(@)和关键字之间加入一个空格。处理指令有下列关键字:

LANGUAGE关键字设置页的脚本语言;请参阅使用脚本语言。

CODEPAGE关键字设置页的代码页(字符编码);请参阅使用国际站点。

LCID关键字设置页的现场标识符;请参阅使用国际站点。

TRANSACTION关键字指定将在事务处理环境下运行的页;请参阅创建事务处理脚本。

ENABLESESSIONSTATE关键字指定 ASP页是否使用会话状态;请参阅管理会话。

可以在单个指令中包含多个关键字;关键字/值对之间必须由空格分开。不要在等号(=)左右加入空格。下面的例子中设置了脚本语言和代码页:

<%@ LANGUAGE=JScript CODEPAGE=932 %>

在脚本中的空白字符

如果您的主脚本语言是 VBScript或者 JScript,ASP从指令中删除空白字符。使用其他脚本语言时,ASP保留空白字符,这样那些需要使用位置和缩进的语言,如 Python就可以被正确解释了。空白字符包括空格、制表符、回车和换行符。

使用 VBScript和 JScript时,在打开定界符之后和关闭定界符之前使用空白字符更容易阅读命令。下面的命令都是合法的:

<% Color = "Green" %>

<%Color="Green"%>

<%

Color = "Green"

%>

ASP将一个语句的关闭定界符与下一个语句的打开定界符之间的空白字符删除。要保留两个语句间的空白字符,比如在句子中显示变量值的时候,请使用 HTML不间断空符( )。例如:

<% 'Define two variables with string values.

Hello = "Hello"

World = "World"

%>

<P>My response is to say "<%= Hello %> <%= World %>." </P>

继续阅读
使用变量和常量
使用集合 [ 一 ]
使用集合 [ 二 ]
Active Server Page 内建对象
向浏览器发送内容
向浏览器发送内容[2]
包含文件
访问数据库 [1]
访问数据库 [2]
发表评论

昵称:
最新评论
暂时没有评论!