數(shù)據(jù)庫(kù)系統(tǒng)與應(yīng)用-(11)課件_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)與應(yīng)用-(11)課件_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)與應(yīng)用-(11)課件_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)與應(yīng)用-(11)課件_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)與應(yīng)用-(11)課件_第5頁(yè)
已閱讀5頁(yè),還剩167頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第11章B/S結(jié)構(gòu)程序設(shè)計(jì)基礎(chǔ)11.1 ASP技術(shù)11.2 ASP程序的運(yùn)行環(huán)境配置11.3 ASP的內(nèi)置對(duì)象11.4 ADO技術(shù) 習(xí)題1111.1 ASP技術(shù)ASP(Active Server Pages)是微軟公司推出的一種服務(wù)器端腳本環(huán)境,它內(nèi)嵌于IIS中,可以讓用戶(hù)更輕松地結(jié)合HTML Web頁(yè)面、腳本和ActiveX組件建立或執(zhí)行動(dòng)態(tài)的、交互的Web服務(wù)器應(yīng)用程序。ASP并不單指某一種編程語(yǔ)言,而是一項(xiàng)把HTML代碼與VBScript 、JavaScript等腳本語(yǔ)言融合在一起的技術(shù)。11.1.1腳本語(yǔ)言腳本語(yǔ)言是介于HTML和Java、C+、Visual Basic等編程語(yǔ)言之間的

2、一種語(yǔ)言。HTML用于格式化文本和鏈接網(wǎng)頁(yè),而編程語(yǔ)言則通常向計(jì)算機(jī)發(fā)送一系列復(fù)雜的機(jī)器指令,從而完成一系列操作。腳本語(yǔ)言介于兩者之間,常用于格式化文本和使用編程語(yǔ)言編寫(xiě)的已編譯好的組件。腳本語(yǔ)言也可用來(lái)向計(jì)算機(jī)發(fā)送指令,但它們的語(yǔ)法規(guī)則沒(méi)有可編譯的編程語(yǔ)言那么嚴(yán)格和復(fù)雜。ASP默認(rèn)的腳本編寫(xiě)語(yǔ)言為VBScript語(yǔ)言,用戶(hù)可以根據(jù)自己的需要選擇其他腳本語(yǔ)言。只要安裝了相應(yīng)的腳本引擎,就可以使用幾乎目前所有流行的腳本語(yǔ)言編寫(xiě)ASP應(yīng)用程序。11.1.2 對(duì)象和ActiveX組件在面向?qū)ο缶幊讨校瑢?duì)象就是指由當(dāng)作完整實(shí)體的操作和數(shù)據(jù)組成的變量。對(duì)象是基于特定模型的,用戶(hù)可通過(guò)由對(duì)象提供的一組方法

3、或相關(guān)函數(shù)組成的接口來(lái)訪問(wèn)對(duì)象的數(shù)據(jù)或執(zhí)行相應(yīng)的操作。當(dāng)用戶(hù)用ASP編寫(xiě)服務(wù)器端的應(yīng)用程序時(shí),必須依靠ActiveX組件擴(kuò)充Web應(yīng)用程序的功能,如鏈接數(shù)據(jù)庫(kù),以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行在線操作。ActiveX組件是一類(lèi)特殊的對(duì)象,ASP通過(guò)這些對(duì)象以實(shí)現(xiàn)具有某種特殊功能的網(wǎng)頁(yè)。11.1.3 ASP的特點(diǎn)ASP具有以下幾方面的特點(diǎn):(1) 在ASP頁(yè)面中可以包含文本、HTML標(biāo)記、服務(wù)器端腳本和客戶(hù)端腳本及ActiveX組件。Web服務(wù)器只執(zhí)行ASP頁(yè)面中的服務(wù)器端腳本,頁(yè)面中的其他內(nèi)容被服務(wù)器原封不動(dòng)地發(fā)送給客戶(hù)瀏覽器。(2) ASP技術(shù)支持多種腳本語(yǔ)言,包括VBScript和Java Script。

4、在安裝了相應(yīng)的腳本引擎后,還可以使用其他腳本語(yǔ)言。(3) ASP提供了一些內(nèi)置對(duì)象,使用這些內(nèi)置對(duì)象可以增強(qiáng)ASP的功能。例如,實(shí)現(xiàn)客戶(hù)機(jī)瀏覽器與Web服務(wù)器的交互,在網(wǎng)頁(yè)間傳遞參數(shù),等等。(4) ASP可以使用內(nèi)置ActiveX組件完成許多重要功能。例如借助ADO對(duì)象可以輕松地完成對(duì)數(shù)據(jù)庫(kù)的操作。當(dāng)然,也可以使用第三方組件來(lái)完成特定的功能。(5) ASP具有一定的安全性,由于ASP頁(yè)面是在服務(wù)器端運(yùn)行的,送到客戶(hù)機(jī)瀏覽器的是ASP執(zhí)行結(jié)果所生成的HTML頁(yè)面,用戶(hù)只能得到HTML代碼,無(wú)法獲取ASP源代碼。(6) ASP是一種解釋性語(yǔ)言,服務(wù)器只要在使用時(shí)對(duì)其進(jìn)行解釋執(zhí)行即可。11.1.4

5、ASP文件的基本結(jié)構(gòu)ASP程序是以“.asp”為擴(kuò)展名的文本文件,可以使用任何一種文本編輯器(如Windows中的記事本、寫(xiě)字板)來(lái)創(chuàng)建,也可以使用那些帶有ASP增強(qiáng)功能的編輯器(如Frontpage、Dreamweaver等)來(lái)提高工作效率。在ASP文件中通常包含文本、HTML標(biāo)記和腳本命令。HTML是一種超文本標(biāo)記語(yǔ)言,HTML中的標(biāo)記可以被客戶(hù)機(jī)瀏覽器讀取、解釋并顯示在瀏覽器中。腳本(Script)由一組可以在Web服務(wù)器端或客戶(hù)瀏覽器端運(yùn)行的命令組成。此外,ASP腳本還可以調(diào)用ActiveX組件來(lái)執(zhí)行特定的任務(wù)。文本、HTML標(biāo)記和腳本命令三部分的內(nèi)容可以以各種組合混雜在ASP文件中,

6、需要使用不同的符號(hào)進(jìn)行區(qū)分:HTML使用標(biāo)準(zhǔn)HTML標(biāo)記界定;ASP服務(wù)器端腳本命令使用“”表示腳本的開(kāi)始和結(jié)束,既可以每一行ASP語(yǔ)句界定一次,也可以多行語(yǔ)句界定一次。例11-1 一個(gè)簡(jiǎn)單的ASP程序(文件名為myfirst.asp):FONT size=很高興見(jiàn)到大家!程序的運(yùn)行結(jié)果如圖11-1所示。這是一個(gè)向客戶(hù)機(jī)瀏覽器重復(fù)顯示文本“很高興見(jiàn)到大家!”且字體越來(lái)越大的一段代碼。在例11-1中,用“”括起來(lái)的是HTML標(biāo)記;用“”括起來(lái)的是服務(wù)器腳本,由Web服務(wù)器負(fù)責(zé)執(zhí)行;其他字符為普通文本。圖11-1 包含腳本命令的HTML頁(yè)11.1.5 主腳本語(yǔ)言 ASP使Web開(kāi)發(fā)者可以用各種腳本

