當前位置:才華齋>設計>網頁設計>

關於ASP技術簡介參考

網頁設計 閱讀(4.16K)

  一、ASP技術簡介

關於ASP技術簡介參考

ASP技術 ASP(Active Server Pages動態網頁)是微軟公司推出的一種用以取代CGI(Common Gateway Interface通用閘道器介面)的技術。目前,Internet上的許多基於Windows平臺的Web站點已開始應用ASP來替換CGI。 簡單地講,ASP是一個位於伺服器端的指令碼執行環境,通過這種環境,使用者可以建立和執行動態的互動式Web伺服器應用程式,如互動式動態網頁,包括使用HTML表單收集和處理資訊,上傳與下載等等。通常情況下,使用者通過瀏覽器看到的網頁大多是靜態的,目前Internet 上的許多站點,仍然提供"靜態"(static)的主頁內容。 所謂"靜態",指的就是站點的主頁內容是"固定不變"的。 當瀏覽器通過Internet 的HTTP (Hypertext Transport Protocol)協議,向站點伺服器(Web Server)要求提供主頁的內容時,站點伺服器收到要求後,就傳送原已設計好的靜態的HTML 的檔案資料給瀏覽器。 一個"靜態"的站點,若要更新主頁的內容,必須手動的來更新其HTML的檔案資料。而隨著Web應用的發展,使用者希望能夠看到根據要求而動態生成的主頁,例如響應使用者查詢資料庫的要求、生成報表等。當在瀏覽器上填好表單(form)的輸入資料,以提供HTTP要求時,可以在站點伺服器中執行的應用程式,而不只是一個HTML 檔案。站點伺服器收到要求執行的應用程式,分析表單(form)的輸入資料,將執行的結果以HTML的格式傳送給瀏覽器。 根據使用者請求生成動態主頁的傳統方法有CGI、ISAPI等。CGI是根據瀏覽器端的http請求啟用響應程序,每一個請求對應一個程序。當同時有很多請求時,程式擠佔系統資源,造成效率低下;ISAPI針對這一缺點進行改進,利用dll(動態連結庫)技術,以執行緒代替程序,提高了效能和速度,但要考慮執行緒的同步問題,而且開發步驟煩瑣。這兩種技術和另一普遍使用的開發動態網頁的技術Java都還存在著另外一個問題,那就是開發困難,程式的開發和HTML寫作是兩個完全不同的過程,需要專門的程式設計師開發。而較簡單的開發技術如javascript和IDC(Internet Database Connector)等功能有限,不敷使用。 ASP使用的ActiveX技術基於開放設計環境,使用者可以自己定義和製作元件加入其中,使自己的動態網頁幾乎具有無限的擴充能力,這是傳統的CGI等程式所遠遠不及的地方。ASP與常見的在Client端實現動態主頁的技術如Java applet、ActiveX Control、VBScript、javascript等不同,ASP中的命令和Script語句都是由伺服器來解釋執行的,執行結果產生動態生成的Web頁面並送到瀏覽器;而Client端技術的Script命令則是由瀏覽器來解釋執行。由於ASP是在伺服器端解釋執行,開發者可以不必考慮瀏覽器是否支援ASP;同時由於它在伺服器端執行,開發者也不必擔心別人下載程式從而竊取程式設計邏輯。 ASP通過後綴名為的ASP檔案來實現,一個檔案相當於一個可執行檔案,因此必須放在Web伺服器上有可執行許可權的目錄下。當用戶從瀏覽器輸入了檔案的地址後,瀏覽器就將這個URL請求發給Web Server,如果Web Server上裝了ASP,就呼叫ASP。ASP讀出相應檔案,解釋並執行命令,動態生成一個HTML頁面回傳Web Server,然後Web Server再把結果傳送給瀏覽器。ASP檔案的製作和HTML類似,且和HTML開發整合,可以在同一個過程完成,利用ASP將可以執行的指令碼嵌入到HTML檔案中(將HTML檔案的字尾名改為),這使得HTML檔案的編寫與指令碼的開發融合在一起。通過ASP內建的物件、伺服器元件(Server Component)可以完成非常複雜的任務,而且使用者還可以自己開發或利用別人開發的伺服器元件完成專門的任務。ASP比較閘道器及伺服器擴充套件模式有著以下優點:

