ASP+Dreamweaver數(shù)據(jù)庫(kù)網(wǎng)站開(kāi)發(fā)與實(shí)例-電子教案_第1頁(yè)
ASP+Dreamweaver數(shù)據(jù)庫(kù)網(wǎng)站開(kāi)發(fā)與實(shí)例-電子教案_第2頁(yè)
ASP+Dreamweaver數(shù)據(jù)庫(kù)網(wǎng)站開(kāi)發(fā)與實(shí)例-電子教案_第3頁(yè)
ASP+Dreamweaver數(shù)據(jù)庫(kù)網(wǎng)站開(kāi)發(fā)與實(shí)例-電子教案_第4頁(yè)
ASP+Dreamweaver數(shù)據(jù)庫(kù)網(wǎng)站開(kāi)發(fā)與實(shí)例-電子教案_第5頁(yè)
已閱讀5頁(yè),還剩241頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(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章Dreamweaver與網(wǎng)站設(shè)計(jì)

本章從基礎(chǔ)的網(wǎng)站結(jié)構(gòu)開(kāi)始,說(shuō)明Dreamweaver在網(wǎng)站開(kāi)發(fā)技術(shù)中的集成運(yùn)用,帶領(lǐng)讀者進(jìn)入Dreamweaver動(dòng)態(tài)網(wǎng)頁(yè)的設(shè)計(jì)殿堂。本章將從以下幾個(gè)方面進(jìn)行詳細(xì)介紹:

1.1網(wǎng)站結(jié)構(gòu)

1.2Dreamweaver所扮演的角色

1.3Dreamweaver環(huán)境介紹

1.4本章小結(jié)1.1網(wǎng)站結(jié)構(gòu)

1.1.1服務(wù)器、網(wǎng)頁(yè)與客戶(hù)端瀏覽器

1.1.2網(wǎng)站結(jié)構(gòu)1.1.1服務(wù)器、網(wǎng)頁(yè)與

客戶(hù)端瀏覽器

WWW是一種主從式的分布式計(jì)算機(jī)結(jié)構(gòu),由無(wú)數(shù)的網(wǎng)站與瀏覽器組成。網(wǎng)站通常用以存儲(chǔ)及解析網(wǎng)頁(yè)內(nèi)容,提供InternetExplorer等瀏覽器的網(wǎng)頁(yè)瀏覽服務(wù),這一類(lèi)的服務(wù)器軟件除了解析網(wǎng)頁(yè)內(nèi)容之外,還負(fù)責(zé)將解析的結(jié)果返回給要求瀏覽此網(wǎng)頁(yè)的瀏覽器。瀏覽器、網(wǎng)頁(yè)與管理網(wǎng)頁(yè)的服務(wù)器軟件,構(gòu)成了WWW。1.1.2網(wǎng)站結(jié)構(gòu)

服務(wù)器網(wǎng)站提供對(duì)各種網(wǎng)頁(yè)的管理,同時(shí)負(fù)責(zé)響應(yīng)瀏覽器對(duì)網(wǎng)頁(yè)的瀏覽需求??蛻?hù)端的瀏覽器一般比較簡(jiǎn)單,只需對(duì)服務(wù)器傳送過(guò)來(lái)的網(wǎng)頁(yè)內(nèi)容進(jìn)行解讀,直接顯示出來(lái)即可。而服務(wù)器端就沒(méi)有這么簡(jiǎn)單了,除了解析網(wǎng)頁(yè)之外,復(fù)雜的網(wǎng)站甚至牽涉數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用,根據(jù)網(wǎng)站結(jié)構(gòu)的內(nèi)容形式,網(wǎng)站可以分為4類(lèi),分別為:靜態(tài)HTML

動(dòng)態(tài)客戶(hù)端動(dòng)態(tài)服務(wù)器端數(shù)據(jù)庫(kù)系統(tǒng)

靜態(tài)HTML

只提供單一HTML網(wǎng)頁(yè)的網(wǎng)站是最簡(jiǎn)單的一種網(wǎng)站結(jié)構(gòu),這一類(lèi)網(wǎng)站直接針對(duì)瀏覽器,響應(yīng)其所請(qǐng)求的網(wǎng)頁(yè)文件,這種網(wǎng)頁(yè)完全由HTML標(biāo)簽構(gòu)成,類(lèi)似真實(shí)世界的傳統(tǒng)文件,模板一旦確定就不會(huì)再更動(dòng),因此稱(chēng)其為“靜態(tài)”網(wǎng)頁(yè),它也是早期最基本的網(wǎng)頁(yè)技術(shù)。

客戶(hù)端動(dòng)態(tài)網(wǎng)頁(yè)

傳統(tǒng)的靜態(tài)HTML網(wǎng)頁(yè)在網(wǎng)站開(kāi)始蓬勃發(fā)展之后,很快就無(wú)法滿足使用者的要求了,動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)便應(yīng)運(yùn)而生。動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)使網(wǎng)頁(yè)能夠提供動(dòng)態(tài)的效果,其中最重要而且最被廣泛接受的技術(shù)便是JavaScript,這是一種動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,內(nèi)嵌在HTML標(biāo)簽之中,由瀏覽器負(fù)責(zé)編譯,在網(wǎng)頁(yè)中呈現(xiàn)動(dòng)態(tài)的效果。

JavaScript由于在客戶(hù)端進(jìn)行編譯,因此稱(chēng)為客戶(hù)端動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),整個(gè)結(jié)構(gòu)與靜態(tài)HTML網(wǎng)頁(yè)結(jié)構(gòu)相似,其差異在于瀏覽器編譯完成的網(wǎng)頁(yè)會(huì)顯示動(dòng)態(tài)的效果。動(dòng)態(tài)服務(wù)器端技術(shù)

客戶(hù)端動(dòng)態(tài)網(wǎng)頁(yè)除了讓網(wǎng)頁(yè)變得花哨一點(diǎn)之外,事實(shí)上對(duì)于交互式網(wǎng)站的功能需求并沒(méi)有太大的幫助,尤其在各種網(wǎng)絡(luò)應(yīng)用的推動(dòng)之下,由服務(wù)器端進(jìn)行網(wǎng)頁(yè)解析處理的服務(wù)器動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),開(kāi)始迅速發(fā)展,本書(shū)介紹的ASP正是這種網(wǎng)頁(yè)語(yǔ)言。比如客戶(hù)端的動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,這一類(lèi)語(yǔ)言同樣內(nèi)嵌在HTML程序代碼中,由網(wǎng)頁(yè)應(yīng)用程序服務(wù)器進(jìn)行解析,轉(zhuǎn)換成為HTML之后傳送至客戶(hù)端。數(shù)據(jù)庫(kù)系統(tǒng)

真正讓服務(wù)器端網(wǎng)頁(yè)技術(shù)發(fā)揮作用的關(guān)鍵,是數(shù)據(jù)庫(kù)系統(tǒng)的導(dǎo)入。網(wǎng)站通過(guò)與數(shù)據(jù)庫(kù)系統(tǒng)的連接,以及對(duì)其中數(shù)據(jù)的存取,創(chuàng)建和設(shè)置以數(shù)據(jù)展示為基礎(chǔ)的動(dòng)態(tài)網(wǎng)頁(yè)。進(jìn)一步結(jié)合數(shù)據(jù)庫(kù)、網(wǎng)站服務(wù)器與服務(wù)器端網(wǎng)頁(yè)技術(shù),已經(jīng)是目前商業(yè)網(wǎng)站最主要的結(jié)構(gòu)。1.2Dreamweaver所扮演的角色

Dreamweaver本身最主要的功能是開(kāi)發(fā)整個(gè)網(wǎng)站結(jié)構(gòu)中所需的網(wǎng)頁(yè)文件。無(wú)論是純HTML網(wǎng)頁(yè),還是客戶(hù)端動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),甚至是提供數(shù)據(jù)庫(kù)存取技術(shù)的服務(wù)器端動(dòng)態(tài)技術(shù)網(wǎng)頁(yè),Dreamweaver均可提供相關(guān)的支持。

Dreamweaver是一套功能非常強(qiáng)大的網(wǎng)頁(yè)編輯軟件,由Macromedia公司開(kāi)發(fā),提供各種可視化的網(wǎng)頁(yè)編輯功能,從單一的HTML靜態(tài)網(wǎng)頁(yè),到復(fù)雜的ASP動(dòng)態(tài)網(wǎng)頁(yè)的數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì),均能夠以鼠標(biāo)拖曳的方式迅速完成網(wǎng)頁(yè)設(shè)計(jì)工作,讓想要開(kāi)發(fā)網(wǎng)站卻不懂任何程序語(yǔ)言的使用者能夠輕易地創(chuàng)建所需的各種網(wǎng)頁(yè)。

Dreamweaver最出色的地方,在于其具備動(dòng)態(tài)服務(wù)器網(wǎng)頁(yè)的可視化設(shè)置功能,同時(shí)對(duì)各類(lèi)網(wǎng)絡(luò)平臺(tái)與服務(wù)器語(yǔ)言提供足夠的支持,無(wú)論P(yáng)HP、JSP、ASP,還是ASP.NET,程序設(shè)計(jì)人員均能通過(guò)設(shè)置,利用Dreamweaver的單一接口,設(shè)計(jì)不同類(lèi)型的動(dòng)態(tài)服務(wù)器網(wǎng)頁(yè)。

DreamweaverMX2004是目前Dreamweaver的最版本。1.3Dreamweaver環(huán)境介紹

1.3.1Dreamweaver基礎(chǔ)入門(mén)

1.3.2網(wǎng)頁(yè)編輯

1.3.3工具欄

1.3.4“屬性”面板1.3.1Dreamweaver基礎(chǔ)入門(mén)