7、語(yǔ)言編寫(xiě)程序而不用擔(dān)心瀏覽器是否支持。實(shí)際上,在一個(gè).asp文件中可以使用多種腳本語(yǔ)言,只要在每段腳本程序開(kāi)始處用HTML標(biāo)簽標(biāo)明所用的腳本語(yǔ)言。VBScript是默認(rèn)的主腳本語(yǔ)言,無(wú)需安裝VBScript的腳本引擎。在ASP文件中,還可以將任一種腳本語(yǔ)言設(shè)為主腳本語(yǔ)言。其設(shè)置格式為例如,可以通過(guò)以下語(yǔ)句,將JScript設(shè)為主腳本語(yǔ)言:11.2 ASP程序的運(yùn)行環(huán)境配置在Windows Server 2003操作系統(tǒng)中默認(rèn)安裝IIS 6.0。而在Windows 2000和Windows XP中一般安裝的為IIS 5.0。對(duì)開(kāi)發(fā)者而言,IIS的各個(gè)版本之間的區(qū)別并不大。下面介紹在Windows

8、 2000 Server操作系統(tǒng)中安裝配置IIS 5.0。11.2.1 IIS服務(wù)器的安裝與測(cè)試步驟IIS服務(wù)器安裝與測(cè)試的步驟如下:(1) 進(jìn)入控制面板,雙擊“添加/刪除程序”按鈕,進(jìn)入“添加/刪除程序”對(duì)話框,單擊“添加/刪除Windows組件”按鈕,彈出“Windows組件向?qū)А睂?duì)話框,如圖11-2所示。(2) 選中“Internet信息服務(wù) (IIS)”對(duì)話框,然后單擊“詳細(xì)信息”按鈕,彈出“Internet信息服務(wù) (IIS)”對(duì)話框,如圖11-3所示,該對(duì)話框的列表框中詳細(xì)列出安裝的組件信息。 (3) 選中所有選項(xiàng),然后單擊“確定”按鈕,再次進(jìn)入圖11-2所示的界面。然后單擊“下一

9、步”銨鈕,進(jìn)行安裝(注:中途需要插入安裝光盤(pán)),直到安裝完畢。(4) 在安裝完成后,需要測(cè)試服務(wù)器是否安裝成功,打開(kāi)瀏覽器,在地址欄中輸入:“http:/localhost”,如果成功安裝了IIS,并且沒(méi)有修改默認(rèn)Web站點(diǎn)的設(shè)置,瀏覽器中的正確顯示效果如圖11-4所示。圖11-2 “Windows組件向?qū)А睂?duì)話框圖11-3 “Internet信息服務(wù)(IIS)”對(duì)話框圖11-4 測(cè)試服務(wù)器出現(xiàn)的兩個(gè)頁(yè)面11.2.2 IIS服務(wù)器的配置 首先進(jìn)入管理界面,打開(kāi)控制面板,雙擊“管理工具”圖標(biāo),然后雙擊“Internet信息服務(wù)”圖標(biāo),進(jìn)入管理界面,如圖11-5所示。在圖中可以看到在“默認(rèn)Web站

10、點(diǎn)”下有很多子節(jié)點(diǎn),每一個(gè)子節(jié)點(diǎn)就是一個(gè)應(yīng)用程序或者是一個(gè)虛擬路徑。圖11-5 “Internet信息服務(wù)”對(duì)話框(1)在Web服務(wù)器提供服務(wù)之前,先要啟動(dòng)服務(wù),這可以通過(guò)工具欄上面的按鈕來(lái)實(shí)現(xiàn),也可以通過(guò)菜單實(shí)現(xiàn)。用鼠標(biāo)右鍵單擊“默認(rèn)Web站點(diǎn)”,彈出圖11-6所示的快捷菜單。通過(guò)彈出的菜單可以管理網(wǎng)站,如可以單擊“啟動(dòng)”菜單命令啟動(dòng)服務(wù)器、可以單擊“停止”菜單命令停止服務(wù)器、可以單擊“暫?!辈藛蚊顣和7?wù)器。如果要對(duì)服務(wù)器進(jìn)行各種設(shè)置,則可以通過(guò)“屬性”菜單命令來(lái)設(shè)置。圖11-6 “Internet信息服務(wù)”對(duì)話框(2)虛擬目錄是物理上未包含在主目錄中的目錄,但可使客戶(hù)端瀏覽器認(rèn)為是包含

11、在主目錄中的目錄。設(shè)定虛擬目錄的步驟如下:(1) 用鼠標(biāo)右鍵單擊“默認(rèn)Web站點(diǎn)”,在彈出的快捷菜單中選擇“新建”“虛擬目錄”菜單命令,彈出“虛擬目錄創(chuàng)建向?qū)А睂?duì)話框,如圖11-7所示。(2) 單擊“下一步”按鈕,彈出如圖11-8所示對(duì)話框,在“別名”文本框中輸入虛擬目錄別名,本例的輸入為“website”,這個(gè)名稱(chēng)是訪問(wèn)網(wǎng)頁(yè)時(shí)需要輸入的名稱(chēng)。圖11-7 歡迎界面圖11-8 虛擬目錄別名界面(3) 單擊“下一步”按鈕,彈出如圖11-9所示的對(duì)話框。單擊“瀏覽”按鈕,選擇虛擬目錄的路徑。(4) 單擊“下一步”按鈕,彈出如圖11-10所示的對(duì)話框。在這個(gè)界面上,可以進(jìn)行權(quán)限的設(shè)置,為了保證網(wǎng)站的安

12、全,讀者只需選擇前3個(gè)選項(xiàng)就可以了。圖11-9 選擇Web站點(diǎn)目錄界面圖11-10 設(shè)置訪問(wèn)權(quán)限界面 (5) 單擊“下一步”按鈕,彈出如圖11-11所示的對(duì)話框,單擊“完成”按鈕,便完成了虛擬目錄的設(shè)定。圖11-11 完成虛擬目錄設(shè)定界面虛擬目錄設(shè)置只是網(wǎng)站管理的開(kāi)始,要對(duì)網(wǎng)站進(jìn)行更加詳細(xì)的設(shè)置,還需要通過(guò)“屬性”對(duì)話框來(lái)設(shè)置。在“默認(rèn)Web站點(diǎn)”上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中單擊“屬性”菜單命令,彈出“默認(rèn)Web站點(diǎn)屬性”對(duì)話框,如圖11-12所示。在“Web站點(diǎn)”選項(xiàng)卡中各選項(xiàng)值可選默認(rèn)值,其中較重要的一個(gè)選項(xiàng)是“TCP端口”,默認(rèn)的端口為“80”,因此用戶(hù)輸入U(xiǎn)RL:“http:/l

13、ocalhost”和輸入U(xiǎn)RL:“http:/localhost:80”的結(jié)果是一樣的。但是如果把端口號(hào)改為8080,則訪問(wèn)時(shí)就需要輸入端口號(hào)了,如“http:/localhost:8080”。通過(guò)設(shè)置不同的端口號(hào),可以在同一臺(tái)計(jì)算機(jī)上安裝多個(gè)服務(wù)器。圖11-12 “默認(rèn)Web站點(diǎn)屬性”對(duì)話框單擊“主目錄”選項(xiàng)卡,進(jìn)入“主目錄”屬性頁(yè),如圖11-13所示,在該屬性頁(yè)中通常采用默認(rèn)的設(shè)定,最主要的是“本地路徑”的設(shè)定。圖11-13 “主目錄”屬性頁(yè)用戶(hù)可以對(duì)應(yīng)用程序進(jìn)一步配置,單擊“配置”按鈕,彈出“應(yīng)用程序配置”對(duì)話框,如圖11-14所示。圖11-14 “應(yīng)用程序配置”對(duì)話框在該對(duì)話框的“應(yīng)用

