明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP的技術特點與使用方法

[摘要]幾年以前,業(yè)界在動態(tài)主頁發(fā)布方面唯一的渠道是CGI(Common Ga teway Interface) 模式。隨后出現的 ISAPI、NSAPI和 JDBC等技術方案雖較CGI進步,但從企業(yè)網(Intranet )的技術現實來衡量,這些方案仍不適用于進行快速開發(fā)、及時維護和大面積 的技術普及。A...

幾年以前,業(yè)界在動態(tài)主頁發(fā)布方面唯一的渠道是CGI(Common Ga teway Interface) 模式。隨后出現的 ISAPI、NSAPI和
JDBC等技術方案雖較CGI進步,但從企業(yè)網(Intranet )的技術現實來衡量,這些方案仍不適用于進行快速開發(fā)、及時維護和大面積
的技術普及。ASP技術的出現,使動態(tài)交互式Web主頁設計成為一件輕松愉快的工作。只要幾行腳本語句,就能將后臺的數據庫信息發(fā)
布到Internet/Intranet上, 在編程和網頁腳本的可讀性方面大大優(yōu)于傳統(tǒng)的技術方案。
ASP是 Active Server Pages(動態(tài)服務器主頁)的縮寫,它是一個服務器端的腳本環(huán)境,在站點的Web服務器上解釋腳本,可產
生并執(zhí)行動態(tài)、交互式、高效率的站點服務器應用程序。ASP可以勝任基于微軟Web服務器的各種動態(tài)數據發(fā)布。 ASP方法與傳統(tǒng)靜態(tài)主頁的區(qū)別
把信息系統(tǒng)納入Internet/Intranet 的框架之后,首先要解決的問題是通過網頁訪問后臺數據庫信息。所有應用程序都被分割
為頁面的形式,用戶的交互操作是以提交表單等方式來實現的,這就要求Web 站點具有很強的動態(tài)數據發(fā)布能力。然而,目前Web的服
務,仍以提供" 靜態(tài)"主頁內容為主。所謂"靜態(tài)",指的就是站點的主頁內容是"固定不變"的,無法根據用戶的需求和實際情況作出相
應的變化。當瀏覽器通過Internet的HTTP協議向站點的Web服務器申請主頁時,站點服務器就會將已設計好的靜態(tài)的HTML文件傳送
給瀏覽器。若要更新主頁的內容, 只能用非在線的手動方式更新HTML的文件數據。
ASP所設計出的是動態(tài)主頁,可接收用戶提交的信息并作出反應, 其中的數據可隨實際情況而改變,無須人工對網頁文件進行更
新即可滿足應用需要。例如:當在瀏覽器上填好表單并提交HTTP請求時,可以要求在站點服務器上執(zhí)行一個表單所設定的應用程序,
而不只是一個簡單的HTML文件。該應用程序分析表單的輸入數據,根據不同的數據內容將相應的執(zhí)行結果(通常是數據庫查尋的結果
集)以HTML的格式傳送給瀏覽器。數據庫的數據可以隨時變化,而服務器上執(zhí)行的應用程序卻不必更改,客戶端得到的網頁信息會始終保持新鮮的魅力。
ASP的工作原理和配置
如圖所示,當用戶申請一個*.asp主頁時,Web服務器響應該HTTP請求,調用ASP引擎,解釋被申請文件。當遇到任何與ActiveX
Scripting 兼容的腳本(如VBScript和JScript)時,ASP引擎會調用相應的腳本引擎進行處理。若腳本指令中含有訪問數據庫的請
求,就通過ODBC與后臺數據庫相連,由數據庫訪問組件執(zhí)行訪庫操作。ASP 腳本是在服務器端解釋執(zhí)行的,它依據訪庫的結果集自動
生成符合HTML語言的主頁, 去響應用戶的請求。所有相關的發(fā)布工作由Web服務器負責。圖1 Active Server Pages工作原理圖
有必要注意訪庫的具體運作細節(jié)。當遇到訪庫的腳本命令時,ASP 通過ActiveX組件ADO(ActiveX Data Objects)與數據庫對
話(ADO是建立在微軟新的數據庫API,即OLE DB之上的,目前的OLE DB通過ODBC引擎與現存的ODBC數據庫交互,進一步的OLE DB版本
將直接與數據庫打交道,不再通過ODBC引擎),并將執(zhí)行結果動態(tài)生成一個HTML 頁面來返回服務器端,以響應瀏覽器的請求。在用戶
端瀏覽器所見到的是純HTM L表現的畫面,例如用表格來表現的后臺數據庫表中的字段內容。由于 ASP結合了腳本語言,可以通過編
程訪問Acti veX組件,并且具有現場自動生成HTML的能力,所以它成為建立動態(tài)Web站點的有效工具。
在結構關系上,ASP是通過ODBC與數據庫打交道。因此,向上層可兼容各類數據庫系統(tǒng)。而對于下層,ASP 產生的HTML 對客戶端
的瀏覽器又有廣泛的適應性。但ASP對Web 服務器本身有所挑剔,這看起來似乎是一種缺陷,而實際上也許是一種商業(yè)策略——它只
支持微軟各種操作系統(tǒng)下的Web 服務器,它們的最低版本是:
·Windows NT Server 4.0:MicrosoftⅡS(Internet Informatio n Server)3.0;
·Windows NT Workstation 4.0:Microsoft Peer Web Services 3.0;
·Windows 95:Microsoft PWS(Personal Web Server)1.0 ,中文 Win95應配中文的PWS。
ASP的安裝分為Windows NT和Windows 95兩種情況。對于NT ,IIS 及ActiveX Server Pages都包含在Service Pack 3中;對
于Win95,可使用Visual Studio 服務器構件下的ActiveX Server Pages安裝選項。安裝成功之后,在程序管理器中會找到一個
ActiveX Se rver Pages Roadmap主頁,引導你學習和使用ASP。 ASP的特點與功能 從軟件的技術層面看,ASP有如下的特點:
1. 無需編譯ASP腳本集成于HTML當中,容易生成,無需編譯或鏈接即可直接解釋執(zhí)行。
2. 易于生成使用常規(guī)文本編輯器(如WINDOWS下的記事本),即可進行*.asp頁面的設計。若從工作效率來考慮,不妨選用具有
可視化編輯能力的Visual InterDev。
3. 獨立于瀏覽器用戶端只要使用可解釋常規(guī)HTML碼的瀏覽器, 即可瀏覽ASP所設計的主頁。ASP腳本是在站點服務器端執(zhí)行
的,用戶端的瀏覽器不需要支持它。因此,若不通過從服務器下載來觀察*.asp 主頁,在瀏覽器端見不到正確的頁面內容。
4. 面向對象在ASP腳本中可以方便地引用系統(tǒng)組件和ASP的內置組件,還能通過定制 ActiveX Server Component(ActiveX
服務器組件)來擴充功能。
5. 與任何ActiveX scripting 語言兼容除了可使用VBScript 和JScript語言進行設計外,還可通過Plug-in的方式,使用
由第三方所提供的其它scripting 語言。
6. 源程序碼不會外漏ASP腳本在服務器上執(zhí)行,傳到用戶瀏覽器的只是ASP執(zhí)行結果所生成的常規(guī)HTML碼,這樣可保證辛辛苦
苦編寫出來的程序代碼不會被他人盜取。 從應用的層面看,ASP有如下的功能: 1. 處理由瀏覽器傳送到站點服務器的表單輸入。
2. 訪問和編輯服務器端的數據庫表。使用瀏覽器即可輸入、更新和刪除站點服務器的數據庫中的數據。
3. 讀寫站點服務器的文件,實現訪客計數器、座右銘等功能。 4. 提供廣告輪播器、取得瀏覽器信息、URL表管理等內置功能。
5. 由cookies讀寫用戶端的硬盤文件,以記錄用戶的數據。 6. 可以實現在多個主頁間共享信息,以開發(fā)復雜的商務站點應用程序。
7. 使用VBScript或JScript等簡易的腳本語言,結合HTML碼,快速完成站點的應用程序。通過站點服務器執(zhí)行腳本語言,產生或
更改在客戶端執(zhí)行的腳本語言。
8. 擴充功能的能力強,可通過使用Visual Basic、Java、Visual C ++ 等多種程序語言制作ActiveX Server Component以
滿足自己的特殊需要。 ADO訪庫的技術實現方法
ADO(ActiveX Data Objects)是一組優(yōu)化的訪問數據庫專用對象集,為ASP提供了完整的站點數據庫訪問解決方案。它可作用于
服務器端,以提供含有數據庫信息的主頁內容。通過執(zhí)行SQL命令,讓用戶在瀏覽器畫面中輸入、更新和刪除站點服務器的數據庫信息。
ADO使用內置的RecordSets對象作為數據的主要接口。ADO可使用 VBScript、JScrip t語言來控制對數據庫的訪問,以及查詢
結果的輸出顯示。 ADO可連接多種支持ODBC的數據庫,如SQL Server、Oracle、Info rmix等。
在使用時,首先需在控制面板的ODBC中建立相應的DSN(數據源名) 。要選擇系統(tǒng)數據源名,指定所用的驅動程序,如"SQL
Server",在數據來源名稱中輸入DSN名,并選定服務器和數據庫。 使用ADO訪問數據庫的設計要領是掌握ASP腳本的幾個典型語句, 它們是:
1. 定義數據庫組件。有兩種定義方法: ·使用"Server.CreateObject"建立連接的對象。
Set Conn=Server.CreateObject("ADODB.Connection") ·使用<OBJECT>標記建立連接的對象。
<OBJECT RUNAT=Server ID=Conn CLASSID="Clsid:00000293-000 0-0010-8000-00AA 006D2EA4"></OBJECT>
2. 用"Open"打開待訪的數據庫: Conn.Open "DSN名稱"
3. 設定SQL語句,使用"Execute"命令,即可開始執(zhí)行訪問數據庫的動作: SetRS=Conn.Execute("SQL語句")
其中RS為結果集對象(RecordSets)。
4. 利用RecordSets對象所提供的屬性顯示查詢結果,如下例將查詢結果顯示于一個表格中:(其中<%和%>是ASP腳本的專用定界符)
<TABLE BORDER=1> <TR> <% For i =0 to RS.Fields.Count -1 %>
<TD><% = RS(i).Name %></TD> <% Next %> </TR> <% Do While Not RS.EOF %>
<TR> <% For i =0 to RS.Fields -1 %> <TD><% = RS(i) %></TD> <% Next %>
</TR> <% RS.MoveNext Loop %> </TABLE> 5. 關閉結果集對象,斷開與數據庫的連接:
RS.Close Conn.Close ASP訪問后臺數據庫運作機制如圖2所示。圖2 ASP訪問后臺數據庫運作機制
一個發(fā)布后臺MS SQL Server樣本庫pubs中 authors表的完整代碼如下(其中<%和%> 是ASP腳本的專用定界符):<html>
<head>< title>Authors Listing</title></h ead><body><p>Authors Listing</font><% Set
Connection=Server.CreateObje ct("ADOD B.Connection")
Connection.Open "authors"
Set RS=Connection.Execute("SELECT * FROM authors") %> </p>
<table BORDER="1"> <TR> <% For i=0 to RS.Fields.Count-1 %>
<TD><% =RS(i).Name %></TD> <% NEXT %> </TR> <% Do While Not RS.EOF %>
<TR> <% For i=0 to RS.Fields.Count-1 %> <TD><% =RS(i) %></TD>
<% Next %> </TR> <% RS.MoveNext Loop RS.Close
Connection.Close %> </table> </body> </html> ASP與組件對象的使用
在利用ASP技術進行動態(tài)Web開發(fā)的時候,應遵循這樣一個原則:即 ASP的服務器端腳本必須與微軟倡導的組件對象(
Component Object Model )配合使用才能開發(fā)出具有實用價值的信息產品。ASP腳本相當于一種粘合劑,把一個個具有特定功能的
組件對象粘合在一起,以形成最終的軟件產品。這一軟件制作的工藝思想類似于硬件工廠生產板卡的過程,那一個個的組件對象就相
當于集成電路的芯片,而ASP腳本只是焊接芯片的焊接劑,由此可見組件對象起著核心作用。
組件對象模型COM是微軟提出的一種基于二進制的Windows軟件標準,它是由OLE 技術逐漸發(fā)展而來的。在使用不同語言工具寫
成的組件對象之間,依據COM 的標準可以進行交互。COM是技術概念和標準, 其商業(yè)概念的稱謂則使用ActiveX。
上文提到的ADO就是系統(tǒng)提供的用于訪問后臺數據庫的組件。此外,ASP本身還提供了五個內置的對象。這五個內置對象可被ASP 腳本直接使用,它們是:
1Request取得用戶信息 2Response 傳遞信息給用戶 3Server 提供訪問服務器的方法和屬性
4Application在一個應用程序的多個主頁之間保留和使用某些共同的信息
5Session在一個用戶的多個主頁之間保留和使用某些共同的信息
其中,使用內置對象1、2可實現Web的交互功能,使用內置對象4、 5可解決具有協作機制的應用問題。
ASP的一大特色,是可以用來編寫具有協作機制的應用程序,在多個用戶的多個主頁之間共享信息。使用內置的Application和
Session 對象可實現這些功能。
Application對象保存一個應用程序共同的信息,使用此應用程序的所有用戶都可以共同分享。為防止其被多個用戶同時更改,
提供loc k和unlock方法來實現互斥,例如: Application.lock 禁止其他用戶更改Application的信息;
Application.unlock 允許其他用戶更改Application的信息。
Session對象比Application對象的使用外延范圍小,它保存僅屬于一個用戶的一個應用程序的信息。ASP的應用程序可以只有
一個首頁,也可以有多個主頁文件,所有的文件均位于一個虛擬路徑下。Sess ion對象可讓同一個用戶在多個主頁之間共享信息。當
用戶第一次在一個應用程序中申請一個*.asp主頁時,ASP將為該用戶分配一個Sessi onID號,它將唯一地標識用戶的身份,從而能將
同一應用程序的不同用戶區(qū)分開來。
根據需要還可以自行定制具有某些特色的組件對象,以完成特殊的任務。用VisualB asic、Visual C++、Delphi和 Java等語
言都可以編寫。自制的組件對象分成兩類:
一是由類打包而成的*.dll文件,經注冊器注冊后,在ASP腳本中可通過"Set 對象名 = 類名"來引用。對象在這種使用過程中是
在服務器的后臺運行的,其運行的結果通過系統(tǒng)自動生成的HTML作用到前端瀏覽器。
二是生成*.ocx文件,一般用作可視化的對象ActiveX,可直接將其嵌入*.asp主頁中,在頁面中插入時需使用HTML語言的
<OBJECT>標記加以引用。通常構件制作完成并按下載的要求打包后生成*.cab文件。對象在這種使用方式下要先從服務器下載,然后
在客戶的前端瀏覽器運行。在第一次下載時被展開成相關的*.dll和*.ocx文件進行本地安裝及注冊。以后再使用時,就可直接從本
地獲得,免去了下載之苦,這也是ActiveX優(yōu)于Java App let的地方。
從長遠來看,ASP和組件對象的配合使用無疑是一種引人入勝的新技術,更重要的是由此而提出了一種全新的軟件設計方法,把硬
件的工藝思想恰如其分地融合于軟件的面向對象的分析、設計和施工之中, 使面向對象的概念和方法從工具語言的層次一下子躍上
了系統(tǒng)的應用層,在快速開發(fā)多層的客戶/服務器分布式應用系統(tǒng)中將會產生極好的效果。
(出處:熱點網絡)