王健南
Active Server Pages的縮寫ASP是 Microsoft公司于1996年11月推出的Web應(yīng)用程序開發(fā)技術(shù)。微軟聲稱設(shè)計出了一個完美的Active平臺,在微軟的文件中把ASP描述為:“一個服務(wù)器的腳本環(huán)境,在這里可以生成和運行動態(tài)的、交互的、高性能的Web服務(wù)器應(yīng)用程序”。從這段描述我們可以看出,ASP既不是一種語言,也不是一種開發(fā)工具,而是一種技術(shù)框架,其主要功能是為生成動態(tài)的交互式的Web服務(wù)器應(yīng)用程序提供一種功能強(qiáng)大的方法或技術(shù)。ASP的主要特性是能夠把HTML、腳本、組件等有機(jī)地組合在一起,形成一個能夠在服務(wù)器上運行的應(yīng)用程序,并把按用戶要求專門制作的標(biāo)準(zhǔn)HTML頁面送給客戶端瀏覽器。ASP屬于ActiveX技術(shù)中的服務(wù)器端技術(shù)。與我們通常在客戶端實現(xiàn)動態(tài)主頁的技術(shù)如Java applet、ActiveX Control、VB Script、JavaScript等所不同的是,ASP中的命令腳本語句都是在服務(wù)器中解釋執(zhí)行,執(zhí)行后的結(jié)果產(chǎn)生HTML頁面并送到瀏覽器。由于ASP是在服務(wù)器端解釋執(zhí)行,開發(fā)者可以不必考慮瀏覽器是否支持ASP。同時,由于只是標(biāo)準(zhǔn)的HTML頁面送到瀏覽器,在瀏覽器上看不到ASP程序,因此可以防止程序被竊取,保護(hù)了開發(fā)者的利益。
ASP具有學(xué)習(xí)快、設(shè)計快的特點,不需花許多時間即可學(xué)會和快速設(shè)計出WEB應(yīng)用程序。
ASP的源程序碼在服務(wù)器端執(zhí)行,代碼保密性好。集成與HTML中,無需編譯鏈接可直接執(zhí)行;使用文本編輯器如記事本,即可設(shè)計。與瀏覽器無關(guān),用戶端只要使用常規(guī)可執(zhí)行HTML代碼的瀏覽器。ASP是面向?qū)ο蟮模∣bject_Oriented)
隨著Internet的發(fā)展,靜態(tài)Web站點的開發(fā)與維護(hù)變得越來越困難,一方面信息的不斷增加和變化,使站點維護(hù)人員不得不經(jīng)常修改他們的網(wǎng)頁,特別是基于數(shù)據(jù)庫驅(qū)動的Web站點更是如此;另一方面靜態(tài)網(wǎng)頁由于不能與瀏覽者進(jìn)行有效交互,使人們感到越來越乏味,而不愿意再一次地進(jìn)入同一站點。所以開發(fā)動態(tài)網(wǎng)頁或動態(tài)內(nèi)容成了越來越多的站點所追求目標(biāo)。所謂動態(tài)內(nèi)容是由每一個用戶按照自己的需求發(fā)出請求而特殊制作的Web網(wǎng)頁,例如訪問某一網(wǎng)站的新用戶得到的歡迎詞與重新返回到該站點的用戶得到的歡迎詞是不同的。
當(dāng)今Internet飛速發(fā)展,靜態(tài)Web站點的開發(fā)與維護(hù)變得越來越困難,一方面信息的不斷增加和變化使站點維護(hù)人員不得不經(jīng)常修改他們的網(wǎng)頁,特別是基于數(shù)據(jù)庫驅(qū)動的Web站點更是如此;另一方面靜態(tài)網(wǎng)頁由于不能與瀏覽者進(jìn)行有效交互,使人們感到越來越乏味,而不愿意再一次看已瀏覽過的站點。所以開發(fā)動態(tài)網(wǎng)頁或動態(tài)內(nèi)容成了越來越多的站點所追求目標(biāo)。所謂動態(tài)內(nèi)容是由每一個用戶按照自己的需求發(fā)出請求而特殊制作的Web網(wǎng)頁,例如訪問某一網(wǎng)站的新用戶得到的歡迎詞與重新返回到該站點的用戶得到的歡迎詞是不同的。有許多技術(shù)可以實現(xiàn)動態(tài)內(nèi)容,目前常用的主要有兩種:CGI(公共網(wǎng)關(guān)接口)和ISAPI。CGI是開發(fā)較早的技術(shù),它可以很好地實現(xiàn)動態(tài)內(nèi)容,但它有兩個主要缺點。一是對每一個頁面請求CGI都要產(chǎn)生一個新的進(jìn)程,同一時刻發(fā)出的請求越多,服務(wù)器產(chǎn)生的進(jìn)程也就越多。我們知道,產(chǎn)生一個進(jìn)程是非常耗時的,而且需要用到大量的服務(wù)器RAM,所以其響應(yīng)時間相對較長,特別是當(dāng)進(jìn)程多到某一數(shù)量后,服務(wù)器性能將顯著下降。另一方面,CGI的主要編程語言是C語言,對大多數(shù)網(wǎng)頁開發(fā)人員來說,要達(dá)到掌握并精通這些編程語言需要一個過程。
ISAPI針對CGI第一個缺點進(jìn)行了改進(jìn),利用DLL(動態(tài)鏈接庫)技術(shù),以線程代替進(jìn)程,提高了性能和速度,但要考慮線程的同步問題,而且開發(fā)步驟煩瑣。ASP除了提供CGI的所有功能外,還具有許多顯著的優(yōu)點。ASP運行在Web服務(wù)器的同一個進(jìn)程中,可以更快、更有效地處理客戶請求;ASP提供更方便、更簡單的訪問數(shù)據(jù)庫的方法,使開發(fā)基于數(shù)據(jù)庫驅(qū)動的Web應(yīng)用程序更加容易;ASP支持幾乎所有的腳本語言,如VBS cript、Jscript和Perl,其主要腳本語言VBScript是基于眾多編程人員非常熟悉Visual Basic語言,這樣ASP更容易被人們所接受。
ASP技術(shù)直接建立于微軟的Web服務(wù)器之中,所有微軟的Web服務(wù)器都支持ASP,如Wind ows NT InternetInformation Server(IIS),Windows NT Workstation 以及Windows95 Personal Web Server。你不要擔(dān)心瀏覽器是否能執(zhí)行你的ASP程序,你的WEB服務(wù)器會自動把ASP程序碼,解釋為HTML格式的主頁內(nèi)容,再送到用戶端的瀏覽器顯示出來。
在ASP中訪問數(shù)據(jù)庫,可采用ASP內(nèi)置ActiveX服務(wù)器組件束數(shù)據(jù)庫訪問組件,使用ActiveX Data Object(ActiveX數(shù)據(jù)對象,簡稱ADO)的技術(shù)。ADO通過在WEB服務(wù)器上設(shè)定ODBC,來建立與多種數(shù)據(jù)庫的連接,其中包括SQL Server、Oracle、Foxpro等各種大、中、小型數(shù)據(jù)庫。下面我們舉例說明用ASP實現(xiàn)用戶登陸WEB數(shù)據(jù)庫的過程。
1.用戶在客戶機(jī)瀏覽器上輸入一個URL地址并回車,請求一個頁面。
例如http://yin/User_Login/default.htm。
2.服務(wù)器接受用戶請求,調(diào)出相應(yīng)頁面(假設(shè)該頁面含有一個表單)。
例如default.htm,其代碼如下: