ASP基础

作者：书生

本文 ASP 篇 (1) 展示了 ASP 动态网站设计的一些最基本的方法，相信通过实践各位对 ASP 已经有了最基本的了解，本篇在答复大家所提问题的同时，将进一步介绍 ASP 动态网站的一些基本技巧。
自本文第一篇刊登后 , 络绎不绝地收到了一些朋友的来信，出乎作者的意料，其中有相当一部分是初次接触 ASP ，因此有许多朋友都提出为何在浏览器中浏览 ASP 篇 (1) 中的范例时看到的竟然是原代码？由于遇到此问题的朋友较多，故作者在此一并回答。首先，我要再次强调 ASP 是一套服务器端的脚本环境，当用户从浏览器向 Web 服务器请求 .asp 文件时， ASP 脚本开始运行，然后 Web 服务器调用 ASP ， ASP 全面读取请求的文件，执行所有脚本命令，并将 Web 页传送给浏览器，这就意味着你不能简单地在现有的操作系统 ( 如 Win95 、 98) 下，用浏览器中的 " 打开 " 命令来浏览 .asp 文件；其次，运行 .asp 文件需要服务器端的支持，目前除了 WindowsNT 下的 Microsoft Internet Information Server 支持 Active Server 技术外， Active Server 还可用于 MS Windows NT Workstation 和 MS Windows 95/98 中的 Personal Web Server 的构件，因此无论你安装的是 NT 还是 WIN95/98 ，都必须在原系统上安装支持 ASP 的服务器端环境，才能使你的机器得以运行 .asp 文件。由于目前绝大多数朋友安装的是 Win95 或是 98 ，因此作者就在这里着重介绍如何在 Win95/98 下运行和浏览 .asp 文件。因为 MSPersonal Web Server 支持通用网关接口 (CGI) 应用程序、 Internet 数据库接口 (IDC) 应用程序和 IIS 应用程序接口 (ISAPI) 应用程序，并且支持运行和开发 ASP 应用程序，所以使得 Win95 及其以后操作平台具备了近似于 NT 的健全的网站运作和管理功能。你所要做的只是在现有的 Win95/98 系统上安装 MS Personal Web Server ，建议安装最新的 4.0 版本。当安装完成后， PWS4.0 会在系统启动时自动加载。打开 PWS ，选择左栏中的 " 高级 " 按钮 ( 见下图 Asp2a.gif) ，点取 " 虚拟目录 " 下的 "/_private" 目录，然后点击右边的 " 编辑属性 " 按钮，如图所示，在对话框中你可以编辑该虚拟目录的物理路径和目录名，上图中 "/_private" 的物理路径为 "D:\Inetpub\wwwroot" ，该目录是系统默认的 WWW 发布根目录，将上一篇中的范例 test1.asp 文件复制到 "D:\Inetpub\wwwroot" 目录下。最后，你只要将该虚拟目录的访问权限选择为 " 执行 " ，并在浏览器的 " 地址 " 栏中输入 "http://localhost/test1.asp" 就可以运行并浏览该 ASP 程序了。

知道了如何运行并浏览 ASP 程序，下面我们就继续 ASP 动态网站设计的学习。