DreamweaverMX2004的編輯窗口如下圖所示,其中左半部為Dreamweaver支持的網(wǎng)頁(yè)應(yīng)用程序類(lèi)型列表,右半部分則是功能設(shè)置面板組,單擊中間分隔線的“箭頭”可以隱藏面板組,使用鼠標(biāo)拖動(dòng)可以改變兩個(gè)部分所占據(jù)的版面大小。1.3.2網(wǎng)頁(yè)編輯Dreamweaver向用戶(hù)提供可視化或純程序代碼的編輯網(wǎng)頁(yè)方式,下半部分是ASP網(wǎng)頁(yè)的編輯窗口,用戶(hù)可以在Dreamweaver啟動(dòng)的畫(huà)面中,選擇“創(chuàng)建新項(xiàng)目”選項(xiàng)組中的ASPVBScript選項(xiàng),在Dreamweaver編輯窗口中創(chuàng)建ASP網(wǎng)頁(yè)。1.3.2網(wǎng)頁(yè)編輯Dreamweaver向用戶(hù)提供可視化或純程序代碼的編輯網(wǎng)頁(yè)方式,下半部分是ASP網(wǎng)頁(yè)的編輯窗口,用戶(hù)可以在Dreamweaver啟動(dòng)的畫(huà)面中,選擇“創(chuàng)建新項(xiàng)目”選項(xiàng)組中的ASPVBScript選項(xiàng),在Dreamweaver編輯窗口中創(chuàng)建ASP網(wǎng)頁(yè)。1.3.3工具欄

工具欄主要提供HTML或ASP網(wǎng)頁(yè)元素的可視化操作工具,允許用戶(hù)以各種鼠標(biāo)拖動(dòng)方式,將特定元素直接放到網(wǎng)頁(yè)上;或是用對(duì)話框的設(shè)置方式,讓Dreamweaver自動(dòng)完成數(shù)據(jù)庫(kù)連接等ASP功能程序代碼。工具欄按照其功能被分為幾類(lèi),用戶(hù)可以依據(jù)自身的需求切換不同的工具欄,當(dāng)用戶(hù)單擊工具欄中代表某個(gè)元素的圖標(biāo)時(shí),即可將該元素插入到網(wǎng)頁(yè)中。1.3.4“屬性”面板

Dreamweaver另外一個(gè)很重要的操作技巧為“屬性”面板(即屬性檢查器)的設(shè)置,任何網(wǎng)頁(yè)上的元素,表格、文字窗體甚至ASP程序代碼,均能夠通過(guò)”屬性”面板調(diào)整其屬性,“屬性”面板通常位于編輯窗口的下方,通過(guò)單擊分隔線中央的三角形符號(hào)可以將其展開(kāi),如下圖所示為<body>標(biāo)簽的“屬性”面板。1.4本章小結(jié)

瀏覽器、網(wǎng)頁(yè)與管理網(wǎng)頁(yè)的服務(wù)器軟件,構(gòu)成用戶(hù)所使用的WWW??蛻?hù)端瀏覽器與服務(wù)器端主機(jī)形成一種主從式的網(wǎng)站結(jié)構(gòu),客戶(hù)端向服務(wù)器端提出瀏覽網(wǎng)頁(yè)的請(qǐng)求,服務(wù)器端則負(fù)責(zé)響應(yīng)所請(qǐng)求的網(wǎng)頁(yè)。網(wǎng)站內(nèi)容的形式可以分為4類(lèi),分別是靜態(tài)HTML、動(dòng)態(tài)客戶(hù)端、動(dòng)態(tài)服務(wù)器端及數(shù)據(jù)庫(kù)系統(tǒng)。單一的HTML網(wǎng)頁(yè)所構(gòu)成的網(wǎng)站直接針對(duì)瀏覽器響應(yīng)其所請(qǐng)求的網(wǎng)頁(yè)內(nèi)容,這種網(wǎng)頁(yè)類(lèi)似真實(shí)世界的傳統(tǒng)文件,一旦輸出就不會(huì)再更動(dòng),因此稱(chēng)為“靜態(tài)”網(wǎng)頁(yè)??蛻?hù)端動(dòng)態(tài)網(wǎng)頁(yè)讓網(wǎng)頁(yè)能夠提供動(dòng)態(tài)的效果,內(nèi)嵌在HTML標(biāo)簽中,由瀏覽器負(fù)責(zé)解析,在網(wǎng)頁(yè)中呈現(xiàn)動(dòng)態(tài)的效果。由服務(wù)器端進(jìn)行網(wǎng)頁(yè)解析的服務(wù)器動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),比如客戶(hù)端的動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,同樣內(nèi)嵌在HTML程序代碼里面,由網(wǎng)頁(yè)應(yīng)用程序服務(wù)器進(jìn)行解析,轉(zhuǎn)換成HTML之后傳送至客戶(hù)端。1.4本章小結(jié)

網(wǎng)站通過(guò)數(shù)據(jù)庫(kù)系統(tǒng)的連接和對(duì)其中數(shù)據(jù)的存取,創(chuàng)建以數(shù)據(jù)顯示為基礎(chǔ)的動(dòng)態(tài)網(wǎng)頁(yè),進(jìn)一步結(jié)合數(shù)據(jù)庫(kù)、網(wǎng)站服務(wù)器與服務(wù)器端網(wǎng)頁(yè)技術(shù),已經(jīng)是目前商業(yè)網(wǎng)站最主要的結(jié)構(gòu)。

Dreamweaver支持的服務(wù)器端網(wǎng)頁(yè)技術(shù)包括ASP、ASP.NET、JSP、PHP及ColdFusion。

Dreamweaver為網(wǎng)頁(yè)設(shè)計(jì)人員提供可視化或純程序代碼的網(wǎng)頁(yè)編輯方式,可用的模式分別是“代碼”、“拆分”和“設(shè)計(jì)”。第2章配置ASP開(kāi)發(fā)環(huán)境

進(jìn)行ASP網(wǎng)頁(yè)開(kāi)發(fā)之前,首先必須配置編譯ASP網(wǎng)頁(yè)所需的軟件環(huán)境,IIS是由微軟開(kāi)發(fā)、以Windows操作系統(tǒng)為平臺(tái),運(yùn)行ASP網(wǎng)頁(yè)的網(wǎng)站服務(wù)器軟件。本章將從以下幾個(gè)方面進(jìn)行詳細(xì)介紹:

2.1IIS的安裝與設(shè)置

2.2IIS概述

2.3Dreamweaver與ASP

2.4定義Dreamweaver服務(wù)器網(wǎng)站

2.5本章小節(jié)2.1IIS安裝與設(shè)置

IIS內(nèi)建了ASP的編譯引擎,在用戶(hù)的計(jì)算機(jī)上必須安裝IIS才能測(cè)試寫(xiě)好的ASP網(wǎng)頁(yè),在Dreamweaver中創(chuàng)建ASP文件前,同樣必須以IIS為基礎(chǔ),創(chuàng)建所需的虛擬網(wǎng)站,本節(jié)將詳細(xì)介紹如何安裝IIS。如果用戶(hù)使用的是Windows2000或更新的WindowsNT版本,由于IIS已經(jīng)是內(nèi)建的服務(wù),因此不需要執(zhí)行以下的步驟;若用戶(hù)計(jì)算機(jī)上的操作系統(tǒng)使用的是WindowsXP或是Windows2000專(zhuān)業(yè)版,則必須手動(dòng)安裝并且啟動(dòng)IIS服務(wù)。本書(shū)為了方便用戶(hù)練習(xí),直接以WindowsXP為教學(xué)平臺(tái)。在安裝Windows的過(guò)程中,IIS不是預(yù)設(shè)選項(xiàng),用戶(hù)可以遵循本書(shū)中說(shuō)明的步驟完成IIS服務(wù)的安裝與設(shè)置。2.2IIS概述

2.2.1啟動(dòng)IIS

2.2.2IIS目錄與網(wǎng)頁(yè)瀏覽

2.2.3設(shè)置IIS2.2.1啟動(dòng)IIS

首先打開(kāi)“控制面板”窗口,雙擊“管理工具”圖標(biāo),打開(kāi)“管理工具”窗口。雙擊其中的“Internet信息服務(wù)”圖標(biāo),打開(kāi)“Internet信息服務(wù)”窗口,如圖2-5所示,便可以進(jìn)行IIS的管理與設(shè)置。

2.2.2IIS目錄與網(wǎng)頁(yè)瀏覽

打開(kāi)“Internet信息服務(wù)”窗口,在左邊單擊展開(kāi)“網(wǎng)站”節(jié)點(diǎn),右邊為展開(kāi)的網(wǎng)站中所存放的相關(guān)文件目錄。當(dāng)用戶(hù)在瀏覽器地址欄中輸入“http://localhost”時(shí),IIS會(huì)自動(dòng)取得本機(jī)“默認(rèn)網(wǎng)站”目錄下所存放的特定文件,將其解析之后,傳送至瀏覽器顯示。

c:\inetpub\wwwroot目錄是在IIS安裝完成之后,與默認(rèn)網(wǎng)站對(duì)應(yīng)的目錄,而用戶(hù)瀏覽網(wǎng)頁(yè)所使用的地址鏈接http://localhost,則是“默認(rèn)網(wǎng)站”的默認(rèn)網(wǎng)址。IIS通過(guò)http://localhost在其對(duì)應(yīng)的c:\inetpub\wwwroot目錄中存取文件。2.2.3設(shè)置IIS

在初步認(rèn)識(shí)了IIS之后,本節(jié)將介紹IIS的設(shè)置方法。在“Internet信息服務(wù)”窗口中右擊“默認(rèn)網(wǎng)站”選項(xiàng),在彈出的菜單中選擇“屬性”命令,打開(kāi)“默認(rèn)網(wǎng)站屬性”對(duì)話框。在該對(duì)話框中,用戶(hù)即可對(duì)IIS進(jìn)行設(shè)置。2.3Dreamweaver與ASP

ASP網(wǎng)頁(yè)本身是由傳統(tǒng)的HTML網(wǎng)頁(yè)衍生而來(lái)的,其程序代碼與HTML標(biāo)簽相互并存,早期的Dreamweaver只提供編輯HTML標(biāo)簽的能力,在DreamweaverMX2004中,除了維持原先強(qiáng)大的靜態(tài)網(wǎng)頁(yè)編輯功能外,還加入了ASP程序代碼的編輯功能,成了一個(gè)全功能的網(wǎng)頁(yè)編輯器。除了支持程序代碼的編輯之外,對(duì)于各種ASP網(wǎng)頁(yè)應(yīng)用功能的開(kāi)發(fā),也提供了可視化的操作模式,用戶(hù)只需以鼠標(biāo)拖動(dòng)并進(jìn)行設(shè)置,即可自動(dòng)完成程序代碼的編寫(xiě),即使如數(shù)據(jù)庫(kù)般應(yīng)用復(fù)雜的操作也能夠輕松完成,因此本書(shū)將以Dreamweaver提供的功能,介紹ASP在服務(wù)器端中在動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)方面的應(yīng)用。2.4定義Dreamweaver服務(wù)器網(wǎng)站