14、程序選項(xiàng)”屬性頁(yè)中有幾個(gè)重要的設(shè)定,其中要選中“啟動(dòng)父路徑”(通常在HTML文件里,要訪問(wèn)“父路徑”,可以用“./”來(lái)表示,但是如果不選中該選項(xiàng),可能訪問(wèn)不了父路徑)。同時(shí)“默認(rèn)ASP語(yǔ)言”設(shè)置為“VBScript”(讀者也可以設(shè)置為“JScript”),設(shè)置默認(rèn)語(yǔ)言后,在ASP編程中,就不需要額外聲明了。設(shè)定“ASP腳本超時(shí)”一項(xiàng)的默認(rèn)值是90秒,也就是當(dāng)一個(gè)ASP網(wǎng)頁(yè)的執(zhí)行時(shí)間超過(guò)90秒時(shí),就會(huì)停止。在如圖11-12所示的對(duì)話框中單擊“文檔”選項(xiàng)卡,則進(jìn)入“文檔”屬性頁(yè),如圖11-15所示。圖11-15 “文檔”屬性頁(yè)在圖11-15中,可以看到“啟動(dòng)默認(rèn)文檔”選項(xiàng),列表中有“Default

15、.htm”、“Default.asp”等文件名,這是為了訪問(wèn)網(wǎng)頁(yè)方便而設(shè)置的,當(dāng)用戶(hù)訪問(wèn)一個(gè)虛擬路徑的時(shí)候,如果該目錄下面包含“默認(rèn)文檔”中所列的文件,則會(huì)自動(dòng)顯示該頁(yè)內(nèi)容(顯示的優(yōu)先權(quán)自上而下排列),如用戶(hù)輸入“http:/localhost/website”和輸入“http:/localhost/website/default.htm”的結(jié)果是一樣的。11.2.3 ASP程序的運(yùn)行在計(jì)算機(jī)上成功地安裝了Web服務(wù)器并將編制好的ASP文件存放在Web站點(diǎn)所對(duì)應(yīng)的主目錄上之后,就可以在瀏覽器中運(yùn)行該ASP程序了。在瀏覽器的地址欄中輸入正確的URL地址,其格式如下:http:/localhost

16、/虛擬目錄名/文件名稱(chēng)(包括擴(kuò)展名)其中,“l(fā)ocalhost”是指本機(jī),可用具體的域名代替。如果程序存放在主目錄中則不用虛擬目錄名。例如,在瀏覽器中運(yùn)行前面的myfirst.asp文件(該文件已存在于“d:教材實(shí)例”目錄下),就可以在IE地址欄中輸入http:/localhost/website/myfirst.asp,就會(huì)出現(xiàn)圖11-1所示的結(jié)果。11.3 ASP的內(nèi)置對(duì)象ASP提供了可在腳本中使用的內(nèi)置對(duì)象,這些對(duì)象使用戶(hù)非常容易收集通過(guò)瀏覽器請(qǐng)示發(fā)送的信息,響應(yīng)瀏覽器以及存儲(chǔ)用戶(hù)信息,從而使開(kāi)發(fā)者擺脫了很多繁瑣的工作。11.3.1 Response對(duì)象Response對(duì)象是ASP中一個(gè)

17、重要的內(nèi)置對(duì)象,對(duì)應(yīng)于Web服務(wù)器端的HTTP響應(yīng),用于向客戶(hù)端瀏覽器輸出指定信息。使用Response對(duì)象可以實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建Web頁(yè)面,對(duì)客戶(hù)端請(qǐng)求重定向以及向客戶(hù)端寫(xiě)入Cookie等功能。Response對(duì)象的語(yǔ)法為:Response.collectionpropertymethod其中,collection、property、method分別表示Response對(duì)象的集合、屬性和方法。對(duì)于這三個(gè)參數(shù),只能選擇其中之一。1. Response對(duì)象的屬性表11-1列出了Response對(duì)象的屬性。表11-1 Response對(duì)象的屬性屬 性功 能BufferCacheControlCharse

18、tContentTypeExpiresExpiresAbsoluteIsClientConnectedPicsStatus指定頁(yè)面的輸出是否被緩沖控制是否允許代理服務(wù)器緩存頁(yè)面將字符集名稱(chēng)添加到Response對(duì)象的ContentType標(biāo)題后面指定所響應(yīng)的HTTP內(nèi)容類(lèi)型瀏覽器中所緩存頁(yè)面的超時(shí)時(shí)間間隔指定瀏覽器緩存頁(yè)面的具體超時(shí)日期和時(shí)間表明客戶(hù)端是否與服務(wù)器端保持連接用于設(shè)置頁(yè)面的Pics標(biāo)簽,Pics標(biāo)簽可以指明頁(yè)面的內(nèi)容級(jí)別用于傳遞Web服務(wù)器HTTP響應(yīng)的狀態(tài)2. Response對(duì)象的方法Response對(duì)象的方法如表11-2所示。表11-2 Response對(duì)象的方法方 法功

19、能AddHeaderAppendToLogBinaryWriteClearEndFlushRedirectWrite向所輸出的HTML頁(yè)面添加自定義HTTP頭(Header)在Web服務(wù)器的日志文件中追加記錄按字節(jié)格式向客戶(hù)端瀏覽器輸出數(shù)據(jù),不進(jìn)行任何字符集的轉(zhuǎn)換清除服務(wù)器中緩存的Web頁(yè)面數(shù)據(jù)停止處理.asp文件并返回當(dāng)前的結(jié)果立即發(fā)送緩沖中的數(shù)據(jù)對(duì)當(dāng)前頁(yè)面進(jìn)行重定向,嘗試連接另外一個(gè)URL直接向客戶(hù)端瀏覽器輸出數(shù)據(jù)3. Response對(duì)象的數(shù)據(jù)集合Response對(duì)象只有一個(gè)數(shù)據(jù)集合Cookies。Cookies是Web服務(wù)器通過(guò)瀏覽器在客戶(hù)機(jī)硬盤(pán)上所存儲(chǔ)的一些小文件(稱(chēng)為Cookie文

20、件),這些文件可以包含用戶(hù)的一些個(gè)人信息,如用戶(hù)名、密碼、在網(wǎng)站上所執(zhí)行的操作等。當(dāng)同一客戶(hù)端瀏覽器再次訪問(wèn)該Web服務(wù)器時(shí),會(huì)將本地硬盤(pán)中的這些Cookie傳給服務(wù)器。例11-2 使用Response對(duì)象的Redirect方法,使同一個(gè)ASP程序可以根據(jù)客戶(hù)的具體情況產(chǎn)生不同的響應(yīng),為不同的客戶(hù)或不同的情況指定不同的頁(yè)面,該實(shí)例包括三個(gè)文件:Redirect.asp、work.htm和rest.htm。 (1) Redirect.asp的代碼如下:=8 and dtmhour(2) work.htm文件的代碼如下:您好(3) rest.htm文件的代碼如下:對(duì)不起,現(xiàn)在休息,請(qǐng)上班時(shí)間訪問(wèn)!