上一篇给大家介绍了几个最基本的 ASP 程序，相信大家已经对 ASP 的应用有了大致的了解，本篇将继续介绍一些用 ASP 编写的 WEB 动态功能。由于 WEB 浏览器标准的不一致从而使得如何能够让自己制作的网站去适应各种不同的浏览器成为了广大网站设计者最为头疼的事，在如今的形势之下，我们不肯也不可能去抛弃 Netscape 或 IE 中的任何一种客户群，但我们有时候又不得不去考虑客户端浏览器的实际浏览效果，过去我们常用 JavaScript 编写一段程序来辨别客户端使用的不同的浏览器，那么今天就让我们来看看如何使用 ASP 更为便捷且精确地达到这一目的。将以下代码，剪贴到你的 Notebook 中，并保存为 browser.asp 。 　　< %@ LANGUAGE = VBScript %>
< HTML>
< HEAD>
< TITLE>用ASP提供的浏览器性能组件来辨别客户浏览器< /TITLE>
< /HEAD>
< BODY BGCOLOR="White" topmargin="10" leftmargin="10">
< font size="4" face="Arial, Helvetica">
< b>用ASP提供的浏览器性能组件来辨< br>别客户浏览器< /b>< /font>< br>
< hr size="1" color="#000000">
< !-- 定义并创建浏览器性能对象 -->
< %
Dim bc
Set bc = Server.CreateObject("MSWC.BrowserType")
%>
< !-- 在表格中描述客户浏览器的信息 -->
< Table border=1>
< tr>
< td>Browser Name< /td>
< td> < %=bc.Browser %> < /Td>
< tr>
< td>Browser Version< /td>
< td> < %=bc.Version %> < /Td>
< tr>
< td>Major Version< /td>
< td> < %=bc.Majorver %> < /Td>
< tr>
< td>Minor Version< /td>
< td> < %=bc.Minorver %> < /Td>
< tr>
< td>Frame Support< /td>
< td> < %=bc.Frames %> < /Td>
< tr>
< td>Table Support< /td>
< td> < %=bc.Tables %> < /Td>
< tr>
< td>Cookie Support< /td>
< td> < %=bc.Cookies %> < /Td>
< tr>
< td>Background Sound Support< /td>
< td> < %=bc.BackgroundSounds %> < /Td>
< tr>
< td>VBScript Support< /td>
< td> < %=bc.VBScript %> < /Td>
< tr>
< td>JavaScript Support< /td>
< td> < %=bc.JavaScript %> < /Td>
< /table>
< /BODY>
< /HTML>
用 http 方式浏览该文件，根据使用的浏览器的不同，你会看到类似下图 (Asp2b.gif) 的页面。在本例中我们用到了一个 ASP 提供的 ActiveX 组件 --"Browser Capabilities" 。 ActiveX 组件作为基于 Web 的应用程序部分在 Web 服务器上运行，组件提供了应用程序的主要功能 ( 如访问、修改数据库等 ) ，这样 WEB 设计者们就不必创建或重新创建执行这些任务的代码，从而提高了工作的效率，有关 ActiveX 组件将在今后详细讨论。为了使用 ASP 辨别客户浏览器，在这里我们利用 "Browser Capabilities" 组件创建了一个 Browser Type 对象，该对象提供带有客户端网络浏览器功能说明的用户脚本，当浏览器连接到网络服务器上时，它会自动发送一个 UserAgentHTTP 标题，该标题是一个声明浏览器及其版本的 ASCII 字符串。此 Browser Type 对象将该标题和在 Browscap.ini 文件中的项进行比较 (Win98 、 IIS3 、 IIS4 的用户分别可以在以下目录中 "win98\system\inersrv" 、 "\winnt\system32\inetsrv\asp\cmpnts" 、 "\winnt\system32\inetsrv" 找到该文件 ) 。如果找到匹配的项，则该 Browser Type 对象将认为浏览器列表属性与 UserAgent 标题匹配。若该对象在 browscap.ini 文件中找不到与该标题匹配的项，那么将使用默认的浏览器属性。若该对象既未找到匹配项且 browscap.ini 文件中也未指定默认的浏览器设置，则它将每个属性都设为字符串 "UNKNOWN" 。我们可以通过更新 browscap.ini 文件将属性或新的浏览器定义添加到该组件中，从而扩大 ASP 识别的浏览器范围和精确度。下面列出了 browscap.ini 中的一部分内容 ( 不包括注释部分 ) ：
[IE 4.0] ;;HTTPUserAgentHeader
browser=IE ;;指定该浏览器的名称。
Version=4.0 ;;指定该浏览器的版本号。
majorver=4 ;;指定主版本号
minorver=0 ;;指定副版本号
frames=TRUE ;;指定该浏览器是否支持框架。
tables=TRUE ;;指定该浏览器是否支持表格。
cookies=TRUE ;;指定该浏览器是否支持cookies。
backgroundsounds=TRUE ;;指定该浏览器是否支持背景音乐。
vbscript=TRUE ;;指定该浏览器是否支持VBScript。
javascript=TRUE ;;指定该浏览器是否支持JScript。
javaapplets=TRUE ;;指定该浏览器是否 支持 Java程序。
ActiveXControls=TRUE ;;指定该浏览器是否支持 ActiveX 控件。
Win16=False ;; 指定该浏览器是否支持Win16
beta=False ;;指定该浏览器是否测试版。
cdf=True ;;指定该浏览器是否 支持用于 Web 预测的 Channel Definition Format。