2.4.1定義ASP網(wǎng)站

2.4.2測(cè)試Dreamweaver2.4.1定義ASP網(wǎng)站

2.4.2測(cè)試Dreamweaver

進(jìn)入ASP網(wǎng)頁(yè)的編輯窗口,Dreamweaver為這個(gè)新創(chuàng)建的網(wǎng)頁(yè)命名為Untitled-1.asp,并且在其中加入一些默認(rèn)定義的程序代碼,內(nèi)容包含標(biāo)題及網(wǎng)頁(yè)格式等信息,在<body>標(biāo)簽中,加入以下的程序片段:

<%="歡迎使用Dreamweaver編輯ASP網(wǎng)頁(yè)!!"%>

測(cè)試新創(chuàng)建的ASP網(wǎng)頁(yè),單擊工具欄右邊的圖標(biāo),在打開(kāi)的菜單中選擇“預(yù)覽在iexplore”命令,啟動(dòng)InternetExplorer瀏覽器,查看運(yùn)行結(jié)果。2.5本章小結(jié)

在開(kāi)發(fā)ASP網(wǎng)頁(yè)之前,首先要設(shè)置編譯ASP網(wǎng)頁(yè)所需的軟件環(huán)境IIS。

IIS內(nèi)建的ASP編譯引擎,在WindowsXP操作系統(tǒng)中并非為默認(rèn)安裝選項(xiàng),因此必須手動(dòng)安裝。

IIS不僅能提供ASP網(wǎng)頁(yè)編譯服務(wù),還能提供其他各種Internet服務(wù),例如可供文件傳輸?shù)腇TP、發(fā)送電子郵件的SMTP等均是IIS所提供的服務(wù)。當(dāng)瀏覽器接收到網(wǎng)址,如http://localhost時(shí),IIS會(huì)主動(dòng)取得本機(jī)“默認(rèn)網(wǎng)站”目錄下所存放的特定文件,將其編譯之后,傳送至瀏覽器顯示。

IIS安裝完成之后,其默認(rèn)的網(wǎng)站根目錄為c:\inetpub\wwwroot,http://localhost為“默認(rèn)網(wǎng)站”的默認(rèn)網(wǎng)址。只包含HTML或是JavaScript等動(dòng)態(tài)語(yǔ)言的網(wǎng)頁(yè),其擴(kuò)展名為.html或是.htm,若是ASP網(wǎng)頁(yè),則其擴(kuò)展名為.asp。利用Dreamweaver開(kāi)發(fā)ASP網(wǎng)頁(yè)之前,首先必須定義站點(diǎn)。定義Dreamweaver網(wǎng)站,必須指定其網(wǎng)站對(duì)應(yīng)的目錄路徑以及瀏覽的URL路徑。第3章ASP基礎(chǔ)

本章將開(kāi)始正式介紹ASP網(wǎng)頁(yè)的組成結(jié)構(gòu),并且詳細(xì)說(shuō)明如何利用Dreamweaver開(kāi)發(fā)ASP網(wǎng)頁(yè)。本章將從以下幾個(gè)方面進(jìn)行詳細(xì)介紹:

3.1初探ASP

3.2ASP語(yǔ)法基礎(chǔ)

3.3VBScript基礎(chǔ)

3.4動(dòng)態(tài)HTML輸出技巧

3.5結(jié)構(gòu)化的程序代碼

3.6本章小結(jié)3.1初探ASP

3.1.1ASP網(wǎng)頁(yè)結(jié)構(gòu)

3.1.2VBScrtipt3.1.1ASP網(wǎng)頁(yè)結(jié)構(gòu)

ASP網(wǎng)頁(yè)是一種以HTML標(biāo)簽為基礎(chǔ)的.asp文本文件,以VBScript代碼內(nèi)嵌在HTML標(biāo)簽中組成,而所有的VBScript都必須寫(xiě)在符號(hào)<%與%>之間的網(wǎng)頁(yè)代碼中。當(dāng)IIS將一份ASP網(wǎng)頁(yè)傳送至瀏覽器之前,會(huì)針對(duì)符號(hào)<%…%>之間的程序代碼預(yù)先進(jìn)行解析,將網(wǎng)頁(yè)內(nèi)容轉(zhuǎn)換成只包含單一HTML標(biāo)簽或是客戶(hù)端動(dòng)態(tài)語(yǔ)言的網(wǎng)頁(yè),最后再將網(wǎng)頁(yè)傳送至瀏覽器完成進(jìn)一步的解析操作。下面就以一個(gè)實(shí)例說(shuō)明其過(guò)程。3.1.2VBScrtipt

VBScript本身是一種功能強(qiáng)大的程序語(yǔ)言,ASP利用其創(chuàng)建所需的動(dòng)態(tài)程序代碼,用戶(hù)可以將其視為簡(jiǎn)化的VisualBasic。學(xué)習(xí)利用VBScript創(chuàng)建ASP網(wǎng)頁(yè),基本上可以將其分成兩個(gè)部分來(lái)進(jìn)行,VBScript基本語(yǔ)法和ASP對(duì)象引用,初步的HelloASP.asp實(shí)例中已經(jīng)可以看到這兩個(gè)部分的實(shí)際運(yùn)用3.2ASP語(yǔ)法基礎(chǔ)

3.2.1標(biāo)識(shí)ASP程序代碼

3.2.2選擇使用的語(yǔ)言

3.2.3輸出文字信息3.2.1標(biāo)識(shí)ASP程序代碼

ASP根據(jù)指定的符號(hào)標(biāo)識(shí)VBScript與HTML標(biāo)簽,其中最為廣泛使用的便是<%和%>,這兩個(gè)符號(hào)同時(shí)也是Dreamweaver創(chuàng)建ASP程序代碼所使用的方式。另外一種ASP程序代碼的標(biāo)識(shí)方式便是使用<SCRIPT>,并將其RUNAT屬性設(shè)為SERVER。

<SCRIPTRUNAT="SERVER">VBScript程序代碼…….</SCRIPT>3.2.2選擇使用的語(yǔ)言

編寫(xiě)ASP網(wǎng)頁(yè)除了使用VBScript外,也可以選擇使用JavaScript,這是一種類(lèi)似C語(yǔ)言的程序語(yǔ)言,通常用戶(hù)會(huì)利用@LANGUAGE代碼來(lái)設(shè)置所使用的語(yǔ)言種類(lèi)。@LANGUAGE必須在網(wǎng)頁(yè)創(chuàng)建后便進(jìn)行指定,同時(shí)只能指定一次,Dreamweaver創(chuàng)建一個(gè)新的ASP網(wǎng)頁(yè)時(shí),會(huì)同時(shí)指定這一行程序代碼,如下式:

<%@LANGUAGE="VBSCRIPT"CODEPAGE="950"%>

本書(shū)使用Dreamweaver創(chuàng)建的ASP網(wǎng)頁(yè),在第一行都會(huì)加上這段代碼,可以節(jié)省一些時(shí)間,通常IIS會(huì)將默認(rèn)使用的語(yǔ)言指定為VBSCRIPT,因此即使沒(méi)有使用這一行,在IIS下運(yùn)行ASP網(wǎng)頁(yè)也不會(huì)發(fā)生什么問(wèn)題。3.2.3輸出文字信息

01. <%02. '輸出歡迎信息03. DIMstrWelcome04. strWelcome="歡迎使用Dreamweaver開(kāi)發(fā)ASP網(wǎng)頁(yè)"05. Response.Write(strWelcome)06. %>07. <%="<BR>利用=符號(hào)輸出文字字符串!!<BR>"%>3.3VBScript基礎(chǔ)

3.3.1定義變量

3.3.2使用If判斷語(yǔ)句

3.3.3多重判斷語(yǔ)句Select-Case

3.3.4循環(huán)語(yǔ)句

3.3.5強(qiáng)制終止循環(huán)3.3.1定義變量

變量是一個(gè)標(biāo)識(shí)符串,可以用來(lái)存儲(chǔ)各種形式的數(shù)據(jù),如數(shù)字、文字與日期等。01. <%02. DIMintVar03. intVar=504. intVar=intVar+505. Response.Write(intVar)06. %>

上述第2行程序代碼利用關(guān)鍵詞DIM,定義變量intVar,在一般的程序語(yǔ)言中,一個(gè)變量使用之前一定要經(jīng)過(guò)定義,VBScript對(duì)此并沒(méi)有強(qiáng)制定義,將第2行程序代碼去掉,網(wǎng)頁(yè)還是可以運(yùn)行無(wú)誤。3.3.2使用If判斷語(yǔ)句

If是使用頻率相當(dāng)高的一種程序語(yǔ)句,其最主要的功用,在于讓?xiě)?yīng)用程序根據(jù)特定條件表達(dá)式的結(jié)果,決定是否運(yùn)行指定區(qū)塊的程序代碼。

If語(yǔ)句包含了幾種模式,它們分別為If-Then-EndIf、If-Then-Else-EndIf和If-Then-ElseIf-Then-EndIf。

If-Then-EndIf語(yǔ)法:<%If條件式語(yǔ)句Then

符合條件之下運(yùn)行的程序代碼…..EndIf%>3.3.2使用If判斷語(yǔ)句

If-Then-Else-EndIf語(yǔ)法:<%If條件式語(yǔ)句Then

符合條件之下執(zhí)行的程序代碼…..Else

不符合條件之下執(zhí)行的程序代碼…..EndIf%>

3.3.2使用If判斷語(yǔ)句

If-Then-ElseIf-Then-EndIf語(yǔ)法:<%If條件式語(yǔ)句1Then

符合條件1之下執(zhí)行的程序代碼…..ElseIf條件式語(yǔ)句2Then

符合條件2之下執(zhí)行的程序代碼…..EndIf%>3.3.3多重判斷語(yǔ)句Select-Case

當(dāng)程序中包含多個(gè)判斷式,使用If語(yǔ)句會(huì)顯得相當(dāng)繁瑣,Select-Case可以用來(lái)解決這類(lèi)問(wèn)題,該語(yǔ)句的相關(guān)語(yǔ)法為:SelectCase條件值Case條件式1

符合條件式1執(zhí)行的程序代碼…Case條件式2

符合條件式2執(zhí)行的程序代碼…Case條件式3

符合條件式3執(zhí)行的程序代碼………CaseElse

