版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Web數(shù)據(jù)庫(kù)概述
1.1Web概述1.1.1Web的歷史
Web的產(chǎn)生是與互聯(lián)網(wǎng)的發(fā)展密切相關(guān)的。1965年TedNelson首創(chuàng)了“超文本”術(shù)語(yǔ),1967年把實(shí)現(xiàn)分布式的計(jì)劃命名為Xanadu。但該項(xiàng)目于1987年才算完成,只設(shè)計(jì)出“一個(gè)運(yùn)行于SUN工作站上的粗糙的工具”。1988年,Autodesk公司買(mǎi)下了Xanadu,Nelson繼續(xù)研究該項(xiàng)目。
直到1988年,才設(shè)計(jì)出1981年的目標(biāo)。歐洲粒子物理實(shí)驗(yàn)室即CERN的TimBerners-Lee受到Nelson的影響提出一項(xiàng)計(jì)劃,目的是使科學(xué)家們很容易查閱同行的文章,進(jìn)一步演化成科學(xué)家能在服務(wù)器上創(chuàng)建文檔。該項(xiàng)目從1990年10月開(kāi)始到1990年12月完成,結(jié)果出版了命令行方式瀏覽器和NeXTStep瀏覽器。該瀏覽器可用于瀏覽服務(wù)器超文本文件及CERN的USENET。
1992年7月,WWW在CERN內(nèi)部得到了廣泛的使用。到了1993年1月全世界共有30臺(tái)Web服務(wù)器,并有各種瀏覽器版本發(fā)行,包括用于Macintosh和XWindows的客戶(hù)程序。1993年伊利諾斯大學(xué)Urbana-Champaign分校的國(guó)家超級(jí)計(jì)算應(yīng)用中心NCSA(NationalCenterforSupercomputingApplications)發(fā)行了一個(gè)新的瀏覽器軟件。從此,WWW初具規(guī)模。
CERN的Tim和他的小組解決了文檔的共享和鏈接問(wèn)題,但是主要基于NeXT服務(wù)器及工作站。由JoeHardin領(lǐng)導(dǎo)的NCSA系統(tǒng)開(kāi)發(fā)小組開(kāi)始一項(xiàng)旨在開(kāi)發(fā)一個(gè)不僅能處理Tim描述的超文本,而且還能支持其它的多種協(xié)議的WWW瀏覽器。于是在1993年2月發(fā)行了X-windows版Mosaic1.0。
隨后,Mosaic瀏覽器版本逐漸增加采用了MIME協(xié)議在瀏覽器中能直接瀏覽圖形甚至聲音。這時(shí)Web基本成熟,使WWW在Internet中空前火爆,也如此產(chǎn)生了瀏覽器間的競(jìng)爭(zhēng)。
NCSA把服務(wù)器技術(shù)轉(zhuǎn)讓給了一家名為Spyglass的商業(yè)轉(zhuǎn)售商,并把客戶(hù)程序交給經(jīng)銷(xiāo)商出售,隨后的一段時(shí)間內(nèi)出現(xiàn)了幾十種瀏覽器。1994年3月MarcAndreessen等第一批人員離開(kāi)NCSA與硅谷的SiliconGraphics公司的JimClark成立了Mosaic通訊公司(1994年10月更名為Netscape通訊公司),并雇傭了許多Mosaic、WWW、Lynx等的設(shè)計(jì)者,很快發(fā)布了第一代瀏覽器產(chǎn)品,實(shí)現(xiàn)了許多HTML正在討論的特性。
1.1.2Web及其工作模式
Web即萬(wàn)維網(wǎng),就是通過(guò)使用通訊設(shè)備和線(xiàn)路,將處在不同地理位置、操作上相對(duì)獨(dú)立的多個(gè)計(jì)算機(jī)連接起來(lái),再配置一定的系統(tǒng)軟件和應(yīng)用軟件,在這些計(jì)算機(jī)上實(shí)現(xiàn)軟硬件的資源共享和信息傳遞,由此而構(gòu)成的計(jì)算機(jī)網(wǎng)絡(luò)。
互聯(lián)網(wǎng)是由全球眾多的計(jì)算機(jī)局域網(wǎng)互相連接組成的一個(gè)超大規(guī)模的網(wǎng)絡(luò)系統(tǒng),在這個(gè)系統(tǒng)中運(yùn)行著多種應(yīng)用系統(tǒng),如上網(wǎng)使用的網(wǎng)頁(yè)瀏覽系統(tǒng)——WWW、上傳與下載用的文件傳輸系統(tǒng)——FTP、收發(fā)電子郵件所使用的電子郵件系統(tǒng)——E-Mail等?;ヂ?lián)網(wǎng)中運(yùn)行的每一種應(yīng)用系統(tǒng)都是由互聯(lián)網(wǎng)中相應(yīng)的服務(wù)器系統(tǒng)、客戶(hù)機(jī)系統(tǒng)構(gòu)成,也就是說(shuō)互聯(lián)網(wǎng)從物理連接來(lái)看是由眾多的計(jì)算機(jī)組成,而從邏輯上看是由多個(gè)功能子網(wǎng)組成。
前面所提到的幾個(gè)應(yīng)用系統(tǒng)即是一些常見(jiàn)的子網(wǎng),其中的WWW由聯(lián)入互聯(lián)網(wǎng)的Web服務(wù)器和瀏覽頁(yè)面的客戶(hù)機(jī)構(gòu)成,這種工作模式通常稱(chēng)為B/S模式(Browser/Server模式)。還有一種模式為C/S模式(Client/Server模式),它是通過(guò)在服務(wù)器和客戶(hù)機(jī)上分別安裝相應(yīng)的程序,從而達(dá)到使客戶(hù)機(jī)能夠與服務(wù)器進(jìn)行通訊的目的??蛻?hù)機(jī)/服務(wù)器的概念來(lái)源于日常生活中常見(jiàn)的一種工作方式。例如,在一個(gè)大餐館中,顧客向服務(wù)員點(diǎn)菜,服務(wù)員把顧客的要求通知給廚房的廚師,廚師按顧客的要求做好菜讓服務(wù)員端給顧客,這就是一種餐館的C/S工作方式。餐館中的服務(wù)員和廚師進(jìn)行了分工:服務(wù)員直接面向顧客,了解顧客的要求并向顧客提供最終服務(wù);廚師看不到食客,但具體運(yùn)作食客提交的任務(wù)。
如果把餐館看成一個(gè)系統(tǒng),則服務(wù)員與廚師的分工就是一種系統(tǒng)的分工,C/S工作方式就是一種系統(tǒng)分工、協(xié)同的工作方式。招待員與廚師的分工關(guān)系是一種系統(tǒng)的結(jié)構(gòu)關(guān)系,所以C/S實(shí)際上也是一種系統(tǒng)結(jié)構(gòu)模式。
在瀏覽網(wǎng)頁(yè)時(shí),服務(wù)器上的WWW服務(wù)允許你用鼠標(biāo)點(diǎn)擊“超級(jí)鏈接”(簡(jiǎn)言之,就是使鼠標(biāo)光標(biāo)變成手形的文本詞句或圖形),每次你點(diǎn)擊一項(xiàng),WWW程序就執(zhí)行所要求的任務(wù),一直到你的需要得到滿(mǎn)足。
在這一過(guò)程中,要涉及兩個(gè)不同的程序:一個(gè)程序安裝在客戶(hù)機(jī)上,它執(zhí)行你的鼠標(biāo)點(diǎn)擊,發(fā)出http請(qǐng)求,接到響應(yīng)后,立即顯示鏈接的網(wǎng)頁(yè)內(nèi)容,確保你的要求得到執(zhí)行,這個(gè)程序叫做WWW客戶(hù)機(jī)程序,比如上網(wǎng)所使用的瀏覽器(IE或Netscape);另一個(gè)程序在服務(wù)器上,如IIS或“阿帕奇”(Apache)Web服務(wù)器軟件,它對(duì)WWW客戶(hù)機(jī)所要求的一切進(jìn)行滿(mǎn)足,也就是接到http請(qǐng)求后,發(fā)出響應(yīng)。
1.2Web數(shù)據(jù)庫(kù)
1.2.1Web數(shù)據(jù)庫(kù)的概念數(shù)據(jù)庫(kù)是指按照一定的結(jié)構(gòu)和規(guī)則組織起來(lái)的相關(guān)數(shù)據(jù)的集合,是存放數(shù)據(jù)的“倉(cāng)庫(kù)”,據(jù)此將網(wǎng)絡(luò)數(shù)據(jù)庫(kù)定義為以后臺(tái)數(shù)據(jù)庫(kù)為基礎(chǔ)的,加上一定的前臺(tái)程序,通過(guò)瀏覽器完成數(shù)據(jù)存儲(chǔ)、查詢(xún)等操作的系統(tǒng)。
數(shù)據(jù)庫(kù)技術(shù)是計(jì)算機(jī)處理與存儲(chǔ)數(shù)據(jù)的最有效、最成功的技術(shù),而計(jì)算機(jī)網(wǎng)絡(luò)的特點(diǎn)是資源共享,因此數(shù)據(jù)與資源共享這兩種技術(shù)的結(jié)合即成為今天廣泛應(yīng)用的Web數(shù)據(jù)庫(kù)(也叫網(wǎng)絡(luò)數(shù)據(jù)庫(kù))。一個(gè)Web數(shù)據(jù)庫(kù)就是用戶(hù)利用瀏覽器作為輸入接口,輸入所需要的數(shù)據(jù),瀏覽器將這些數(shù)據(jù)傳送給網(wǎng)站,而網(wǎng)站再對(duì)這些數(shù)據(jù)進(jìn)行處理,例如,將數(shù)據(jù)存入后臺(tái)數(shù)據(jù)庫(kù),或者對(duì)后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)操作等,最后網(wǎng)站將操作結(jié)果傳回給瀏覽器,通過(guò)瀏覽器將結(jié)果告知用戶(hù)。網(wǎng)站上的網(wǎng)站上的后臺(tái)數(shù)據(jù)庫(kù)就是Web數(shù)據(jù)庫(kù)。
通常,Web數(shù)據(jù)庫(kù)的環(huán)境由硬件元素和軟件元素組成。硬件元素包括Web服務(wù)器、客戶(hù)機(jī)、數(shù)據(jù)庫(kù)服務(wù)器、網(wǎng)絡(luò)。軟件元素包括客戶(hù)端必須有能夠解釋執(zhí)行HTML代碼的瀏覽器(如IE,Netscape等);在Web服務(wù)器中,必須具有能執(zhí)行可以自動(dòng)生成HTML代碼的程序的功能,如ASP,CGI等;具有能自動(dòng)完成數(shù)據(jù)操作指令的數(shù)據(jù)庫(kù)系統(tǒng),如Access,SQLServer等。
1.2.2WWW網(wǎng)絡(luò)環(huán)境下Web數(shù)據(jù)庫(kù)由于Web的易用性、實(shí)用性,它很快占據(jù)了主導(dǎo)地位,已經(jīng)成為使用最為廣泛、最有前途、最有魅力的信息傳播技術(shù)。不過(guò),Web服務(wù)只是提供了Internet上信息交互的平臺(tái)。隨著Internet技術(shù)的興起與發(fā)展和Web技術(shù)的蓬勃發(fā)展,人們已不滿(mǎn)足于只在Web瀏覽器上獲取靜態(tài)的信息,人們需要通過(guò)它發(fā)表意見(jiàn)、查詢(xún)數(shù)據(jù),甚至進(jìn)行網(wǎng)上購(gòu)物,這就迫切需要實(shí)現(xiàn)真正的Internet.Web與數(shù)據(jù)庫(kù)的互連,將人、企業(yè)、社會(huì)與Internet融為一體。Web技術(shù)發(fā)展到今天,人們已經(jīng)可以把數(shù)據(jù)庫(kù)技術(shù)引入到Web系統(tǒng)中。數(shù)據(jù)庫(kù)技術(shù)發(fā)展比較成熟,特別適用于對(duì)大量的數(shù)據(jù)進(jìn)行組織管理,Web技術(shù)具有較佳的信息發(fā)布途徑,這兩種技術(shù)的天然互補(bǔ)性決定相互融合是其發(fā)展的必然趨勢(shì)。將Web技術(shù)與數(shù)據(jù)庫(kù)技術(shù)融合在一起,使數(shù)據(jù)庫(kù)系統(tǒng)成為Web的重要有機(jī)組成部分,不僅可以把二者的所有優(yōu)點(diǎn)集中在一起,而且能夠充分利用大量已有的數(shù)據(jù)庫(kù)信息資源,使用戶(hù)在Web瀏覽器上方便地檢索和瀏覽數(shù)據(jù)庫(kù)的內(nèi)容,這對(duì)許多軟件開(kāi)發(fā)者來(lái)說(shuō)具有極大的吸引力。因此,將Web技術(shù)與數(shù)據(jù)庫(kù)相結(jié)合,開(kāi)發(fā)動(dòng)態(tài)的Web數(shù)據(jù)庫(kù)應(yīng)用已成為當(dāng)今Web技術(shù)研究的熱點(diǎn)。關(guān)系數(shù)據(jù)庫(kù)最初設(shè)計(jì)為基于主機(jī)/終端方式的大型機(jī)上的應(yīng)用,其應(yīng)用范圍較為有限,隨著客戶(hù)機(jī)/服務(wù)器方式的流行和應(yīng)用向客戶(hù)機(jī)方向的分解,關(guān)系數(shù)據(jù)庫(kù)又經(jīng)歷了客戶(hù)機(jī)/服務(wù)器時(shí)代,并獲得了極大的發(fā)展。
隨著Internet應(yīng)用的普及,由于Internet上信息資源的復(fù)雜性和不規(guī)范性,關(guān)系數(shù)據(jù)庫(kù)初期在開(kāi)發(fā)各種網(wǎng)上應(yīng)用時(shí)顯得力不從心,表現(xiàn)在無(wú)法管理各種網(wǎng)上的復(fù)雜的文檔型和多媒體型數(shù)據(jù)資源,后來(lái)關(guān)系數(shù)據(jù)庫(kù)對(duì)于這些需求作出了一些適應(yīng)性調(diào)整,如增加數(shù)據(jù)庫(kù)的面向?qū)ο蟪煞忠栽黾犹幚矶喾N復(fù)雜數(shù)據(jù)類(lèi)型的能力,增加各種中間件(主要包括CGI、ISAPI、ODBC、JDBC、ASP等技術(shù))以擴(kuò)展基于Internet的應(yīng)用能力,通過(guò)應(yīng)用服務(wù)器解釋執(zhí)行各種HTML中嵌入腳本來(lái)解決Internet應(yīng)用中數(shù)據(jù)庫(kù)數(shù)據(jù)的顯示、維護(hù)、輸出以及到HTML的格式轉(zhuǎn)換等。
此時(shí)關(guān)系數(shù)據(jù)庫(kù)的基于Internet應(yīng)用的模式典型表現(xiàn)為一種三層或四層的多層結(jié)構(gòu)。在這種多層結(jié)構(gòu)體系下,關(guān)系數(shù)據(jù)庫(kù)解決了數(shù)據(jù)庫(kù)的Internet應(yīng)用的方法問(wèn)題,使得基于關(guān)系數(shù)據(jù)庫(kù)能夠開(kāi)發(fā)各種網(wǎng)上數(shù)據(jù)庫(kù)數(shù)據(jù)的發(fā)布、檢索、維護(hù)、數(shù)據(jù)管理等一般性應(yīng)用。但是關(guān)系數(shù)據(jù)庫(kù)從設(shè)計(jì)之初并沒(méi)有也不可能考慮到以http為基礎(chǔ)、HTML為文件格式的互聯(lián)網(wǎng)的需求,只是在互聯(lián)網(wǎng)出現(xiàn)后才作出相應(yīng)的調(diào)整。
同時(shí),關(guān)系數(shù)據(jù)庫(kù)的基于中間件的解決方案又給Internet應(yīng)用帶來(lái)了新的網(wǎng)絡(luò)瓶頸,應(yīng)用服務(wù)器端由于與數(shù)據(jù)庫(kù)頻繁交互,因其本身的效率和數(shù)據(jù)庫(kù)檢索的效率造成Internet應(yīng)用在應(yīng)用服務(wù)器端的阻塞。
雖然關(guān)系型數(shù)據(jù)庫(kù)具有完備的理論基礎(chǔ)、簡(jiǎn)潔的數(shù)據(jù)模型、透明的查詢(xún)語(yǔ)言和方便的操作方法等優(yōu)點(diǎn),但是由于它本身并沒(méi)有針對(duì)網(wǎng)絡(luò)的特點(diǎn)和要求進(jìn)行設(shè)計(jì),因此并不適用于網(wǎng)絡(luò)環(huán)境,我們應(yīng)該研究開(kāi)發(fā)新的數(shù)據(jù)庫(kù)技術(shù),
從開(kāi)始就考慮到Web的信息和結(jié)構(gòu)特點(diǎn),使數(shù)據(jù)庫(kù)真正能與Web融合為一體,充分利用二者的特點(diǎn),建立合理的Web數(shù)據(jù)庫(kù)。
那么,為什么使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)呢?簡(jiǎn)言之,因?yàn)槿藗冊(cè)诰W(wǎng)絡(luò)數(shù)據(jù)庫(kù)中可以找到他們需要的東西,包括期刊查詢(xún),檢查銀行帳戶(hù)、股票價(jià)格、利率、實(shí)現(xiàn)電子商務(wù)等等。這些功能是用HTML編寫(xiě)的網(wǎng)頁(yè)是無(wú)法做到的,因?yàn)橛肏TML無(wú)法完成交互功能,要做到這些,必須使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)。
Web數(shù)據(jù)庫(kù)可以實(shí)現(xiàn)方便廉價(jià)的資源共享。數(shù)據(jù)信息是資源的主體,因而網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)自然而然成為互聯(lián)網(wǎng)的核心技術(shù)。
1.2.3幾種常用Web數(shù)據(jù)庫(kù)的比較
當(dāng)前比較流行的Web數(shù)據(jù)庫(kù)主要有:SQLServer、MySQL和Oracle。這3種數(shù)據(jù)庫(kù)適應(yīng)性強(qiáng),性能優(yōu)異,容易使用,在國(guó)內(nèi)得到了廣泛的應(yīng)用
1.SQLServer
是微軟公司從Sysbase獲得基本部件的使用許可后開(kāi)發(fā)出的一種關(guān)系型數(shù)據(jù)庫(kù)。目前最新的版本是SQLServer2000,但SQLServer7.0仍在廣泛使用。
由于均出自微軟之手,使得SQLServer和Windows、IIS等產(chǎn)品有著天然的聯(lián)系。事實(shí)上以Windows為核心的幾乎所有微軟的軟件產(chǎn)品都采用了一致的開(kāi)發(fā)策略,包括界面技術(shù)、面向?qū)ο蠹夹g(shù)、組件技術(shù)等,這樣在微軟的軟件中很多都可以相互調(diào)用,而且配合得非常密切。因此如果用戶(hù)使用的是Windows操作系統(tǒng),那么IIS、SQLServer就應(yīng)該是最佳的選擇。
2.MySQL是當(dāng)今Unix或Linux類(lèi)服務(wù)器上廣泛使用的Web數(shù)據(jù)庫(kù)系統(tǒng)。它于1996年誕生于瑞典的TcX公司,支持大部分的操作系統(tǒng)平臺(tái)。MySQL的設(shè)計(jì)思想快捷、高效、實(shí)用。雖然它對(duì)ANSISQL標(biāo)準(zhǔn)的支持并不完善,但支持所有常用的內(nèi)容,完全可以勝任一般Web數(shù)據(jù)庫(kù)的工作。由于它不支持事務(wù)處理,MySQL的速度比一些商業(yè)數(shù)據(jù)庫(kù)快2~3倍,并且MySQL還針對(duì)很多操作平臺(tái)做了優(yōu)化,完全支持多CPU系統(tǒng)的多線(xiàn)程方式。在編程方面,MySQL也提供了C、C++、Java、Perl、Python和TCL等API接口,而且有MyODBC接口,任何可以使用ODBC接口的語(yǔ)言都可以使用它。更重要的是,MySQL的源代碼是公開(kāi)的,可以免費(fèi)使用,這就使得MySQL成為許多中小型網(wǎng)站、個(gè)人網(wǎng)站追捧的明星。3.Oracle是Oracle公司開(kāi)發(fā)出的一種面向網(wǎng)絡(luò)計(jì)算機(jī)并支持對(duì)象關(guān)系模型的數(shù)據(jù)庫(kù)產(chǎn)品。它是以高級(jí)結(jié)構(gòu)化查詢(xún)語(yǔ)言為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫(kù),是目前最
流行的客戶(hù)/服務(wù)器體系機(jī)構(gòu)的數(shù)據(jù)庫(kù)之一。目前廣泛使用的版本是Oracle8i,它之所以備受用戶(hù)喜愛(ài)是因?yàn)樗哂幸韵峦怀龅奶攸c(diǎn):(1)支持大型數(shù)據(jù)庫(kù)、多用戶(hù)和高性能的事務(wù)處理。Oracle支持最大數(shù)據(jù)庫(kù),其大小可達(dá)到幾百千兆,可充分利用硬件設(shè)備;支持大量用戶(hù)同時(shí)對(duì)數(shù)據(jù)庫(kù)執(zhí)行各種數(shù)據(jù)操作,并使數(shù)據(jù)征用最小,保證數(shù)據(jù)一致性;系統(tǒng)維護(hù)具有很高的性能,Oracle每天可連續(xù)24小時(shí)工作,
正常的系統(tǒng)操作(后備或個(gè)別系統(tǒng)故障)不會(huì)中斷數(shù)據(jù)庫(kù)的應(yīng)用;可在數(shù)據(jù)庫(kù)級(jí)或子數(shù)據(jù)庫(kù)級(jí)上控制數(shù)據(jù)的可用性。(2)Oracle遵守?cái)?shù)據(jù)庫(kù)存取語(yǔ)言、操作系統(tǒng)、用戶(hù)接口、和網(wǎng)絡(luò)通訊協(xié)議的工業(yè)標(biāo)準(zhǔn),所以它是一個(gè)開(kāi)放系統(tǒng),保護(hù)了用戶(hù)的投資。美國(guó)標(biāo)準(zhǔn)化和技術(shù)研究所(NIST)對(duì)OracleServer進(jìn)行過(guò)檢驗(yàn),完全與ANSI/ISOSQL89標(biāo)準(zhǔn)相兼容(3)實(shí)施安全性控制和完整性控制。Oracle為限制系統(tǒng)對(duì)各監(jiān)控?cái)?shù)據(jù)庫(kù)存取提供可靠的安全性,并為可接受的數(shù)據(jù)指定標(biāo)準(zhǔn),保證數(shù)據(jù)的完整性。
(4)支持分布式數(shù)據(jù)庫(kù)和分布式處理。Oracle為了充分利用計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò),允許將處理分為數(shù)據(jù)庫(kù)服務(wù)器和客戶(hù)應(yīng)用程序處理,所有共享的數(shù)據(jù)管理由數(shù)據(jù)庫(kù)管理系統(tǒng)的計(jì)算機(jī)處理,而運(yùn)行數(shù)據(jù)庫(kù)應(yīng)用的工作站集中于解釋和顯示數(shù)據(jù)。通過(guò)網(wǎng)絡(luò)連接環(huán)境,Oracle將存放在多臺(tái)計(jì)算機(jī)上的數(shù)據(jù)組合成一個(gè)邏輯數(shù)據(jù)庫(kù),可被全部網(wǎng)絡(luò)用戶(hù)存取。分布式系統(tǒng)像集中式數(shù)據(jù)庫(kù)一樣具有透明性和數(shù)據(jù)一致性。
上面介紹的3種數(shù)據(jù)庫(kù)產(chǎn)品是目前最常用的3種大型關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),它們雖然在體系結(jié)構(gòu)和操作方法上有許多相似的地方,但是在應(yīng)用環(huán)境上還是各有側(cè)重的。一個(gè)應(yīng)用系統(tǒng)在選用數(shù)據(jù)庫(kù)時(shí),性能和價(jià)格時(shí)首先要考慮的兩個(gè)因素,表1-1列出了這3種數(shù)據(jù)庫(kù)在性能和價(jià)格上的對(duì)比情況,在使用時(shí)不同的系統(tǒng)應(yīng)針對(duì)實(shí)際情況采用合適的方案。
表1-13種數(shù)據(jù)庫(kù)的性?xún)r(jià)比
數(shù)據(jù)庫(kù)系統(tǒng)MySQLSQLServerOracle數(shù)據(jù)庫(kù)費(fèi)用全免費(fèi)費(fèi)用按連接計(jì)算,費(fèi)用較高按計(jì)算機(jī)主頻計(jì)算,費(fèi)用較高操作系統(tǒng)及費(fèi)用Linux免費(fèi)NT,價(jià)格較高Linux全免費(fèi);windowsNT、Solaris價(jià)格較高速度較快快最快容量較大較大大備份、恢復(fù)較好好最好從用戶(hù)的技術(shù)水平以及國(guó)內(nèi)軟件應(yīng)用的現(xiàn)狀來(lái)看,SQLSever應(yīng)該是一個(gè)較好的選擇,尤其是對(duì)初學(xué)者而言。1.2.4Web服務(wù)器腳本
Web頁(yè)面與數(shù)據(jù)庫(kù)地連接是Web數(shù)據(jù)庫(kù)的基本要求。目前基于Web數(shù)據(jù)庫(kù)地連接方案主要有兩種類(lèi)型:服務(wù)器端和客戶(hù)端方案。服務(wù)器端方案實(shí)現(xiàn)技術(shù)有CGI、SAPI、ASP、PHP等;客戶(hù)端方案實(shí)現(xiàn)技術(shù)有JDBC(JavaDatabaseConnectivity)、DHTML(DynamicHTML)等。其中ASP是微軟開(kāi)發(fā)的腳本語(yǔ)言技術(shù),它嵌入在IIS中,因此ASP也就順理成章地成為大部分Windows用戶(hù)首選的腳本語(yǔ)言。
1.3腳本程序與數(shù)據(jù)庫(kù)的接口
在腳本程序中連接數(shù)據(jù)庫(kù)一般都需要相應(yīng)的接口來(lái)完成。連接數(shù)據(jù)庫(kù)的常用方法有:ODBC、DAO、RDO及ADO等。
(1)ODBC ODBC(OpenDatabaseConnectivity,即開(kāi)發(fā)式數(shù)據(jù)庫(kù)連接)是微軟開(kāi)發(fā)的一套統(tǒng)一的程序接口。通過(guò)這個(gè)接口可以存取不同廠(chǎng)商生產(chǎn)的數(shù)據(jù)庫(kù)。
經(jīng)過(guò)多年的改進(jìn),它已成為存取服務(wù)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)。事實(shí)上,ODBC技術(shù)成了后來(lái)DAO、RDO及ADO等數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)的基礎(chǔ)。(2)DAODAO(DataAccessObjects,即服務(wù)器訪(fǎng)問(wèn)對(duì)象)是微軟公司開(kāi)發(fā)的一套主要應(yīng)用程序及開(kāi)發(fā)工具,用它可以訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)對(duì)象,如Access、VB、Excel、Word等。(3)RDORDO(RemoteDataObjects,即遠(yuǎn)程數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)對(duì)象)是微軟公司為增強(qiáng)DAO的功能而推出的新產(chǎn)品。
該產(chǎn)品強(qiáng)化了SQLServer的訪(fǎng)問(wèn)功能,提高了它的執(zhí)行效率。(4)ADOADO(ActivteXDataObjects,即ActivteX數(shù)據(jù)對(duì)象)是微軟在Internet領(lǐng)域采取的新舉措。它本身并不是一項(xiàng)新技術(shù),從對(duì)象結(jié)構(gòu)的角度來(lái)看,它比DAO提供的對(duì)象更少;從存取SQL服務(wù)器的角度來(lái)看,它提供的功能也不如RDO。但它汲取了DAO和RDO最精華的部分,成為一個(gè)更適合于Internet的小而精的對(duì)象群。因此,ADO實(shí)際上是腳本程序連接數(shù)據(jù)庫(kù)最好的選擇。
1.4應(yīng)用開(kāi)發(fā)平臺(tái)由于Web應(yīng)用開(kāi)發(fā)的獨(dú)特性,應(yīng)用開(kāi)發(fā)平臺(tái)成為眾多廠(chǎng)商的關(guān)注焦點(diǎn)。目前市場(chǎng)上存在很多的Web應(yīng)用標(biāo)準(zhǔn)、集成開(kāi)發(fā)環(huán)境。流行的主要是ASP、PHP、JSP三種。(1)ASP
ASP(ActivexServerPages)是由微軟創(chuàng)建的Web應(yīng)用開(kāi)發(fā)標(biāo)準(zhǔn),ASP服務(wù)器已經(jīng)包含在IIS服務(wù)器中,
ASP服務(wù)器將
Web請(qǐng)求轉(zhuǎn)入解釋器中,在解釋器中將所有
ASP中的腳本進(jìn)行分析,然后執(zhí)行,同時(shí)可以創(chuàng)建COM對(duì)象以完成更多的功能,ASP中的腳本是Vbscript。優(yōu)點(diǎn):安裝配置方便,開(kāi)發(fā)簡(jiǎn)單易學(xué);開(kāi)發(fā)工具功能強(qiáng)大。不足:ASP使用了組件因而將導(dǎo)致大量的安全問(wèn)題;無(wú)法實(shí)現(xiàn)跨平臺(tái),只能應(yīng)用于WindowsNT/2000。建議采用MS架構(gòu)的網(wǎng)站采用ASP應(yīng)用開(kāi)發(fā)平臺(tái)(IIS+VisualInterdev)。(2)PHPPHP由于其良好的性能及免費(fèi)的特點(diǎn),是目前互聯(lián)網(wǎng)中應(yīng)用非常流行的一種應(yīng)用開(kāi)發(fā)平臺(tái)。優(yōu)點(diǎn):簡(jiǎn)單易學(xué)、跨平臺(tái)、有良好數(shù)據(jù)庫(kù)交換能力的開(kāi)發(fā)語(yǔ)言;與Apache及其擴(kuò)展庫(kù)緊密結(jié)合;良好的安全性。不足:安裝配置復(fù)雜;缺少企業(yè)級(jí)的支持;作為自由軟件,缺乏正規(guī)的商業(yè)支持;無(wú)法實(shí)現(xiàn)商品化的商業(yè)開(kāi)發(fā)。建議基于Unix類(lèi)平臺(tái)的應(yīng)用采用Apache+Php+PHPEd。(3)JSP優(yōu)點(diǎn):可移植性好,支持多種平臺(tái);強(qiáng)大的可伸縮性;多樣化與強(qiáng)大的工具支持。不足:安裝配置管理較為復(fù)雜;運(yùn)行速度較慢;建議開(kāi)發(fā)大型應(yīng)用系統(tǒng)采用JSP本書(shū)重點(diǎn)講解ASP的開(kāi)發(fā)技術(shù),其它開(kāi)發(fā)技術(shù)請(qǐng)參考有關(guān)書(shū)籍。
本
章
小
結(jié)
本章主要介紹了Web數(shù)據(jù)庫(kù)的概念,分析與比較了幾種常用的Web數(shù)據(jù)庫(kù)的功能及特點(diǎn),對(duì)腳本程序與數(shù)據(jù)庫(kù)的接口技術(shù)也進(jìn)行了簡(jiǎn)要的介紹。通過(guò)本章的學(xué)習(xí),讀者對(duì)Web數(shù)據(jù)庫(kù)有了初步的了解。
習(xí)
題1.簡(jiǎn)述使用Web數(shù)據(jù)庫(kù)的原因。2.試對(duì)SQLServer、MySQL和Oracle三種數(shù)據(jù)庫(kù)進(jìn)行比較。3.腳本程序與數(shù)據(jù)庫(kù)連接的常用方法有幾種?各自的特點(diǎn)是什么?答
案
要
點(diǎn)
1.用HTML無(wú)法完成交互功能,實(shí)現(xiàn)信息的查詢(xún),必須有網(wǎng)絡(luò)數(shù)據(jù)庫(kù)做支持,才能使人們?cè)诰W(wǎng)絡(luò)數(shù)據(jù)庫(kù)中可以找到他們需要的東西,包括期刊查詢(xún),檢查銀行帳戶(hù)、股票價(jià)格、利率、實(shí)現(xiàn)電子商務(wù)等等。Web數(shù)據(jù)庫(kù)可以實(shí)現(xiàn)方便廉價(jià)的資源共享。2.見(jiàn)表1-1。3.要點(diǎn):(1)ASP由微軟創(chuàng)建的Web應(yīng)用開(kāi)發(fā)標(biāo)準(zhǔn),包含在IIS服務(wù)器中,ASP服務(wù)器將Web請(qǐng)求轉(zhuǎn)入解釋器中,在解釋器中將所有ASP的腳本進(jìn)行分析,然后執(zhí)行,同時(shí)可以創(chuàng)建COM對(duì)象以完成更多的功能,ASP中的腳本是Vbscript。優(yōu)點(diǎn):安裝配置方便,開(kāi)發(fā)簡(jiǎn)單易學(xué);開(kāi)發(fā)工具功能強(qiáng)大。不足:ASP使用了組件因而將導(dǎo)致大量的安全問(wèn)題;無(wú)法實(shí)現(xiàn)跨平臺(tái),只能應(yīng)用于WindowsNT/2000。建議采用微軟架構(gòu)的網(wǎng)站采用ASP應(yīng)用開(kāi)發(fā)平臺(tái)(IIS+VisualInterdev)。(2)PHPPHP由于其良好的性能及免費(fèi)的特點(diǎn),是目前互聯(lián)網(wǎng)中應(yīng)用非常流行的一種應(yīng)用開(kāi)發(fā)平臺(tái)。優(yōu)點(diǎn):簡(jiǎn)單易學(xué)、跨平臺(tái)、有良好數(shù)據(jù)庫(kù)交換能力的開(kāi)發(fā)語(yǔ)言;與Apache及其擴(kuò)展庫(kù)緊密結(jié)合;良好的安全性。不足:安裝配置復(fù)雜;缺少企業(yè)級(jí)的支持;作為自由軟件,缺乏正規(guī)的商業(yè)支持;無(wú)法實(shí)現(xiàn)商品化的商業(yè)開(kāi)發(fā)。建議基于Unix類(lèi)平臺(tái)的應(yīng)用采用Apache+Php+PHPEd。(3)JSP優(yōu)點(diǎn):可移植性好,支持多種平臺(tái);強(qiáng)大的可伸縮性;多樣化與強(qiáng)大的工具支持。不足:安裝配置管理較為復(fù)雜;運(yùn)行速度較慢;建議開(kāi)發(fā)大型應(yīng)用系統(tǒng)采用JSP。
ASP及其運(yùn)行環(huán)境2.1ASP概述2.1.1動(dòng)態(tài)Web技術(shù)
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,互聯(lián)網(wǎng)帶給世界的已經(jīng)不僅僅是新的信息傳播途徑,這種訪(fǎng)問(wèn)信息的方法已經(jīng)開(kāi)創(chuàng)了新的產(chǎn)業(yè)。Web平臺(tái)是作為在Internet上共享文件的平臺(tái)而發(fā)展起來(lái)的,同時(shí),Web技術(shù)在企業(yè)內(nèi)部的Intranet和外部的商業(yè)Extranet應(yīng)用中越來(lái)越成熟。如何在WWW網(wǎng)頁(yè)上開(kāi)發(fā)企業(yè)應(yīng)用程序并與企業(yè)數(shù)據(jù)庫(kù)鏈接一直是Intranet應(yīng)用開(kāi)發(fā)的重點(diǎn)和難點(diǎn),動(dòng)態(tài)Web技術(shù)和ASP技術(shù)就是在這種要求下產(chǎn)生的。動(dòng)態(tài)Web技術(shù)的應(yīng)用有多種類(lèi)型。第一種類(lèi)型是與使用者直接交互的頁(yè)面,它的一個(gè)應(yīng)用是用傳統(tǒng)的電子表格的方法為使用者統(tǒng)計(jì)幾種數(shù)據(jù)表項(xiàng)的和。另一種應(yīng)用是一個(gè)Web頁(yè)面,它對(duì)用戶(hù)作出響應(yīng)并給出迅速的反饋,這種形式常被應(yīng)用于網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)。通常,用一個(gè)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)存儲(chǔ)用戶(hù)可訪(fǎng)問(wèn)的信息,由動(dòng)態(tài)Web頁(yè)提供對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)界面,用戶(hù)通過(guò)Web瀏覽器就可以進(jìn)行數(shù)據(jù)庫(kù)的各種操作。根據(jù)用戶(hù)請(qǐng)求生成動(dòng)態(tài)主頁(yè)的傳統(tǒng)方法有CGI(即通用網(wǎng)關(guān)接口)、ISAP(即微軟Internet服務(wù)器應(yīng)用編程接口)等。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ù),以線(xiàn)程代替進(jìn)程,提高性能和速度,但需考慮線(xiàn)程的同步問(wèn)題。另外,無(wú)論是CGI程序還是ISAPI程序都基本上是獨(dú)立于HTML的,完全用另一種語(yǔ)言開(kāi)發(fā),工作量大,與HTML結(jié)合得不夠緊密。這兩種技術(shù)和另一普遍使用的開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)Java都還存在著一個(gè)問(wèn)題,那就是開(kāi)發(fā)困難,程序的開(kāi)發(fā)和HTML寫(xiě)作是兩個(gè)完全不同的過(guò)程,需要專(zhuān)門(mén)的程序員開(kāi)發(fā)。為了滿(mǎn)足對(duì)動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)的需要,微軟公司于1996年11月推出的Web應(yīng)用程序開(kāi)發(fā)技術(shù)——ASP(ActiveServerPages,即活動(dòng)服務(wù)器頁(yè)面)。它實(shí)際上是對(duì)IIS2.0的IDC(即Internet數(shù)據(jù)庫(kù)連接器)技術(shù)的升級(jí),不同的是它將VBScript腳本語(yǔ)言嵌入了HTML,完全具備開(kāi)發(fā)復(fù)雜應(yīng)用的語(yǔ)言環(huán)境。微軟聲稱(chēng)設(shè)計(jì)出了一個(gè)完美的Active平臺(tái),在微軟的文件中把ASP描述為:“一個(gè)服務(wù)器的腳本環(huán)境,在這里可以生成和運(yùn)行動(dòng)態(tài)的、交互的、高性能的Web服務(wù)器應(yīng)用程序”。2.1.2什么是ASP
從描述中可以看出,ASP既不是一種語(yǔ)言,也不是一種開(kāi)發(fā)工具,而是一種技術(shù)框架,它能夠把HTML、腳本、組件等有機(jī)地組合在一起,形成一個(gè)能夠在服務(wù)器上運(yùn)行的應(yīng)用程序,并把按用戶(hù)要求專(zhuān)門(mén)制作的標(biāo)準(zhǔn)HTML頁(yè)面回送給客戶(hù)端瀏覽器。其主要功是為生成動(dòng)態(tài)的交互式的Web服務(wù)器應(yīng)用程序提供一種功能強(qiáng)大的方法或技術(shù)。
ASP是一個(gè)Web服務(wù)器端開(kāi)發(fā)環(huán)境,屬于ActiveX技術(shù)中的服務(wù)器端技術(shù),與在客戶(hù)端實(shí)現(xiàn)動(dòng)態(tài)主頁(yè)的技術(shù)如Javaapplet、ActiveXControl、VBScript、JavaScript等所不同的是,ASP中的命令腳本語(yǔ)句都是在服務(wù)器中解釋執(zhí)行,執(zhí)行后將結(jié)果轉(zhuǎn)化成動(dòng)態(tài)的Web頁(yè)面,并把標(biāo)準(zhǔn)的HTML格式的數(shù)據(jù)流送到瀏覽器。另外,ASP也具有很好的安全性。同時(shí),由于它在服務(wù)器端執(zhí)行,所以不必?fù)?dān)心別人是否能下載程序而竊取編程邏輯,訪(fǎng)問(wèn)者除了瀏覽器上的HTML界面,什么也看不見(jiàn)。保護(hù)了開(kāi)發(fā)者的利益。另外,ASP還提供了豐富的組件和對(duì)象,可以使用第三方控件來(lái)完成復(fù)雜的功能。ASP通過(guò)擴(kuò)展名為.asp的文件來(lái)實(shí)現(xiàn)。一個(gè)ASP程序相當(dāng)于一個(gè)可執(zhí)行文件,必須放在Web服務(wù)器上有可執(zhí)行權(quán)限的目錄下。當(dāng)瀏覽器向Web服務(wù)器請(qǐng)求調(diào)用ASP文件時(shí),就啟動(dòng)了ASP,Web服務(wù)器開(kāi)始調(diào)用ASP,將被請(qǐng)求的.asp文件從頭讀到尾,執(zhí)行每一個(gè)命令,然后動(dòng)態(tài)生成一個(gè)HTML頁(yè)面并送回到瀏覽器。通常,一個(gè)ASP有如下四個(gè)重要特征:(1)可以包括服務(wù)端腳本。通過(guò)腳本的使用,可以使網(wǎng)站“動(dòng)”起來(lái),成為真正的和用戶(hù)交互的網(wǎng)站。(2)提供了一些內(nèi)建對(duì)象。利用對(duì)象,通過(guò)簡(jiǎn)單的編程就能獲得功能強(qiáng)大的腳本。(3)可以用另外的組件來(lái)擴(kuò)展。在ASP中,本身就提供了相當(dāng)數(shù)量的標(biāo)準(zhǔn)服務(wù)端ActiveX組件,這些組件提供如依據(jù)瀏覽器進(jìn)行不同顯示以及在瀏覽器內(nèi)包含計(jì)數(shù)器的功能??梢暂p松地使用這些組件來(lái)完成很復(fù)雜的工作。另外還可以使用各種第三方控件來(lái)增強(qiáng)網(wǎng)頁(yè)的功能。(4)ASP可以對(duì)諸如SQLServer這樣的數(shù)據(jù)庫(kù)進(jìn)行訪(fǎng)問(wèn)。利用一些特定的對(duì)象集合,如ActiveDataObiect(ADO),就可以在ASP中使用SQL語(yǔ)言來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。總而言之,ASP是網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)中最容易學(xué)習(xí)、靈活性最大的開(kāi)發(fā)工具之一,更重要的是ASP擁有非常大的可擴(kuò)充性。歸納起來(lái),ASP具有以下特點(diǎn):(1)ASP可以和HTML或其它腳本語(yǔ)言(VBScript與JavaScript)相互嵌套。(2)無(wú)須編譯,容易編寫(xiě),在服務(wù)器端直接執(zhí)行。(3)ASP是一種在Web服務(wù)器端運(yùn)行的腳本語(yǔ)言,程序代碼完全保密。(4)ASP以對(duì)象為基礎(chǔ),可以使用ActiveX控件繼續(xù)擴(kuò)充其功能。(5)ASP內(nèi)置ADO組件,可以輕松地存取各種數(shù)據(jù)庫(kù),縮短程序的開(kāi)發(fā)時(shí)間。(6)ASP可以將運(yùn)行結(jié)果以HTML的格式傳送到客戶(hù)端瀏覽器,適用于各種瀏覽器。ASP由于其簡(jiǎn)單實(shí)用而受到網(wǎng)站開(kāi)發(fā)人員的喜愛(ài),再加上微軟的強(qiáng)有力支持,可以說(shuō)是制作站點(diǎn)比較流行的語(yǔ)言之一。它借助微軟的Com+技術(shù),幾乎可以實(shí)現(xiàn)在CGI能夠?qū)崿F(xiàn)的所有功能,具有相當(dāng)?shù)母?jìng)爭(zhēng)力。但由于眾所周知的原因,ASP只能工作于微軟自己的操作系統(tǒng)平臺(tái)和服務(wù)器軟件之下,因而決定了ASP應(yīng)用的局限性。2.2ASP的工作方式上一節(jié)已經(jīng)簡(jiǎn)單敘述了ASP的工作方式,即利用ASP可以根據(jù)用戶(hù)要求在Web服務(wù)器上建立動(dòng)態(tài)網(wǎng)頁(yè),與IIS所支持的靜態(tài)網(wǎng)頁(yè)有著明顯的區(qū)別,其工作步驟描述如下:
(1)用戶(hù)在瀏覽器的地址欄添入ASP文件名稱(chēng),回車(chē)后即觸發(fā)這個(gè)ASP要求。
(2)瀏覽器將這個(gè)ASP的請(qǐng)求發(fā)送給IIS。(3)Web服務(wù)器接受這個(gè)請(qǐng)求并進(jìn)行分析,調(diào)入正確的ASP文件。(4)Web服務(wù)器將這個(gè)文件發(fā)送到一個(gè)叫做asp.dll的特定文件中。(5)Web服務(wù)器將被請(qǐng)求的.asp文件從頭讀到尾,執(zhí)行每一個(gè)命令,并生成相應(yīng)的動(dòng)態(tài)網(wǎng)頁(yè)。(6)回送這個(gè)動(dòng)態(tài)網(wǎng)頁(yè),由用戶(hù)的瀏覽器解釋執(zhí)行并顯示出來(lái)。2.3Web服務(wù)器的安裝及配置
由于目前多采用Windows2000操作系統(tǒng),故此處以Windows2000為例說(shuō)明Web服務(wù)器的安裝及配置,其它操作系統(tǒng)的安裝將在本書(shū)最后進(jìn)行簡(jiǎn)要介紹。在安裝過(guò)程中,需要注意的是,采用默認(rèn)方式安裝Windows2000時(shí),系統(tǒng)已經(jīng)安裝了Web服務(wù)及其它服務(wù)(出于系統(tǒng)安全性的考慮,在此作者建議盡量不要采用默認(rèn)安裝方式,并且只安裝你將要使用的那些程序)。
如果尚未安裝,則可使用“控制面板”中的“添加/刪除程序”來(lái)安裝IIS里的Web服務(wù)。同時(shí),為了網(wǎng)站的安全,請(qǐng)及時(shí)訪(fǎng)問(wèn)微軟的官方網(wǎng)站下載并安裝有關(guān)補(bǔ)丁程序。如果采用其它的Web服務(wù)器軟件,如Apache軟件,安裝時(shí)請(qǐng)按照安裝說(shuō)明進(jìn)行安裝和配置。2.3.1IIS的配置默認(rèn)情況下,IIS將它的根目錄設(shè)置到C:\Inetpub\wwwroot下,在開(kāi)始菜單中選“程序→管理工具→Internet服務(wù)管理器→Internet信息服務(wù)→myWeb(服務(wù)器名)→默認(rèn)Web站點(diǎn)→屬性”,如圖2-1所示。在“Web站點(diǎn)”中,“IP地址”欄內(nèi)輸入或選擇一個(gè)有效的IP地址作為此站點(diǎn)的地址,如內(nèi)部網(wǎng)可用“”作為Web站點(diǎn)的IP地址,如圖2-2。圖2-1Internet信息服務(wù)圖2-2設(shè)置站點(diǎn)IP地址在“主目錄”的“本地路徑”中填寫(xiě):C:\Inetpub\wwwroot,或根據(jù)實(shí)際情況通過(guò)“瀏覽”選擇自己的Web服務(wù)目錄,如圖2-3。在“文檔”中,修改瀏覽器默認(rèn)調(diào)用的文件名及調(diào)用順序,如圖2-4。
圖2-3設(shè)置站點(diǎn)主目錄圖2-4設(shè)置默認(rèn)啟動(dòng)文檔2.3.2測(cè)試ASP
用“記事本”或熟悉的文本編輯軟件創(chuàng)建一個(gè)文件,并鍵入以下代碼:
<html> <head> <title>我的第一個(gè)ASP程序</title> </head> <body>
<% response.write("helloworld!") %> </body> </html>
將此文件命名為hello.asp,保存到站點(diǎn)主目錄內(nèi)。要訪(fǎng)問(wèn)此ASP文件,只需在瀏覽器的地址欄中鍵入:http://localhost/hello.asp,如果一切正常,瀏覽器上將顯示出如圖2-5所示結(jié)果。
圖2-5第一個(gè)ASP程序運(yùn)行結(jié)果如果顯示不正確,則需要檢查IIS的配置及文件的訪(fǎng)問(wèn)權(quán)限等,常見(jiàn)的錯(cuò)誤及解決辦法見(jiàn)表2-1。錯(cuò)誤信息錯(cuò)誤原因及解決方法無(wú)法與服務(wù)器建立連接Web服務(wù)器未啟動(dòng)或網(wǎng)絡(luò)出現(xiàn)故障。檢查IIS是否正常啟動(dòng)以及網(wǎng)絡(luò)是否正常。無(wú)法找到網(wǎng)頁(yè)指定位置不存在所要訪(fǎng)問(wèn)的文件。檢查輸入的地址及文件名是否正確。禁止訪(fǎng)問(wèn)未正確設(shè)置ASP所在目錄的訪(fǎng)問(wèn)權(quán)限。改變?cè)撃夸浀臋?quán)限為“讀取及執(zhí)行”。表2-1ASP錯(cuò)誤信息及解決辦法本章小結(jié)本章簡(jiǎn)要地介紹了ASP的產(chǎn)生、基本概念及ASP的應(yīng)用,詳細(xì)地講解了Web服務(wù)器的配置。正確配置IIS,是以后運(yùn)行ASP程序的前提條件。下一章將介紹ASP源程序主題語(yǔ)言——HTML,為以后編寫(xiě)出高質(zhì)量的ASP應(yīng)用程序打下基礎(chǔ)。習(xí)
題1.什么是ASP?2.ASP的工作方式是怎樣的?3.簡(jiǎn)述IIS的配置要點(diǎn)。4.編寫(xiě)一個(gè)ASP程序,在屏幕上顯示“HelloWorld!”答
案
要
點(diǎn)(略)
HTML語(yǔ)言基礎(chǔ)
HTML(HyperTextMarkupLanguage,即超文本標(biāo)記語(yǔ)言)是一種用來(lái)制作超文本文檔的簡(jiǎn)單標(biāo)記語(yǔ)言。用HTML編寫(xiě)的超文本文檔稱(chēng)為HTML文檔,它能獨(dú)立于各種操作系統(tǒng)平臺(tái)(如UNIX,WINDOWS等)。自1990年以來(lái)HTML就一直被用作WWW上的信息表述語(yǔ)言,用于描述網(wǎng)頁(yè)的格式設(shè)計(jì)和它與WWW上其它網(wǎng)頁(yè)的鏈接信息。
HTML文檔(即網(wǎng)頁(yè)的源文件)是一個(gè)放置了標(biāo)記的ASCII文本文件,通常它帶有.html或.htm的文件擴(kuò)展名。生成一個(gè)HTML文檔主要有以下三種途徑:
(1)手工直接編寫(xiě)(例如用你所喜愛(ài)的ASCII文本編輯器或其它HTML的編輯工具)。(2)通過(guò)某些格式轉(zhuǎn)換工具將現(xiàn)有的其它格式文檔(如WORD文檔)轉(zhuǎn)換成HTML文檔。(3)借助專(zhuān)用制作工具軟件,如Frontpage、Dreamweaver等進(jìn)行設(shè)計(jì)與制作。HTML語(yǔ)言是通過(guò)利用各種標(biāo)記(tags)來(lái)標(biāo)識(shí)文檔的結(jié)構(gòu)以及標(biāo)識(shí)超鏈接(Hyperlink)信息的。雖然HTML語(yǔ)言描述了文檔的結(jié)構(gòu)格式,但并不能精確地定義文檔信息必須如何顯示和排列,而只是建議Web瀏覽器(如Mosiac,Netscape等)應(yīng)該如何顯示和排列這些信息,最終在用戶(hù)面前的顯示結(jié)果取決于Web瀏覽器本身的顯示風(fēng)格及其對(duì)標(biāo)記的解釋能力。這就是為什么同一文檔在不同的瀏覽器中展示的效果會(huì)不一樣的原因。3.1網(wǎng)頁(yè)設(shè)計(jì)基本原則
設(shè)計(jì)網(wǎng)頁(yè)如同編寫(xiě)其它計(jì)算機(jī)程序一樣,需要一定的專(zhuān)業(yè)知識(shí)和基本技能,而且必須對(duì)設(shè)計(jì)環(huán)境有個(gè)明確的了解。在設(shè)計(jì)網(wǎng)頁(yè)的過(guò)程中,要清楚地了解網(wǎng)頁(yè)的閱讀對(duì)象,要對(duì)整個(gè)網(wǎng)絡(luò)文檔有統(tǒng)一的規(guī)劃??傮w說(shuō)來(lái),要了解以下基本設(shè)計(jì)原則:
(1)正確分析網(wǎng)頁(yè)用戶(hù)的需要。(2)網(wǎng)頁(yè)下載時(shí)間不宜過(guò)長(zhǎng)。注意網(wǎng)頁(yè)文件的大小,在50KB以?xún)?nèi)為宜。(3)網(wǎng)頁(yè)的設(shè)計(jì)要做到在不同的環(huán)境下都能瀏覽。(4)注意網(wǎng)頁(yè)中的圖形設(shè)計(jì)。首先,圖形的文件大小要盡可能小,盡量使用GIF文件和JPG文件,不使用BMP文件。其次,每個(gè)圖形都要有相應(yīng)的替代文字,這使得用戶(hù)在關(guān)閉圖形顯示功能時(shí)能夠看到替代文字。(5)定期更新網(wǎng)頁(yè)內(nèi)容。每隔一定時(shí)間就對(duì)網(wǎng)頁(yè)內(nèi)容和版面設(shè)計(jì)進(jìn)行較大幅度的更新,從而吸引訪(fǎng)問(wèn)者的注意力。這不失為增加來(lái)訪(fǎng)次數(shù)的好方法。(6)注意網(wǎng)站內(nèi)容的搭配。在首頁(yè)中盡量使之美觀大方,直觀又豐富。其它網(wǎng)頁(yè)要與首頁(yè)有很好的搭配效果。(7)考慮不支持某些功能的瀏覽器。隨著網(wǎng)頁(yè)設(shè)計(jì)技術(shù)的不斷進(jìn)步,在網(wǎng)頁(yè)中經(jīng)常會(huì)使用一些特殊的技術(shù),使得網(wǎng)頁(yè)的功能更加豐富,看起來(lái)也更加美觀。但是不可排除一些用戶(hù)使用過(guò)時(shí)的瀏覽器瀏覽這些網(wǎng)頁(yè),這就需要為這些特殊的功能部分添加替代性文字,避免誤將程序代碼顯示出來(lái)。(8)對(duì)多媒體文件實(shí)施有限的限制。盡管網(wǎng)絡(luò)多媒體技術(shù)有了很大的發(fā)展,但由于網(wǎng)絡(luò)速度的限制,就要求一個(gè)網(wǎng)頁(yè)設(shè)計(jì)者在設(shè)計(jì)網(wǎng)頁(yè)時(shí)要充分考慮到所添加多媒體部分的大小和必要性。3.2HTML語(yǔ)言的結(jié)構(gòu)
從結(jié)構(gòu)上講,HTML文件由元素(element)組成。組成HTML文件的元素有許多,用于組織文件的內(nèi)容和指導(dǎo)文件的輸出格式。絕大多數(shù)元素是“容器”,即它有起始標(biāo)記和結(jié)尾標(biāo)記。元素的起始標(biāo)記叫做起始標(biāo)記(starttag)。元素結(jié)束標(biāo)記叫做結(jié)尾標(biāo)記(endtag)。在起始標(biāo)記和結(jié)尾標(biāo)記中間的部分是元素體。每一個(gè)元素都有名稱(chēng)和可選擇的屬性,元素的名稱(chēng)和屬性都在起始標(biāo)記內(nèi)標(biāo)明。比如體元素(body):
<bodybackgroud="background.gif"><h2>示例</h2>這是一個(gè)示例<p></body>第一行是體元素的起始標(biāo)記,它標(biāo)明體元素從此開(kāi)始。由于所有的標(biāo)記都具有相同的結(jié)構(gòu),因此仔細(xì)分析這個(gè)標(biāo)記的各個(gè)部分,就能對(duì)標(biāo)記的寫(xiě)法有一個(gè)大概了解。<起始標(biāo)記開(kāi)始
body元素名稱(chēng),由于元素和標(biāo)記一一對(duì)應(yīng),所以元素名也叫標(biāo)記名。注意:<和body之間不能有空格。元素名稱(chēng)不分大小寫(xiě)。
background屬性名。一個(gè)元素可以有多個(gè)屬性,屬性及其屬性值不分大小寫(xiě)。
background.gif屬性值。表示用
background.gif文件來(lái)填充背景。屬性名、=、屬性值三者合起來(lái)構(gòu)成一個(gè)完整的屬性,一個(gè)元素可以有多個(gè)屬性,各個(gè)屬性用空格分開(kāi)。
>起始鏈接鏈結(jié)束。第二行和第三行是body元素的元素體,最后一行是body元素的結(jié)尾標(biāo)記。結(jié)尾標(biāo)記用</開(kāi)始,隨后是元素名,然后是大于號(hào)>。
從上面的例子中可以看出,一個(gè)元素的元素體內(nèi)可以有另外的元素。實(shí)際上,html文件僅由一個(gè)html元素組成,即文件以<html>開(kāi)始,以</html>結(jié)尾,文件其它部分都是html的元素體。html元素的元素體由兩大部分,即頭元素<head>…</head>和體元<body>…</body>和一些注釋組成。頭元素和體元素的元素體又由其它的元素和文本及注釋組成。也就是說(shuō),一個(gè)HTML文件應(yīng)具有下面的結(jié)構(gòu):
<html>html文件開(kāi)始<head> 文件頭開(kāi)始文件頭</head> 文件頭結(jié)束<body> 文件體開(kāi)始文件體</body> 文件體結(jié)束</html> HTML文件結(jié)束需要說(shuō)明的是,HTML是一門(mén)發(fā)展很快的語(yǔ)言,因而現(xiàn)在流行的瀏覽器為保持對(duì)早期HTML文件的兼容性,也支持不按上述結(jié)構(gòu)編寫(xiě)HTML文件。還需要說(shuō)明的是,各種瀏覽器對(duì)HTML元素及其屬性的解釋也不完全一樣。一般來(lái)講,HTML的元素有下列三種表示方法:<元素名>文件或超文本</元素名>。<元素名屬性名=“屬性值…”>文本或超文本</元素名>。<元素名>
第三種寫(xiě)法僅用于一些特殊的元素,例如分段元素P,它僅僅通知WWW瀏覽器在此處分段,因而不需要界定作用范圍,所以它沒(méi)有結(jié)尾標(biāo)記。HTML3.0標(biāo)準(zhǔn)中,也定義了</p>標(biāo)記,它用于需要界定作用范圍的段落,比如增加對(duì)齊方式屬性的段落。在HTML文件中,有些元素只能出現(xiàn)在頭元素中,絕大多數(shù)元素只能出現(xiàn)在體元素中。在頭元素中的元素表示的是該HTML文件的一般信息,比如文件名稱(chēng)、是否可檢索等等。這些元素書(shū)寫(xiě)的次序是無(wú)關(guān)緊要的,它只表明該HTML有沒(méi)有該屬性。與此相反,出現(xiàn)在體元素中的元素是次序敏感的,改變?cè)卦贖TML文件中的次序會(huì)改變?cè)揌TML文件的輸出形式。3.3構(gòu)成網(wǎng)頁(yè)的基本元素3.3.1題目(title)title元素是文件頭中唯一一個(gè)必須出現(xiàn)的元素,它也只能出現(xiàn)在文件頭中。title元素的格式為:<title>題目</title>題目:標(biāo)明該HTML文件的題目,是對(duì)文件內(nèi)容的概括。文件的題目一般不會(huì)顯示在文本窗口中,而以窗口的名稱(chēng)顯示出來(lái)。除了標(biāo)識(shí)窗口外,當(dāng)將某一網(wǎng)頁(yè)存入書(shū)簽或文件時(shí),題目還用作書(shū)簽名或缺省的文件名。<html><title>一個(gè)簡(jiǎn)單的html文件</title>這是我的第一個(gè)html文件。</html>雖然題目的長(zhǎng)度沒(méi)有限制,但過(guò)長(zhǎng)的題目會(huì)導(dǎo)致折行,一般情況下它的長(zhǎng)度不應(yīng)超過(guò)64個(gè)字符。由于題目的作用是標(biāo)明文件內(nèi)容,所以太短的題目也是不可取的。在頭元素中還可以出現(xiàn)其它元素,如<isindex>,<meta>等等,這些元素都不是必須的,而且也不常用。具體用法及含義可以參考有關(guān)書(shū)籍。下面是一個(gè)最簡(jiǎn)單的HTML文件:3.3.2標(biāo)題(hn)標(biāo)題標(biāo)簽用于顯示HTML文件的各級(jí)標(biāo)題,格式為:<Hn>標(biāo)題內(nèi)容</Hn>其中n為1-6之間的整數(shù),其值越大,字越?。簿褪钦f(shuō)第一級(jí)標(biāo)題(H1)字最大,第六級(jí)(H6)最小。標(biāo)題內(nèi)容用黑體字顯示,各行之間自動(dòng)插入空行。<H4>多用作文本正文;H6字體最小(幾乎不用)。<H1>至<H3>比一般正文字體大,而<H5>至<H6>比一般正文字體小。由于標(biāo)題標(biāo)簽具有段落屬性,這就使得一個(gè)段落內(nèi)不能使用兩種標(biāo)題標(biāo)簽。圖3-1給出了由下面代碼產(chǎn)生的屏幕效果。<html><head><title>標(biāo)題示例</title></Head><body> <h1>一級(jí)標(biāo)題是這樣的</h1> <h2>二級(jí)標(biāo)題是這樣的</h2> <h3>三級(jí)標(biāo)題是這樣的</h3> <h4>四級(jí)標(biāo)題是這樣的</h4> <h5>五級(jí)標(biāo)題是這樣的</h5> <h6>六級(jí)標(biāo)題是這樣的</h6></body></html>圖3-1hn的屏幕輸出結(jié)果3.3.3分段<P>
HTML的瀏覽器是基于窗口的,用戶(hù)可以隨時(shí)改變顯示區(qū)的大小,所以HTML將多個(gè)空格以及回車(chē)看成一個(gè)空格,這是和絕大多數(shù)字處理器不同的。HTML的分段依賴(lài)于分段元素<P>。<P>也有多種屬性,比較常用的屬性是:align=##可以是left,center,right,其含義同上文。例如:<palign=center>段落居中</p>當(dāng)HTML文件中有圖形時(shí),圖形可能占據(jù)了窗口的一端,圖形的周?chē)赡苡休^大的空白區(qū)。這時(shí),不帶clear屬性的<P>可能會(huì)使文章的內(nèi)容顯示在該空白區(qū)內(nèi)。為確保下一段內(nèi)容顯示在圖形的下方,可使用clear屬性。clear屬性的含義為:clear=left下一段顯示在左邊界處空白的區(qū)域。clear=right下一段顯示在右邊界處空白的區(qū)域。clear=all下一段的左右兩邊都不許有別的內(nèi)容。3.3.4清單List清單用于列舉事實(shí)。常用的清單有3種格式,即無(wú)序清單(unorderedList),有序清單(orderedlist)和定義清單(definitionlist)。1.無(wú)序清單(ul)無(wú)序清單用(ul,此處的l不是數(shù)字1)開(kāi)始,每一個(gè)清單條目用<li>引導(dǎo),最后是</ul>。注意清單條目不需要結(jié)尾標(biāo)記</li>。輸出時(shí)每一清單條目縮進(jìn),并且以圈點(diǎn)標(biāo)示。例如:<ul><li>今天<li>明天</ul>輸出為:○今天○明天2.有序清單<ol>有序清單與無(wú)序清單相比,只是在輸出時(shí)清單條目用數(shù)字標(biāo)示,下面是一個(gè)例子及其輸出。<ol><li>今天<li>明天</ol>輸出為:1.今天2.明天
3.定義清單<dl>定義清單用于對(duì)清單條目進(jìn)行簡(jiǎn)短說(shuō)明的場(chǎng)合,用<dl>開(kāi)始,清單條目用<dt>引導(dǎo),它的說(shuō)明用<dd>引導(dǎo)。<dl><dt>條目1<dd>條目1的定義<dt>條目2<dd>條目2的定義</dl>輸出為:條目1條目1的定義條目2條目2的定義3.3.5居中很多元素都有對(duì)齊方式屬性,如hn、p等。也可以直接用居中標(biāo)記<center>…</center>:圖3-2
對(duì)齊方式示例
<h3align=center>今天的</h3><center>天氣真好?。?!</center>輸出結(jié)果如圖3-2所示。3.4超文本鏈接指針超文本鏈接指針是html最吸引人的優(yōu)點(diǎn)之一。使用超文本鏈接指針可以使順序存放的文件具有一定程度上隨機(jī)訪(fǎng)問(wèn)的能力,更加符合人的思維方式。組織得好的鏈接指針不僅能使讀者跳過(guò)不感興趣的章節(jié),而且有助于更好地理解作者的意圖。一個(gè)超文本鏈接指針由兩部分組成:一部分是被指向的目標(biāo),它可以是同一文件的另一部分,也可以是世界另一端的一個(gè)文件,還可以是動(dòng)畫(huà)或音樂(lè);另一部分是指向目標(biāo)的鏈接指針。3.4.1統(tǒng)一資源定位器URL統(tǒng)一資源定位器URL(UiformResourceLocator)是文件名的擴(kuò)展。在單機(jī)系統(tǒng)中,定位一個(gè)文件需要路徑和文件名,對(duì)于遍布全球的Internet網(wǎng),顯然還需要知道文件存放在哪個(gè)網(wǎng)絡(luò)的哪臺(tái)主機(jī)中才行。與單機(jī)系統(tǒng)不一樣的是在單機(jī)系統(tǒng)中,所有的文件都由統(tǒng)一的操作系統(tǒng)管理,因而不必給出訪(fǎng)問(wèn)該文件的方法;而在Internet上,各個(gè)網(wǎng)絡(luò)、各個(gè)主機(jī)的操作系統(tǒng)可能不一樣,因此必須指定訪(fǎng)問(wèn)該文件的方法。一個(gè)URL包括了以上所有的信息。它的構(gòu)成為:protocol://[:port]/directory/filename其中,protocol是訪(fǎng)問(wèn)該資源所采用的協(xié)議,即訪(fǎng)問(wèn)該資源的方法,它可以是:http:超文本傳輸協(xié)議,該資源是html文件。file:文件傳輸協(xié)議,用ftp訪(fǎng)問(wèn)該資源。ftp:文件傳輸協(xié)議,用ftp訪(fǎng)問(wèn)該資源。news:表明該資源是網(wǎng)絡(luò)新聞組。:是存放該資源主機(jī)的IP地址,通常以字符形式出現(xiàn),如port端口號(hào):是服務(wù)器在該主機(jī)所使用的端口號(hào)。一般情況下端口號(hào)不需指定。只有當(dāng)服務(wù)器所使用的端口號(hào)不是缺省的端口號(hào)時(shí)才指定,例如WWW服務(wù)默認(rèn)情況下采用的端口號(hào)為80,如果設(shè)置了其它的端口號(hào),訪(fǎng)問(wèn)時(shí)必須加上端口號(hào)。directory和filename:該資源的路徑和文件名.一個(gè)典型的URL為:它表示中國(guó)教育和科研計(jì)算機(jī)網(wǎng)WWW服務(wù)器上的起始html文件。(文件具體存放的路徑及文件名取決于該WWW服務(wù)器的配置情況)。與單機(jī)系統(tǒng)絕對(duì)路徑、相對(duì)路徑的概念類(lèi)似,統(tǒng)一資源定位器也有絕對(duì)URL和相對(duì)URL之分。前面所述的是絕對(duì)URL。相對(duì)URL是相對(duì)于最近訪(fǎng)問(wèn)的URL。比如你正在瀏覽一個(gè)URL為/index.html的文件,如果想看同一個(gè)目錄下的另一個(gè)文件如/news.html,就可以直接使用news.html,這時(shí)news.html就是一個(gè)相對(duì)URL,它的絕對(duì)URL為/news.html
3.4.2指向一個(gè)目標(biāo)<a>
在html文件中可用鏈接指針指向一個(gè)目標(biāo)。其基本格式為:<ahref="url">字符串</a>href屬性中的url是被指向的目標(biāo),隨后的“字符串”在html文件中充當(dāng)指針的角色,它一般顯示為藍(lán)色,也可以定義成其它顏色。當(dāng)用戶(hù)用鼠標(biāo)點(diǎn)擊這個(gè)字符串時(shí),瀏覽器就會(huì)將url處的資源顯示在屏幕上。
在編寫(xiě)html文件時(shí),需要知道目標(biāo)的url。如何才能得到目標(biāo)的url呢?對(duì)于自己主機(jī)內(nèi)的文件,它的url可以根據(jù)該文件的實(shí)際情況決定。對(duì)于Internet上的資源,在用瀏覽器觀看時(shí),它的url會(huì)在瀏覽器的“地址欄”中顯示出來(lái),把它抄下來(lái)寫(xiě)到html文件中即可。此外,編寫(xiě)html文件時(shí),對(duì)有可能確定關(guān)系的一組資源(比如在同一個(gè)目錄中)應(yīng)采用相對(duì)url,
這不僅可以簡(jiǎn)化html文件,而且便于維護(hù)。比如當(dāng)需要將某個(gè)目錄整個(gè)搬到另外一個(gè)地方或把某一主機(jī)的資源移到另一臺(tái)主機(jī)時(shí),用相對(duì)url寫(xiě)的html文件不用更新其中的url。但如果用絕對(duì)url編寫(xiě)html文件,那么就逐個(gè)修改每個(gè)鏈接指針中的url。若各個(gè)資源之間沒(méi)有固定的關(guān)系,這時(shí)就只能用絕對(duì)url了。3.4.3標(biāo)記一個(gè)目標(biāo)上面提到的鏈接指針可以使讀者在整個(gè)Internet網(wǎng)上方便地鏈接。但如果編寫(xiě)了一個(gè)很長(zhǎng)的html文件,怎么能在同一文件的不同部分之間也建立起鏈接,使用戶(hù)方便地在上下方之間跳轉(zhuǎn)呢?前面提到一個(gè)超文本鏈接指針包括兩個(gè)部分:一是指向目標(biāo)的鏈接指針,二是被指向的目標(biāo)。對(duì)于一個(gè)完整的文件,可以用它的url來(lái)唯一地標(biāo)識(shí)它,但對(duì)于同一文件的不同部分,怎樣來(lái)標(biāo)識(shí)呢?下面的內(nèi)容將介紹鏈接指針元素的另外的一個(gè)用途:標(biāo)識(shí)目標(biāo)。標(biāo)識(shí)一個(gè)目標(biāo)的方法為:<aname="name">text</a>name屬性將放置該標(biāo)記的地方標(biāo)記為“name”,name是一個(gè)全文唯一的標(biāo)記串,text部分可有可無(wú)。這樣,就把放置標(biāo)記的地方做了一個(gè)叫做“name”的標(biāo)記。做好標(biāo)記后,可以用下列方法來(lái)指向它:<ahref="url#name">text</a>url是放置標(biāo)記的html文件的urlname是標(biāo)記名。對(duì)于同一個(gè)文件,可以寫(xiě)為:<ahref="#name">text</a>這時(shí)就可以點(diǎn)取text跳轉(zhuǎn)到標(biāo)記名為name的部分了。3.4.4目標(biāo)窗口如果希望被指向的目標(biāo)在一個(gè)新的窗口中顯示,可以使用target屬性來(lái)修飾鏈接指針元素。如:<ahref="url"target="window-name">text</a>可將url代表的資源顯示在一個(gè)新的窗口中,該窗口的名字叫window-name,它可以是本窗口(_self)、父窗口(_parent)、新窗口(_blank)及整個(gè)瀏覽器窗口(_top)。
3.4.5圖像鏈接指針圖像也可以做為鏈接指針。格式為:<ahref="url"><imgsrc="url"></a>可以看出,上例中用<imgsrc="url">取代了鏈接指針中text的位置。<imgsrc="url">是圖像元素,它表明顯示url代表的圖像文件。下面是一個(gè)簡(jiǎn)單的圖像鏈接指針。<ahref="">中國(guó)教育和科研計(jì)算機(jī)網(wǎng)<imgsrc="edu.gif"></a>3.4.6圖像地圖(imagemap)上面介紹的圖像鏈接指針每幅圖只能指向一個(gè)地點(diǎn),而圖像地圖可以把圖像分成多個(gè)區(qū)域,每個(gè)區(qū)域指向不同的地點(diǎn)。這樣,就可以用圖像地圖編寫(xiě)出很漂亮的html文件。使用圖像地圖稍微復(fù)雜一點(diǎn)。圖像地圖不僅需要在html文件中說(shuō)明,它還需要一個(gè)后綴為.map的文件,用來(lái)說(shuō)明圖像分區(qū)及其指向的url的信息。在.map文件中說(shuō)明分區(qū)信息的格式如下:rect url左上角坐標(biāo),右下角坐標(biāo)poly url各頂點(diǎn)坐標(biāo)circleurl直徑兩端點(diǎn)坐標(biāo)defaulturlrect指定一個(gè)矩形區(qū)域,該區(qū)域的位置由左上角坐標(biāo)和右下角坐標(biāo)說(shuō)明。poly指定一多邊形區(qū)域,該區(qū)域的位置由各頂點(diǎn)坐標(biāo)說(shuō)明。circle指定一圓形區(qū)域,該區(qū)域的位置由垂直通過(guò)圓心的直徑與該圓的交點(diǎn)坐標(biāo)說(shuō)明。default指定圖像地圖其它部分的url。坐標(biāo)的寫(xiě)法為:x,y,各點(diǎn)坐標(biāo)之間用空格分開(kāi)。下面是一個(gè)完整的說(shuō)明文件:default:rect:140,20280,60poly:180,80200,140circle:80,14080,100圖像地圖需要一個(gè)特殊的處理程序imagemap。imagemap放在/cgi-bin中。在html文件中引用圖像地圖的格式為:<ahref="/cgi-bin/imagemap/mymap.map"><imgsrc="mymap.gif"ismap></a>可以看出這是一個(gè)包含圖像元素的鏈接指針元素。圖像元素指明用于圖像地圖的圖像的url,并用Ismap屬性說(shuō)明。需要說(shuō)明的是鏈接指針中的href屬性,它由兩部分組成:第一部分是/cgi-bin/imagemap,它指出用哪個(gè)程序來(lái)處理圖像地圖,必須原樣寫(xiě)入;第二部分是圖形地圖的說(shuō)明文件mymap.map。/cgi-bin/imagemap/mymap.map絕不表示mymap.map在/cgi-bin/imagemap目錄中。在netscape擴(kuò)展中,圖像地圖可以用一種比較簡(jiǎn)化的方式來(lái)表示,這就是客戶(hù)端圖像地圖。用戶(hù)端地圖可以將圖像地圖的說(shuō)明文件寫(xiě)在html文件中,而且不需要另外的程序來(lái)處理。這就使html作者可以用同別的元素相一致的寫(xiě)法來(lái)寫(xiě)圖像地圖。用戶(hù)端圖像地圖的格式為:<imgsrc="url"usemap="#mymap">src="url"用于指定用作圖像地圖的圖像。usemap屬性指明這是客戶(hù)端圖像地圖。其中的“#mymap”是圖像文件說(shuō)明部分的標(biāo)記名,瀏覽器尋找名字為mymap的<map>元素并從中得到圖像地圖的分區(qū)信息??蛻?hù)端圖像地圖的分區(qū)信息用<mapname=mapname>元素說(shuō)明,name屬性命名<map>元素。圖像地圖的各個(gè)區(qū)域用<areashape="形狀"coords="坐標(biāo)"href="url">說(shuō)明,形狀可以是:rect矩形,用左上角,右下角的坐標(biāo)表示,各個(gè)坐標(biāo)值之間用逗號(hào)分開(kāi);poly多邊形,用各頂點(diǎn)的坐標(biāo)值表示;circle圓形,用圓心及半徑表示,前兩個(gè)參數(shù)分別為圓心的橫、縱坐標(biāo),第三個(gè)參數(shù)為半徑。href="url",表示該區(qū)域所指向的資源的url,也可以是nohref,表示在該區(qū)域鼠標(biāo)點(diǎn)取無(wú)效??蛻?hù)端圖像地圖各個(gè)區(qū)域可以重疊,重疊區(qū)以先說(shuō)明的條目為準(zhǔn),下面是一個(gè)例子:<imgsrc="mapimg.gif"usemap="#Face"><mapname="Face"><!TextBOTTON>此行是注釋<areashape="rect"href="page.html"coords="140,20,280,60"><!TriangleBOTTON><areashape="poly"href="image.html"coords="100,100,180,80,200,140"><!FACE><areashape="circle"href="nes.html"coords="80,100,60></map>3.5版面風(fēng)格控制使用HTML可以對(duì)Web頁(yè)面的版面進(jìn)行控制,比如字體大小、分行、畫(huà)線(xiàn)、背景和文本顏色等等。3.5.1字體1.字號(hào)html有七種字號(hào),1號(hào)最小,7號(hào)最大。默認(rèn)字號(hào)為3,可以用<fontsize=字號(hào)>來(lái)設(shè)置新的字號(hào)。設(shè)置文本的字號(hào)有兩種辦法:一種是設(shè)置絕對(duì)字號(hào),如<fontsize=字號(hào)>;另一種是設(shè)置文本的相對(duì)字號(hào),如<fontsize=±n>。用第二種方法時(shí)“+”號(hào)表示字體變大,“-”號(hào)表示字體變小。<fontsize=7>size=7:今天天氣很好!</font><br><fontsize=6>size=6:今天天氣很好!</font><br><fontsize=5>size=5:今天天氣很好!</font><br><fontsize=4>size=4:今天天氣很好!</font><br><fontsize=3>size=3:今天天氣很好!</font><br><fontsize=2>size=2:今天天氣很好!</font><br><fontsize=1>size=1:今天天氣很好!</font><br>輸出結(jié)果為:圖3-3不同字號(hào)的輸出結(jié)果
2.字體風(fēng)格字體風(fēng)格分為物理風(fēng)格和邏輯風(fēng)格。物理風(fēng)格直接指定字體,其字體有黑體<b>,斜體<i>,下劃線(xiàn)<u>,打字機(jī)體<tt>。邏輯風(fēng)格用于指定文本的作用。如:
<em>強(qiáng)調(diào)<srrony>特別強(qiáng)調(diào)<code>源代碼
<samp>例子<kbd>鍵盤(pán)輸入<var>變量<dfn>定義<cite>引用<small>較小<big>較大<sup>上標(biāo)<sup>下標(biāo)3.閃爍<blink>文本</blink>可使文本閃爍,閃爍頻率為1秒鐘一次。3.5.2橫線(xiàn)(hr)橫線(xiàn),一般用于分隔同一文本的不同部分。在窗口中劃一條橫線(xiàn)非常簡(jiǎn)單,只要寫(xiě)一個(gè)<hr>即可。橫線(xiàn)的寬度用<hrsize=n>指定,n是線(xiàn)寬,單位是象素。例:<hrsize=10>。<hrwidth=#>指定橫線(xiàn)長(zhǎng)度,既可以指定絕對(duì)線(xiàn)長(zhǎng),也可以指定橫線(xiàn)長(zhǎng)度占窗口寬度的百分比。例<hrwidth=50>、<hrwidth=50%>。橫線(xiàn)的位置用<hralign=#>指定。#是left或right之一。left表示左端與左邊界對(duì)齊,right是右端與右邊界對(duì)齊。默認(rèn)時(shí),橫線(xiàn)出現(xiàn)在窗口中央。3.5.3行間圖像行間圖像可使網(wǎng)頁(yè)更加漂亮,但是過(guò)大的圖像會(huì)導(dǎo)致網(wǎng)絡(luò)通訊量急劇增大,延長(zhǎng)訪(fǎng)問(wèn)時(shí)間。所以在主頁(yè)上不宜采用很大的圖像。如果確實(shí)需要一些大圖像,最好在主頁(yè)中用一個(gè)縮小的圖像指向原圖,并標(biāo)明該圖的大小。這樣訪(fǎng)問(wèn)者可以快速地訪(fǎng)問(wèn)你的主頁(yè),自己選擇看還是不看那些圖像。圖像的基本格式為:<imgsrc="image-url">或<imgsrc="image-urd"alt="text">image-url是圖像文件的url。目前,大部分瀏覽器支持.gif和.jpg文件,alt屬性告訴不支持圖像的瀏覽器用text代替該圖。圖像在窗口中會(huì)占據(jù)一塊空間,在圖像的左右可能會(huì)有空白,不加說(shuō)明時(shí),瀏覽器將隨后的文本顯示在這些空白中,顯示的位置由align屬性指定。用align=left,right時(shí),圖像是一個(gè)浮動(dòng)圖像。比如align=left,圖像必須挨著左邊框,它把原來(lái)占據(jù)該塊空白的文本“擠走”,或擠到它右邊,或擠到它上下。文本與圖像的間距用vspace=#,hspace=#指定,#是整數(shù),單位是像素。前者指定縱向間距,后者指定橫向間距。3.5.4分行<br>和禁止分行<nobr><br>表示在此處分行,<nobr>…</nobr>將通知瀏覽器,其中的內(nèi)容在一行內(nèi)顯示,若一行內(nèi)顯示不了,則超出部分將被裁剪掉。<brclear=#>中的clear屬性標(biāo)明下一行的情況,如
clear=left,表示下一行從左邊界處開(kāi)始。#可以是left、right、all之一。
3.5.5背影和文本顏色窗口背景可以用下列方法指定:<bodybackground="image-url"><bodybgcolor=#text=#link=#alink=#vlink=#>第一行指定的是填充背景的圖像,如果圖像的大小小于窗口大小,則把背景圖像重復(fù),直到填滿(mǎn)窗口區(qū)域。第二行指定的是16進(jìn)制的紅、綠、藍(lán)分量。bgcolor:背景顏色text:文本顏色link:鏈接指針顏色alink:活動(dòng)的鏈接指針顏色vlink:已訪(fǎng)問(wèn)過(guò)的鏈接指針顏色例如:<bodybgcolor=FF0000>大紅背景色。
注意,此時(shí)體元素必須寫(xiě)完整,即用<body>結(jié)束。3.5.6轉(zhuǎn)義字將與特殊字符html中<、>及&字符有特殊含義,(前兩個(gè)字符用于鏈接簽,&用于轉(zhuǎn)義),不能直接使用。要使用這三個(gè)字符,必須用它們的轉(zhuǎn)義序列。l
&的轉(zhuǎn)義序列為&s或&;l
<的轉(zhuǎn)義序列為<或<;l
>的轉(zhuǎn)義序列為>或>;前者為字符轉(zhuǎn)義序列,后者為數(shù)字轉(zhuǎn)義序列。例如:<font>顯示為<font>。若直接寫(xiě)為<font>則會(huì)被認(rèn)為是一個(gè)鏈接簽。
需要說(shuō)明的是:l
轉(zhuǎn)義序列各字符間不能有空格。l
轉(zhuǎn)義序列必須以“;”結(jié)束。l
單獨(dú)的&不被認(rèn)為是轉(zhuǎn)義開(kāi)始。如“<”被解釋為“<”而不是“<”。另一個(gè)需要轉(zhuǎn)義的字符是引號(hào),它的轉(zhuǎn)義序列為“"”或“"”,例如<imgsrc="image.gif"alt="A&quol;real"example">html使用的字符集是ISO8859-1字符集,該字符集中有許多在標(biāo)準(zhǔn)鍵盤(pán)上無(wú)法輸入的字符。對(duì)這些特殊字符只能使用轉(zhuǎn)義序列。3.6表格(Table)3.6.1表格的基本形式一個(gè)表由<table>開(kāi)始,</table>結(jié)束,表的內(nèi)容由<tr>、<th>和<td>定義。<tr>說(shuō)明表的一個(gè)行,表有多少行就有多少個(gè)<tr>;<th>說(shuō)明表的列數(shù)和相應(yīng)欄目的名稱(chēng),有多少個(gè)欄就有多少個(gè)<th>;<td>則填充由<tr>和<th>組成的表格。border屬性用來(lái)說(shuō)明是否用表格線(xiàn)分開(kāi)。3.6.2有通欄的表有橫向通欄的表用<thcolspan=#>屬性說(shuō)明,colspan表示橫向欄距,#代表通欄占據(jù)的網(wǎng)格數(shù),它是一個(gè)小于表的橫向網(wǎng)格數(shù)的整數(shù)。有縱向通欄的表用<rowspan=#>屬性說(shuō)明。rowspan表示縱向欄距,#表示通欄占據(jù)的網(wǎng)格數(shù),應(yīng)小于縱向網(wǎng)絡(luò)數(shù)。需要說(shuō)明的是有縱向通欄的表,每一行必須用</tr>明確表示一橫向欄目結(jié)束,這是和表的基本形式不同的。
3.6.3表的大小、邊框?qū)挾燃氨砀耖g距表的大小用width=#和height=#屬性說(shuō)明。前者為表寬,后者為表高,#是以像素為單位的整數(shù)。邊框?qū)挾扔蒪order=#說(shuō)明,#為寬度值,單位是像素。表格間距即劃分表格的線(xiàn)的粗細(xì)用cellspacing=#表示,#的單位是像素。
3.6.4表中文本的輸出文本與表框的距離用cellpadding=#說(shuō)明。表格的寬度大于其中的文本寬度時(shí),文本在其中的輸出位置用align=#說(shuō)明。#是left,center和right三者之一,分別表示左對(duì)齊、居中和右對(duì)齊。align屬性
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 年工作總結(jié)財(cái)務(wù)部積極適應(yīng)市場(chǎng)變化
- 醫(yī)療保健行業(yè)中醫(yī)療設(shè)備顧問(wèn)的工作要求
- 瑜伽地面舞王式課程設(shè)計(jì)
- 畫(huà)室手機(jī)殼課程設(shè)計(jì)
- 收費(fèi)站消防安全的應(yīng)急預(yù)案范文(13篇)
- 直柄鉸刀課程設(shè)計(jì)
- 2024年養(yǎng)殖雞場(chǎng)租賃與農(nóng)產(chǎn)品溯源系統(tǒng)建設(shè)合同3篇
- 盈虧問(wèn)題課程設(shè)計(jì)
- 托班文明用語(yǔ)課程設(shè)計(jì)
- 我為集體添光彩演講稿
- 菜市場(chǎng)攤販與管理方合作經(jīng)營(yíng)協(xié)議書(shū)
- 三年級(jí)下冊(cè)英語(yǔ)說(shuō)課稿-《Lesson 11 What Do They Eat》|冀教版(三起)
- 2023春國(guó)家開(kāi)放大學(xué)-02154數(shù)據(jù)庫(kù)應(yīng)用技術(shù)-期末考試題帶答案
- 商品和服務(wù)稅收分類(lèi)編碼(開(kāi)票指引)
- 山西省靈丘縣山西省刁泉銀銅礦業(yè)有限公司銀、銅礦資源開(kāi)發(fā)利用、地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 國(guó)家開(kāi)放大學(xué)《市場(chǎng)營(yíng)銷(xiāo)學(xué)》形考1-4答案
- 瀝青路面設(shè)計(jì)說(shuō)明
- 《膽囊結(jié)石的護(hù)理》PPT
- 藥品質(zhì)量受權(quán)人管理規(guī)程
- 校本課程之《紅樓夢(mèng)詩(shī)詞曲賞析》教案
- 地產(chǎn)集團(tuán)石材幕墻工程系統(tǒng)課件
評(píng)論
0/150
提交評(píng)論