;;ie 4.01
[Mozilla/4.0 (compatible; MSIE 4.01*; Windows 95)]
parent=IE 4.0 ;;父标签允许第二个浏览器继承第一个浏览器的定义
version=4.01
minorver=01
platform=Win98

;;Default Browser ;;指定默认的浏览器的设置
[Default Browser Capability Settings]
browser=Default
frames=FALSE
tables=TRUE
cookies=FALSE
backgroundsounds=FALSE
vbscript=FALSE
javascript=FALSE
在上面的例子中，父标签允许第二个浏览器继承第一个浏览器的定义，以便 Microsoft Internet Explorer4.01 定义得以继承 Microsoft Internet Explorer4.0 定义全部的属性 ( 例如， frames=TRUE 、 tables=TRUE 以及 cookies=TRUE) 。并通过添加 platform=Win98 行来指定平台，用 version=4.01 重写版本信息。
在先前的 browser.asp 中我们仅仅是将客户浏览器的属性一一罗列了出来，下面让我们添加一些动态的效果。将以下代码剪贴到文件 browser.asp 中（ 编辑注 ：为显示方便，所有“ < ”符号后都多加了个空格，实际使用时请注意去掉。 ）：
< % if (bc.frames = TRUE) then %>
你的浏览器支持框架!< br>
< % else %>
难道现在你还在使用不支持框架的浏览器???< br>
< % end if %>
< % if (bc.tables = TRUE) then %>
你的浏览器支持表格。< br>
< % else %>
难道现在你还在使用不支持表格 的浏览器 ???< br>
< % end if %>
< % if (bc.BackgroundSounds = TRUE) then %>
有没有听到美妙的 音乐???< br>
< % else %>
可惜 , 您的浏览器不支持背 景音乐。< br>
< % end if %>
< % if (bc.vbscript = TRUE) then %>
您的浏览器支持Vbscript。< br>
< % else %>
您的浏览器不支持Vbscript。< br>
< % end if %>
< % if (bc.javascript = TRUE) then %>
您的浏览器支持 Javascript。< br>
< % else %>
您的浏览器不支持 Javascript。< br>
< % end if %>
在你的浏览器中刷新 browser.asp ，程序将自动辨别浏览器的属性并动态显示不同的信息。不难发现在整个 browser.asp 文件中几乎没有用到任何复杂的编程，就轻而易举的达到了动态鉴别客户浏览器并动态产生响应事件的效果。事实上，这个程序的关键就在于前文提到的 ActiveX 组件 --"Browser Capabilities" ，它的作用类似于一个 Function ，只需简单地在程序中调用该组件即能达到你所希望的效果。
通过这两篇对 ASP 的介绍，大家已经看到编写 ASP 程序是相当轻松的，要掌握 ASP ，无非就是掌握 ASP 内置的五个对象，以及 ASP 提供的 ActiveX 组件的对象、方法和属性，当然扎实的脚本语言编写能力也是必须的。在今后的课程中作者将用五到六篇的篇幅着重介绍这些内置对象和组件的作用及使用方法，敬请关注。