21、上例在不同的時(shí)間的訪問(wèn)結(jié)果如圖11-16所示。圖11-16 Response.redirect的示例11.3.2 Request對(duì)象Request對(duì)象用于在Web服務(wù)器端收集用戶(hù)通過(guò)HTTP傳送的所有信息,如HTML表單用POST或GET方式所提交的數(shù)據(jù)、存儲(chǔ)在客戶(hù)端的Cookies數(shù)據(jù)等,是ASP中最常用的對(duì)象之一。從功能上看,Request與Response正好相反。在ASP中,Request對(duì)象負(fù)責(zé)收集用戶(hù)信息,而Response對(duì)象負(fù)責(zé)向用戶(hù)端發(fā)送信息,通過(guò)這兩個(gè)對(duì)象的靈活運(yùn)用,可以實(shí)現(xiàn)用戶(hù)和服務(wù)器端的交互,實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)。Request對(duì)象的語(yǔ)法如下:Request. collecti

22、onpropertymethod(variable)其中,collection、property、method分別表示Request對(duì)象的集合、屬性和方法,這三個(gè)參數(shù)只能選擇其中之一,也可以什么都不選。Variable是一些字符串,這些字符串指定要從集合中檢索的項(xiàng)目或作為方法與屬性的輸入。1. Request對(duì)象的屬性Request對(duì)象只有一個(gè)屬性TotalBytes,這是一個(gè)只讀屬性,表示從客戶(hù)端所接收數(shù)據(jù)的字節(jié)大小。在動(dòng)態(tài)網(wǎng)頁(yè)中,人們所關(guān)注的是客戶(hù)端傳遞的具體信息而非整個(gè)字符串的長(zhǎng)度,因此本屬性很少使用。語(yǔ)法格式如下:字節(jié)長(zhǎng)度=Request.TotalBytes2. Request對(duì)象的

23、方法Request對(duì)象只提供一種方法BinaryRead,該方法以二進(jìn)制方式讀取客戶(hù)端用POST方式所傳遞的數(shù)據(jù)。其語(yǔ)法格式如下:Variant 數(shù)組=Request.BinaryRead(Count)其中,參數(shù)Count是一個(gè)整型數(shù)據(jù),表示每次讀取數(shù)據(jù)的字節(jié)大小,范圍介于0到Request對(duì)象的TotalBytes屬性所取得的字節(jié)大小之間。如果程序中已經(jīng)引用Request.Form集合,就不能使用本方法了。反之,如果已經(jīng)使用了BinaryRead方法,就不能訪問(wèn)Request.Form集合了。3. Request對(duì)象的數(shù)據(jù)集合Request對(duì)象將用戶(hù)通過(guò)HTTP傳送信息保存在幾個(gè)集合中,其語(yǔ)

24、法格式如下:Request. Collection(variable)其中,collection指定Request對(duì)象的數(shù)據(jù)集合,variable指定變量名。Request對(duì)象的數(shù)據(jù)集合如表11-3所示。表11-3 Request對(duì)象的數(shù)據(jù)集合集 合功 能ClientCertificateCookiesFormQueryStringServerVariables取得客戶(hù)端的身份權(quán)限數(shù)據(jù)取得存儲(chǔ)于客戶(hù)端的Cookies數(shù)據(jù)取得客戶(hù)端利用POST方式所傳遞的數(shù)據(jù)取得客戶(hù)端利用HTTP查詢(xún)字符串所傳遞的數(shù)據(jù)和GET方式所傳遞的數(shù)據(jù)取得Web服務(wù)器端的環(huán)境變量信息例11-3 應(yīng)用Reponse和Req

25、uest兩個(gè)對(duì)象設(shè)計(jì)用戶(hù)登錄程序。通常用戶(hù)登錄需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,這些內(nèi)容在本書(shū)后面章節(jié)中會(huì)詳細(xì)加以介紹。本實(shí)例包括3個(gè)ASP程序。(1) 登錄頁(yè)面(userlogin.asp)的代碼如下: 用戶(hù)登錄 請(qǐng)輸入用戶(hù)名和密碼 用戶(hù)名:INPUT type=INPUT name=Username size=10 value= 密碼 在程序中,利用服務(wù)器腳本獲取其他網(wǎng)頁(yè)所傳遞的兩個(gè)QueyrString參數(shù):username和msg,這兩個(gè)參數(shù)的值會(huì)反映用戶(hù)登錄的不同情況。其中,username表示用戶(hù)名,msg表示登錄后的提示信息。(2) 用戶(hù)驗(yàn)證。當(dāng)用戶(hù)填寫(xiě)了登錄信息后,將提交給userdeal

26、.asp文件進(jìn)行處理。在該文件中,將對(duì)文件名和密碼進(jìn)行驗(yàn)證,并根據(jù)驗(yàn)證結(jié)果進(jìn)行相應(yīng)的處理。程序代碼如下: (3) main.asp頁(yè)面。當(dāng)用戶(hù)輸入不同的信息時(shí),處理方式會(huì)有所不同。當(dāng)輸入信息不正確時(shí),將返回userlogin.asp 頁(yè)面,并給出具體提示信息。如果用戶(hù)通過(guò)了登錄驗(yàn)證,將轉(zhuǎn)向main.asp頁(yè)面,代碼如下:%user=Request.QueryString(user)Response.Write 歡迎 &user & 訪問(wèn)本網(wǎng)站!%不同登錄情況的顯示效果如圖11-17所示。圖11-17 不同登錄情況的顯示效果11.3.3 Session對(duì)象Session對(duì)象是ASP技術(shù)中非常重要

27、的對(duì)象,是實(shí)現(xiàn)用戶(hù)會(huì)話管理的重要手段,是編寫(xiě)有關(guān)Web應(yīng)用程序的常用工具。Session指的是用戶(hù)從到達(dá)某個(gè)站點(diǎn)直到離開(kāi)為止的一段時(shí)間內(nèi),服務(wù)器分配給用戶(hù)的一個(gè)存儲(chǔ)信息的全局變量的集合,這些變量可以是自動(dòng)生成的,也可以是編程者在服務(wù)端腳本程序中定義的。與Application對(duì)象不同,即使有很多用戶(hù)同時(shí)訪問(wèn)一個(gè)Web服務(wù)器的同一個(gè)ASP程序,他們的Session對(duì)象的內(nèi)容亦是不同的。1. Session對(duì)象的集合Session對(duì)象的集合包括Contents和StaticObjects。1) Contents集合Contents集合是ASP程序利用Session對(duì)象所定義的所有變量的集合。與St

28、aticObjects集合相比,Contents集合中的Session不使用標(biāo)記進(jìn)行定義,其語(yǔ)法格式如下:Session.Content(Key)其中,Key指明了Session變量的名稱(chēng),由于Contents集合是Session所默認(rèn)的集合,也可使用下面的代碼訪問(wèn)Contents集合:Session(key)2) StaticObjects集合StaticObjects集合包含在Global.asa文件中使用標(biāo)記創(chuàng)建的所有Session級(jí)對(duì)象和變量。Global.asa文件對(duì)于網(wǎng)站應(yīng)用程序來(lái)說(shuō)是一個(gè)非常重要的文件,可以在該文件中指定事件腳本,并聲明具有會(huì)話和應(yīng)用程序作用域的對(duì)象,有關(guān)該文件的

