ASP(Active Server Pages)是微軟公司在Web領(lǐng)域上的又一次突破,它打破以往只能由專業(yè)人員來開發(fā)的束縛,使一般學(xué)者也能獨立地構(gòu)建自己的動態(tài)網(wǎng)站。
一、訪問WEB數(shù)據(jù)庫的多種方案
目前在WINDOWS環(huán)境下有多種訪問WEB數(shù)據(jù)庫的技術(shù),主要有:
1.公共網(wǎng)關(guān)接口CGI(Common GatewayInterface)
CGI是較早實現(xiàn)的技術(shù)。適用于多種服務(wù)器平臺,如UNIX,WINDOWS等,但CGI的開發(fā)成本高、維護(hù)困難、功能有限、不具備事務(wù)處理功能、占用服務(wù)器資源較多。
2.INTERNET數(shù)據(jù)庫連接器IDC(InternetDatabase Connector)
IDC集成在ISAPI(Internet Server API)中,充分利用了DLL技術(shù),易擴(kuò)充,但編程較CGI更為復(fù)雜,只適用于小型數(shù)據(jù)庫系統(tǒng)。
3.先進(jìn)數(shù)據(jù)庫連接器ADc(AdvanceDatabase Connector)
ADc提供了ActiveX Control來訪問數(shù)據(jù)庫,它的主要特點是數(shù)據(jù)查詢由用戶端瀏覽器執(zhí)行,因而需將服務(wù)器端數(shù)據(jù)庫中的部分記錄下載到用戶端,系統(tǒng)開銷較大、響應(yīng)慢,只適用于特別頻繁的數(shù)據(jù)庫查詢操作。
4.JAVA/JDBC語言編程
JAVA語言是一種面向?qū)ο?、易移植、多線程控制的語言,可通過JDBC去連接數(shù)據(jù)庫。用JAVA/JDBC編寫的軟件可移植性強(qiáng),適用于多種操作系統(tǒng),但其執(zhí)行效率和執(zhí)行速度還不理想,目前無法建立高效、高速的應(yīng)用。
5.動態(tài)服務(wù)器頁面ASP(Active Server Page)
ASP是微軟公司最新推出的WEB應(yīng)用開發(fā)技術(shù),著重于處理動態(tài)網(wǎng)頁和WEB數(shù)據(jù)庫的開發(fā),編程靈活、簡潔,具有較高的性能,是目前訪問WEB數(shù)據(jù)庫的最佳選擇。
二、ASP的應(yīng)用原理
1、主要思想
要實現(xiàn)頁面間信息的傳遞(如從PageA—PageB),實際上涉及2方面的問題:一方面是如何將PageA的信息存取為共享信息,另一方面是PageB如何獲取PageA中可以共享的信息。解決的辦法一般是開辟一塊“公共區(qū)”,由PageA將共享信息存入此公共區(qū),而其他頁面(比如PageB)需要時則從公共區(qū)取出相關(guān)信息。當(dāng)然,具體實現(xiàn)時,不同方法在技術(shù)細(xì)節(jié)上會有不同的處理。
2、ASP的相關(guān)技術(shù)
(1)關(guān)于ASP
ASP是微軟推出的動態(tài)服務(wù)器網(wǎng)頁技術(shù),利用他提供的內(nèi)部對象和內(nèi)部組件可以很方便地實現(xiàn)表單上傳、存取數(shù)據(jù)庫等很多功能。本文中主要涉及A SP的3類對象:Request對象、Response對象和Sel~ion對象。
(2)從客戶端獲得信息
Request對象能輕松取得客戶端的信息,共有5種獲取方法:
QuerySt ring:從查詢字符串中讀取用戶提交的數(shù)據(jù);
Form:取得客戶端在Form表單中所輸入的信息;
Cook ies:取得客戶端瀏覽器的Cook ies信息}
ServerV ariables:取得服務(wù)器端環(huán)境變量信息;
ClientCert fficate:取得客戶端瀏覽器的身份驗證信息。
(3)向客戶端輸出信息
Response對象可以根據(jù)客戶端的不同請求輸出相應(yīng)的信息,常用方法包括:write:送出信息給客戶端;
Redirect:引導(dǎo)客戶端瀏覽器至新的Web頁面;Clear:清除在緩沖區(qū)的所有HTML頁面等。
(4)記載特定客戶信息
Session對象用來記載特定客戶的信息。即使該客戶從一個頁面跳轉(zhuǎn)到另一個頁面,該Session信息仍然存在,客戶在該網(wǎng)站的任何一個頁面都可以存取Session信息。
三、ASP訪問數(shù)據(jù)庫步驟
在ASP中,使用ADO組件訪問后臺數(shù)據(jù)庫,可通過以下步驟進(jìn)行:
1.定義數(shù)據(jù)源
在wEB服務(wù)器上打開“控制面板”,選中“ODBC”,在“系統(tǒng)DSN'’下選“添加”,選定你希望的數(shù)據(jù)庫種類、名稱、位置等。本文定義“SQL SERVER”,數(shù)據(jù)源為”HT”,數(shù)據(jù)庫名稱為”HFUA'IA,腳本語言采用Jsenpt。
2,使用ADO組件查詢WEB數(shù)據(jù)庫
1)調(diào)用Server,CreateObject方法取得“ADODB,Connection'’的實例,再使用Open方法打開數(shù)據(jù)庫:
conn=Server,CreateObject(“ADODB,Connection”)
corm,Open(“HT'’)
2)指定要執(zhí)行的sQL命令
連接數(shù)據(jù)庫后,可對數(shù)據(jù)庫操作,如查詢,修改,刪除等,這些都是通過sQL指令來完成的,如要在數(shù)據(jù)表Signaltab中查詢代碼中含有“x”的記錄
sqlStr=“select t from aignaltab wherecode like
rs=conn,Execute(sqlStr)
3)使用RecordSet屬性和方法,并顯示結(jié)果
為了更精確地跟蹤數(shù)據(jù),要用RecordSet組件創(chuàng)建包含數(shù)據(jù)的游標(biāo),游標(biāo)就是儲存在內(nèi)存中的數(shù)據(jù)。
rs:Server,CreateObject(“ADODB,RecordSet”)
rs,Open(sqlStr,conn,1,A)
注:A=I讀取
A=3新增、修改、刪除
在RecordSet組件中,常用的屬性和方法有:
rs,F(xiàn)ields,Count:
RecordSet對象的字段數(shù)。
rs(i),Name:
第i個字段的名稱,i為O至rs,F(xiàn)ields,Count l
rs(i):
第i個字段的數(shù)據(jù),i為O至rs_Fields,Count-l
rs(“字段名”):指定字段的數(shù)據(jù)。
rs,Record,Count:游標(biāo)中的數(shù)據(jù)記錄總數(shù)。
m,EOF:是否最后一條記錄。
rS.MoveFirst:指向第一條記錄。
rsMoveLast:指向最后一條記錄。
rs.MovePrev:指向上一條記錄。
rs.MoveNext:指向下一條記錄。
rs.GetRows:將數(shù)據(jù)放人數(shù)組中。
rs.Properties,Count:ADO~JResultset或Connection的屬性個數(shù)。
rs.Properties(item),Name:ADONResultSet或Connection的名稱。
rs.Properties:
ADO的ResultSet或Connection的值。
rs.close():關(guān)閉連接。
4)關(guān)閉數(shù)據(jù)庫
conn.close()
隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展和廣泛應(yīng)用,Intemet的用戶數(shù)迅猛增長,越來越多的企業(yè)和個人擁有自己的Web站點,他們通過網(wǎng)絡(luò)提供各種各樣的服務(wù)并獲取所需信息。網(wǎng)絡(luò)是一種非線性的結(jié)構(gòu),利用超鏈接可以很方便地從一個頁面跳到另一個頁面,在跳轉(zhuǎn)的同時,需要將一些信息也帶過去。