第1章A S P初次接触 本章要点: • 什么是A S P?它能帮助我们做什么? • 怎样开发A S P程序?它在什么环境下运行? 1.1 ASP简介 1.1.1 什么是A S P Microsoft Active Server Pages (ASP)实际上是将标准的H T M L文件拓展了一些附加特征, A S P像标准的H T M L文件一样包含H T M L语句并且在一个浏览器上解释并显示。但它为H T M L编 写人员提供了在服务器端运行脚本的环境,使H T M L编写人员可以利用V B S c r i p t和J S c r i p t或其他 第三方脚本语言来创建A S P,实现过去需要编写复杂的C G I程序才能实现的有动态内容的网页, 如计数器等。一个A S P文件的后缀为. a s p,其中包含实现动态功能的V B S c r i p t或J S c r i p t语句,如 果去掉那些V B S c r i p t或J S c r i p t语句,它和标准的H T M L文件没有任何区别。A S P提供了一些内建 对象(参见后面关于内建对象的章节)。利用这些内建对象,你可以使你的脚本更加强大;这些 对象会允许您从浏览器中接收和发送信息。例如,利用r e q u e s t对象,你可以接收用户的H T M L表 单中的信息并加以处理。A S P包含标准的A c t i v e X组件(参见后面关于组件的章节),这些组件可 以实现一些复杂的功能,如使用数据库等。不过,你并不会被此局限,你可以轻松创建属于你 自己的附加A c t i v e X组件。这意味着你可以不加限制地拓展你的A c t i v e X组件(参见后面关于自 制组件的章节)。A S P可以和诸如SQL Server这样的数据库进行挂接,在本书后面的章节中,我 们将详细地学习这方面的内容。重要的是,这是A S P一个非常强大的功能所在,在线商务以及在 线论坛等各种非常高级的、动态更新的站点都需要数据库的支持,而且需要随数据库内容的更 新而自动更新,这样,你就可以利用A S P自己建立很多类似的高级站点。 通过上面的描述,我们可以了解到, A S P就是由服务器端脚本、对象以及组件拓展过的标准 网页并为其提供了运行的环境。而它的网页并不是在建立初期存在的,而是当某个浏览器向它 提出请求时,它才根据需要产生所需要的标准网页,这克服了过去H T M L编写的网页的静态缺点, 从而使网页上可以有许多动态的信息存在。如:当前的计算机时间、计数器的计数值等。 1.1.2 ASP的功能 A S P是一套服务器端的脚本运行环境,当用户从浏览器向We b服务器请求.asp 文件时, ASP 脚本开始运行,然后Web 服务器调用A S P,A S P全面读取请求的文件,执行所有的脚本命 令,并将标准的Web 页传送给浏览器,而并不包含你所写的脚本命令。 对于Web 服务器来说, A S P与H T M L有着本质的区别, H T M L不经任何处理送回给浏览器, 而A S P的每一个命令都首先被用来生成H T M L文件,因此A S P允许生成动态内容。 另一方面,对于浏览器来说, A S P和H T M L几乎是没有区别的,仅仅是后缀为. a s p和. h t m的 区别,当我们在客户端提出对A S P的申请后,我们的浏览器接受的是H T M L格式的文件。因此它 适用于任何浏览器。 根据以上特性,我们用A S P可以方便地实现诸如表格信息收集、计数器、留言簿、公告板、 聊天室甚至电子商务等过去必须由C G I才能实现的功能。 A S P还可以轻松地实现对页面内容的动态控制,为不同的浏览者定制不同的页面内容,实现 个性化的网站。 1.1.3 使用范围 你在利用A S P实现各种功能时几乎没有什么限制,只要网站存在并正常运行,以下是简单的 应用示例列表: • 在你的网站主页顶部添加一个滚动显示的广告栏。 • 从H T M L的表单中接受信息并且存到数据库中。 • 根据不同访问者显示不同内容,创建个性化主页。 • 在你的主页中添加点击计数器。 • 根据用户浏览器的版本、类型和能力显示不同档次的内容。 • 连接多个主页使之容易网际导航。 • 跟踪用户网站上的活动信息并且存入日志文件。 • 使用基于Windows NT的I n t r a n e t建立你的M I S应用。 用A S P编写出的系统,完全可以达到原来使用C l i e n t / S e r v e r的网络数据库系统的水平。使用 A S P最大的好处是,在你对程序进行升级时,你只需要修改服务器上的A S P文件,而不需要修改 客户端程序。 以上只是简单介绍,看完下面章节,你会对利用A S P做的事情有更加全面深入的了解。你会 真正学会如何使用A S P建立各种应用。 1.2 ASP的开发 1.2.1 环境的建立 A S P是微软开发的服务器端脚本环境, 内含于I I S(Internet Information Server)或P W S (Personal Web Server)中,开发A S P应用程序系统必须符合以下三个要求之一: • 如果你使用的是Windows NT Server 系统,那么你需要安装版本为3 . 0 / 4 . 0的I n t e r n e t Information Server(I I S),3 . 0版本的I I S包含在Microsoft Visual Studio 97 中,也可到 h t t p : / / w w w. m i c r o s o f t . c o m去下载4 . 0版本的I I S。安装好后,I I S会在Windows NT所在的硬盘 上建立其主页发布路径\ I n e t p u b \ w w w r o o t,而I I S会在机器启动后自动执行。把你编写好的 A S P文件复制到这个路径下,当然,你应该具备在这个路径的读写权限。打开浏览器,在 2使用ASP与SQL Server 网站架设 下载 地址输入框内输入h t t p : / / l o c a l h o s t / t e s t 1 . a s p(假设你编写的A S P文件的名字是t e s t 1 . a s p),接 着,你便能看见运行结果了。 • 如果你使用的是Windows 95/98系统,那么你需要安装Personal Web Server(P W S),它可 以在Windows 98 的安装盘的To o l s \ P W S路径下找到。安装好后, P W S会在Wi n d o w s所在的 硬盘上建立其主页发布路径\ I n e t p u b \ w w w r o o t,而P W S会在机器启动后自动执行。把你编 写好的A S P文件复制到这个路径下,打开浏览器,在地址输入框内输入h t t p : / / l o c a l h o s t / t e s t 1 . a s p(假设你编写的A S P文件的名字是t e s t 1 . a s p),接着,你便能看见运行结果了。 • 如果你拥有自己租用的虚拟空间,并且有C G I和A S P的权限,则可直接把文件复制到管理 员给你的路径上。 注意,如果你在I I S的当前机器上使用浏览器,请注意你怎样才能在浏览器上执行A S P。当 你用网络浏览器时调用A S P,不能直接在open 命令中调用,在这种情况, I I S以及A S P是不会运 行的。此时,你将看到A S P脚本的文本而不是它执行的结果。这肯定不是你所希望的。 A S P自身提供了V B S c r i p t和J S c r i p t的驱动程序。A S P可以将可执行的脚本直接嵌入H T M L文 件,H T M L开发和脚本开发在同一开发过程中就可完成。 1.2.2 开发工具 实际上A S P的应用程序就是以. a s p为扩展名的纯文本文件,你可以用任何文本编辑器打开并 编辑它(如记事本)。A S P程序中可以包含注释、H T M L标记以及脚本命令。你只需将. a s p程序 放在We b服务器的虚拟目录下(该目录必须要有可执行权限),就可以通过H T T P的方式访问A S P 程序了。 使用那些带有ASP 增强支持的编辑器将更能提高效率,如Microsoft Visual InterDev 。 Visual InterDev 是数据库工具,它能轻松地建立“开放数据库连接” ( O D B C )的数据库。如果您 从未使用过H T M L,请考虑先使用Microsoft FrontPage 。使用FrontPage 创建文档和格式化文 本就像使用文字处理工具一样简单。接下来还可以使用Insert Script 命令在FrontPage 创建的 HTML 页中插入简单的ASP 命令。 1.2.3 程序编写 在A S P中,所有脚本命令都由定界符<% 和%> 包含,任何在这个符号中包含的内容都被认 为是一个脚本,你可以在其中插入任何命令,只要这个命令对正在使用的脚本语言有效即可。 下面是个例子: < h t m l > ASP Scrip示t例 < / t i t l e > < / h e a d > < b o d y > 这是个 <% FOR I=1 to 10 %> 非常, <% NEXT %> 非常长的句子。 第1章A S P初次接触使用3 下载 < / b o d y > < / h t m l > 在记事本中输入以上代码,保存为\Inetpub\wwwroot \test.asp,打开浏览器,在地址输入框 内输入h t t p : / / l o c a l h o s t / t e s t . a s p。 该段Active Server Pages执行后在浏览器上显示为: 这是个非常,非常,非常,非常,非常,非常,非常,非常,非常,非常,非常长的句子。 这段脚本利用V B s c r i p t的F o r. . . N e x t循环生成了1 0个“非常”的拷贝。 A S P默认为您主要使用的是V B s c r i p t,也就是说,在使用< %和% >时不需要做任何事情来说 明使用何种语言。A S P也可以使用任何一个可以和Active X Script标准兼容的脚本语言引擎,不 过,需要用A S P的处理指令来指定。下面描述具体的处理指令。 ASP 提供了您使用的脚本语言以外的指令。这是一些输出指令和处理指令。 ASP 的输出指令<%= expression %> 显示表达式的值,e x p r e s s i o n为任何有效的表达式。以 下是个例子: < h t m l > < h e a d > < t i t l e > A S P示例< / t i t l e > < / h e a d > < b o d y > 现在的时间: <%=time%> < / b o d y > < / h t m l > 在上面的例子中,V B S c r i p t的时间函数值会输出到显示器上。 你可以用下面的方法完成同样的事,见下面例子: < h t m l > < h e a d > < t i t l e > A S P示例< / t i t l e > < / h e a d > < b o d y > 现在的时间: <%R e s p o n s e . W r i t e ( T I M E ) % > < / b o d y > < / h t m l > 在这个例子中, V B S c r i p t的Ti m e函数值将被A S P的R e s p o n s e对象输出来, r e s p o n s e对象的 w r i t e ( )方法是将表达式中的值显示出来(下一章中,你会学到更多有关对象和方法的知识)。 那么补充说明的是对于A S P内部< % =和% >也就是代表了R e s p o n s e . w r i t e ( )方法,因此无论你 用哪一种方法其实是一样的,没有任何区别。 ASP 处理指令<%@ keyword %> 为ASP 提供处理.asp 文件所需的信息。 处理指令必须出现在.asp 文件的第一行。必须在@标记和关键字之间加入一个空格。处理 指令有下列关键字: • LANGUAGE 关键字设置页的脚本语言: <%@ LANGUAGE=VBScript %> 将本页的主脚 本语言设置为V B S c r i p t。A S P的默认主脚本语言为V B S c r i p t,你也可以将任何一种具有脚 本引擎的脚本语言设置为本页的主脚本语言。主脚本语言是用来处理在分界符<% 和% > 之间的命令的语言。 • C O D E PAGE 关键字设置页的代码页(字符编码):指明ASP 处理某一特定页时所用的字 4使用ASP与SQL Server 网站架设 下载 符集,<%@ CODEPAGE= 950 %>将本页代码页设置为中文繁体字符集。 • LCID 关键字设置页的现场标识符:现场决定日期和时间、项目的格式, <%@ LCID = 1041 %>把现场设置为日文现场。 • TRANSACTION 关键字指定将在事务处理环境下运行的页。 • ENABLESESSIONSTATE 关键字指定ASP 页是否使用会话状态。 可以在单个指令中包含多个关键字;关键字/值对之间必须由空格分开。不要在等号( =)左 右加入空格。下面的例子中设置了脚本语言和代码页: <%@ LANGUAGE= VBScript CODEPAGE=950 %> 如果您的主脚本语言是VBScript 或者J S c r i p t,ASP 从指令中删除空白字符。使用其他脚本 语言时,ASP 保留空白字符。空白字符包括空格、制表符、回车和换行符。 使用VBScript 和JScript 时,在打开定界符之后和关闭定界符之前使用空白字符更容易阅读 命令。下面的命令都是合法的: <% Color = "Green" %> < % C o l o r = " G r e e n " % > < % Color = "Green" % > 1.2.4 Global.asa文件 为了使A S P更好地工作, A S P设置了一个专用的G l o b a l . a s a文件,G l o b a l . a s a文件是一个可选 文件,用户可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件 的内容不是给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名 称必须是Global.asa 且必须存放在应用程序的根目录中。每个应用程序只能有一个Global.asa 文 件。 Global.asa 文件只能包含如下内容: • 应用程序事件。 • 会话事件。 •