全部條件均不符合所執(zhí)行的程序代碼…EndSelect3.3.4循環(huán)語(yǔ)句

循環(huán)語(yǔ)句是一種用于強(qiáng)制重復(fù)執(zhí)行特定的程序語(yǔ)句,在ASP與HTML結(jié)合的網(wǎng)頁(yè)程序中,循環(huán)語(yǔ)句的應(yīng)用相當(dāng)普遍,可以利用它重復(fù)輸出數(shù)據(jù),常用的循環(huán)語(yǔ)句如下所示:

For-Next,設(shè)置循環(huán)區(qū)塊里的程序代碼以指定的次數(shù)重復(fù)執(zhí)行

ForEach-Next,對(duì)于集合或數(shù)組里的元素,重復(fù)執(zhí)行

While-Wend,當(dāng)指定的條件式成立,則重復(fù)執(zhí)行循環(huán)區(qū)塊里的程序代碼

Do-Loop,指定的條件式成立,則重復(fù)執(zhí)行循環(huán)區(qū)塊里的程序代碼For-NextFor-Next是最簡(jiǎn)單的循環(huán)語(yǔ)句,可以指定應(yīng)用程序循環(huán)所要執(zhí)行的次數(shù),該循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下:

For(ConditionVar)=(BeginValue)To(EndValue)Step(StepValue)--重復(fù)執(zhí)行的程序代碼區(qū)塊--Next

其中For與Next之間的區(qū)塊為循環(huán)執(zhí)行的程序代碼,而(ConditionVar)=(BeginValue)To(EndValue)設(shè)置循環(huán)執(zhí)行的次數(shù),ConditionVar為條件變量,這個(gè)變量值在默認(rèn)的情形下,每重復(fù)一次循環(huán)便加1,BeginValue為循環(huán)的起始值,而EndValue則是循環(huán)的結(jié)束值。當(dāng)ConditionVar變量值落在BeginValu與EndValue之間時(shí),循環(huán)持續(xù)進(jìn)行,直到ConditionVar變量值超過(guò)EndValue,跳出循環(huán)。最后Step可以讓用戶(hù)設(shè)置每次ConditionVar變量值依StepValue數(shù)值的大小作改變,這個(gè)數(shù)值可以使用正負(fù)號(hào),當(dāng)用戶(hù)將其設(shè)為負(fù)數(shù)時(shí),BeginValue將會(huì)依次遞減直到ConditionVar變量值等于EndValueForEach-Next

程序必須存取數(shù)組元素的時(shí)候,F(xiàn)orEach-Next是最合適的選擇,該循環(huán)語(yǔ)句提供一種非常便利的方式,允許ASP直接利用一段語(yǔ)法將數(shù)組中的元素一一取出,其語(yǔ)法結(jié)構(gòu)如下:

ForEachvarElementInobjArray--重復(fù)執(zhí)行的程序代碼區(qū)塊--Next

其中的objArray為程序所要操作的數(shù)組對(duì)象,varElement用于存儲(chǔ)每一次自數(shù)組取出的元素,而ForEach與Next之間的程序代碼則不斷地重復(fù)執(zhí)行,直到所有的元素被一一取出為止。While-Wend

與For循環(huán)語(yǔ)句不同,While-Wend提供一種更具彈性的循環(huán)流程控制,它以特定的條件判斷式作為是否繼續(xù)循環(huán)的依據(jù)。While-Wend的語(yǔ)法結(jié)構(gòu)如下所示:

WhileCondition--重復(fù)執(zhí)行的程序代碼區(qū)塊--Wend

其中的Condition即為條件語(yǔ)句句,每次當(dāng)循環(huán)重新執(zhí)行之前,都會(huì)執(zhí)行這個(gè)判斷式,并且返回一個(gè)表示運(yùn)算結(jié)果的布爾值,該值為T(mén)rue時(shí),下一次的循環(huán)才會(huì)被執(zhí)行,否則程序流程會(huì)跳出While-Wend循環(huán)。Do-LoopDo-Loop是另外一種依靠條件式進(jìn)行判斷的循環(huán)語(yǔ)句,該語(yǔ)句的彈性最大。它提供了多種形式,讓程序能夠更為精確地控制何時(shí)繼續(xù)執(zhí)行循環(huán),何時(shí)離開(kāi)循環(huán)。語(yǔ)法結(jié)構(gòu)如下:

Do[While/Until(Condition)]--重復(fù)執(zhí)行的程序代碼區(qū)塊--Loop[While/Until(Condition)]Do-Loop主要可以將其分為兩類(lèi),第一類(lèi)在循環(huán)執(zhí)行前進(jìn)行判斷,另外一種則是在循環(huán)完成后進(jìn)行判斷。Do-Loop可同時(shí)搭配While或Until關(guān)鍵詞,也可在不需要任何條件的情形下循環(huán)。3.3.5強(qiáng)制終止循環(huán)

循環(huán)并非一定要全部執(zhí)行完畢才能跳出循環(huán)流程,在某些狀況之下必須中止循環(huán),為此,VBScript提供了一個(gè)關(guān)鍵詞Exit,專(zhuān)門(mén)用于強(qiáng)制中斷循環(huán)的執(zhí)行,該關(guān)鍵詞必須與循環(huán)的識(shí)別名稱(chēng)搭配使用才能達(dá)到所要的效果。中斷循環(huán)所使的Exit語(yǔ)句,分別是ExitDo和ExitFor,在3.4.4小節(jié)的Do-Loop語(yǔ)句使用實(shí)例中曾經(jīng)利用ExitDo語(yǔ)句,控制表達(dá)式在特定的動(dòng)況下,終止循環(huán),若使用的循環(huán)為For-Next,則須使用ExitFor語(yǔ)句中止循環(huán)。3.4動(dòng)態(tài)HTML輸出技巧

網(wǎng)頁(yè)不同于一般的應(yīng)用程序,其內(nèi)容混合了HTML標(biāo)簽與VBScript程序代碼。網(wǎng)頁(yè)中的VBScript程序代碼并不一定要全部寫(xiě)在一起,VBScript程序代碼與HTML標(biāo)簽可以交錯(cuò)出現(xiàn)。使用VBScript創(chuàng)建ASP動(dòng)態(tài)網(wǎng)頁(yè),其優(yōu)點(diǎn)是通過(guò)程序語(yǔ)言的彈性,在網(wǎng)頁(yè)執(zhí)行的過(guò)程中,動(dòng)態(tài)創(chuàng)建各種網(wǎng)頁(yè)內(nèi)容,缺點(diǎn)是容易造成混亂的程序代碼,這通常也是ASP網(wǎng)頁(yè)容易出錯(cuò)的原因之一。利用程序代碼可以動(dòng)態(tài)調(diào)整HTML標(biāo)簽。3.5結(jié)構(gòu)化的程序代碼

3.5.1分割程序代碼

3.5.2引用外部文件

3.5.3運(yùn)用Sub

3.5.4函數(shù)與返回值3.5.1分割程序代碼

ASP網(wǎng)頁(yè)除了混合HTML程序代碼,同時(shí)可以將所有VBScript直接寫(xiě)在網(wǎng)頁(yè)上而不需要任何區(qū)分,當(dāng)用戶(hù)利用這種方式來(lái)開(kāi)發(fā)網(wǎng)頁(yè)時(shí),整個(gè)網(wǎng)頁(yè)內(nèi)容就會(huì)變得難以維護(hù)與擴(kuò)充,甚至連除錯(cuò)都變得非常困難,因此,適當(dāng)分割與組織程序代碼就變得非常重要。一般來(lái)說(shuō),程序代碼應(yīng)該根據(jù)其功能進(jìn)行分割,并且避免將太過(guò)復(fù)雜的程序代碼全部擠在網(wǎng)頁(yè)里,若是必須重復(fù)使用的程序代碼,可以寫(xiě)在函數(shù)里,在需要時(shí)直接引用即可,而不必重新編寫(xiě)。切割程序代碼的方式有很多,其中比較常用的幾種如下所示:

使用外部文件

Sub

使用函數(shù)3.5.2引用外部文件

網(wǎng)頁(yè)引用的外部文件的程序代碼就如同目前網(wǎng)頁(yè)的一部分,在網(wǎng)頁(yè)服務(wù)器解析時(shí)會(huì)將其當(dāng)作同一個(gè)網(wǎng)頁(yè)里面的程序代碼,過(guò)程如圖所示。3.5.3運(yùn)用Sub

Sub是一種包含特定功能的子程序,可以在網(wǎng)頁(yè)中重復(fù)引用,一個(gè)子程序通常寫(xiě)在網(wǎng)頁(yè)中,以SubsubName-EndSub語(yǔ)句標(biāo)注其程序范圍,語(yǔ)法如下所示:

SubsubName()

子程序程序代碼…EndSub

當(dāng)網(wǎng)頁(yè)需要此子程序功能時(shí),只需在主程序中調(diào)用其名稱(chēng)subName即可,網(wǎng)頁(yè)會(huì)在調(diào)用子程序的地方暫停主程序的執(zhí)行流程,跳轉(zhuǎn)到Sub里執(zhí)行其中的程序代碼,完成之后再回到原調(diào)用子程序的地方,繼續(xù)往下執(zhí)行主程序。3.5.4函數(shù)與返回值

函數(shù)可以將其視為另外一種類(lèi)型的子程序,它會(huì)在程序代碼執(zhí)行完畢之后,返回一個(gè)指定變量的值,調(diào)用該函數(shù)的程序可以根據(jù)這個(gè)返回值,進(jìn)行程序的執(zhí)行運(yùn)算。函數(shù)與子程序Sub的程序語(yǔ)法非常的類(lèi)似,以關(guān)鍵詞Function替代Sub,同時(shí)在函數(shù)程序執(zhí)行完畢之后返回值,其語(yǔ)法為:

FunctionFunName()

函數(shù)程序代碼

FunName=ResultValueEndFunction

調(diào)用這個(gè)函數(shù)的程序代碼,除了引用函數(shù)名稱(chēng)之外,需用一個(gè)變量接收其返回值,例如以下的程序語(yǔ)句:

varResultValue=FunName3.6本章小結(jié)