(1)完全與HTML檔案融合在一起;

(2)容易建立,不需要其它編譯、連結程式;

(3)面向物件的並通過ActiveX Server物件可擴充套件。

  二、電子商務資料訪問方式

電子商務是指通過電子方式,並在網路基礎上實現物資、人員過程的協調,以便商業交換的活動。在電子商務系統中,Web提供了與客戶進行通訊聯絡的有效手段,利用Web技術,實現Web伺服器與資料庫系統的連線,完成對資料的處理與查詢,使用者可以通過操作簡單易學的瀏覽器來查詢處理所需要的各種資料。 實現Web伺服器與資料庫的連線一般有兩種方法:一種是利用中介軟體技術在兩者之間建立連線和通訊,如CGI(通用閘道器介面)和API(應用程式程式設計介面)。Web伺服器通過呼叫CGI程式實現與Web瀏覽器的互動,即CGI程式接受瀏覽器發給Web伺服器的資訊,進行處理後,將相應結果再送回給Web伺服器,通過Web伺服器將資訊傳送給瀏覽器。但CGI程式在響應速度和資源利用等方面有較大侷限性,客戶端每請求一個CGI程式,伺服器端便開啟一個程序,當請求的數量較大時容易引起瓶頸現象,開發人員常利用API程式設計來擴充套件伺服器功能,API程式佔系統資源少,執行效率較高,但它的程式設計較CGI程式更為複雜;另一種是由瀏覽器中的Java小應用程式(Java Applet)通過瀏覽器訪問Web伺服器上的資料庫,利用了JDBC(Java Database Connectivity)技術,它通過JDBC提供的API實現對Web Server的`訪問。由於Java Applet本身的侷限性,目前大多數的應用是基於中介軟體技術的。 ASP也是屬於中介軟體的一種模式,但在Windows平臺上它比較閘道器及伺服器擴充套件模式有著較大的優點。閘道器的最大特點是它的平臺無關性,但閘道器程式通常較難編寫和改變。閘道器程式通常是一個獨立的程式,並不和HTML檔案融合在一起,它需要用如C、C++、VB、Perl等語言來編寫獨立的應用程式,而ASP應用改變了這一點。使用ASP不僅可以讀取Access和 SQL Server的資料庫,而且還可以讀取其他ODBC(Open Database Connect 開放式資料庫互聯)相容的資料庫。在ASP中訪問資料庫是通過ADO(ActiveX Database Object活動資料物件)及事務處理語句來實現的。ADO是一種操作Microsoft所支援的資料庫的方法,是一項容易使用並且可擴充套件的將資料庫訪問新增到 Web 頁的技術。ADO物件的使用與DAO(資料訪問物件)、RDO(遠端資料物件)的方式相似。在ASP中,ADO可以看作是一個伺服器元件,更簡單點說,是一系列的物件,應用這些功能強大的物件,即可輕鬆完成對資料庫複雜的操作。

  三、ASP在電子商務中的應用

在電子商務中,對使用者而言,進行網上資訊查詢的目的是尋找自己需要的產品或服務,而對於商品或服務提供者來說,其目的則是向用戶推銷自己的產品或服務。因此,讓使用者通過瀏覽器查詢伺服器的後端資料庫是許多Web服務提供者必需有的服務,ASP通過內建的ADODB元件來實現這一功能。可以使用ADO去編寫緊湊簡明的指令碼以便連線到ODBC 相容的資料庫和 OLE DB 相容的資料來源。具體的操作步驟可以歸納為以下幾步:

① 建立資料庫源名(DSN) ADODB通過ODBC工作,因此要在ODBC中設定DSN(資料來源名)。開啟Windows的"控制面板",雙擊"ODBC"的圖示,然後選擇"檔案 DSN "的屬性頁,單擊<新增>,選擇資料庫驅動程式,然後單擊"下一步",按照螢幕的指示鍵入資料來源檔案的名稱,然後單擊"下一步",再單擊"完成"建立資料來源。

②建立資料庫連結 連結用以保持一些關於正在訪問的資料的動態資訊,以及連結者資訊。利用ADODB的成員函式Open和先前設定的DSN與資料庫連線,其語法如下: SetConnect=teObject("ection") #39;建立了連結物件Connect。 ("DSN=dsnname;UID=userID;PWD=password") #39;開啟連結。dsnname為資料來源名;userID為使用者名稱;password為使用者口令。

③建立資料物件 ADO中的資料物件通常儲存的是查詢結果。RecordSet 是ADO中最複雜的物件,有許多屬性和方法,靈活運用,可以達到許多好的效果。其建立方法如下: Set RecordSet =ute(sqtStr) #39;建立並打開了物件RecordSet ,sqtStr是一個串,代表一條標準的SQL語句。例如: sqlStr="SELECT*FROM b1" Set RecordSet =ute(sqlStr) 這條語句執行後,物件RecordSet中就儲存了b1中的所有記錄。

④操作資料庫 可利用Execute方便地執行資料的插入、修改、刪除等操作。如執行插入操作: sqlStr="Insert Into b1Values(1,2)" ute(sqlStr)

⑤關閉資料物件和連結 在使用了ADO物件之後,一定要關閉資料物件和連結。在ASP中通過呼叫方法close實現關閉。 關閉建立的資料物件:Record Set e Set Record Set=Nothing 關閉建立的連結物件:Connect. close Set Connect=Nothing 完整的程式片段:

//產生元件例項

<% SetConnect=teObject("ection")

//連線資料庫

("DSN=dsnname;UID=userID;PWD=password")

//執行查詢

SQL=select*fromtablename SetRS=ute(SQL) %>

//顯示結果

<%dowhile not="">

<%=rs(fieldname)%> <% next="" loop="">

上述是用ASP訪問資料庫的全過程,由於應用面向物件思想,所有操作都比較簡單,使用者需要注意的僅是對資料結構的瞭解、當前所操作的物件及物件的屬性等等,只要對這些有了清晰的認識,再加上ASP強大功能,在網路上使用資料庫,實現使用者與頁面間交換資訊,就再也不是什麼難事了。

  四、主要功能程式段

4、1 開啟資料庫

option explicit

dim conn,connstr,db,rs

db="database/#" //資料庫路徑

Set conn = teObject("ection")

connstr="Provider=B.4.0;Data Source=" & Server.MapPath(""&db&"")

connstr

4.2 資料庫查詢操作

//大類查訊

set rs=teObject("rdset")

//只讀方式開啟

"select anclass,anclassid from anclass",conn,1,1

do while not

e ""

&trim(rs("anclass"))&" "

next

loop

e

//小類查詢

dim rs2

set rs2=teObject("rdset")

"select nclass,nclassid from nclass where anclassid="&rs("anclassid")&" order by nclassidorder",conn,1,1

do while not

e ""

&trim(rs2("nclass"))&" "

next

loop

4.3 新增記錄操作

set rs=teObject("rdset")

//可寫方式

"select bookid,username,zhuangtai,zonger from actions",conn,1,3

ew //新增一條新記錄

rs("bookid")=bookid //新增相應的記錄

rs("username")=username

…………

rs("zhuangtai")=6

rs("zonger")=0

rs.//更新資料庫

4.4 刪除記錄操作

//從表actions中刪除actionid 匹配的記錄

ute " from actions where actionid="

&yString("actionid")

4.5 記錄的修改和檢視

set rs=teObject("rdset")

"select * from books where bookid="&bookid,conn,1,3

rs("anclassid")=int(request("anclassid")) //修改各項記錄

………………

te

e

  五、結束語

隨著Web技術的發展,基於Intranet的電子商務系統無疑較傳統商務有著更大的應用前景,如何提務系高這種電子商統中的資料訪問效率及事務處理能力仍是當前人們所關注的問題。