日期:2012-03-18 浏览次数:20886 次
Microsoft的动态服务器网页(Active Server Pages,ASP)技术目前已发展到了3.0版。对很多人来说,用ASP来创建Windows服务器平台上的动态Web网页、整个站点和基于Web的应用程序已经成为极其自然而然的方法。在浏览器地址栏中,文件扩展名.ASP同表示动态创建的网页的文件扩展名.pl或.cgi一样,已被浏览者所接受。事实上,对于在微软的操作系统上工作的Web程序员来说,ASP正在变成一种不再令人激动的技术,而仅是一种工作方式。
这种看法的改变体现了一种技术的逐步成熟。由于ASP的应用程序的数量日益增多,ASP的工具也在日益增加,同时有越来越多的第三方开发商开发出一系列基于ASP或使用ASP的附加功能模块、ActiveX服务器组件,甚至成套的“自己做( do-it-yourself )”Web站点工具。人们几乎不再关注微软公司最初使用的奇特的名字。现在ASP在行业内已经成为一个公认的名词。
这是一本关于ASP成熟技术最新版本的书,其目的是期望读者在一定程度上熟悉ASP的组成,了解ASP能够做什么及如何使用它。本书的目的不仅是使读者开始使用ASP,并且还要使读者了解ASP新版本的变化和它能够做到而早期版本不能做到的事情。
这并不意味着读者必须成为专家才能阅读本书,但希望读者已了解Web工作的基本方式和脚本语言的相关知识,如VBScript或JavaScript。
本书将更多地从研究和技术的角度讨论ASP,使读者对ASP如何工作有个更好的理解,有助于读者编写的ASP代码达到更高的水平。ASP 3.0核心可能没有很多本质上的改变,但有很多令人激动的使用方法。
本节先简单回顾一下ASP是如何产生的,以及ASP为什么能够在Web程序开发人员中流行。首先从了解Web的基础和动态Web页面的发展开始。把ASP与其他许多能够提供这种动态化的技术相比较,由此深入了解ASP的发展情况,同时了解Web应用程序的发展,而不仅限于了解单纯的动态Web 站点。
HTML的起源
万维网( World Wide Web,WWW )起源于设在瑞士的CERN实验室。Tim Berners-Lee及其开发小组,花费大量的时间,研究建立了一种以一定格式传输信息的方法,这就是众所周知的超文本传输协议(简称为HTTP)。该协议使用了超文本标记语言(HTML)。HTML设计简单,结构灵活,允许在Web浏览器及其他兼容的应用程序中显示文本及图像。文档的某些部分可以成为超链接,即当其被选择时,可以显示不同的页面或同一页面的不同部分。
标记语言是由特定字符分隔的基本元素,指定基本元素中所包含的文本或其他条目如何显示。例如<EM>This is some Emphasized text</EM>。HTML是一种广泛基于标准通用标记语言(Standard Generalized Makeup Language,SGML )的标记语言。SGML是描述语言的一种方法,其本身并不是用来创建网页的语言。
HTML语言从简单开始,不断增加一些附加的功能,直至形成了今天所用的HTML 4.0版本。这些新增的特性提供了更灵活的文本字体风格(例如< FONT >元素),以及对输出页面布局的更多控制(如窗体和帧的使用)。
早期的网页所缺乏的是动态的内容。刚一开始时,这还不是一个问题,因为HTML的开发是为了在计算机、网络及操作系统之间显示和传送信息(特别是技术和科学信息)。这种标准化的文档仅是一种简单的文本和标记,其中的图像和其他非文本的内容以单独文件形式存放,它们可以在各种网络上自由传送。另外,由于信息的格式是固定的,其组成元素的含义也是在HTML中定义好的。对于一个“阅读器”或浏览器应用程序,用任何程序语言在任何平台或操作系统中相对来说是比较容易实现的。
只要建立这些信息网页,文本文件和图像可通过Web服务器应用程序传送给用户,Web服务器应用程序简单地从磁盘中读取它们并且把输出转换成能够在网络中传送的正确HTTP协议。在客户或用户端,浏览器接收传送到的信息流,并转换成为能够显示的页面。
HTML和HTTP除了具有跨平台特性之外,其最主要的长处就是其文档可以包含有关内容的相关信息、作者意欲表达的方式等。它可以被应用程序阅读而不一定显示出来:例如盲人可以使用特殊的程序把它转换成为语音。同样,其内容可以特殊方式显示出来,以便那些视力差或有其他缺陷的人们更容易进行访问。因此,技术界经常用“用户代理” (user agent)这一通用术语代替“浏览器” ( browser )。
动态页面的起源
对于新类型的文档内容,特别是那些设计成为允许在页面上输入信息的文档(例如HTML中< INPUT >等的窗体控件),开发一种能够读取这种信息并加以利用的应用程序成为必然。很明显,传递从其他应用程序中得到的内容,特别是特定类型的数据库的内容,需要一种新的方法。每次都需要重写一个基于文本的页面,对于提供实时性很强的信息当然不是一个理想的方法。
对于Web服务器来说,提供一个接口使其他应用程序能够与之相连成为一种常用的方法。通过这个接口,定制的可执行程序能够接收来自客户端的信息,包括通过点击超链接或在浏览器中键入统一资源定位符( URL )所提出的页面请求的细节。应用程序对客户端的请求能够生成相应的响应,而不是从服务器磁盘上读取文本或标记文件。从这些早期方法开始,逐渐形成一套完整的系列方法动态创建网页,以响应用户的请求或信息的变化。
用于这些应用程序的接口仍然在使用,并被称为公共网关接口(Common GatewayInterface,CGI ),这是一种可用任何语言(如C语言)实现的标准。它产生于那些使用cgi-bin目录的应用程序(这里“bin”代表二进制代码,而不是文本)。早期的应用程序都是编译后的程序,通常用C或C++编写。然而这自然要求懂得C语言的编程方法,并且每当对程序做很小的文字上或标记上的变动,都必须重新编译、重新生成可执行文件,这就限制了CGI和动态页面的使用。
取而代之的是开发了一种用脚本语言创建网页的方法,这种语言就是实用摘要和报告语言(Practical Extraction and Reporting Language),或简称为Perl,它允许信息的创建者以一种非常类似于简化版C或C + +的语言编写代码。在Perl脚本中,可以“写”文本和标记,用标准输入(stdin)和标准输出(stdout )函数通过CGI与Web服务器通信,输出到浏览器。
Perl在Web上仍然是一种流行的语言,特别是在基于UNIX或Linux的系统上。然而这种语言掌握起来不是很容易,特别是对于那些没有C或C++语言基础的Web开发人员更是如此。现在,一些新的脚本语言出现了,使创建网页更加容易。我们主要看一下它们如何使开发人员的工作变得更加容易。
1. 服务器端脚本技术
对于服务器端的脚本需要用某种类型的中间应用程序,或插件程序来连接。它必须能够接受用户请求,读取并解释合适的基于服务器的脚本文件,接着创建输出页,并传送给Web服务器,在那里作为响应发送给客户端。
在某些情况下,这个任务划分为两个部分:
一个应用程序或插件程序处理与Web服务器的往来通信(一般通过CGI )。
另一个处理解释和执行脚本。
这就是ASP中的情况,脚本引擎的使用与在其他环境下相同。
Perl是第一个流行的服务器端脚本语言,但是目前已经出现很多其他的语言。在UNIX及基于Linux的系统上,一种新的称之为PHP(Personal Home Page)的语言正变得越来越流行。还有一些语言的目标是一些特定类型的用户,例如T C L就是一种在科学环境下使复杂的数学运算简单化的语言。
&nbs