ASP技術在交互式網(wǎng)頁設計中的運用畢業(yè)論文_第1頁
ASP技術在交互式網(wǎng)頁設計中的運用畢業(yè)論文_第2頁
ASP技術在交互式網(wǎng)頁設計中的運用畢業(yè)論文_第3頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

ASP技術在交互式網(wǎng)頁設計中的運用畢業(yè)論文

一、ASP技術簡介ASP技術ASP(ActiveServerPages動態(tài)網(wǎng)頁)是微軟公司推出的一種用以取代CGI(CommonGatewayInterface通用網(wǎng)關接口)的技術。目前,Internet上的許多基于Windows平臺的Web站點已開始應用ASP來替換CGI。簡單地講,ASP是一個位于服務器端的腳本運行環(huán)境,通過這種環(huán)境,用戶可以創(chuàng)建和運行動態(tài)的交互式Web服務器應用程序,如交互式動態(tài)網(wǎng)頁,包括使用HTML表單收集和處理信息,上傳與下載等等。通常情況下,用戶通過瀏覽器看到的網(wǎng)頁大多是靜態(tài)的,目前Internet上的許多站點,仍然提供"靜態(tài)"(static)的主頁內(nèi)容。所謂"靜態(tài)",指的就是站點的主頁內(nèi)容是"固定不變"的。當瀏覽器通過Internet的HTTP(HypertextTransportProtocol)協(xié)議,向站點服務器(WebServer)要求提供主頁的內(nèi)容時,站點服務器收到要求后,就傳送原已設計好的靜態(tài)的HTML的文件數(shù)據(jù)給瀏覽器。一個"靜態(tài)"的站點,若要更新主頁的內(nèi)容,必須手動的來更新其HTML的文件數(shù)據(jù)。而隨著Web應用的發(fā)展,用戶希望能夠看到根據(jù)要求而動態(tài)生成的主頁,例如響應用戶查詢數(shù)據(jù)庫的要求、生成報表等。當在瀏覽器上填好表單(form)的輸入數(shù)據(jù),以提供HTTP要求時,可以在站點服務器中執(zhí)行的應用程序,而不只是一個HTML文件。站點服務器收到要求執(zhí)行的應用程序,分析表單(form)的輸入數(shù)據(jù),將執(zhí)行的結果以HTML的格式傳送給瀏覽器。根據(jù)用戶請求生成動態(tài)主頁的傳統(tǒng)方法有CGI、ISAPI等。CGI是根據(jù)瀏覽器端的http請求激活響應進程,每一個請求對應一個進程。當同時有很多請求時,程序擠占系統(tǒng)資源,造成效率低下;ISAPI針對這一缺點進行改進,利用dll(動態(tài)鏈接庫)技術,以線程代替進程,提高了性能和速度,但要考慮線程的同步問題,而且開發(fā)步驟煩瑣。這兩種技術和另一普遍使用的開發(fā)動態(tài)網(wǎng)頁的技術Java都還存在著另外一個問題,那就是開發(fā)困難,程序的開發(fā)和HTML寫作是兩個完全不同的過程,需要專門的程序員開發(fā)。而較簡單的開發(fā)技術如javascript和IDC(InternetDatabaseConnector)等功能有限,不敷使用。ASP使用的ActiveX技術基于開放設計環(huán)境,用戶可以自己定義和制作組件加入其中,使自己的動態(tài)網(wǎng)頁幾乎具有無限的擴充能力,這是傳統(tǒng)的CGI等程序所遠遠不及的地方。ASP與常見的在Client端實現(xiàn)動態(tài)主頁的技術如Javaapplet、ActiveXControl、VBScript、javascript等不同,ASP中的命令和Script語句都是由服務器來解釋執(zhí)行的,執(zhí)行結果產(chǎn)生動態(tài)生成的Web頁面并送到瀏覽器;而Client端技術的Script命令則是由瀏覽器來解釋執(zhí)行。由于ASP是在服務器端解釋執(zhí)行,開發(fā)者可以不必考慮瀏覽器是否支持ASP;同時由于它在服務器端執(zhí)行,開發(fā)者也不必擔心別人下載程序從而竊取編程邏輯。ASP通過后綴名為.asp的ASP文件來實現(xiàn),一個.asp文件相當于一個可執(zhí)行文件,因此必須放在Web服務器上有可執(zhí)行權限的目錄下。當用戶從瀏覽器輸入了.asp文件的地址后,瀏覽器就將這個URL請求發(fā)給WebServer,如果WebServer上裝了ASP,就調(diào)用ASP。ASP讀出相應.asp文件,解釋并執(zhí)行命令,動態(tài)生成一個HTML頁面回傳WebServer,然后WebServer再把結果發(fā)送給瀏覽器。ASP文件的制作和HTML類似,且和HTML開發(fā)集成,可以在同一個過程完成,利用ASP將可以執(zhí)行的腳本嵌入到HTML文件中(將HTML文件的后綴名改為.asp),這使得HTML文件的編寫與腳本的開發(fā)融合在一起。通過ASP內(nèi)置的對象、服務器組件(ServerComponent)可以完成非常復雜的任務,而且用戶還可以自己開發(fā)或利用別人開發(fā)的服務器組件完成專門的任務。ASP比較網(wǎng)關及服務器擴展模式有著以下優(yōu)點:(1)完全與HTML文件融合在一起;(2)容易創(chuàng)建,不需要其它編譯、鏈接程序;(3)面向?qū)ο蟮牟⑼ㄟ^ActiveXServer對象可擴展。二、電子商務數(shù)據(jù)訪問方式電子商務是指通過電子方式,并在網(wǎng)絡基礎上實現(xiàn)物資、人員過程的協(xié)調(diào),以便商業(yè)交換的活動。在電子商務系統(tǒng)中,Web提供了與客戶進行通信聯(lián)絡的有效手段,利用Web技術,實現(xiàn)Web服務器與數(shù)據(jù)庫系統(tǒng)的連接,完成對數(shù)據(jù)的處理與查詢,用戶可以通過操作簡單易學的瀏覽器來查詢處理所需要的各種數(shù)據(jù)。實現(xiàn)Web服務器與數(shù)據(jù)庫的連接一般有兩種方法:一種是利用中間件技術在兩者之間建立連接和通信,如CGI(通用網(wǎng)關接口)和API(應用程序編程接口)。Web服務器通過調(diào)用CGI程序?qū)崿F(xiàn)與Web瀏覽器的交互,即CGI程序接受瀏覽器發(fā)給Web服務器的信息,進行處理后,將相應結果再送回給Web服務器,通過Web服務器將信息傳送給瀏覽器。但CGI程序在響應速度和資源利用等方面有較大局限性,客戶端每請求一個CGI程序,服務器端便打開一個進程,當請求的數(shù)量較大時容易引起瓶頸現(xiàn)象,開發(fā)人員常利用API編程來擴展服務器功能,API程序占系統(tǒng)資源少,運行效率較高,但它的編程較CGI程序更為復雜;另一種是由瀏覽器中的Java小應用程序(JavaApplet)通過瀏覽器訪問Web服務器上的數(shù)據(jù)庫,利用了JDBC(JavaDatabaseConnectivity)技術,它通過JDBC提供的API實現(xiàn)對WebServer的訪問。由于JavaApplet本身的局限性,目前大多數(shù)的應用是基于中間件技術的。ASP也是屬于中間件的一種模式,但在Windows平臺上它比較網(wǎng)關及服務器擴展模式有著較大的優(yōu)點。網(wǎng)關的最大特點是它的平臺無關性,但網(wǎng)關程序通常較難編寫和改變。網(wǎng)關程序通常是一個獨立的程序,并不和HTML文件融合在一起,它需要用如C、C++、VB、Perl等語言來編寫獨立的應用程序,而ASP應用改變了這一點。使用ASP不僅可以讀取Access和SQLServer的數(shù)據(jù)庫,而且還可以讀取其他ODBC(OpenDatabaseConnect開放式數(shù)據(jù)庫互聯(lián))兼容的數(shù)據(jù)庫。在ASP中訪問數(shù)據(jù)庫是通過ADO(ActiveXDatabaseObject活動數(shù)據(jù)對象)及事務處理語句來實現(xiàn)的。ADO是一種操作Microsoft所支持的數(shù)據(jù)庫的方法,是一項容易使用并且可擴展的將數(shù)據(jù)庫訪問添加到Web頁的技術。ADO對象的使用與DAO(數(shù)據(jù)訪問對象)、RDO(遠程數(shù)據(jù)對象)的方式相似。在ASP中,ADO可以看作是一個服務器組件,更簡單點說,是一系列的對象,應用這些功能強大的對象,即可輕松完成對數(shù)據(jù)庫復雜的操作。三、ASP在電子商務中的應用在電子商務中,對用戶而言,進行網(wǎng)上信息查詢的目的是尋找自己需要的產(chǎn)品或服務,而對于商品或服務提供者來說,其目的則是向用戶推銷自己的產(chǎn)品或服務。因此,讓用戶通過瀏覽器查詢服務器的后端數(shù)據(jù)庫是許多Web服務提供者必需有的服務,ASP通過內(nèi)置的ADODB組件來實現(xiàn)這一功能??梢允褂肁DO去編寫緊湊簡明的腳本以便連接到ODBC兼容的數(shù)據(jù)庫和OLEDB兼容的數(shù)據(jù)源。具體的操作步驟可以歸納為以下幾步:①創(chuàng)建數(shù)據(jù)庫源名(DSN)ADODB通過ODBC工作,因此要在ODBC中設置DSN(數(shù)據(jù)源名)。打開Windows的"控制面板",雙擊"ODBC"的圖標,然后選擇"文件DSN"的屬性頁,單擊<添加>,選擇數(shù)據(jù)庫驅(qū)動程序,然后單擊"下一步",按照屏幕的指示鍵入數(shù)據(jù)源文件的名稱,然后單擊"下一步",再單擊"完成"創(chuàng)建數(shù)據(jù)源。②創(chuàng)建數(shù)據(jù)庫鏈接鏈接用以保持一些關于正在訪問的數(shù)據(jù)的動態(tài)信息,以及鏈接者信息。利用ADODB的成員函數(shù)Open和先前設定的DSN與數(shù)據(jù)庫連接,其語法如下:SetConnect=Server.CreateObject("ADODB.Connection")'創(chuàng)建了鏈接對象Connect。Connect.Open("DSN=dsnname;UID=userID;PWD=password")'打開鏈接。dsnname為數(shù)據(jù)源名;userID為用戶名;password為用戶口令。③創(chuàng)建數(shù)據(jù)對象ADO中的數(shù)據(jù)對象通常保存的是查詢結果。RecordSet是ADO中最復雜的對象,有許多屬性和方法,靈活運用,可以達到許多好的效果。其創(chuàng)建方法如下:SetRecordSet=Connect.Execute(sqtStr)'創(chuàng)建并打開了對象RecordSet,sqtStr是一個串,代表一條標準的SQL語句。例如:sqlStr="SELECT*FROMb1"SetRecordSet=Connect.Execute(sqlStr)這條語句執(zhí)行后,對象RecordSet中就保存了b1中的所有記錄。④操作數(shù)據(jù)庫可利用Execute方便地執(zhí)行數(shù)據(jù)的插入、修改、刪除等操作。如執(zhí)行插入操作:sqlStr="InsertIntob1Values(1,2)"Connect.Execute(sqlStr)⑤關閉數(shù)據(jù)對象和鏈接在使用了ADO對象之后,一定要關閉數(shù)據(jù)對象和鏈接。在ASP中通過調(diào)用方法close實現(xiàn)關閉。關閉創(chuàng)建的數(shù)據(jù)對象:RecordSet.closeSetRecordSet=Nothing關閉創(chuàng)建的鏈接對象:Connect.closeSetConnect=Nothing完整的程序片段://產(chǎn)生組件實例<%SetConnect=Server.CreateObject("ADODB.Connection")//連接數(shù)據(jù)庫

