|
| |
ASP
即学即用教程(二):如何创建 ASP 网页

时间:1998-11-16
2.1 ASP 的基本语法
我们知道,ASP 是由静态 HTML
文本和脚本命令组合而成的,包括三个部分:文本,HTML 标记和 ASP
脚本命令。且看下面这段文本:
<HTML><BODY>Now is <%= Now %>
<% If Time >= #12:00:00 AM# And Time < #12:00:00 PM# Then
Greeting = "Hi, Good Morning!"
Else
Greeting = "Hi, Good Afternoon!"
End If%>
<font color="#FF0000" size=6><%= Greeting %></font>
</BODY>
</HTML>
显示的结果:Now is 98-8-30 14:22:16 Hi, Good Afternoon!
这是一个简单的 ASP 文件。由静态 HTML 页和脚本混合而成。其中静态
HTML 部分完全符合 HTML 的语言规范,这也是我们非常熟悉的内容。而
ASP
脚本命令则是由一系列命令或指令构成的,和标记不一样,它的主要功能是指示
Web 服务器去执行一些操作。
上面这段文本中,我们可以看到这样几个脚本命令:
a. <%= Now %> - 这是一个赋值语句,Now 是 VBScript
的内部函数,显示现在的时间。
b. <% If Time >= #12:00:00 AM# And Time < #12:00:00 PM# Then
Greeting = "Hi, Good Morning!"
Else
Greeting = "Hi, Good Afternoon!"
End If%> ;这是一段条件语句的代码,判断时间,显示一段问候语。
脚本语句的语法可表示为 <%语句%>。a. <% 和 %> 分别是 ASP
语句的定界符。任何一条 ASP 语句都必须以 <% 开头,以 %>
结尾。b. 语句是 ASP 脚本语言支持的任何语句,在默认情况下与
VBScript 的语句基本相同,常见语句如下表所示:
操作符: And, Or, Not, >=, <=, >, <
赋值语句: =,
条件语句: If...Then...Else...End if
循环: Do while...Loop, For...Next
注意:可以在 ASP 中使用 VBScpipt
本身的函数、对象、常量、方法,例如上面那段例子中的 Now 就是
Vbscript 的函数。详细信息,请参阅 VBScript 语言的指南。
2.2 ASP 中的脚本
ASP 的基本脚本语言是用来处理 <% 和 %>
定界符之间各种命令的语言。在默认情况下,基本的脚本语言就是
VBScript。当然,您可以采用以下方法设置使用其他类型的脚本(如
JavaScript):<%@ LANGUAGE="JScript">
注意:Vbscript 和 JavaScript 是 ASP
默认支持的脚本。对于其他脚本语言(Perl),只需要在服务器加入其脚本引擎(engine)即可嵌入到
ASP 文件中。另外,与 HTML
中的脚本不同的是,它的脚本是在服务器端加载执行的,而不是由客户端的浏览器执行的。
2.3 开发高级的 ASP 应用
使用上面介绍的基本语法,我们已经可以创建一些具有一定功能的动态网页了。但是,脚本语言只是介于
HTML 和编程语言(Java、C++ 和 VB)之间的中间语言,只能提供一些简单而有限的指令,它比较适合于设置文本的格式,调用和使用一些用编程语言编译好的组件。而程序设计语言通常可向计算机提供一系列复杂的指令。因此,要开发一些复杂的应用,还需要借助于其他编程语言,以组件和对象在
ASP 中调用,这样来开发更复杂的应用。
本节主要介绍在 ASP 中如何使用对象和组件。
ASP
本身提供了一些内置对象和服务器组件来完成某些特定的功能,不需要创建
ASP
内置对象的实例即可在脚本中使用。下面是六种基本的内置对象:
- Application:可以使用该对象在给定应用程序的所有用户之间共享信息。
- Request:可以使用该对象访问通过 HTTP
请求传送的任何信息。包括使用 POST 方法或 GET 方法、cookies
以及客户证书传送的参数。
- Response:可以使用该对象控制发送给用户的信息。
- Server:可以使用该对象访问服务器上的方法和属性。例如,最常用的方法是创建
ActiveX 控件 (Server.CreateObject) 的实例。
- Session:可以使用该对象存储特定用户会话的信息。
- ObjectContext:可以使用该对象提交或终止由 ASP
脚本执行的事务。
2.3.1 如何使用对象
a. 调用对象的方法
方法是可以针对或使用某个对象执行的一种操作。方法的调用通常可以按如下方式进行:对象.方法参数
例如,可使用 Response 内置对象的 Write
方法向浏览器发送信息,如下所示:<% Response.Write "Hello
World" %>
b. 使用和设置对象属性
属性是用于描述对象的一种特征。属性定义了对象的特征,如对象的类型,或描述对象的状态,如启动或禁用。属性的语法是:对象.属性
可以读取属性的值或设置属性的值。对于某些对象,还可以添加新的属性。
例如,Ad Rotator 组件有一项属性 - Border,指定在广告画周围是否有边框,并确定边框的宽度。以下表达式指定在广告画周围没有边框:<%
MyAds.Border = 0 %>
2.3.2 关于组件
在 ASP 中我们所使用的多数是 ActiveX 组件,它是开发强大 Web
应用的关键。ActiveX
组件实际上是一个文件,其中包含了用于执行一项或多项任务的代码。我们可可以使用
C、C++、VB 等任何编程语言编写这些组件,完成特定的功能,然后在
ASP 中调用组件的对象,实现这些功能。另外,ASP
服务器本身也提供了一些内置的服务器组件。我们可以使用这些组件完成象数据库访问、文件访问这样的功能。
2.3.3 如何使用组件
组件是包含在动态链接库(.dll)或可执行文件(.exe)中的一段可执行代码。组件提供一个或多个对象,而且每个对象都有相应的属性和方法。对于开发人员来说,使用组件也就是在
ASP 中调用这些对象及其属性和方法。
a. 创建组件对象的实例
必须先创建组件的某个对象的实例,具体方法:
MyObject = Server.CreateObject("PROGID")
其中,PROGID
是该组件在系统注册表中的注册号。对于内置的服务器组件,使用的则是其对象标识,如
ADODB.connection。
另外,也可以使用 <object> 通过其注册名(PROGID)或注册号(CLASSID)来调用对象的方法,如
<OBJECT ID=menu
CLASSID="Clsid:1621F7C0-60AC-11CF-9427-444553540000"></object>
b. 通过所创建的对象实例来访问这个对象及其方法,如下所示:
menu.AddItem("p6", "Project",
"default.asp?projectID=6&projectTitle=Project", "");
2.4 ASP 开发方法
a. 编写 ASP 的最简单工具是 Notepad,我们直接可以在 Notepad
中键入脚本的内容,形成 ASP 文件。
b. 使用 Microsoft Visual InterDev 开发 ASP 程序,该程序在 Microsoft 的 Visual
Studio 中,开发方法与 VC++ 类似。
2.5. ASP 的运行环境
- Windows NT 4.0 + IIS 3.0/4.0
- Microsoft Personal Web Server 4.0 + Windows 95
如果您的 IIS 或 PWS 版本比较低,可以在原有的 NT Server 和 IIS
的基础上再另装一个 Microsoft Active Server Pages:
- Windows NT Server + Internet Information Server version 2.0 + Microsoft Active Server
Pages
- Windows NT Workstation, Peer Web Services version 2.0 + Microsoft Active Server Pages
- Windows 95, Personal Web Server version 1.0a + Microsoft Active Server Pages
安装好系统环境后,可在你的 Internet
服务器上建立一个站点或虚拟目录,让这个虚拟目录是可执行的,然后将你的
ASP 网页放在这个目录下。ASP 文件可以作为默认的网页(如default.asp),也可以作为链接的网页。在客户端使用任何浏览器都可以查看。
注意:编写好的 asp 文件必须通过 Web
地址调用才能看到,而不能在浏览器中直接打开文件。
2.6 ASP 与 CGI 的差别
众所周知,CGI 是最早的 Internet
开发标准。目前,大多数具有动态功能的网页都是用 CGI 编写的。但
CGI 和 ASP 相比究竟有何区别呢?首先,ASP 比 CGI 简单易学。其次,ASP
和 HTML 完全集成。另外,它是完全面向对象,可使用扩展的 ActiveX
组件,从而实现更大的应用。当然,由于 ASP 仅限于 Microsoft
的特殊环境,在有些 Internet Server 上无法执行,这也正是它没有 CGI
普遍的原因所在。
我的建议是,如果您使用的是全套 Microsoft 的家伙,不妨学学 ASP。以后它可能会很有用,但如果您经常在其他的平台上跑,最好也钻研一下
CGI,否则您将是英雄无用武之地。
|