ASP網(wǎng)頁(yè)是一種以HTML標(biāo)簽為基礎(chǔ)的.asp文件。IIS在將一份ASP網(wǎng)頁(yè)傳送至瀏覽器之前,對(duì)于ASP程序代碼進(jìn)行解析,將網(wǎng)頁(yè)內(nèi)容轉(zhuǎn)換成為只包含單一HTML標(biāo)簽或客戶(hù)端動(dòng)態(tài)語(yǔ)言的網(wǎng)頁(yè),傳送至瀏覽器完成進(jìn)一步的解析。

VBScript本身可以視為一種簡(jiǎn)化的VisualBasic語(yǔ)言,ASP利用其創(chuàng)建所需的動(dòng)態(tài)程序代碼。學(xué)習(xí)使用VBScript編寫(xiě)ASP網(wǎng)頁(yè),基本上可以將其分成兩個(gè)部分來(lái)進(jìn)行:VBScript基本語(yǔ)法和ASP對(duì)象引用。

ASP根據(jù)指定的符號(hào)<%…%>標(biāo)識(shí)VBScript與HTML標(biāo)簽。利用@LANGUAGE語(yǔ)句來(lái)設(shè)置ASP網(wǎng)頁(yè)所使用的語(yǔ)言種類(lèi),可以設(shè)置的選項(xiàng)包含VBScript和JavaScript。

ASP網(wǎng)頁(yè)想要輸出某段文本消息最簡(jiǎn)單的方式是利用符號(hào)=。變量是一種可以用來(lái)存儲(chǔ)各種形式的數(shù)據(jù),如數(shù)字、文字與日期等的標(biāo)識(shí)符串,VBScript允許用戶(hù)將數(shù)據(jù)直接存儲(chǔ)至一個(gè)變量,然后對(duì)這個(gè)變量進(jìn)行運(yùn)算。

If判斷式最主要的功用,是根據(jù)應(yīng)用程序判斷特定條件的運(yùn)算結(jié)果,決定是否執(zhí)行特定區(qū)塊的程序代碼。

Select-Case可以在程序中包含多個(gè)判斷式。循環(huán)用于強(qiáng)制重復(fù)執(zhí)行特定的程序代碼。

For-Next是最簡(jiǎn)單的循環(huán)語(yǔ)句,可以指定應(yīng)用程序循環(huán)所要執(zhí)行的次數(shù)。

ForEach-Next提供一種非常便利的方式,充許ASP直接利用一段語(yǔ)法將數(shù)組中的元素取出。3.6本章小結(jié)

While-Wend提供一種更有彈性的控制程序執(zhí)行循環(huán),以特定的條件判斷式作為是否繼續(xù)執(zhí)行循環(huán)的依據(jù)。

Do-Loop是另外一種依靠條件進(jìn)行判斷的循環(huán)語(yǔ)句,它提供了多種形式,讓程序能夠更為精確地控制何時(shí)繼續(xù)執(zhí)行循環(huán),何時(shí)離開(kāi)循環(huán)。網(wǎng)頁(yè)中的VBScript程序代碼區(qū)塊并不一定要全部寫(xiě)在一起,允許VBScript程序代碼與HTML標(biāo)簽交錯(cuò)出現(xiàn)??梢岳么颂攸c(diǎn),用VBScript動(dòng)態(tài)創(chuàng)建網(wǎng)頁(yè)內(nèi)容。程序代碼應(yīng)該根據(jù)其功能分開(kāi)編寫(xiě),必須重復(fù)使用的程序代碼則可以放在共享函數(shù)里,在需要時(shí)直接引用即可,而不必重新編寫(xiě)。分割程序代碼的方式有很多,其中比較常用的幾種分別為引用外部文件,創(chuàng)建Sub和使用函數(shù)網(wǎng)頁(yè)引用的外部文件會(huì)將其中的程序代碼當(dāng)作目前網(wǎng)頁(yè)的一部分,在網(wǎng)頁(yè)服務(wù)器編譯時(shí)一同輸出。

Sub是一種包含特定功能的子程序,可以在網(wǎng)頁(yè)中重復(fù)引用,一個(gè)子程序通常寫(xiě)在網(wǎng)頁(yè)程序代碼中。函數(shù)最大的特點(diǎn)是執(zhí)行完畢后會(huì)返回結(jié)果,調(diào)用此函數(shù)的程序代碼可以根據(jù)這個(gè)返回值,執(zhí)行程序。第4章表單的請(qǐng)求與響應(yīng)

Internet是一種主從式的系統(tǒng)結(jié)構(gòu),服務(wù)器端主機(jī)提供各種信息服務(wù),客戶(hù)端瀏覽器則針對(duì)特定服務(wù)器提出信息瀏覽請(qǐng)求,服務(wù)器根據(jù)客戶(hù)端的請(qǐng)求進(jìn)行響應(yīng)。本章將從以下幾個(gè)方面進(jìn)行詳細(xì)介紹:

4.1無(wú)狀態(tài)網(wǎng)絡(luò)應(yīng)用程序

4.2ASP對(duì)象

4.3運(yùn)用表單

4.4表單元素

4.5組織表單元素

4.6表單檢驗(yàn)

4.7Request對(duì)象與客戶(hù)端數(shù)據(jù)傳送

4.8Response對(duì)象與服務(wù)器端響應(yīng)

4.9本章小結(jié)4.1無(wú)狀態(tài)網(wǎng)絡(luò)應(yīng)用程序

在傳統(tǒng)的應(yīng)用程序中客戶(hù)端與服務(wù)器端之間隨時(shí)保持聯(lián)機(jī),因此數(shù)據(jù)可以通過(guò)聯(lián)機(jī)傳遞;而網(wǎng)絡(luò)模式的Web應(yīng)用程序,客戶(hù)端與服務(wù)器端之間并沒(méi)有任何關(guān)聯(lián),客戶(hù)端只負(fù)責(zé)向特定服務(wù)器主機(jī)提出請(qǐng)求,而服務(wù)器端則接負(fù)責(zé)響應(yīng)客戶(hù)端提出的請(qǐng)求,并且將數(shù)據(jù)傳輸至客戶(hù)端,除此之外,兩者之間并沒(méi)有交集,任何客戶(hù)端均可以隨時(shí)向特定的服務(wù)器端主機(jī)提出請(qǐng)求,并且取得目標(biāo)主機(jī)的響應(yīng)信息。4.2ASP對(duì)象

服務(wù)器端與客戶(hù)端的之間的溝通完全依靠Response和Request這兩個(gè)對(duì)象作連接。

Response:主要用于響應(yīng)客戶(hù)端瀏覽器所需的信息,創(chuàng)建網(wǎng)頁(yè)內(nèi)容,并且將其返回至客戶(hù)端。

Request:與Response對(duì)象進(jìn)行反向的操作,該對(duì)象用于取得客戶(hù)端的數(shù)據(jù)內(nèi)容,例如用戶(hù)在網(wǎng)頁(yè)上輸入的各種信息。4.3運(yùn)用表單

4.3.1表單概述

4.3.2創(chuàng)建新表單4.3.1表單概述

表單是瀏覽器將數(shù)據(jù)傳送給服務(wù)器端主機(jī)所使用的一種網(wǎng)頁(yè)元素,由HTML標(biāo)簽<Form></Form>所組成,這組標(biāo)簽在網(wǎng)頁(yè)上圍成一塊區(qū)域,獲取用戶(hù)數(shù)據(jù)的字段被放置在這一區(qū)域中,通過(guò)表單傳送到服務(wù)器主機(jī),服務(wù)器讀取表單的字段內(nèi)容,取得用戶(hù)在瀏覽器網(wǎng)頁(yè)所輸入的數(shù)據(jù),并根據(jù)這些數(shù)據(jù)進(jìn)一步作出適當(dāng)響應(yīng)。4.3.2創(chuàng)建新表單

在網(wǎng)站下創(chuàng)建一個(gè)新的ASP網(wǎng)頁(yè),切換至“表單”工具欄,其中包含了表單元素以及可以布置在表單上的各種元素。單擊最左邊的是“表單”圖標(biāo),打開(kāi)“標(biāo)簽編輯器-Form”對(duì)話框,在其中輸入所需信息,然后單擊“確定”按鈕,即可創(chuàng)建一個(gè)新的表單。4.4表單元素

4.4.1HTML標(biāo)簽和表單元素

4.4.2輸入字段

4.4.3其他字段4.4.1HTML標(biāo)簽和表單元素

在Dreamweaver操作界面中,將工具欄切換至“表單”工具欄,其中包含所有Dreamweaver提供的表單元素4.4.2輸入字段

標(biāo)準(zhǔn)的HTML標(biāo)簽提供了一組用于表單的輸入字段,這些字段提供各種形式的操作界面,供用戶(hù)在網(wǎng)頁(yè)上輸入各種數(shù)據(jù),輸入字段的標(biāo)簽語(yǔ)法形式如下:

<inputtype="text"name="textfield">

其中input為標(biāo)簽名稱(chēng),表示這是一個(gè)輸入標(biāo)簽;type為標(biāo)簽形式,決定輸入標(biāo)簽以何種形式顯示在網(wǎng)頁(yè)上;name則是標(biāo)簽對(duì)象在表單上的識(shí)別名稱(chēng),表單利用這個(gè)名稱(chēng)識(shí)別此字段對(duì)象。4.4.3其他字段

文本區(qū)域文本區(qū)域可供輸入多行文本,其HTML標(biāo)簽表示式如下:

<textareaname="textarea"></textarea>

列表/菜單該表單元素提供一個(gè)選項(xiàng)列表供用戶(hù)選擇,例如,一個(gè)選擇月份的字段可將1~12月等12個(gè)選項(xiàng)預(yù)先填入其中,讓使用者直接選擇,避免填入錯(cuò)誤的數(shù)據(jù),此元素的HTML標(biāo)簽語(yǔ)法如下:

<selectname="SELECT"size="12"></select>4.5組織表單元素

表單創(chuàng)建完成之后,就可以進(jìn)一步在其中布置所需的元素,讓用戶(hù)可以在其中輸入相關(guān)信息,并且返回至服務(wù)器作處理。本節(jié)將戶(hù)介紹如何完成表單數(shù)據(jù)傳送,同時(shí)會(huì)介紹表格的運(yùn)用技巧。創(chuàng)建一個(gè)表單,在其中加入一些獲取用戶(hù)數(shù)據(jù)的字段,同時(shí)創(chuàng)建一個(gè)接收表單傳送過(guò)來(lái)的數(shù)據(jù)的網(wǎng)頁(yè),在其中展現(xiàn)表單所傳送過(guò)來(lái)的數(shù)據(jù)內(nèi)容,具體操作步驟見(jiàn)書(shū)中介紹。4.6表單檢驗(yàn)

