計(jì)算機(jī)網(wǎng)頁設(shè)計(jì)畢業(yè)論文
asp技術(shù)在交互式網(wǎng)頁設(shè)計(jì)中的運(yùn)用
一、asp技術(shù)簡介
asp技術(shù) asp(active server pages動(dòng)態(tài)網(wǎng)頁)是微軟公司推出的一種用以取代cgi(common gateway interface通用網(wǎng)關(guān)接口)的技術(shù)。目前,internet上的許多基于windows平臺(tái)的web站點(diǎn)已開始應(yīng)用asp來替換cgi。 簡單地講,asp是一個(gè)位于服務(wù)器端的腳本運(yùn)行環(huán)境,通過這種環(huán)境,用戶可以創(chuàng)建和運(yùn)行動(dòng)態(tài)的交互式web服務(wù)器應(yīng)用程序,如交互式動(dòng)態(tài)網(wǎng)頁,包括使用html表單收集和處理信息,上傳與下載等等。通常情況下,用戶通過瀏覽器看到的網(wǎng)頁大多是靜態(tài)的,目前internet 上的許多站點(diǎn),仍然提供"靜態(tài)"(static)的主頁內(nèi)容。 所謂"靜態(tài)",指的就是站點(diǎn)的主頁內(nèi)容是"固定不變"的。 當(dāng)瀏覽器通過internet 的http (hypertext transport protocol)協(xié)議,向站點(diǎn)服務(wù)器(web server)要求提供主頁的內(nèi)容時(shí),站點(diǎn)服務(wù)器收到要求后,就傳送原已設(shè)計(jì)好的靜態(tài)的html 的文件數(shù)據(jù)給瀏覽器。 一個(gè)"靜態(tài)"的站點(diǎn),若要更新主頁的內(nèi)容,必須手動(dòng)的來更新其html的文件數(shù)據(jù)。而隨著web應(yīng)用的發(fā)展,用戶希望能夠看到根據(jù)要求而動(dòng)態(tài)生成的主頁,例如響應(yīng)用戶查詢數(shù)據(jù)庫的要求、生成報(bào)表等。當(dāng)在瀏覽器上填好表單(form)的輸入數(shù)據(jù),以提供http要求時(shí),可以在站點(diǎn)服務(wù)器中執(zhí)行的應(yīng)用程序,而不只是一個(gè)html 文件。
站點(diǎn)服務(wù)器收到要求執(zhí)行的應(yīng)用程序,分析表單(form)的輸入數(shù)據(jù),將執(zhí)行的結(jié)果以html的格式傳送給瀏覽器。 根據(jù)用戶請(qǐng)求生成動(dòng)態(tài)主頁的傳統(tǒng)方法有cgi、isapi等。cgi是根據(jù)瀏覽器端的http請(qǐng)求激活響應(yīng)進(jìn)程,每一個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)進(jìn)程。當(dāng)同時(shí)有很多請(qǐng)求時(shí),程序擠占系統(tǒng)資源,造成效率低下;isapi針對(duì)這一缺點(diǎn)進(jìn)行改進(jìn),利用dll(動(dòng)態(tài)鏈接庫)技術(shù),以線程代替進(jìn)程,提高了性能和速度,但要考慮線程的同步問題,而且開發(fā)步驟煩瑣。這兩種技術(shù)和另一普遍使用的開發(fā)動(dòng)態(tài)網(wǎng)頁的技術(shù)java都還存在著另外一個(gè)問題,那就是開發(fā)困難,程序的開發(fā)和html寫作是兩個(gè)完全不同的過程,需要專門的程序員開發(fā)。而較簡單的開發(fā)技術(shù)如javascript和idc(internet database connector)等功能有限,不敷使用。
asp使用的activex技術(shù)基于開放設(shè)計(jì)環(huán)境,用戶可以自己定義和制作組件加入其中,使自己的動(dòng)態(tài)網(wǎng)頁幾乎具有無限的擴(kuò)充能力,這是傳統(tǒng)的cgi等程序所遠(yuǎn)遠(yuǎn)不及的地方。asp與常見的在client端實(shí)現(xiàn)動(dòng)態(tài)主頁的技術(shù)如java applet、activex control、vbscript、javascript等不同,asp中的命令和script語句都是由服務(wù)器來解釋執(zhí)行的,執(zhí)行結(jié)果產(chǎn)生動(dòng)態(tài)生成的web頁面并送到瀏覽器;而client端技術(shù)的script命令則是由瀏覽器來解釋執(zhí)行。由于asp是在服務(wù)器端解釋執(zhí)行,開發(fā)者可以不必考慮瀏覽器是否支持asp;同時(shí)由于它在服務(wù)器端執(zhí)行,開發(fā)者也不必?fù)?dān)心別人下載程序從而竊取編程邏輯。
asp通過后綴名為.asp的asp文件來實(shí)現(xiàn),一個(gè).asp文件相當(dāng)于一個(gè)可執(zhí)行文件,因此必須放在web服務(wù)器上有可執(zhí)行權(quán)限的目錄下。當(dāng)用戶從瀏覽器輸入了.asp文件的地址后,瀏覽器就將這個(gè)url請(qǐng)求發(fā)給web server,如果web server上裝了asp,就調(diào)用asp。asp讀出相應(yīng).asp文件,解釋并執(zhí)行命令,動(dòng)態(tài)生成一個(gè)html頁面回傳web server,然后web server再把結(jié)果發(fā)送給瀏覽器。asp文件的制作和html類似,且和html開發(fā)集成,可以在同一個(gè)過程完成,利用asp將可以執(zhí)行的腳本嵌入到html文件中(將html文件的后綴名改為.asp),這使得html文件的編寫與腳本的開發(fā)融合在一起。通過asp內(nèi)置的對(duì)象、服務(wù)器組件(server component)可以完成非常復(fù)雜的任務(wù),而且用戶還可以自己開發(fā)或利用別人開發(fā)的服務(wù)器組件完成專門的任務(wù)。asp比較網(wǎng)關(guān)及服務(wù)器擴(kuò)展模式有著以下優(yōu)點(diǎn):
(1)完全與html文件融合在一起;
(2)容易創(chuàng)建,不需要其它編譯、鏈接程序;
(3)面向?qū)ο蟮牟⑼ㄟ^activex server對(duì)象可擴(kuò)展。
二、電子商務(wù)數(shù)據(jù)訪問方式
電子商務(wù)是指通過電子方式,并在網(wǎng)絡(luò)基礎(chǔ)上實(shí)現(xiàn)物資、人員過程的協(xié)調(diào),以便商業(yè)交換的活動(dòng)。在電子商務(wù)系統(tǒng)中,web提供了與客戶進(jìn)行通信聯(lián)絡(luò)的有效手段,利用web技術(shù),實(shí)現(xiàn)web服務(wù)器與數(shù)據(jù)庫系統(tǒng)的連接,完成對(duì)數(shù)據(jù)的處理與查詢,用戶可以通過操作簡單易學(xué)的瀏覽器來查詢處理所需要的各種數(shù)據(jù)。 實(shí)現(xiàn)web服務(wù)器與數(shù)據(jù)庫的連接一般有兩種方法:一種是利用中間件技術(shù)在兩者之間建立連接和通信,如cgi(通用網(wǎng)關(guān)接口)和api(應(yīng)用程序編程接口)。
web服務(wù)器通過調(diào)用cgi程序?qū)崿F(xiàn)與web瀏覽器的交互,即cgi程序接受瀏覽器發(fā)給web服務(wù)器的信息,進(jìn)行處理后,將相應(yīng)結(jié)果再送回給web服務(wù)器,通過web服務(wù)器將信息傳送給瀏覽器。但cgi程序在響應(yīng)速度和資源利用等方面有較大局限性,客戶端每請(qǐng)求一個(gè)cgi程序,服務(wù)器端便打開一個(gè)進(jìn)程,當(dāng)請(qǐng)求的數(shù)量較大時(shí)容易引起瓶頸現(xiàn)象,開發(fā)人員常利用api編程來擴(kuò)展服務(wù)器功能,api程序占系統(tǒng)資源少,運(yùn)行效率較高,但它的編程較cgi程序更為復(fù)雜;另一種是由瀏覽器中的java小應(yīng)用程序(java applet)通過瀏覽器訪問web服務(wù)器上的數(shù)據(jù)庫,利用了jdbc(java database connectivity)技術(shù),它通過jdbc提供的api實(shí)現(xiàn)對(duì)web server的訪問。由于java applet本身的局限性,目前大多數(shù)的應(yīng)用是基于中間件技術(shù)的。
asp也是屬于中間件的一種模式,但在windows平臺(tái)上它比較網(wǎng)關(guān)及服務(wù)器擴(kuò)展模式有著較大的優(yōu)點(diǎn)。網(wǎng)關(guān)的最大特點(diǎn)是它的平臺(tái)無關(guān)性,但網(wǎng)關(guān)程序通常較難編寫和改變。網(wǎng)關(guān)程序通常是一個(gè)獨(dú)立的程序,并不和html文件融合在一起,它需要用如c、c++、vb、perl等語言來編寫?yīng)毩⒌膽?yīng)用程序,而asp應(yīng)用改變了這一點(diǎn)。使用asp不僅可以讀取access和 sql server的數(shù)據(jù)庫,而且還可以讀取其他odbc(open database connect 開放式數(shù)據(jù)庫互聯(lián))兼容的數(shù)據(jù)庫。
在asp中訪問數(shù)據(jù)庫是通過ado(activex database object活動(dòng)數(shù)據(jù)對(duì)象)及事務(wù)處理語句來實(shí)現(xiàn)的。ado是一種操作microsoft所支持的數(shù)據(jù)庫的方法,是一項(xiàng)容易使用并且可擴(kuò)展的將數(shù)據(jù)庫訪問添加到 web 頁的技術(shù)。ado對(duì)象的使用與dao(數(shù)據(jù)訪問對(duì)象)、rdo(遠(yuǎn)程數(shù)據(jù)對(duì)象)的方式相似。在asp中,ado可以看作是一個(gè)服務(wù)器組件,更簡單點(diǎn)說,是一系列的對(duì)象,應(yīng)用這些功能強(qiáng)大的對(duì)象,即可輕松完成對(duì)數(shù)據(jù)庫復(fù)雜的操作。
三、asp在電子商務(wù)中的應(yīng)用
在電子商務(wù)中,對(duì)用戶而言,進(jìn)行網(wǎng)上信息查詢的目的是尋找自己需要的產(chǎn)品或服務(wù),而對(duì)于商品或服務(wù)提供者來說,其目的則是向用戶推銷自己的產(chǎn)品或服務(wù)。因此,讓用戶通過瀏覽器查詢服務(wù)器的后端數(shù)據(jù)庫是許多web服務(wù)提供者必需有的服務(wù),asp通過內(nèi)置的adodb組件來實(shí)現(xiàn)這一功能?梢允褂胊do去編寫緊湊簡明的腳本以便連接到odbc 兼容的數(shù)據(jù)庫和 ole db 兼容的數(shù)據(jù)源。具體的操作步驟可以歸納為以下幾步:
、 創(chuàng)建數(shù)據(jù)庫源名(dsn) adodb通過odbc工作,因此要在odbc中設(shè)置dsn(數(shù)據(jù)源名)。打開windows的"控制面板",雙擊"odbc"的圖標(biāo),然后選擇"文件 dsn "的屬性頁,單擊<添加>,選擇數(shù)據(jù)庫驅(qū)動(dòng)程序,然后單擊"下一步",按照屏幕的指示鍵入數(shù)據(jù)源文件的名稱,然后單擊"下一步",再單擊"完成"創(chuàng)建數(shù)據(jù)源。
、趧(chuàng)建數(shù)據(jù)庫鏈接 鏈接用以保持一些關(guān)于正在訪問的數(shù)據(jù)的動(dòng)態(tài)信息,以及鏈接者信息。利用adodb的成員函數(shù)open和先前設(shè)定的dsn與數(shù)據(jù)庫連接,其語法如下: setconnect=server.createobject("adodb.connection") '創(chuàng)建了鏈接對(duì)象connect。 connect.open("dsn=dsnname;uid=userid;pwd=password") '打開鏈接。dsnname為數(shù)據(jù)源名;userid為用戶名;password為用戶口令。
、蹌(chuàng)建數(shù)據(jù)對(duì)象 ado中的數(shù)據(jù)對(duì)象通常保存的是查詢結(jié)果。recordset 是ado中最復(fù)雜的對(duì)象,有許多屬性和方法,靈活運(yùn)用,可以達(dá)到許多好的效果。其創(chuàng)建方法如下: set recordset =connect.execute(sqtstr) '創(chuàng)建并打開了對(duì)象recordset ,sqtstr是一個(gè)串,代表一條標(biāo)準(zhǔn)的sql語句。例如: sqlstr="select*from b1" set recordset =connect.execute(sqlstr) 這條語句執(zhí)行后,對(duì)象recordset中就保存了b1中的所有記錄。
、懿僮鲾(shù)據(jù)庫 可利用execute方便地執(zhí)行數(shù)據(jù)的插入、修改、刪除等操作。如執(zhí)行插入操作: sqlstr="insert into b1values(1,2)" connect.execute(sqlstr)
、蓐P(guān)閉數(shù)據(jù)對(duì)象和鏈接 在使用了ado對(duì)象之后,一定要關(guān)閉數(shù)據(jù)對(duì)象和鏈接。在asp中通過調(diào)用方法close實(shí)現(xiàn)關(guān)閉。 關(guān)閉創(chuàng)建的數(shù)據(jù)對(duì)象:record set .close set record set=nothing 關(guān)閉創(chuàng)建的鏈接對(duì)象:connect. close set connect=nothing 完整的程序片段:
//產(chǎn)生組件實(shí)例
//顯示結(jié)果
上述是用asp訪問數(shù)據(jù)庫的全過程,由于應(yīng)用面向?qū)ο笏枷,所有操作都比較簡單,用戶需要注意的僅是對(duì)數(shù)據(jù)結(jié)構(gòu)的了解、當(dāng)前所操作的對(duì)象及對(duì)象的屬性等等,只要對(duì)這些有了清晰的認(rèn)識(shí),再加上asp強(qiáng)大功能,在網(wǎng)絡(luò)上使用數(shù)據(jù)庫,實(shí)現(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 //添加相應(yīng)的記錄
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")) //修改各項(xiàng)記錄
………………
rs.update
rs.close
五、結(jié)束語
隨著web技術(shù)的發(fā)展,基于intranet的電子商務(wù)系統(tǒng)無疑較傳統(tǒng)商務(wù)有著更大的應(yīng)用前景,如何提務(wù)系高這種電子商統(tǒng)中的數(shù)據(jù)訪問效率及事務(wù)處理能力仍是當(dāng)前人們所關(guān)注的問題。
更多論文范文請(qǐng)?jiān)L問:
【計(jì)算機(jī)網(wǎng)頁設(shè)計(jì)畢業(yè)論文】相關(guān)文章:
網(wǎng)頁設(shè)計(jì)畢業(yè)論文11-18
計(jì)算機(jī)網(wǎng)頁設(shè)計(jì)畢業(yè)論文范文(通用10篇)01-13
計(jì)算機(jī)平面設(shè)計(jì)畢業(yè)論文06-15
網(wǎng)頁設(shè)計(jì)開題報(bào)告11-13
網(wǎng)頁設(shè)計(jì)畢業(yè)設(shè)計(jì)開題報(bào)告12-01
計(jì)算機(jī)畢業(yè)論文05-17
計(jì)算機(jī)畢業(yè)論文07-01
- 相關(guān)推薦