網(wǎng)頁設計畢業(yè)論文
一、asp技術簡介asp技術 asp(active server pages動態(tài)網(wǎng)頁)是微軟公司推出的一種用以取代cgi(common gateway interface通用網(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 (hypertext transport protocol)協(xié)議,向站點服務器(web server)要求提供主頁的內(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í)行的結(jié)果以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(internet database connector)等功能有限,不敷使用。
asp使用的activex技術基于開放設計環(huán)境,用戶可以自己定義和制作組件加入其中,使自己的動態(tài)網(wǎng)頁幾乎具有無限的擴充能力,這是傳統(tǒng)的cgi等程序所遠遠不及的地方。asp與常見的在client端實現(xiàn)動態(tài)主頁的技術如java applet、activex control、vbscript、javascript等不同,asp中的命令和script語句都是由服務器來解釋執(zhí)行的,執(zhí)行結(jié)果產(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ā)給web server,如果web server上裝了asp,就調(diào)用asp。asp讀出相應.asp文件,解釋并執(zhí)行命令,動態(tài)生成一個html頁面回傳web server,然后web server再把結(jié)果發(fā)送給瀏覽器。asp文件的制作和html類似,且和html開發(fā)集成,可以在同一個過程完成,利用asp將可以執(zhí)行的腳本嵌入到html文件中(將html文件的后綴名改為.asp),這使得html文件的編寫與腳本的開發(fā)融合在一起。通過asp內(nèi)置的對象、服務器組件(server component)可以完成非常復雜的任務,而且用戶還可以自己開發(fā)或利用別人開發(fā)的服務器組件完成專門的任務。asp比較網(wǎng)關及服務器擴展模式有著以下優(yōu)點:
(1)完全與html文件融合在一起;
(2)容易創(chuàng)建,不需要其它編譯、鏈接程序;
(3)面向?qū)ο蟮牟⑼ㄟ^activex server對象可擴展。
二、電子商務數(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服務器的信息,進行處理后,將相應結(jié)果再送回給web服務器,通過web服務器將信息傳送給瀏覽器。但cgi程序在響應速度和資源利用等方面有較大局限性,客戶端每請求一個cgi程序,服務器端便打開一個進程,當請求的數(shù)量較大時容易引起瓶頸現(xiàn)象,開發(fā)人員常利用api編程來擴展服務器功能,api程序占系統(tǒng)資源少,運行效率較高,但它的編程較cgi程序更為復雜;另一種是由瀏覽器中的java小應用程序(java applet)通過瀏覽器訪問web服務器上的數(shù)據(jù)庫,利用了jdbc(java database connectivity)技術,它通過jdbc提供的api實現(xiàn)對web server的訪問。由于java applet本身的局限性,目前大多數(shù)的應用是基于中間件技術的。
asp也是屬于中間件的一種模式,但在windows平臺上它比較網(wǎng)關及服務器擴展模式有著較大的優(yōu)點。網(wǎng)關的最大特點是它的平臺無關性,但網(wǎng)關程序通常較難編寫和改變。網(wǎng)關程序通常是一個獨立的程序,并不和html文件融合在一起,它需要用如c、c++、vb、perl等語言來編寫獨立的應用程序,而asp應用改變了這一點。使用asp不僅可以讀取access和 sql server的數(shù)據(jù)庫,而且還可以讀取其他odbc(open database connect 開放式數(shù)據(jù)庫互聯(lián))兼容的數(shù)據(jù)庫。
在asp中訪問數(shù)據(jù)庫是通過ado(activex database object活動數(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ù)庫和 ole db 兼容的數(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ù)對象通常保存的是查詢結(jié)果。recordset 是ado中最復雜的對象,有許多屬性和方法,靈活運用,可以達到許多好的效果。其創(chuàng)建方法如下: set recordset =connect.execute(sqtstr) '創(chuàng)建并打開了對象recordset ,sqtstr是一個串,代表一條標準的sql語句。例如: sqlstr="select*from b1" set recordset =connect.execute(sqlstr) 這條語句執(zhí)行后,對象recordset中就保存了b1中的所有記錄。
、懿僮鲾(shù)據(jù)庫 可利用execute方便地執(zhí)行數(shù)據(jù)的插入、修改、刪除等操作。如執(zhí)行插入操作: sqlstr="insert into b1values(1,2)" connect.execute(sqlstr)
、蓐P閉數(shù)據(jù)對象和鏈接 在使用了ado對象之后,一定要關閉數(shù)據(jù)對象和鏈接。在asp中通過調(diào)用方法close實現(xiàn)關閉。 關閉創(chuàng)建的數(shù)據(jù)對象:record set .close set record set=nothing 關閉創(chuàng)建的鏈接對象:connect. close set connect=nothing 完整的程序片段:
//產(chǎn)生組件實例
//顯示結(jié)果
上述是用asp訪問數(shù)據(jù)庫的全過程,由于應用面向?qū)ο笏枷,所有操作都比較簡單,用戶需要注意的僅是對數(shù)據(jù)結(jié)構(gòu)的了解、當前所操作的對象及對象的屬性等等,只要對這些有了清晰的認識,再加上asp強大功能,在網(wǎng)絡上使用數(shù)據(jù)庫,實現(xiàn)用戶與頁面間交換信息,就再也不是什么難事了。
[nextpage]
四、主要功能程序段
4、1 打開數(shù)據(jù)庫
option explicit
dim conn,connstr,db,rs
db="database/#myshop.mdb" //數(shù)據(jù)庫路徑
set conn = server.createobject("adodb.connection")
connstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(""&db&"")
conn.open connstr
4.2 數(shù)據(jù)庫查詢操作
//大類查訊
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.update //更新數(shù)據(jù)庫
4.4 刪除記錄操作
//從表actions中刪除actionid 匹配的記錄; conn.execute "delete 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
五、結(jié)束語
隨著web技術的發(fā)展,基于intranet的電子商務系統(tǒng)無疑較傳統(tǒng)商務有著更大的應用前景,如何提務系高這種電子商統(tǒng)中的數(shù)據(jù)訪問效率及事務處理能力仍是當前人們所關注的問題。
【網(wǎng)頁設計畢業(yè)論文】相關文章:
網(wǎng)頁設計開題報告11-13
計算機網(wǎng)頁設計畢業(yè)論文范文(通用10篇)01-13
大學網(wǎng)頁設計開題報告12-08
關于寫網(wǎng)頁設計開題報告11-30
畢業(yè)論文設計:致謝11-30
工藝設計畢業(yè)論文12-08
畢業(yè)論文設計總結(jié)03-31