29、詳細(xì)內(nèi)容,可參考相關(guān)資料。標(biāo)記是一個(gè)HTML標(biāo)記,不能將其放在標(biāo)記內(nèi)。利用標(biāo)記創(chuàng)建對(duì)象的一般語(yǔ)法為其中,SCOPE說(shuō)明該對(duì)象的使用范圍,在Global.asa文件中有兩個(gè)取值:Application或Session,當(dāng)指定為Session時(shí),就創(chuàng)建了一個(gè)Session對(duì)象,ID用于指定創(chuàng)建對(duì)象實(shí)例時(shí)的名字;PROGID是與類(lèi)標(biāo)識(shí)相關(guān)的標(biāo)識(shí);CLASSID用于指定COM類(lèi)對(duì)象的唯一標(biāo)識(shí)。2. Session對(duì)象的屬性Session對(duì)象所具有的屬性如表11-4所示。表11-4 Session對(duì)象的屬性屬性功能CodePageLCIDSessionIDTimeOut用于指定在瀏覽器頁(yè)面中顯示內(nèi)容時(shí)所

30、使用的代碼頁(yè),代碼頁(yè)與字符集相對(duì)應(yīng)設(shè)置現(xiàn)場(chǎng)標(biāo)識(shí)?,F(xiàn)場(chǎng)是與用戶(hù)語(yǔ)言相關(guān)的一組用戶(hù)首選項(xiàng)信息,決定如何格式化日期和時(shí)間、項(xiàng)目以及如何按字母排序和如何比較字符串等返回用戶(hù)的Session標(biāo)識(shí)指定Session的超時(shí)時(shí)間3. Session對(duì)象的方法Session對(duì)象的方法見(jiàn)表11-5。表11-5 Session對(duì)象的方法方法名功能AbandonContents.Remove(item)Contents.RemoveAll完成目前的網(wǎng)頁(yè)之后便結(jié)束Session對(duì)象從Contents集合內(nèi)刪除item所指定的變量,item可以是字符串或整數(shù),若item為整數(shù),那么這個(gè)整數(shù)所代表的是索引值刪除Conten

31、ts集合內(nèi)的所有變量4. Session對(duì)象的事件Session對(duì)象有兩個(gè)對(duì)象:Session_OnEnd和Session_OnStart。這兩個(gè)事件的代碼必須放在Global.asa文件中,其語(yǔ)法如下:sub Session_Onstart事件的處理程序代碼End Subsub Session_OnEnd事件的處理程序代碼End Sub例11-4 使用Session對(duì)象編寫(xiě)計(jì)數(shù)器,程序代碼如下:session應(yīng)用舉例session變量您是第次來(lái)訪!打開(kāi)瀏覽器,執(zhí)行程序,顯示“您是第1次來(lái)訪!”,如圖11-18所示。單擊“刷新”按鈕,可以看到來(lái)訪次數(shù)增加。重新打開(kāi)瀏覽器,再次執(zhí)行該程序,仍然顯

32、示“您是第1次來(lái)訪!”。這是因?yàn)槊總€(gè)瀏覽器都有自己的Session對(duì)象。圖11-18 使用Session對(duì)象編寫(xiě)的計(jì)數(shù)器程序11.3.4 Application對(duì)象Application對(duì)象是Web應(yīng)用程序級(jí)的一個(gè)對(duì)象,Web應(yīng)用程序是指Web站點(diǎn)某個(gè)虛擬目錄及其下的子目錄所包含的網(wǎng)頁(yè)和腳本程序的集合,通常由相互關(guān)聯(lián)的.html文件、.asp文件和Global.asa文件組成。每個(gè)Web站點(diǎn)可以設(shè)置多個(gè)虛擬目錄,也就是說(shuō),每個(gè)Web站點(diǎn)上可以有多個(gè)Web應(yīng)用程序。Application所包含的數(shù)據(jù)可被應(yīng)用程序級(jí)的所有用戶(hù)使用,并且可以在網(wǎng)站運(yùn)行期間持久保存,因此Application對(duì)象特別適

33、合在應(yīng)用程序的不同用戶(hù)之間傳遞信息。例如,利用Application對(duì)象可以統(tǒng)計(jì)網(wǎng)站的在線人數(shù)、創(chuàng)建多用戶(hù)游戲及多用戶(hù)聊天室等,其功能類(lèi)似于一般程序設(shè)計(jì)語(yǔ)言中的“全局變量”。Application對(duì)象和Session對(duì)象有很多相似之處,它們的功能都是在不同的ASP頁(yè)面之間共享信息。兩者的區(qū)別主要有以下幾點(diǎn):(1) 應(yīng)用范圍不同。Application對(duì)象針對(duì)應(yīng)用程序的所有用戶(hù),可以被多個(gè)用戶(hù)共享。從一個(gè)用戶(hù)那里接收到的Application變量可以傳遞給其他用戶(hù)。而Session對(duì)象則是針對(duì)單一用戶(hù)的,用戶(hù)無(wú)法訪問(wèn)其他用戶(hù)的Session變量。(2) 存活時(shí)間不同。由于Application變

34、量可由多個(gè)用戶(hù)共享,因此不會(huì)因?yàn)槟硞€(gè)用戶(hù)甚至全部用戶(hù)的離開(kāi)而消失,一旦建立了Application變量,它就會(huì)一直存在,直到網(wǎng)站關(guān)閉。而Session變量會(huì)隨著用戶(hù)離開(kāi)網(wǎng)站而被自動(dòng)刪除。Application對(duì)象的語(yǔ)法格式為Application.collection | method其中,collection、method分別表示Application對(duì)象的集合和方法,這兩個(gè)參數(shù)只能選擇其中之一。Application對(duì)象包含許多的集合、方法和事件,但是它沒(méi)有屬性,這點(diǎn)與其他的ASP內(nèi)置對(duì)象有很大的區(qū)別。1. Application對(duì)象的集合Application對(duì)象有兩個(gè)集合:Conten

35、ts集合和StaticObjects集合。Contents集合允許Web應(yīng)用程序訪問(wèn)所有未使用標(biāo)記所創(chuàng)建的Application變量和對(duì)象。語(yǔ)法格式如下:Application.Contents(Key)其中,Key指明了Application變量的名稱(chēng)。由于Contents集合是Application所默認(rèn)的集合,也可以使用下面的代碼訪問(wèn)Contents集合。Application(Key)StaticObjects集合可以獲取在Global.asa文件中以標(biāo)記建立的對(duì)象和變量,使用時(shí)其語(yǔ)法格式如下:Application. StaticObjects(Key)其中,(Key)指定對(duì)象變量的

36、名稱(chēng)。2. Application對(duì)象的方法由于Application對(duì)象中的變量可以被多個(gè)用戶(hù)訪問(wèn),當(dāng)多個(gè)用戶(hù)同時(shí)修改一個(gè)Application變量時(shí)可能出現(xiàn)數(shù)據(jù)不一致的錯(cuò)誤。Application對(duì)象提供了Lock和Unlock兩種方法來(lái)保證多個(gè)用戶(hù)無(wú)法同時(shí)改變某一個(gè)Application變量。Lock方法鎖定Application對(duì)象,這時(shí)只允許當(dāng)前用戶(hù)存取Application變量而禁止其他用戶(hù)操作。也就是說(shuō),在同一時(shí)刻只有一個(gè)用戶(hù)可以對(duì)Application變量進(jìn)行操作,保證了數(shù)據(jù)的一致性和完整性。Unlock方法用于解除用戶(hù)對(duì)Application對(duì)象的鎖定,允許其他用戶(hù)對(duì)Appl