表單接收用戶(hù)輸入的數(shù)據(jù)時(shí),網(wǎng)頁(yè)必須提供特定字段的數(shù)據(jù)檢驗(yàn)操作,例如輸入用戶(hù)年齡的字段必須限定只允許輸入數(shù)字?jǐn)?shù)據(jù),電子郵件字段則必須檢驗(yàn)輸入的內(nèi)容是否為合法的郵件格式字符串,Dreamweaver提供了必要的檢驗(yàn)功能。4.7Request對(duì)象與客戶(hù)端數(shù)據(jù)傳送

4.7.1Request對(duì)象成員

4.7.2表單屬性與數(shù)據(jù)傳遞

4.7.3Post屬性值與Form集合對(duì)象

4.7.4Get屬性值與QueryString集合對(duì)象4.7.1Request對(duì)象成員

Request對(duì)象包含三類(lèi)成員,分別為集合、屬性和方法,其中集合包含了客戶(hù)端的數(shù)據(jù)內(nèi)容,屬性與方法各只有一個(gè),由于在ASP網(wǎng)頁(yè)中幾乎沒(méi)有使用,所以這里不再對(duì)其進(jìn)行說(shuō)明。表4-3Request對(duì)象的集合成員集

合說(shuō)

明Cookies傳送至服務(wù)器端的所有Cookie對(duì)象集合Form<form>標(biāo)簽的方法設(shè)為Post時(shí),表單所有字段值的集合對(duì)象QueryString<form>標(biāo)簽的方法設(shè)為Get時(shí),表單所有字段值的集合對(duì)象,由合并在url網(wǎng)址列字符串后面的“鍵/值”對(duì)所組成ServerVariables客戶(hù)端對(duì)服務(wù)器提出需求,同時(shí)傳送至服務(wù)器的HTTP標(biāo)題與服務(wù)器變量等數(shù)據(jù)4.7.2表單屬性與數(shù)據(jù)傳遞

在進(jìn)入數(shù)據(jù)傳遞功能的實(shí)例之前,對(duì)于表單如何在ASP網(wǎng)頁(yè)上運(yùn)行必須具備一定的概念,同時(shí)了解表單傳送數(shù)據(jù)的相關(guān)機(jī)制。表單要將字段數(shù)據(jù)傳送至網(wǎng)頁(yè)服務(wù)器進(jìn)行處理,其中有兩個(gè)很重要的Form標(biāo)簽屬性必須確認(rèn),這兩個(gè)屬性分別是method和action,設(shè)置它們的HTML語(yǔ)法如下:

<formaction=pageFilePathmethod=methodNamename=FormName>

當(dāng)用戶(hù)從工具欄中將一個(gè)表單元素拖動(dòng)到網(wǎng)頁(yè)上時(shí),這兩個(gè)屬性值會(huì)在設(shè)置完成之后,自動(dòng)填入設(shè)置值,若是完成之后還想修改,可以通過(guò)“屬性”面板進(jìn)行。發(fā)送表單的關(guān)鍵在于按鈕的設(shè)置,一個(gè)表單上必須布置按鈕標(biāo)簽,并且將其type屬性被設(shè)為submit,如下:

<inputtype="submit"name="Submit"value="送出">

當(dāng)表單上的按鈕如此設(shè)置時(shí),一旦用戶(hù)單擊此按鈕,則表單的數(shù)據(jù)會(huì)馬上被送回服務(wù)器進(jìn)行處理。4.7.3Post屬性值與Form集合對(duì)象

首先創(chuàng)建txtName和txteMail這2個(gè)Request變量,接著將這2個(gè)變量拖動(dòng)至網(wǎng)頁(yè)相應(yīng)位置。完成后,比較“設(shè)計(jì)”和“代碼”兩個(gè)窗口中的內(nèi)容,其中Dreamweaver完成了相關(guān)Request對(duì)象變量的編寫(xiě),拖動(dòng)至網(wǎng)頁(yè)上的兩個(gè)變量:Form.txtName和Form.txteMail。

Request.Form("txtName")代表前一個(gè)網(wǎng)頁(yè)txtName的字段數(shù)據(jù)內(nèi)容,Request("txteMail")則是txteMail字段里的內(nèi)容。4.7.4Get屬性值與QueryString集合對(duì)象

打開(kāi)theForm.asp網(wǎng)頁(yè),切換至“代碼”編輯模式,在其中HTMLFrom標(biāo)簽程序代碼中將method和action兩個(gè)屬性值修改為如下:

action="theDataR.asp"method="get"name="DataForm"

打開(kāi)新建的theDataR.asp網(wǎng)頁(yè)進(jìn)行編輯,在“應(yīng)用程序”面板的“綁定”選項(xiàng)卡中新增Request變量,選擇Request.QueryString,新增加的兩個(gè)Request變量分別為QueryString.txteMail和QueryString.txtName。最后將將設(shè)置好的QueryString變量,拖動(dòng)到到預(yù)先設(shè)計(jì)好的表格字段里即可。4.8Response對(duì)象與服務(wù)器端響應(yīng)

4.8.1Response對(duì)象成員

4.8.2輸出數(shù)據(jù)至網(wǎng)頁(yè)

4.8.3網(wǎng)頁(yè)轉(zhuǎn)向4.8.1Response對(duì)象成員

Response對(duì)象同樣提供了三類(lèi)對(duì)象的成員,分別是集合、屬性與方法,分別說(shuō)明如下。集合:Response主要可用的集合對(duì)象為Cookies,ASP網(wǎng)頁(yè)服務(wù)器通過(guò)這個(gè)集合對(duì)象將Cookie值設(shè)置到用戶(hù)的計(jì)算機(jī)上。屬性:Response提供了一些服務(wù)器專(zhuān)用的屬性,例如緩沖區(qū)的設(shè)置Buffer、網(wǎng)頁(yè)到期時(shí)間Expiresminutes、HTTP狀態(tài)設(shè)置等,這些值通常并不需要設(shè)置,用戶(hù)只需大體了解即可。方法:Response的方法成員中,常用的是Write和Redirect,其中的Write()接收一個(gè)字符串參數(shù),用于將參數(shù)寫(xiě)入網(wǎng)頁(yè),而Redirect()則用于將瀏覽器導(dǎo)向指定的URL地址,這兩個(gè)方法成員稍后將詳細(xì)說(shuō)明。其他的方法,如清除緩沖區(qū)的Clear(),終止網(wǎng)頁(yè)運(yùn)行的End()等,由于并不經(jīng)常使用,這里不加說(shuō)明。4.8.2輸出數(shù)據(jù)至網(wǎng)頁(yè)

Responses對(duì)象最主要的功能是將指定的信息輸出至網(wǎng)頁(yè),響應(yīng)給客戶(hù)端瀏覽器,方法Write用來(lái)達(dá)到這個(gè)目的,例如用戶(hù)可以編寫(xiě)以下的程序代碼,將一段指定的字符串輸出在網(wǎng)頁(yè)上:

Response.Write("測(cè)試Response對(duì)象!!")Write在ASP網(wǎng)頁(yè)中使用相當(dāng)頻繁,甚至構(gòu)成網(wǎng)頁(yè)的HTML標(biāo)簽都可以利用這個(gè)方法作輸出,網(wǎng)頁(yè)會(huì)直接呈現(xiàn)HTML的顯示效果。4.8.3網(wǎng)頁(yè)轉(zhuǎn)向

Response對(duì)象另外一個(gè)常用的方法為Redirect,該方法接受一個(gè)指向特定路徑的URL字符串參數(shù),命令瀏覽器轉(zhuǎn)向這個(gè)參數(shù)所指定的網(wǎng)頁(yè),使用的方式如下:

Response.Redirect(URLString)URLString代表一個(gè)指向特定網(wǎng)頁(yè)的URL,當(dāng)網(wǎng)頁(yè)執(zhí)行到這一段程序代碼時(shí),瀏覽器會(huì)重新加載指定的新網(wǎng)頁(yè)。4.9本章小結(jié)

Web應(yīng)用程序以表單機(jī)制進(jìn)行客戶(hù)端計(jì)算機(jī)與服務(wù)器主機(jī)的連接操作。

Request對(duì)象用于取得用戶(hù)在表單中輸入的數(shù)據(jù)內(nèi)容。第5章ASP對(duì)象的應(yīng)用

ASP的功能幾乎都是通過(guò)幾個(gè)內(nèi)置對(duì)象提供的,本章將從以下幾個(gè)方面來(lái)詳細(xì)介紹ASP對(duì)象的應(yīng)用:

5.1ASP對(duì)象

5.2維護(hù)ASP網(wǎng)頁(yè)的狀態(tài)數(shù)據(jù)

5.3Application對(duì)象

5.4Session對(duì)象

5.5服務(wù)器行為與Server對(duì)象

5.6本章小結(jié)5.1ASP對(duì)象

ASP提供一些可供網(wǎng)頁(yè)開(kāi)發(fā)人員運(yùn)用的內(nèi)置對(duì)象,這些對(duì)象總共有6個(gè),分別用于創(chuàng)建各種ASP網(wǎng)頁(yè)功能,如下表所示。

對(duì)象說(shuō)明Request傳送向服務(wù)器端提出請(qǐng)求所需的信息內(nèi)容Response提供響應(yīng)客戶(hù)端請(qǐng)求的各種信息內(nèi)容Application用以存儲(chǔ)以整個(gè)網(wǎng)站為范圍對(duì)象的共享變量Session用以存儲(chǔ)以在線用戶(hù)為范圍對(duì)象的共享變量Server提供服務(wù)器端網(wǎng)頁(yè)語(yǔ)言所需的各種方法與屬性,如HTM編碼,返回URL路徑等AspError提供ASP網(wǎng)頁(yè)發(fā)生錯(cuò)誤的內(nèi)容細(xì)節(jié)5.2維護(hù)ASP網(wǎng)頁(yè)的狀態(tài)數(shù)據(jù)

當(dāng)一個(gè)應(yīng)用程序沒(méi)有任何聯(lián)機(jī)狀態(tài)存在時(shí),由于應(yīng)用程序之間的數(shù)據(jù)無(wú)法傳遞,因此應(yīng)用程序中的各部分無(wú)法運(yùn)行,此外,存儲(chǔ)應(yīng)用程序的變量由于沒(méi)有依附而無(wú)法存儲(chǔ)任何數(shù)據(jù)。

