- 相關(guān)推薦
關(guān)于ASP技術(shù)簡(jiǎn)介參考
一、ASP技術(shù)簡(jiǎn)介
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。 簡(jiǎn)單地講,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ù)庫(kù)的要求、生成報(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)鏈接庫(kù))技術(shù),以線程代替進(jìn)程,提高了性能和速度,但要考慮線程的同步問題,而且開發(fā)步驟煩瑣。這兩種技術(shù)和另一普遍使用的開發(fā)動(dòng)態(tài)網(wǎng)頁的技術(shù)Java都還存在著另外一個(gè)問題,那就是開發(fā)困難,程序的開發(fā)和HTML寫作是兩個(gè)完全不同的過程,需要專門的程序員開發(fā)。而較簡(jiǎn)單的開發(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ù)庫(kù)系統(tǒng)的連接,完成對(duì)數(shù)據(jù)的處理與查詢,用戶可以通過操作簡(jiǎn)單易學(xué)的瀏覽器來查詢處理所需要的各種數(shù)據(jù)。 實(shí)現(xiàn)Web服務(wù)器與數(shù)據(jù)庫(kù)的連接一般有兩種方法:一種是利用中間件技術(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ù)庫(kù),利用了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ù)庫(kù),而且還可以讀取其他ODBC(Open Database Connect 開放式數(shù)據(jù)庫(kù)互聯(lián))兼容的數(shù)據(jù)庫(kù)。在ASP中訪問數(shù)據(jù)庫(kù)是通過ADO(ActiveX Database Object活動(dòng)數(shù)據(jù)對(duì)象)及事務(wù)處理語句來實(shí)現(xiàn)的。ADO是一種操作Microsoft所支持的數(shù)據(jù)庫(kù)的方法,是一項(xiàng)容易使用并且可擴(kuò)展的將數(shù)據(jù)庫(kù)訪問添加到 Web 頁的技術(shù)。ADO對(duì)象的使用與DAO(數(shù)據(jù)訪問對(duì)象)、RDO(遠(yuǎn)程數(shù)據(jù)對(duì)象)的方式相似。在ASP中,ADO可以看作是一個(gè)服務(wù)器組件,更簡(jiǎn)單點(diǎn)說,是一系列的對(duì)象,應(yīng)用這些功能強(qiáng)大的對(duì)象,即可輕松完成對(duì)數(shù)據(jù)庫(kù)復(fù)雜的操作。
三、ASP在電子商務(wù)中的應(yīng)用
在電子商務(wù)中,對(duì)用戶而言,進(jìn)行網(wǎng)上信息查詢的目的是尋找自己需要的產(chǎn)品或服務(wù),而對(duì)于商品或服務(wù)提供者來說,其目的則是向用戶推銷自己的產(chǎn)品或服務(wù)。因此,讓用戶通過瀏覽器查詢服務(wù)器的后端數(shù)據(jù)庫(kù)是許多Web服務(wù)提供者必需有的服務(wù),ASP通過內(nèi)置的ADODB組件來實(shí)現(xiàn)這一功能?梢允褂肁DO去編寫緊湊簡(jiǎn)明的腳本以便連接到ODBC 兼容的數(shù)據(jù)庫(kù)和 OLE DB 兼容的數(shù)據(jù)源。具體的操作步驟可以歸納為以下幾步:
、 創(chuàng)建數(shù)據(jù)庫(kù)源名(DSN) ADODB通過ODBC工作,因此要在ODBC中設(shè)置DSN(數(shù)據(jù)源名)。打開Windows的"控制面板",雙擊"ODBC"的圖標(biāo),然后選擇"文件 DSN "的屬性頁,單擊<添加>,選擇數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,然后單擊"下一步",按照屏幕的指示鍵入數(shù)據(jù)源文件的名稱,然后單擊"下一步",再單擊"完成"創(chuàng)建數(shù)據(jù)源。
、趧(chuàng)建數(shù)據(jù)庫(kù)鏈接 鏈接用以保持一些關(guān)于正在訪問的數(shù)據(jù)的動(dòng)態(tài)信息,以及鏈接者信息。利用ADODB的成員函數(shù)Open和先前設(shè)定的DSN與數(shù)據(jù)庫(kù)連接,其語法如下: SetConnect=Server.CreateObject("ADODB.Connection") #39;創(chuàng)建了鏈接對(duì)象Connect。 Connect.Open("DSN=dsnname;UID=userID;PWD=password") #39;打開鏈接。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) #39;創(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ù)庫(kù) 可利用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í)例
<% SetConnect=Server.CreateObject("ADODB.Connection")
//連接數(shù)據(jù)庫(kù)
Connect.Open("DSN=dsnname;UID=userID;PWD=password")
//執(zhí)行查詢
SQL=select*fromtablename SetRS=Connect.Execute(SQL) %>
//顯示結(jié)果
<%dowhile not="">
<%=rs(fieldname)%> <% rs.movenext="" loop="">
上述是用ASP訪問數(shù)據(jù)庫(kù)的全過程,由于應(yīng)用面向?qū)ο笏枷,所有操作都比較簡(jiǎn)單,用戶需要注意的僅是對(duì)數(shù)據(jù)結(jié)構(gòu)的了解、當(dāng)前所操作的對(duì)象及對(duì)象的屬性等等,只要對(duì)這些有了清晰的認(rèn)識(shí),再加上ASP強(qiáng)大功能,在網(wǎng)絡(luò)上使用數(shù)據(jù)庫(kù),實(shí)現(xiàn)用戶與頁面間交換信息,就再也不是什么難事了。
四、主要功能程序段
4、1 打開數(shù)據(jù)庫(kù)
option explicit
dim conn,connstr,db,rs
db="database/#MyShop.mdb" //數(shù)據(jù)庫(kù)路徑
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ù)庫(kù)查詢操作
//大類查訊
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.//更新數(shù)據(jù)庫(kù)
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")) //修改各項(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)注的問題。
【ASP技術(shù)簡(jiǎn)介參考】相關(guān)文章:
EDA技術(shù)簡(jiǎn)介10-16
鍛造安全技術(shù)簡(jiǎn)介01-21
關(guān)于新加坡留學(xué)日;ㄙM(fèi)情況簡(jiǎn)介參考06-28
J2EE技術(shù)簡(jiǎn)介08-05
安徽職業(yè)技術(shù)學(xué)院「簡(jiǎn)介」03-25
ASP提速技巧08-05
計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)簡(jiǎn)介11-29
ASP編程實(shí)例大全05-29