37、ication變量進(jìn)行修改。如果用戶(hù)沒(méi)有明確地調(diào)用Unlock方法,則服務(wù)器將在ASP文件結(jié)束或超時(shí)后解鎖,其語(yǔ)法格式如下:Application.LockApplication.UnLock3. Application對(duì)象的事件Application對(duì)象有兩個(gè)事件:Application_OnEnd和Application_OnStar。這兩個(gè)事件的處理過(guò)程在Global.asa文件中創(chuàng)建。OnStar事件對(duì)應(yīng)于Application對(duì)象的開(kāi)始事件,只在第一個(gè)用戶(hù)第一次請(qǐng)求應(yīng)用程序時(shí)發(fā)生一次,在隨后的其他請(qǐng)求過(guò)程中不再激活,主要用于變量初始化、創(chuàng)建對(duì)象和執(zhí)行指定代碼。OnEnd事件對(duì)應(yīng)于Ap

38、plication對(duì)象的結(jié)束事件,在Web服務(wù)器被關(guān)閉時(shí)才發(fā)生,同樣也只發(fā)生一次。當(dāng)它被觸發(fā)時(shí),應(yīng)用程序的所有變量也被相應(yīng)地取消。例11-5 使用Application對(duì)象編寫(xiě)計(jì)數(shù)器程序,如圖11-19所示。圖11-19 使用Application對(duì)象編寫(xiě)的計(jì)數(shù)器程序程序代碼如下:applicaiton應(yīng)用舉例Application變量您是第位來(lái)客說(shuō)明:(1) 多次打開(kāi)瀏覽器,運(yùn)行程序,可以看到Application變量值的改變。(2) Application對(duì)象的生命周期是在服務(wù)器運(yùn)行期間,因此當(dāng)虛擬服務(wù)器關(guān)機(jī)后Application變量將會(huì)丟失。想保留變量的值,需要用到文件系統(tǒng)的概念,此內(nèi)

39、容可參考有關(guān)資料。11.3.5 Server對(duì)象在ASP中,當(dāng)處理Web服務(wù)器上的特定任務(wù),特別是一些與服務(wù)器的環(huán)境和處理活動(dòng)有關(guān)的任務(wù)時(shí),需要用到Server對(duì)象。Server對(duì)象通過(guò)屬性和方法來(lái)訪問(wèn)Web服務(wù)器,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)、網(wǎng)頁(yè)、外部對(duì)象、組件的管理。其語(yǔ)法格式為Sperty | method其中,property和method分別表示Server對(duì)象的屬性和方法,這兩個(gè)參數(shù)只能選擇其中之一。1. Server對(duì)象的屬性Server對(duì)象只有ScriptTimeout一個(gè)屬性,用于設(shè)置ASP腳本所允許的最長(zhǎng)執(zhí)行時(shí)間。如果在指定的時(shí)間內(nèi)腳本沒(méi)有執(zhí)行完畢,系統(tǒng)將停止其執(zhí)行,并且顯示超時(shí)錯(cuò)誤。

40、其相應(yīng)的語(yǔ)法如下:Server.ScriptTimeou=NumSeconds其中,NumSeconds是以秒為單位,缺省時(shí)間是90秒。該設(shè)置時(shí)間的語(yǔ)句必須出現(xiàn)在ASP腳本之前,否則將不起作用。2. Server對(duì)象的方法Server對(duì)象常用的方法有以下兩種:(1) CreateObject方法。CreateObject方法是Server對(duì)象中最重要、最常用的方法,用于創(chuàng)建一個(gè)已經(jīng)在服務(wù)器上注冊(cè)的服務(wù)器組件(ActiveX控件)實(shí)例,包括所有的ASP內(nèi)置的組件和第三方提供的ActiveX組件。組件只有在創(chuàng)建了實(shí)例以后才可以使用,這些組件擴(kuò)展了ASP的功能。其語(yǔ)法格式如下:Server.Crea

41、teObject(progID)其中,progID是指定的組件的標(biāo)識(shí),其格式為出版商名.組件名.版本號(hào)例如,創(chuàng)建一個(gè)ADODB組件的實(shí)例,可以使用下述代碼:(2) MapPath方法。MapPath方法可以將所指定的相對(duì)路徑或虛擬路徑轉(zhuǎn)換為服務(wù)器上相應(yīng)的物理路徑,當(dāng)需要物理路徑來(lái)操作服務(wù)器上的目錄或文件時(shí),常用本方法。其語(yǔ)法格式如下:Server.MapPath(path)其中,path用于指定相對(duì)路徑或虛擬路徑。如果Path以字符“”或“/”開(kāi)始,說(shuō)明Path是一個(gè)完整路徑(由網(wǎng)站的根目錄開(kāi)始);如果Path不以字符“”或“/”開(kāi)始,說(shuō)明Path所指定的路徑是相對(duì)于當(dāng)前ASP文件所在的路徑。

42、例11-6 應(yīng)用Server對(duì)象的MapPath方法轉(zhuǎn)換路徑,代碼格式如下:Server對(duì)象的MapPath方法轉(zhuǎn)換路徑 Server對(duì)象的MapPath方法轉(zhuǎn)換路徑 % Response.write 服務(wù)器的根目錄是: Response.write &Server.MapPath(/)& Response.write 當(dāng)前目錄的上層目錄是: Response.write &Server.MapPath(./)& Response.write 當(dāng)前目錄是: Response.write &Server.MapPath(./)& Response.write 當(dāng)前的文件是: Response.w

43、rite &Server.MapPath(mappath.asp)&% 其運(yùn)行結(jié)果如圖11-20所示。圖11-20 使用MapPath方法轉(zhuǎn)換路徑(3) HTMLEncode方法。HTMLEncode方法用于對(duì)指定的字符串進(jìn)行HTML編碼,從而使該字符串以所需的形式顯示出來(lái)。其語(yǔ)法格式如下:Server.HTMLEncode(HtmlString)其中,HtmlString是需要進(jìn)行編碼的字符串。當(dāng)ASP程序向客戶(hù)端瀏覽器輸出HTML標(biāo)記時(shí),瀏覽器就將其自動(dòng)解釋為HMTL標(biāo)記,并按照標(biāo)記所指定的格式顯示在瀏覽器上。如果想在瀏覽器中原樣輸出HMTL標(biāo)記符,即瀏覽器不對(duì)這些標(biāo)記進(jìn)行解釋?zhuān)梢允褂帽?/p>

44、方法。例11-7 使用HTMLEncode方法在網(wǎng)頁(yè)中顯示HTML語(yǔ)言的標(biāo)簽。程序執(zhí)行結(jié)果如圖11-21所示。圖11-21 使用HTMLEncode方法程序代碼如下:%Response.Write 表單的基本格式:Response.Write Server.HTMLEncode()&Response.Write .Response.Write Server.HTMLEncode()&%(4) URLEncode方法URLEncode方法將所指定的字符串進(jìn)行URL編碼,其語(yǔ)法格式如下:Server.URLEncode(string)其中,string指定要編碼的字符串。當(dāng)字符串?dāng)?shù)據(jù)以URL的形式