ASP網(wǎng)頁(yè)程序是一種無(wú)狀態(tài)的應(yīng)用程序,網(wǎng)頁(yè)與網(wǎng)頁(yè)之間變量數(shù)據(jù)的維護(hù)與存取,則是通過(guò)Application和Session這兩個(gè)對(duì)象來(lái)處理。5.3Application對(duì)象

5.3.1Application對(duì)象成員

5.3.2存取Application對(duì)象

5.3.3Application對(duì)象的鎖定與釋放

5.3.4Application對(duì)象的開(kāi)始與結(jié)束5.3.1Application對(duì)象成員

Application對(duì)象本身提供了一些方法與集合,用于處理ASP應(yīng)用程序的各種狀態(tài)與特性,如下表所示。對(duì)象成員說(shuō)明集合Contents存儲(chǔ)Application對(duì)象變量值StaticObjects存儲(chǔ)Application對(duì)象標(biāo)簽<Object>變量方法Contents.Remove(valName)刪除Contents集合中的特定元素Contents.RemoveAll刪除Contents集合中的所有元素Lock()鎖定Application對(duì)象存取Unlock()釋放被鎖定的Application對(duì)象事件onStartASP應(yīng)用程序第一次啟動(dòng)時(shí)被觸發(fā)onEndASP應(yīng)用程序結(jié)束時(shí)被觸發(fā)5.3.2存取Application對(duì)象

用戶(hù)可以將使用Request和Response對(duì)象的經(jīng)驗(yàn),運(yùn)用在Application對(duì)象的存取方法上,它同樣是一種集合類(lèi)型的對(duì)象,通過(guò)索引名稱(chēng)進(jìn)行存取,例如以下的程序代碼:

DimvarValueApplication(varAppName)=varAppValueVarAppValue=Application(varAppName)

其中的varAppName為索引值的名稱(chēng),而變量varAppValue所存儲(chǔ)的值則是Application對(duì)象中索引值等于varAppName元素所存儲(chǔ)的內(nèi)容值,一個(gè)Application元素可以任意指定然后直接使用。例如上述的程序片段,用戶(hù)可以直接指定名稱(chēng)為varAppName的Application對(duì)象,然后以此為其識(shí)別名稱(chēng)在ASP網(wǎng)頁(yè)之中運(yùn)算。5.3.3Application對(duì)象的鎖定與釋放

Application對(duì)象對(duì)于網(wǎng)站所有的網(wǎng)頁(yè)和在線用戶(hù)而言,是一個(gè)公開(kāi)對(duì)象,因此任何人在任何時(shí)間,都有可能對(duì)其進(jìn)行存取,當(dāng)一個(gè)Application對(duì)象在同一個(gè)時(shí)間被多個(gè)用戶(hù)存取時(shí),就會(huì)發(fā)生沖突。因此對(duì)于Application對(duì)象而言,適當(dāng)限制用戶(hù)存取非常重要。

Application對(duì)象提供兩個(gè)與限制存取有關(guān)的方法,分別是Lock和Unlock,前者會(huì)將Application鎖住,只允許當(dāng)前用戶(hù)作存取,后者則將被鎖定的對(duì)象作釋放,使用的方式如下:

Application.Lock

……

Application對(duì)象存取程序…

……Application.Unlock

當(dāng)使用方法Lock時(shí),整個(gè)網(wǎng)站只有當(dāng)前瀏覽的網(wǎng)頁(yè)可以對(duì)其進(jìn)行存?。皇褂肬nlock時(shí),Application則馬上被釋放。

5.3.4Application對(duì)象的開(kāi)始與結(jié)束

當(dāng)網(wǎng)站的第一個(gè)用戶(hù)通過(guò)瀏覽器打開(kāi)一個(gè)網(wǎng)頁(yè)時(shí),會(huì)自動(dòng)創(chuàng)建Application對(duì)象。與此同時(shí),Application對(duì)象所定義的事件onStart便會(huì)被觸發(fā),對(duì)于ASP網(wǎng)頁(yè)的程序設(shè)計(jì)師而言,會(huì)將焦點(diǎn)放在所觸發(fā)的onStart事件,整個(gè)網(wǎng)站一開(kāi)始所要執(zhí)行的工作、初始化操作的相關(guān)程序代碼,都可以在這個(gè)事件中處理。同樣,ASP應(yīng)用程序網(wǎng)站被關(guān)閉時(shí),系統(tǒng)偵測(cè)到最后一個(gè)用戶(hù)離線的同時(shí),Application對(duì)象就會(huì)結(jié)束,所有ASP應(yīng)用程序執(zhí)行期間,網(wǎng)頁(yè)在其中所存儲(chǔ)的數(shù)據(jù)均會(huì)被清除。此時(shí)另外一個(gè)事件onEnd即會(huì)被觸發(fā),處理ASP網(wǎng)站結(jié)束時(shí)所需的程序代碼可以被放在這個(gè)事件里處理。5.4Session對(duì)象

5.4.1Session對(duì)象成員

5.4.2存取Session對(duì)象

5.4.3Session的到期和中止

5.4.4Session事件5.4.1Session對(duì)象成員

Session對(duì)象同樣提供了數(shù)種成員,其中包含了屬性、方法和事件,這些成員在應(yīng)用程序中的使用也相當(dāng)廣泛,如下表所示。對(duì)象成員說(shuō)明集合Contents存儲(chǔ)Session對(duì)象變量值StaticObjects存儲(chǔ)Session對(duì)象的<Object>變量方法Contents.Remove(valName)刪除Session集合中的特定元素Contents.RemoveAll刪除Session集合中的所有元素Abandon()結(jié)束當(dāng)前的Session,為用戶(hù)創(chuàng)建一個(gè)新的Session事件onStart一個(gè)新的用戶(hù)聯(lián)機(jī)進(jìn)來(lái)時(shí)被觸發(fā)onEnd一個(gè)用戶(hù)結(jié)束聯(lián)機(jī)時(shí)被觸發(fā)屬性CodePage設(shè)置網(wǎng)頁(yè)所使用的字符編號(hào)LCID存取網(wǎng)頁(yè)設(shè)置的區(qū)域識(shí)別SessionID代表一個(gè)特定用戶(hù)的惟一Session對(duì)象識(shí)別IDTimeOut設(shè)置Session對(duì)象的存活時(shí)間5.4.2存取Session對(duì)象

存取Session對(duì)象與存取Application對(duì)象并沒(méi)有不同,但是其值的存活時(shí)間與存儲(chǔ)方式卻有很大的不同,這些差異ASP均會(huì)自動(dòng)辨識(shí)作處理,但是用戶(hù)必須對(duì)其中的細(xì)節(jié)有所了解,才能有效地運(yùn)用Session對(duì)象。存取Session對(duì)象所需的程序代碼如下,與Application對(duì)象的存取相比,除了對(duì)象名稱(chēng)Application之外,其他內(nèi)容語(yǔ)法均相同:

DimvarValueSession(varAppName)=varAppValueVarAppValue=Session(varAppName5.4.3Session的到期和中止

Session對(duì)象有存活期限,當(dāng)一個(gè)Session對(duì)象到達(dá)其設(shè)置期限后,此對(duì)象會(huì)被中止,除非用戶(hù)打開(kāi)新網(wǎng)頁(yè)或刷新當(dāng)前網(wǎng)頁(yè)內(nèi)容。Session對(duì)象本身公開(kāi)了一個(gè)屬性Timeout,用于設(shè)置Session對(duì)象的存活期限,其單位為分鐘,當(dāng)用戶(hù)需要重新調(diào)整Session對(duì)象的存活時(shí)間,可以重設(shè)該屬性值,其語(yǔ)法如下:Session.Timeout=intMinu

這段程序?qū)ession對(duì)象的存活時(shí)間設(shè)置為intMinu分鐘,一個(gè)Session對(duì)象若是沒(méi)有經(jīng)過(guò)重設(shè),其默認(rèn)的存活時(shí)間等為10分鐘。5.4.4Session事件

Session對(duì)象不同于Appliction對(duì)象,當(dāng)網(wǎng)站一個(gè)新的用戶(hù)登錄通過(guò)瀏覽器請(qǐng)求一個(gè)網(wǎng)頁(yè)時(shí),就會(huì)創(chuàng)建該用戶(hù)的專(zhuān)屬Session對(duì)象,Session對(duì)象所定義的事件onStart同時(shí)被觸發(fā)。與Application對(duì)象相同,對(duì)于ASP網(wǎng)頁(yè)的程序設(shè)計(jì)師而言,同樣會(huì)將焦點(diǎn)放在所觸發(fā)的onStart事件,針對(duì)一個(gè)特定的登錄用戶(hù)所要執(zhí)行的工作,都可以在該事件里面作處理。當(dāng)一個(gè)用戶(hù)離線或停止任何瀏覽網(wǎng)頁(yè)動(dòng)作的時(shí)間一旦超過(guò)了Session對(duì)象的存活期限,代表此用戶(hù)的Session對(duì)象就會(huì)被結(jié)束。此時(shí)即會(huì)觸發(fā)另外一個(gè)事件onEnd,處理用戶(hù)離線時(shí)所需的程序代碼可以被放在這個(gè)事件里處理。5.5服務(wù)器行為與Server對(duì)象

5.5.1Server對(duì)象成員

5.5.2創(chuàng)建對(duì)象CreateObject

5.5.3字符格式轉(zhuǎn)換

5.5.4重新導(dǎo)向網(wǎng)頁(yè)

5.5.5獲取絕對(duì)路徑5.5.1Server對(duì)象成員

Server對(duì)象的成員,主要是提供各種服務(wù)器操作的方法,如下表所示。方法 說(shuō)明CreateObject(objName)創(chuàng)建對(duì)象實(shí)體HTMLEncode(string)HTML字符串編碼URLEncode(string)路徑字符串編碼MapPath(urlString)取得絕對(duì)路徑Transfer(urlString)轉(zhuǎn)到指定瀏覽網(wǎng)頁(yè)Execute(urlString)執(zhí)行外部網(wǎng)頁(yè)GetLastError()取得Error對(duì)象5.5.2創(chuàng)建對(duì)象CreateObject

