论坛: 网站建设 标题: 《ASP基础教程》连载三:创建ASP页 复制本贴地址    
作者: love20cn12 [love20cn12]    论坛用户   登录
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不间断空符(&nbsp;)。例如:

<% 'Define two variables with string values.
Hello = "Hello"
World = "World"
%>
<P>My response is to say "<%= Hello %>&nbsp;<%= World %>." </P>

  


地主 发表时间: 02/07 18:54

论坛: 网站建设

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号