Connect.Open("DSN=dsnname;UID=userID;PWD=password")//執(zhí)行查詢SQL=select*fromtablenameSetRS=Connect.Execute(SQL)%>

//顯示結果<%DoWhileNotRS.EOF%>

<%=RS(fieldname)%><%

Rs.MoveNext

Loop

%>上述是用ASP訪問數(shù)據(jù)庫的全過程,由于應用面向?qū)ο笏枷?,所有操作都比較簡單,用戶需要注意的僅是對數(shù)據(jù)結構的了解、當前所操作的對象及對象的屬性等等,只要對這些有了清晰的認識,再加上ASP強大功能,在網(wǎng)絡上使用數(shù)據(jù)庫,實現(xiàn)用戶與頁面間交換信息,就再也不是什么難事了。四、主要功能程序段

4、1打開數(shù)據(jù)庫optionexplicitdimconn,connstr,db,rsdb="database/#MyShop.mdb"http://數(shù)據(jù)庫路徑Setconn=Server.CreateObject("ADODB.Connection")connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(""&db&"")conn.Openconnstr

4.2數(shù)據(jù)庫查詢操作//大類查訊

setrs=server.CreateObject("adodb.recordset")//只讀方式打開

rs.open"selectanclass,anclassidfromanclass",conn,1,1dowhilenotrs.eof

response.write"<Ahref=javascript:turnX('r"&rs("anclassid")&"')>"&trim(rs("anclass"))&"</A>"

rs.movenext

loop

rs.close//小類查詢dimrs2setrs2=server.CreateObject("adodb.recordset")rs2.open"selectnclass,nclassidfromnclasswhereanclassid="&rs("anclassid")&"orderbynclassidorder",conn,1,1dowhilenotrs2.eofresponse.write"<Ahref=class.asp?aid="&rs("anclassid")&"&nid="&rs2("nclassid")&">"&trim(rs2("nclass"))&"</A>"

rs2.movenext

loop

4.3添加記錄操作setrs=server.CreateObject("adodb.recordset")//可寫方式rs.open"selec

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論