45、傳遞到服務(wù)器時(shí),在字符串中不允許出現(xiàn)空格或其他特殊字符(如“&”、“#”等)。如果確實(shí)需要傳送這些特殊字符,可以用Server.URLEncode方法對(duì)這些字符串進(jìn)行URL編碼。例如,QueryString的參數(shù)值包含空格:aspfile可將上面的代碼改為A HREF aspfile.asp?par=aspfile 11.4 ADO技術(shù)11.4.1 ASP與數(shù)據(jù)庫(kù)ASP程序?qū)?shù)據(jù)庫(kù)的訪問(wèn)過(guò)程是:客戶(hù)端瀏覽器向Web服務(wù)器提出ASP頁(yè)面文件請(qǐng)求(包括數(shù)據(jù)庫(kù)操作),服務(wù)器對(duì)該頁(yè)面進(jìn)行解釋?zhuān)⒃诜?wù)器端運(yùn)行,完成數(shù)據(jù)庫(kù)操作,再把數(shù)據(jù)庫(kù)操作結(jié)果所生成的網(wǎng)頁(yè)返回瀏覽器,瀏覽器將該網(wǎng)頁(yè)內(nèi)容顯示在客戶(hù)端。A

46、SP通過(guò)一組ADO(ActiveX Data Object,ActiveX數(shù)據(jù)對(duì)象)對(duì)象模塊來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。ADO對(duì)象是ASP中最重要的內(nèi)置組件,是構(gòu)建ASP數(shù)據(jù)庫(kù)應(yīng)用程序的核心,它集中體現(xiàn)了ASP技術(shù)豐富而靈活的數(shù)據(jù)庫(kù)訪問(wèn)功能。ADO是在OLE DB技術(shù)的基礎(chǔ)上實(shí)現(xiàn)的。OLE DB(Object Linking and Embedding DataBase,對(duì)象鏈接與嵌入數(shù)據(jù)庫(kù))是微軟公司為適應(yīng)數(shù)據(jù)庫(kù)技術(shù)迅速發(fā)展而開(kāi)發(fā)的新一代數(shù)據(jù)訪問(wèn)編程接口,它提供一套標(biāo)準(zhǔn)COM接口。只要安裝相應(yīng)的OLE DB驅(qū)動(dòng)程序,就可以訪問(wèn)各種數(shù)據(jù)源,包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型數(shù)據(jù)庫(kù)和其他一些數(shù)據(jù),如Excel電

47、子表格中的數(shù)據(jù)、電子郵件等。在OLE DB中,數(shù)據(jù)的交換是在數(shù)據(jù)使用者(Data Consumer)和數(shù)據(jù)提供者(Data Provider)之間進(jìn)行的。數(shù)據(jù)使用者是指從OLE DB接口中取得數(shù)據(jù)的應(yīng)用程序,而數(shù)據(jù)提供者則負(fù)責(zé)提供OLE DB的接口,使得被訪問(wèn)的數(shù)據(jù)可以被存取。OLE DB技術(shù)是相當(dāng)復(fù)雜的,連接應(yīng)用程序和OLE DB的橋梁就是ADO對(duì)象。ADO是一個(gè)OLE DB的使用者,它提供了對(duì)OLE DB數(shù)據(jù)源的應(yīng)用程序級(jí)訪問(wèn)。在ASP中,可以利用ADO通過(guò)OLE DB的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序而直接訪問(wèn)數(shù)據(jù)庫(kù),也可以編寫(xiě)緊湊簡(jiǎn)明的腳本以便連接到與ODBC兼容的數(shù)據(jù)庫(kù)。ASP、ADO、OLE DB與

48、各種數(shù)據(jù)庫(kù)之間的關(guān)系如圖11-22所示。圖11-22 ASP、ADO、OLE DB與各種數(shù)據(jù)庫(kù)之間的關(guān)系從圖11-22中可以看出,ASP是通過(guò)ADO對(duì)象來(lái)執(zhí)行對(duì)數(shù)據(jù)庫(kù)的操作的,而ADO又可以通過(guò)ODBC或直接使用OLE DB兩種方式與數(shù)據(jù)庫(kù)建立通信。從執(zhí)行效率來(lái)看,ODBC與數(shù)據(jù)庫(kù)通信所需的環(huán)節(jié)明顯多于直接使用OLE DB,因此,在ASP程序中應(yīng)更多地使用后者來(lái)操作數(shù)據(jù)庫(kù)。ADO是一種既易于使用又可擴(kuò)充的技術(shù),用戶(hù)可以非常容易地在ASP頁(yè)面中通過(guò)ADO來(lái)操作數(shù)據(jù)庫(kù)。無(wú)論哪種數(shù)據(jù)庫(kù),通過(guò)ADO對(duì)象對(duì)其進(jìn)行訪問(wèn)的方法基本相同,只是在與數(shù)據(jù)庫(kù)的最初連接上稍有差別。11.4.2 ODBC的設(shè)置假設(shè)欲創(chuàng)

49、建一個(gè)與已有數(shù)據(jù)庫(kù)相連的DSN,該數(shù)據(jù)庫(kù)用SQL Server 2000創(chuàng)建,服務(wù)器名為pdf,sa密碼為123,數(shù)據(jù)庫(kù)名為student。其操作步驟如下:(1) 在“控制面板”中打開(kāi)“管理工具”項(xiàng),選擇打開(kāi)“數(shù)據(jù)源(ODBC)”,并選擇“系統(tǒng)DSN”選項(xiàng)。(2) 單擊“添加”按鈕,在彈出的“創(chuàng)建新數(shù)據(jù)源”窗口中選擇“SQL Server”。單擊“完成”按鈕,出現(xiàn)“創(chuàng)建到SQL Server的新數(shù)據(jù)源”窗口,如圖11-23所示。圖11-23 “創(chuàng)建到SQL Server的新數(shù)據(jù)源”窗口(3) 在該窗口中“名稱(chēng)”文本框中,輸入ODBC數(shù)據(jù)源的名稱(chēng)(DSN),如stusql。根據(jù)實(shí)際需要在“描述”

50、文本框中指定數(shù)據(jù)源的描述信息。在“服務(wù)器”文本框中指定該SQL Server服務(wù)器的名稱(chēng),服務(wù)器的名稱(chēng)可以使用計(jì)算機(jī)名,也可以用IP地址,這里輸入pdf。單擊“下一步”按鈕,彈出“創(chuàng)建到SQL Server的新數(shù)據(jù)源”SQL Server身份驗(yàn)證窗口,如圖11-24所示。圖11-24 SQL Server身份驗(yàn)證窗口(4) 選擇單選項(xiàng)“使用用戶(hù)輸入登錄ID和密碼的SQL Server驗(yàn)證”(要求SQL Server服務(wù)器設(shè)置為混合驗(yàn)證),并輸入用戶(hù)名sa和相應(yīng)的密碼,單擊“下一步”按鈕,彈出如圖11-25所示的窗口。圖11-25 指定默認(rèn)的數(shù)據(jù)庫(kù)等選項(xiàng)(5) 指定默認(rèn)的數(shù)據(jù)庫(kù)等選項(xiàng)后,單擊“下

51、一步”按鈕,彈出如圖11-26所示的窗口。圖11-26 指定日志文件等選項(xiàng)(6) 指定了日志文件等選項(xiàng)之后,單擊“完成”按鈕,彈出“ODBC Microsoft SQL Server安裝”窗口,如圖11-27所示。圖11-27 “ODBC Microsoft SQL Server安裝”的窗口(7) 單擊“測(cè)試數(shù)據(jù)源”按鈕,出現(xiàn)“SQL Server ODBC數(shù)據(jù)源測(cè)試”窗口。如果窗口中顯示“測(cè)試成功”,表示該數(shù)據(jù)源可以使用。最后單擊“確定”按鈕完成對(duì)該數(shù)據(jù)源的創(chuàng)建。11.4.3 ADO對(duì)象ADO包括7個(gè)對(duì)象和4個(gè)集合,其對(duì)象和集合的說(shuō)明見(jiàn)表11-6和表11-7。表11-6 ADO對(duì)象描述表11

52、-7 ADO集合描述1. Connection對(duì)象Connection對(duì)象用來(lái)在應(yīng)用程序和數(shù)據(jù)庫(kù)中建立一條數(shù)據(jù)傳輸線路,在此基礎(chǔ)上,可以使用Command對(duì)象及RecordSet對(duì)象來(lái)對(duì)Connection對(duì)象所連接的數(shù)據(jù)庫(kù)進(jìn)行插入、刪除、更新和查詢(xún)等操作。(1) Connection對(duì)象的屬性。Connection對(duì)象的常用屬性見(jiàn)表11-8。表11-8 Connection對(duì)象的常用屬性續(xù)表 (2) Connection對(duì)象的方法。Connection對(duì)象的常用方法見(jiàn)表11-9。表11-9 Connection對(duì)象的常用方法及描述(3) Open方法的詳細(xì)介紹。Open方法用于創(chuàng)建與數(shù)據(jù)源之

53、間的物理連接,在該方法成功完成后,連接才真正建立起來(lái),才能對(duì)數(shù)據(jù)源發(fā)出命令并且處理結(jié)果。其相應(yīng)的語(yǔ)法如下:Connection.Open connectionString, UserID, Password 其中,connectionString用于指定連接字符串,該參數(shù)是由分號(hào)分隔的一系列argument=value語(yǔ)句,用來(lái)定義諸如數(shù)據(jù)源提供者和數(shù)據(jù)源位置等參數(shù);UserID指定建立連接時(shí)所用的用戶(hù)名;Password指定連接時(shí)所用的密碼。在Connection對(duì)象的Open方法中,如何確定connectionString的內(nèi)容是實(shí)現(xiàn)正確連接數(shù)據(jù)庫(kù)的關(guān)鍵,現(xiàn)分為兩種情況加以討論。 通過(guò)OD

54、BC連接。在利用ODBC創(chuàng)建連接時(shí),對(duì)于不同情況,connectionString參數(shù)的設(shè)置也有所不同。 對(duì)于在“ODBC數(shù)據(jù)源管理器”中設(shè)置過(guò)的數(shù)據(jù)源,該參數(shù)設(shè)置比較簡(jiǎn)單,可以使用“DSN=數(shù)據(jù)源名稱(chēng)”的格式。利用該格式創(chuàng)建與數(shù)據(jù)源的連接,使用起來(lái)比較簡(jiǎn)單,由于不能在程序代碼中直接得到數(shù)據(jù)庫(kù)的具體位置和文件名,具有一定的安全性。其主要缺點(diǎn)是:當(dāng)數(shù)據(jù)庫(kù)移植到其他服務(wù)器時(shí),需要重新設(shè)置數(shù)據(jù)源。 對(duì)于沒(méi)有在“ODBC數(shù)據(jù)源管理器”中設(shè)置過(guò)的數(shù)據(jù)源,可以利用ODBC連接字符串來(lái)創(chuàng)建連接。為了提供向后兼容的功能,ODBC的OLE DB提供者支持ODBC連接字符串語(yǔ)法。常用的ODBC連接字符串如表11-

55、10所示。表11-10 常用的ODBC連接字符串 通過(guò)OLE DB建立連接。OLE DB作為新的數(shù)據(jù)訪問(wèn)編程接口,和ODBC不同之處在于,除提供了對(duì)關(guān)系型數(shù)據(jù)庫(kù)的訪問(wèn)以外,還擴(kuò)展了ODBC提供的功能,可以訪問(wèn)非關(guān)系型數(shù)據(jù)庫(kù)和其他一些資源。并且微軟官方宣稱(chēng)在性能方面OLE DB也要優(yōu)于ODBC。常用的OLE DB連接字符串如表11-11所示。表11-11 OLE DB連接字符串通過(guò)OLE DB連接SQL Server數(shù)據(jù)庫(kù),假設(shè)服務(wù)器的名稱(chēng)為pdf,連接的數(shù)據(jù)庫(kù)為student,服務(wù)器的帳號(hào)為sa,密碼為123,可以將連接字符串設(shè)為strProvider=“Provider=SQLOLEDB.1

56、; Data Source=pdf; Initial Catalog=student; &User ID=sa; Password=123; 其中,各參數(shù)的含義如下:(a) Provider指定用于連接的是提供者的名稱(chēng),SQL Server使用SQLOLEDB.1。 (b) Data Source指定數(shù)據(jù)庫(kù)服務(wù)器的名稱(chēng)。(c) Initial Catalog指定要連接的數(shù)據(jù)庫(kù)名稱(chēng)。(d) User ID表示登錄SQL Server服務(wù)器的用戶(hù)帳號(hào)。(e) Password表示登錄SQL Server服務(wù)器的用戶(hù)密碼。(4) Execute方法的詳細(xì)介紹。Execute方法能夠執(zhí)行指定的查詢(xún)、S

57、QL語(yǔ)句等操作,該方法的語(yǔ)法有如下兩種格式。 對(duì)于沒(méi)有返回結(jié)果的命令格式: connection.Execute CommandText,RecordsAffected,Options 對(duì)于有返回結(jié)果的(返回一個(gè)RecordSet對(duì)象)命令格式: Set RecordSet=connection.Execute(CommandText, RecordsAffected,Options)在Eexcute方法中,CommandText是一個(gè)字符串,包含要執(zhí)行的SQL語(yǔ)句、表名、存儲(chǔ)過(guò)程或特定提供者的文本,該參數(shù)的內(nèi)容可以是標(biāo)準(zhǔn)SQL語(yǔ)句或提供者所支持的任何特殊命令格式;RecordsAffecte

58、d是可選參數(shù),長(zhǎng)整型變量,其值是執(zhí)行指定操作所影響的記錄數(shù)目;Options參數(shù)指定了CommandText的性質(zhì),常用取值及含義如表11-12所示。表11-12 Execute方法的Options參數(shù)表中的AdCmdText、AdCmdTable等常量的取值在一個(gè)名為adovbs.inc的特殊文件中定義。adovbs.inc文件中包含ADO所使用的所有VBScript常量。一般來(lái)說(shuō),該文件位于Program FilesCommon FilesSystemADO目錄下。在使用時(shí),可以將該文件復(fù)制到網(wǎng)站所在的目錄下,并且在ASP頁(yè)面中使用INCLUDE命令將該文件包含進(jìn)來(lái),此后,就可以使用該文件

59、中定義的那些VBScript常量了。例11-8 以用戶(hù)注冊(cè)為例,演示如何利用connection對(duì)象open方法連接數(shù)據(jù)庫(kù),以及connection的execute方法增加、刪除、修改數(shù)據(jù)庫(kù)的數(shù)據(jù)。注冊(cè)頁(yè)面(main.htm)的代碼如下:注冊(cè)頁(yè)面歡迎注冊(cè),請(qǐng)輸入用戶(hù)名和密碼姓名:密碼: 注冊(cè)頁(yè)面提交的register.asp文件代碼如下:%取得用戶(hù)名和密碼,并刪除用戶(hù)名和密碼中的首尾空格username=Trim(Request.Form(name)userpass=Trim(Request.Form(password)如果用戶(hù)名和密碼為空,重定向到注冊(cè)頁(yè)面If username= or userpass= Then response.Redirect main.htmEnd if打開(kāi)數(shù)據(jù)庫(kù),建立連接Set conn=Server.CreateObject(ADODB.Connection)strProvider = “Provider=SQLOLEDB.1;Data Source=pdf;Initial Catalog=user; User ID=sa; Password=123;conn.open strProvider檢查用戶(hù)是否已經(jīng)存在commandtext=SELECT * FROM t_user WHERE d_user= & username &

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論