- 相關推薦
關于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的ASP文件來實現,一個.asp文件相當于一個可執行文件,因此必須放在Web服務器上有可執行權限的目錄下。當用戶從瀏覽器輸入了.asp文件的地址后,瀏覽器就將這個URL請求發給Web Server,如果Web Server上裝了ASP,就調用ASP。ASP讀出相應.asp文件,解釋并執行命令,動態生成一個HTML頁面回傳Web Server,然后Web Server再把結果發送給瀏覽器。ASP文件的制作和HTML類似,且和HTML開發集成,可以在同一個過程完成,利用ASP將可以執行的腳本嵌入到HTML文件中(將HTML文件的后綴名改為.asp),這使得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組件來實現這一功能?梢允褂肁DO去編寫緊湊簡明的腳本以便連接到ODBC 兼容的數據庫和 OLE DB 兼容的數據源。具體的操作步驟可以歸納為以下幾步:
、 創建數據庫源名(DSN) ADODB通過ODBC工作,因此要在ODBC中設置DSN(數據源名)。打開Windows的"控制面板",雙擊"ODBC"的圖標,然后選擇"文件 DSN "的屬性頁,單擊<添加>,選擇數據庫驅動程序,然后單擊"下一步",按照屏幕的指示鍵入數據源文件的名稱,然后單擊"下一步",再單擊"完成"創建數據源。
、趧摻〝祿䦷戽溄 鏈接用以保持一些關于正在訪問的數據的動態信息,以及鏈接者信息。利用ADODB的成員函數Open和先前設定的DSN與數據庫連接,其語法如下: SetConnect=Server.CreateObject("ADODB.Connection") #39;創建了鏈接對象Connect。 Connect.Open("DSN=dsnname;UID=userID;PWD=password") #39;打開鏈接。dsnname為數據源名;userID為用戶名;password為用戶口令。
、蹌摻〝祿䦟ο ADO中的數據對象通常保存的是查詢結果。RecordSet 是ADO中最復雜的對象,有許多屬性和方法,靈活運用,可以達到許多好的效果。其創建方法如下: Set RecordSet =Connect.Execute(sqtStr) #39;創建并打開了對象RecordSet ,sqtStr是一個串,代表一條標準的SQL語句。例如: sqlStr="SELECT*FROM b1" Set RecordSet =Connect.Execute(sqlStr) 這條語句執行后,對象RecordSet中就保存了b1中的所有記錄。
④操作數據庫 可利用Execute方便地執行數據的插入、修改、刪除等操作。如執行插入操作: sqlStr="Insert Into b1Values(1,2)" Connect.Execute(sqlStr)
、蓐P閉數據對象和鏈接 在使用了ADO對象之后,一定要關閉數據對象和鏈接。在ASP中通過調用方法close實現關閉。 關閉創建的數據對象:Record Set .close Set Record Set=Nothing 關閉創建的鏈接對象:Connect. close Set Connect=Nothing 完整的程序片段:
//產生組件實例
<% SetConnect=Server.CreateObject("ADODB.Connection")
//連接數據庫
Connect.Open("DSN=dsnname;UID=userID;PWD=password")
//執行查詢
SQL=select*fromtablename SetRS=Connect.Execute(SQL) %>
//顯示結果
<%dowhile not="">
<%=rs(fieldname)%> <% rs.movenext="" loop="">
上述是用ASP訪問數據庫的全過程,由于應用面向對象思想,所有操作都比較簡單,用戶需要注意的僅是對數據結構的了解、當前所操作的對象及對象的屬性等等,只要對這些有了清晰的認識,再加上ASP強大功能,在網絡上使用數據庫,實現用戶與頁面間交換信息,就再也不是什么難事了。
四、主要功能程序段
4、1 打開數據庫
option explicit
dim conn,connstr,db,rs
db="database/#MyShop.mdb" //數據庫路徑
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr
4.2 數據庫查詢操作
//大類查訊
set rs=server.CreateObject("adodb.recordset")
//只讀方式打開
rs.open "select anclass,anclassid from anclass",conn,1,1
do while not rs.eof
response.write ""
&trim(rs("anclass"))&" "
rs.movenext
loop
rs.close
//小類查詢
dim rs2
set rs2=server.CreateObject("adodb.recordset")
rs2.open "select nclass,nclassid from nclass where anclassid="&rs("anclassid")&" order by nclassidorder",conn,1,1
do while not rs2.eof
response.write ""
&trim(rs2("nclass"))&" "
rs2.movenext
loop
4.3 添加記錄操作
set rs=server.CreateObject("adodb.recordset")
//可寫方式
rs.open "select bookid,username,zhuangtai,zonger from actions",conn,1,3
rs.addnew //添加一條新記錄
rs("bookid")=bookid //添加相應的記錄
rs("username")=username
…………
rs("zhuangtai")=6
rs("zonger")=0
rs.//更新數據庫
4.4 刪除記錄操作
//從表actions中刪除actionid 匹配的記錄
conn.execute " from actions where actionid="
&request.QueryString("actionid")
4.5 記錄的修改和查看
set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from books where bookid="&bookid,conn,1,3
rs("anclassid")=int(request("anclassid")) //修改各項記錄
………………
rs.Update
rs.Close
五、結束語
隨著Web技術的發展,基于Intranet的電子商務系統無疑較傳統商務有著更大的應用前景,如何提務系高這種電子商統中的數據訪問效率及事務處理能力仍是當前人們所關注的問題。
【ASP技術簡介參考】相關文章:
EDA技術簡介10-16
鍛造安全技術簡介01-21
關于新加坡留學日;ㄙM情況簡介參考06-28
J2EE技術簡介08-05
安徽職業技術學院「簡介」03-25
ASP提速技巧08-05
計算機網絡技術簡介11-29
ASP編程實例大全05-29
嵌入式技術工程師證書考試簡介06-03
關于asp 的常用函數用法10-11