ASP只提供了6個(gè)內(nèi)置對(duì)象,而這些對(duì)象無(wú)法滿足創(chuàng)建互動(dòng)網(wǎng)站的基本需求,ASP具備使用外部對(duì)象的擴(kuò)充機(jī)制,為本身功能不足之處提供解決的方法。除此之外,用戶(hù)還可以利用其他功能完整的程序語(yǔ)言,創(chuàng)建具備所需功能的程序?qū)ο?,提供給ASP網(wǎng)頁(yè),進(jìn)行功能的擴(kuò)充。

ASP利用Server對(duì)象的CreateObject方法,在網(wǎng)頁(yè)中創(chuàng)建所要運(yùn)用的對(duì)象實(shí)體,引用CreateObject的語(yǔ)法如下:

SetobjCreate=Server.CreateObject("ObjectID")

其中的ObjectID為所創(chuàng)建的對(duì)象識(shí)別名稱(chēng),ObjCreate為存儲(chǔ)此對(duì)象的變量,一旦這行程序代碼執(zhí)行完成,objCreate便能夠在該對(duì)象的網(wǎng)頁(yè)中使用,就如同內(nèi)建的6個(gè)對(duì)象,只是必須使用ObjCreate變量名稱(chēng)取代對(duì)象的識(shí)別ID。5.5.3字符格式轉(zhuǎn)換

一個(gè)網(wǎng)頁(yè)文件的內(nèi)容,除了擴(kuò)展名不同之外,無(wú)論HTML還是ASP,基本上都是一種純文本文件,瀏覽器負(fù)責(zé)解析其中屬于HTML的部分,VBScript等ASP部分則由IIS服務(wù)器解析。在前述的內(nèi)容里面,用戶(hù)利用Response對(duì)象的Write方法將指定的字符串轉(zhuǎn)換為HTML輸出,如下所示:

Response.Write("<b>Response測(cè)試字符串</.b>")

這段程序代碼會(huì)將“<b>Response測(cè)試字符串</.b>”這段字符串發(fā)送給瀏覽器進(jìn)行解析,瀏覽器除了輸出“Response測(cè)試字符串”這段文字之外,由于<b>和</.b>為HTML標(biāo)簽,因此瀏覽器解析之后,便將此字符串加上粗體的效果。

Server對(duì)象提供方法HTMLEncode用來(lái)轉(zhuǎn)換HTML標(biāo)簽,避免這些特定字符被瀏覽器進(jìn)一步解析,HTMLEncode將需要轉(zhuǎn)換的字符當(dāng)作參數(shù)包起來(lái)即可,使用的方式如下:

Server.HTMLEncode(HTMLCodeString)

其中的HTMLCodeString為包含HTML標(biāo)簽的文本字符串。5.5.4重新導(dǎo)向網(wǎng)頁(yè)

Response對(duì)象提供一個(gè)方法Redirect,用來(lái)將當(dāng)前的網(wǎng)頁(yè)導(dǎo)向另外一個(gè)特定網(wǎng)址所指定的網(wǎng)頁(yè),Server對(duì)象提供了類(lèi)似的功能,分別是方法Transfer和Execute,這兩個(gè)方法同樣是請(qǐng)求服務(wù)器執(zhí)行特定的網(wǎng)頁(yè),但是其中還是有些許的差異。方法Execute用來(lái)嵌入另外一個(gè)網(wǎng)頁(yè)的程序代碼,引用此方法的ASP語(yǔ)法如下:

Server.Execute(urlName)

另外一個(gè)方法Transfer,同樣是用于將當(dāng)前網(wǎng)頁(yè)的執(zhí)行流程移轉(zhuǎn)到另外一個(gè)指定的網(wǎng)頁(yè),語(yǔ)法與Execute用法相同:

Server.Transfer(urlName)5.5.5獲取絕對(duì)路徑

Server對(duì)象提供的MapPath方法可以將程序指定的文件虛擬路徑,轉(zhuǎn)換為其所在位置的真實(shí)路徑返回,引用的方式如下:

Server.MapPath(filePath)

這段程序代碼會(huì)將指定的文件虛擬路徑filePath轉(zhuǎn)換成為文件所在位置的真實(shí)路徑返回。5.6本章小結(jié)

除了Response和Request以外,ASP另外提供了4個(gè)重要的內(nèi)置對(duì)象:Application、Session、Server和AspError。網(wǎng)頁(yè)與網(wǎng)頁(yè)之間變量數(shù)據(jù)的維護(hù)與存取,通過(guò)Application和Session對(duì)象處理,Application對(duì)象所存儲(chǔ)的數(shù)據(jù)以網(wǎng)站為基礎(chǔ),供整個(gè)網(wǎng)站所有登錄用戶(hù)進(jìn)行存取操作;Session對(duì)象則是以用戶(hù)為基礎(chǔ),存儲(chǔ)在Session對(duì)象的數(shù)據(jù)只能由特定用戶(hù)所讀取。

Application與Session均是一種集合對(duì)象,以索引名稱(chēng)作存取。

Application對(duì)象是一個(gè)共享對(duì)象,為了避免發(fā)生存取沖突,Application對(duì)象提供兩個(gè)與限制存取有關(guān)的方法:Lock和Unlock。前者會(huì)將Application鎖住,只允許當(dāng)前用戶(hù)作存取,后者則將被鎖定的對(duì)象釋放。

Application針對(duì)通過(guò)瀏覽器請(qǐng)求瀏覽網(wǎng)頁(yè)的第一個(gè)用戶(hù)創(chuàng)建,此時(shí)Application對(duì)象所定義的事件onStart被觸發(fā);當(dāng)系統(tǒng)偵測(cè)到最后一個(gè)用戶(hù)離線的同時(shí),Application對(duì)象就會(huì)被結(jié)束,此時(shí)onEnd事件即會(huì)被觸發(fā)。處理onStart和onEnd事件的相關(guān)程序必須在Global.asa文件中處理,Global.asa文件需放在網(wǎng)站的根目錄下才有效。

Global.asa是一個(gè)文本文件,Application對(duì)象創(chuàng)建與消失時(shí),均會(huì)在該文件中進(jìn)行。5.6本章小結(jié)

Session對(duì)象以用戶(hù)為基礎(chǔ),用SessionID屬性值進(jìn)行識(shí)別,針對(duì)每一個(gè)在線用戶(hù),系統(tǒng)均會(huì)為其配置一個(gè)新的Session對(duì)象。

Session對(duì)象有其存活期限,其本身公開(kāi)了一個(gè)屬性Timeout,用于設(shè)置Session對(duì)象的存活期限,單位為分鐘。當(dāng)一個(gè)Session對(duì)象到達(dá)其設(shè)置期限,則此對(duì)象會(huì)被中止,除非用戶(hù)打開(kāi)新網(wǎng)頁(yè)或是刷新當(dāng)前網(wǎng)頁(yè)內(nèi)容。事件onStart在用戶(hù)的Session對(duì)象創(chuàng)建時(shí)被觸發(fā)。當(dāng)一個(gè)用戶(hù)離線或是停止任何瀏覽網(wǎng)頁(yè)動(dòng)作的時(shí)間開(kāi)始;一旦過(guò)了Session對(duì)象的存活期限會(huì)觸發(fā)另外一個(gè)事件onEnd。

ASP利用Server對(duì)象的CreateObject方法,在網(wǎng)頁(yè)中創(chuàng)建所要運(yùn)用的對(duì)象實(shí)體,提供引用外部對(duì)象的方法。

Server對(duì)象提供方法HTMLEncode用于轉(zhuǎn)換HTML標(biāo)簽,避免這些特定字符被瀏覽器進(jìn)一步解析。

Server對(duì)象提供了Transfer和Execute兩個(gè)網(wǎng)頁(yè)導(dǎo)向的方法,其功能類(lèi)似Response對(duì)象的Redirect功能,用于將當(dāng)前網(wǎng)頁(yè)導(dǎo)向另外一個(gè)特定網(wǎng)址所指定的網(wǎng)頁(yè)。

Transfer和Execute方法最主要的差異,在于Transfer執(zhí)行之后,引用Transfer方法的網(wǎng)頁(yè)也就跟著結(jié)束,Transfer方法以下的程序代碼將不會(huì)被執(zhí)行。

第6章導(dǎo)入數(shù)據(jù)庫(kù)系統(tǒng)

動(dòng)態(tài)網(wǎng)頁(yè)的開(kāi)發(fā)與使用都離不開(kāi)數(shù)據(jù)庫(kù)的支持,本章將從以下幾個(gè)方面來(lái)詳細(xì)介紹如何在ASP與數(shù)據(jù)庫(kù)之間搭建橋梁:

6.1動(dòng)態(tài)網(wǎng)頁(yè)與數(shù)據(jù)庫(kù)系統(tǒng)

6.2關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)

6.3關(guān)系型數(shù)據(jù)

6.4數(shù)據(jù)處理

6.5ADO對(duì)象概述

6.6連接數(shù)據(jù)庫(kù)

6.7Dreamweaver與數(shù)據(jù)庫(kù)操作

6.8本章小結(jié)

6.1動(dòng)態(tài)網(wǎng)頁(yè)與數(shù)據(jù)庫(kù)系統(tǒng)

一般而言,使用服務(wù)器端網(wǎng)頁(yè)技術(shù)最主要的目的,就是提供網(wǎng)頁(yè)的數(shù)據(jù)處理能力,數(shù)據(jù)通常存儲(chǔ)在特定的數(shù)據(jù)庫(kù)系統(tǒng),ASP搭配ADO對(duì)象,提供開(kāi)發(fā)數(shù)據(jù)庫(kù)功能網(wǎng)頁(yè)所需的應(yīng)用程序接口,ASP、ADO加上數(shù)據(jù)庫(kù)系統(tǒng),組合成數(shù)據(jù)庫(kù)網(wǎng)頁(yè)的主要結(jié)構(gòu),如下圖所示。6.2關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)

6.2.1數(shù)據(jù)庫(kù)結(jié)構(gòu)

6.2.2Access數(shù)據(jù)庫(kù)系統(tǒng)

6.2.3創(chuàng)建數(shù)據(jù)庫(kù)

6.2.4數(shù)據(jù)表結(jié)構(gòu)

6.2.5數(shù)據(jù)內(nèi)容

6.2.6字段索引6.2.1數(shù)據(jù)庫(kù)結(jié)構(gòu)

溫馨提示

  • 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)論