版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄TOC\o"1-2"\u目錄 1第一章 11.1系統(tǒng)開發(fā)目的 21.2技術(shù)可行性研究 3第二章開發(fā)平臺(tái)介紹 42.1開發(fā)語(yǔ)言介紹 42.2什么是ASP 42.3ASP的產(chǎn)生 62.4ASP與IIS 62.5ASP的內(nèi)部特點(diǎn) 72.6利用ADO訪問(wèn)數(shù)據(jù)庫(kù) 9第三章數(shù)據(jù)庫(kù)設(shè)計(jì) 133.1利用ASP進(jìn)行動(dòng)態(tài)數(shù)據(jù)查詢 133.2ASP訪問(wèn)數(shù)據(jù)庫(kù) 13第四章總體設(shè)計(jì) 164.1系統(tǒng)詳細(xì)調(diào)查 164.2數(shù)據(jù)流圖 164.3軟件模塊結(jié)構(gòu)設(shè)計(jì) 174.4數(shù)據(jù)庫(kù)設(shè)計(jì) 18第五章系統(tǒng)的實(shí)現(xiàn) 225.1動(dòng)態(tài)網(wǎng)站的優(yōu)點(diǎn) 235.2主窗口界面 24總結(jié)與展望 46致謝 47參考文獻(xiàn) 48第一章概述1.1系統(tǒng)開發(fā)目的這次我做的這個(gè)網(wǎng)站是一個(gè)武義旅游系統(tǒng),運(yùn)用asp編程。實(shí)現(xiàn)后臺(tái)管理。如今商業(yè)發(fā)展,金融與市場(chǎng)更加的具備開拓性。我覺(jué)得做這個(gè)網(wǎng)站很有它現(xiàn)實(shí)的價(jià)值和意義;(再則,可以通過(guò)這次設(shè)計(jì),提高我本身的水平,對(duì)進(jìn)一步和社會(huì)接洽并成為祖國(guó)可靠的棟梁具有促進(jìn)推動(dòng)的作用。實(shí)際上在這設(shè)計(jì)里面,我們可以獲得許多寶貴的實(shí)踐經(jīng)驗(yàn),在一生中都會(huì)受益。我們?cè)诮裉熳龅拿考露紩?huì)對(duì)我們的未來(lái)產(chǎn)生影響。道理淺顯,但未必每個(gè)人都能理解。許多同學(xué)以為自己大學(xué)畢業(yè)了,已經(jīng)很行了,但是到了實(shí)際工作中就會(huì)發(fā)現(xiàn)這種想法是多么的幼稚可笑。作為一名計(jì)算機(jī)專業(yè)的應(yīng)屆畢業(yè)生,原以為找工作是很容易的,但現(xiàn)實(shí)還是超想象,當(dāng)今是知識(shí)經(jīng)濟(jì)時(shí)代,經(jīng)濟(jì)高速發(fā)展的同時(shí)也帶動(dòng)教育行業(yè)的發(fā)展,每年的大學(xué)畢業(yè)生都在不斷增多,再加上計(jì)算機(jī)相關(guān)行業(yè)都需本科以上并要求要有工作經(jīng)驗(yàn),這對(duì)一名應(yīng)屆畢生來(lái)講找份工作實(shí)在是難上加難。網(wǎng)站的外框設(shè)計(jì)以及瀏覽基本在800×600以上分辨率IE4.0以上版本瀏覽器的模式下均能正常瀏覽,而ASP的編程功能基本上得到了實(shí)現(xiàn),其運(yùn)行環(huán)境在IIS6.0版本的WEB服務(wù)。研究設(shè)計(jì)工作從1月初到3月1號(hào),從資料的收集整理到程序的編寫,制作過(guò)程當(dāng)中一邊編寫程序一邊鞏固學(xué)習(xí)ASP的編程。整個(gè)網(wǎng)站的制作之中,感覺(jué)出來(lái)很多程序的運(yùn)行效率考慮的還不是很全部,這個(gè)跟平時(shí)在學(xué)校學(xué)習(xí)其他語(yǔ)言的時(shí)候犯了同樣的毛病——算法考慮的不全面;程序的安全性也有所欠缺,這主要是本人對(duì)語(yǔ)言知識(shí)的不全面型造成。這兩個(gè)方面有待以后走出學(xué)校參加工作以后繼續(xù)要學(xué)習(xí)注意的地方。本人對(duì)平面處理的能力優(yōu)勢(shì)在這次設(shè)計(jì)過(guò)程當(dāng)中得到充分的發(fā)揮。網(wǎng)站首頁(yè)的制作,以及色調(diào)的配合,考慮的比較周到的一個(gè)問(wèn)題了。1.2技術(shù)可行性研究目前,網(wǎng)絡(luò)應(yīng)用軟件運(yùn)行的模式主要有二類:Client/server模式,Browser/Web模式。前者主要的缺點(diǎn)是維護(hù)、升級(jí)較麻煩,后者是近幾年伴隨Internet迅速發(fā)展起來(lái)的一種技術(shù),它與客戶/服務(wù)器方式類似,客戶端是一個(gè)標(biāo)準(zhǔn)的瀏覽器,服務(wù)器端是WebServer,而WebServer與數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)器的緊密結(jié)合,使得這種模式的應(yīng)用范圍不斷擴(kuò)大,它已不僅僅用于網(wǎng)上查詢,有很多部門的業(yè)務(wù)系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點(diǎn)是便于擴(kuò)充應(yīng)用、升級(jí)維護(hù)簡(jiǎn)便。第二章開發(fā)平臺(tái)介紹2.1開發(fā)語(yǔ)言介紹作為Microsoft的office套件產(chǎn)品之一,access已經(jīng)賣出了近700萬(wàn)份,成為世界上最流行的桌面數(shù)據(jù)庫(kù)系統(tǒng)。Access與許多優(yōu)秀的關(guān)系數(shù)據(jù)庫(kù)一樣,可以讓你很容易地連接相關(guān)的信息而且還對(duì)其他的數(shù)據(jù)庫(kù)系統(tǒng)有所補(bǔ)充。它能操作其它來(lái)源的資料,包括許多流行的PC數(shù)據(jù)庫(kù)程序(如dBASE,Paradox,MicrosoftFoxPro)和服務(wù)器、小型積極大型機(jī)上的許多SQL數(shù)據(jù)庫(kù)。Access還完全支持Microsoft的OLE技術(shù)。Access還提供windows操作系統(tǒng)的高級(jí)應(yīng)用程序開發(fā)系統(tǒng)。Access與其它數(shù)據(jù)庫(kù)開發(fā)系統(tǒng)之間相當(dāng)顯著的區(qū)別就是:您不用寫一行代碼,就可以在很短的時(shí)間里開發(fā)出一個(gè)功能強(qiáng)大而且相當(dāng)專業(yè)的數(shù)據(jù)庫(kù)應(yīng)用程序,并且這一愉快的過(guò)程是完全可視的!如果您能給它加上簡(jiǎn)短的VBA代碼,那么您的程序決不比專業(yè)程序員潛心開發(fā)的程序差。Access功能強(qiáng)大,使用方便,是開發(fā)桌面數(shù)據(jù)庫(kù)的最優(yōu)秀的工具之一。Access本身具有強(qiáng)大的向?qū)C(jī)制,能提供大量的數(shù)據(jù)庫(kù)常用操作。但如果你能適當(dāng)?shù)募由仙倭康拇a,那么你的程序?qū)⑹菍I(yè)級(jí)的。這一切都靠VBA。2.2什么是ASPASP的含義從字面上說(shuō),ASP包含三方面含義:Active:ASP使用了Microsoft的ActiveX技術(shù)。ActiveX(COM)技術(shù)是現(xiàn)在Microsoft軟件的重要基礎(chǔ)。它采用封裝對(duì)象,程序調(diào)用對(duì)象的技術(shù),簡(jiǎn)化編程,加強(qiáng)程序間合作。ASP本身封裝了一些基本組件和常用組件,有很多公司也開發(fā)了很多實(shí)用組件。只要你可以在服務(wù)器上安裝這些組件,通過(guò)訪問(wèn)組件,你就可以快速、簡(jiǎn)易地建立自己的WEB應(yīng)用。Server:ASP運(yùn)行在服務(wù)器端。這樣就不必?fù)?dān)心瀏覽器是否支持ASP所使用的編程語(yǔ)言。ASP的編程語(yǔ)言可以是VBSCRIPT和JSCRIPT。VBSCRIPT是VB的一個(gè)簡(jiǎn)集,會(huì)VB的人可以很方便的快速上手。然而Netscape瀏覽器不支持客戶端的VBSCRIPT,所以最好不要在客戶端使用VBSCRIPT。而在服務(wù)器端,則無(wú)需考慮瀏覽器的支持問(wèn)題。Netscape瀏覽器也可以正常顯示ASP頁(yè)面。Pages:ASP返回標(biāo)準(zhǔn)的HTML頁(yè)面,可以正常地在常用的瀏覽器中顯示。瀏覽者查看頁(yè)面源文件時(shí),看到的是ASP生成的HTML代碼,而不是ASP程序代碼。這樣就可以防止別人抄襲程序。由此我們可以看出,ASP是在IIS下開發(fā)WEB應(yīng)用的一種簡(jiǎn)單、方便的編程工具。在了解了VBSCRIPT的基本語(yǔ)法后,只需要清楚各個(gè)組件的用途、屬性、方法,就可以輕松編寫出自己的ASP系統(tǒng)。以下羅列了ActiveServerPages所獨(dú)具的一些特點(diǎn):使用VBScript、JScript等簡(jiǎn)單易懂的腳本語(yǔ)言,結(jié)合HTML代碼,即可快速地完成網(wǎng)站的應(yīng)用程序。無(wú)須compile編譯,容易編寫,可在服務(wù)器端直接執(zhí)行。使用普通的文本編輯器,如Windows的記事本,即可進(jìn)行編輯設(shè)計(jì)。與瀏覽器無(wú)關(guān)(BrowserIndependence),用戶端只要使用可執(zhí)行HTML碼的瀏覽器,即可瀏覽ActiveServerPages所設(shè)計(jì)的網(wǎng)站內(nèi)容。ActiveServerPages所使用的腳本語(yǔ)言(VBScript、Jscript)均在WEB服務(wù)器端執(zhí)行,用戶端的瀏覽器不需要能夠執(zhí)行這些腳本語(yǔ)言。ActiveServerPages能與任何ActiveXscripting語(yǔ)言相容。除了可使用VBScript或JScript語(yǔ)言來(lái)設(shè)計(jì)外,還通過(guò)plug-in的方式,使用由第三方所提供的其他腳本語(yǔ)言,譬如REXX、Perl、Tcl等。腳本引擎是處理腳本程序的COM(ComponentObjectModel)物件。ActiveServerPages的源程序,不會(huì)被傳到客戶瀏覽器,因而可以避免所寫的源程序被他人剽竊,也提高了程序的安全性??墒褂梅?wù)器端的腳本來(lái)產(chǎn)生客戶端的腳本。物件導(dǎo)向(Object-oriented)。ActiveXServerComponents(ActiveX服務(wù)器元件)具有無(wú)限可擴(kuò)充性??梢允褂肰isualBasic、Java、VisualC++、COBOL等編程語(yǔ)言來(lái)編寫你所需要的ActiveXServerComponent。基于上述考慮,用Browser/Web模式來(lái)設(shè)計(jì)考試系統(tǒng)比較合適,服務(wù)器端我們采用Access數(shù)據(jù)庫(kù)系統(tǒng)和ASP組件來(lái)構(gòu)成考試的應(yīng)用服務(wù)系統(tǒng);客戶端采用瀏覽器來(lái)完成考試全過(guò)程,同時(shí)可進(jìn)行遠(yuǎn)程系統(tǒng)維護(hù)和管理。2.3ASP的產(chǎn)生近年來(lái)隨著Internet技術(shù)的飛速發(fā)展及用戶需求的不斷升級(jí),Web頁(yè)面技術(shù)也不斷的推陳出新,使得Web站點(diǎn)的功能越來(lái)越強(qiáng)大,能夠提供的服務(wù)種類越來(lái)越繁多。從HTML、ClientScript到CGI,從JAVA的誕生到ActiveX,Web頁(yè)面設(shè)計(jì)人員不斷受到?jīng)_擊,微軟公司在總結(jié)了以往技術(shù),重新思考Web頁(yè)面設(shè)計(jì)的真正需要后,推出了ActiveServerPages(ASP),一種用以取代CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)的技術(shù)。簡(jiǎn)單講,ASP是位于服務(wù)器端的腳本運(yùn)行環(huán)境,通過(guò)這種環(huán)境,用戶可以創(chuàng)建和運(yùn)行動(dòng)態(tài)的交互式Web服務(wù)器應(yīng)用程序,如交互式的動(dòng)態(tài)網(wǎng)站,包括使用HTML表單收集和處理信息,上傳與下載等等。更重要的是,ASP使用的ActiveX技術(shù)基于開放設(shè)計(jì)環(huán)境,用戶可以自己定義和制作組件加入其中,使自己的動(dòng)態(tài)網(wǎng)站幾乎具有無(wú)限的擴(kuò)充能力,這是傳統(tǒng)的Web編寫工具所遠(yuǎn)遠(yuǎn)不及的地方。使用ASP還有個(gè)好處,就在于ASP可利用ADO(ActiveDataObject,微軟的一種新的數(shù)據(jù)訪問(wèn)模型)方便快捷地訪問(wèn)數(shù)據(jù)庫(kù),從而使得開發(fā)基于WWW的應(yīng)用系統(tǒng)成為可能,這也是本文選擇ASP作為開發(fā)工具最重要的原因之一。2.4ASP與IISIIS簡(jiǎn)介Wsb服務(wù)器是Web應(yīng)用程序的心臟。IIS(InternetInformationServer)是微軟推出的WindowsNTOptionPack的主要成員,作為Win2000server的擴(kuò)展,自推出以來(lái)已經(jīng)有了很大發(fā)展,其體系結(jié)構(gòu)是當(dāng)今市場(chǎng)上最受關(guān)注的Web服務(wù)器之一。新推出的IIS4.0版本增強(qiáng)了系統(tǒng)安全性,具有服務(wù)器端腳本開發(fā)調(diào)試,內(nèi)容管理和站點(diǎn)分析,崩潰防護(hù),內(nèi)置JAVA虛擬機(jī)及全面支持ASP等強(qiáng)大功能。IIS與ASP的結(jié)合在過(guò)去,客戶機(jī)/服務(wù)器結(jié)構(gòu)的設(shè)計(jì)與Web的相關(guān)技術(shù)幾乎處于平行線上,兩者相互獨(dú)立并無(wú)法作出集成性的設(shè)計(jì)?,F(xiàn)在我們利用IIS+ASP構(gòu)成三層式Web結(jié)構(gòu)(如圖2.1所示)的中間一層,將客戶機(jī)/服務(wù)器結(jié)構(gòu)與Web密切結(jié)合,完成前后端兩者的集成輸出功能,使得Web站點(diǎn)的開發(fā)更方便,實(shí)現(xiàn)的功能更強(qiáng)大。利用IIS+ASP技術(shù)來(lái)集成Web前后端所帶來(lái)的強(qiáng)大效益可歸結(jié)為以下幾個(gè)方面:1.減少構(gòu)建和維護(hù)成本2.加快聯(lián)機(jī)過(guò)程3.應(yīng)用軟件集中在服務(wù)器端開發(fā)管理4.前端可使用任何瀏覽器(IE、Netscape…..)5.后端可存取任何數(shù)據(jù)庫(kù)(SQL、Access…..)6.可使用任何腳本語(yǔ)言開發(fā)(VBScript、JavaScript、PERL…..)程序和計(jì)算邏輯程序和計(jì)算邏輯前端瀏覽器ActiveXServer元件ActiveXServer元件后端數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)服務(wù)器MicrosoftIIS+ASP瀏覽器圖2.12.5ASP的內(nèi)部特點(diǎn)ASP內(nèi)部6大對(duì)象ASP提供了6個(gè)功能強(qiáng)大的內(nèi)部對(duì)象,每個(gè)對(duì)象具有各自的屬性(Property)、方法(Method),有的還擁有數(shù)據(jù)集合(Collection)與事件(Event),它們共同完成Web中的一些重要工作。這6個(gè)對(duì)象及其功能描述如表2.1所示。對(duì)象名象功能描述Request從客戶端取得信息Response將信息送給客戶端Server提供一些Web服務(wù)器工具Session儲(chǔ)存在一個(gè)Session內(nèi)的用戶信息,該信息僅可被該用戶訪問(wèn)Application在一個(gè)ASP-Application中讓不同的客戶端共享信息ObjectContext配合MicrosoftTransaction服務(wù)器進(jìn)行分布式事務(wù)處理表2.1ASP內(nèi)部6大對(duì)象及其功能合理地運(yùn)用這些對(duì)象可以使原本復(fù)雜,煩瑣的工作變得簡(jiǎn)捷而條理清晰。我們可以用以下的語(yǔ)法直接使用這些對(duì)象:對(duì)象/屬性/方法/數(shù)據(jù)集合Global文件每一個(gè)以ActiveServerPages為基礎(chǔ)的應(yīng)用程序都擁有一個(gè)Global.asa文件(ASA后綴名其實(shí)是ActiveServerApplication的縮寫),它位于每一個(gè)應(yīng)用程序的基點(diǎn)目錄之下。當(dāng)ActiveServerPages做下面兩個(gè)動(dòng)作時(shí),Server便會(huì)去讀Global.asa文件:1.WebServer啟動(dòng)之后,一個(gè)應(yīng)用程序目錄中任一個(gè)ASP文件被提出第一個(gè)HTTP請(qǐng)求(Request)時(shí)。2.不具有任何Session的客戶端向Server請(qǐng)求一個(gè)ASP文件時(shí)。前面已經(jīng)提到Application和Session這兩個(gè)ASP的內(nèi)部對(duì)象。Application對(duì)象內(nèi)的信息供所有正在執(zhí)行該應(yīng)用程序的用戶分享,它創(chuàng)建于WebServer啟動(dòng)后一個(gè)應(yīng)用程序中任一ASP文件被提出第一個(gè)HTTP請(qǐng)求時(shí),結(jié)束于Server端停止運(yùn)行。而Session對(duì)象僅屬于一位用戶,維持一個(gè)用戶端的信息,其他用戶無(wú)法訪問(wèn),它創(chuàng)建于一個(gè)不具有Session的用戶向Server請(qǐng)求一個(gè)ASP文件時(shí),結(jié)束于該Session到期(即用戶端超過(guò)某時(shí)間段沒(méi)有向Server提出要求或刷新Web頁(yè)面)或Abandon語(yǔ)句的調(diào)用??梢?jiàn),Global.asa文件的調(diào)用與Application與Session這兩個(gè)對(duì)象密切相關(guān)。事實(shí)上我們通常在Global。asa文件中寫入以下內(nèi)容:Application或Session的開始事件(Start-event)。Application或Session的結(jié)束事件(End-event)。這樣,在一個(gè)Application或Session對(duì)象被創(chuàng)建或結(jié)束時(shí),系統(tǒng)會(huì)自動(dòng)完成Global.asa文件中寫入的相應(yīng)事件。值得注意的是,如果一個(gè)Application與一個(gè)Session同時(shí)開始,ActiveServerPages會(huì)先處理Application的開始事件,而如果一個(gè)Application與一個(gè)Session同時(shí)結(jié)束,ActiveServerPages則會(huì)先處理Session的結(jié)束事件。2.6利用ADO訪問(wèn)數(shù)據(jù)庫(kù)ADO(ActiveXDataObjects)是一種操作Microsoft所支持的數(shù)據(jù)庫(kù)的新技術(shù)。在ASP中,ADO可以看作是一個(gè)服務(wù)器組件(ServerComponent),更簡(jiǎn)單點(diǎn)說(shuō),是一系列的對(duì)象,應(yīng)用這些功能強(qiáng)大的對(duì)象,即可輕松完成對(duì)數(shù)據(jù)庫(kù)復(fù)雜的操作。本文中個(gè)性化頁(yè)面的實(shí)現(xiàn)便大量地用到了ADO技術(shù)。具體的操作步驟可以歸納為以下幾步:1.創(chuàng)建數(shù)據(jù)庫(kù)源名(DSN)2.創(chuàng)建數(shù)據(jù)庫(kù)鏈接(Connection)3.創(chuàng)建數(shù)據(jù)對(duì)象4.操作數(shù)據(jù)庫(kù)5.關(guān)閉數(shù)據(jù)對(duì)象和鏈接每一步的作法如下:一、創(chuàng)建數(shù)據(jù)源名DSN(DateSourceName)即數(shù)據(jù)源名稱。我們知道,ODBC是一種訪問(wèn)數(shù)據(jù)庫(kù)的方法,只要系統(tǒng)中有相應(yīng)的ODBC驅(qū)動(dòng)程序,任何程序就可以通過(guò)ODBC操縱驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)。比如我們系統(tǒng)中有Access的ODBC驅(qū)動(dòng)程序,那么即使我們沒(méi)有Access軟件,也可以在我們的程序中對(duì)一個(gè)Access的MDB數(shù)據(jù)庫(kù)加、刪、改記錄。而且我們根本不用知道這個(gè)數(shù)據(jù)庫(kù)是放在哪里的。我們只要寫出SQL語(yǔ)句,ODBC驅(qū)動(dòng)程序就會(huì)幫我們做一切事情。我們?cè)诮oODBC驅(qū)動(dòng)程序傳SQL指令時(shí),即是用DSN來(lái)告訴它到底操作的是哪一個(gè)數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)的平臺(tái)變了,比如我們改用了SQLServer的數(shù)據(jù)庫(kù),只要其中表的結(jié)構(gòu)沒(méi)變,我們就不用改寫我們的程序,只要重新在系統(tǒng)中配置DSN就行了。由此可見(jiàn),DSN是應(yīng)用程序和數(shù)據(jù)庫(kù)之間的橋梁。下面以MicrosoftAccess為例,建立數(shù)據(jù)源:在C:\myfile\文件夾里創(chuàng)建了一個(gè)名為myexample.mdb的數(shù)據(jù)庫(kù)文件,其注冊(cè)步驟如下:1.在控制面板里找到“ODBC數(shù)據(jù)源”圖標(biāo),打開數(shù)據(jù)源管理器的交互界面;我們?cè)谶@選擇“用戶DSN”;2.然后按下“添加”按鈕,在彈出的數(shù)據(jù)源管理器對(duì)話框里,為自己所要?jiǎng)?chuàng)建的數(shù)據(jù)源選擇一個(gè)驅(qū)動(dòng)程序,本文的數(shù)據(jù)庫(kù)文件是用MicrosoftAccess創(chuàng)建的,所以要選擇“MicrosoftAccessDriver(*.mdb)”;3.按“完成”按鈕后,進(jìn)入一個(gè)標(biāo)題為“ODBCMicrosoftAccess安裝”的界面,在其中設(shè)置“數(shù)據(jù)源名”為“mydatanews”,選取數(shù)據(jù)庫(kù)文件“C:\myfile\myexample.mdb”,然后確定即可。二、創(chuàng)建數(shù)據(jù)庫(kù)鏈接(Connection)鏈接用以保持一些關(guān)于正在訪問(wèn)的數(shù)據(jù)的一些狀態(tài)信息,以及鏈接者信息。ASP文件中如果要訪問(wèn)數(shù)據(jù),必須首先創(chuàng)建與數(shù)據(jù)庫(kù)的鏈接,其語(yǔ)法如下:setConn=Server.createObject(“ADOBD.CONNECTION”)這條語(yǔ)句創(chuàng)建了鏈接對(duì)象Conn,接下來(lái):connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")conn.Openconnstr這條語(yǔ)句打開鏈接,用到了DSN,本例為“connstr”。以上兩個(gè)步驟缺一不可,因?yàn)殒溄訉?duì)象的創(chuàng)建與打開是兩回事,只有打開了才真正可以使用。三、創(chuàng)建數(shù)據(jù)對(duì)象(RecordSet)ADO中的數(shù)據(jù)對(duì)象通常保存的是查詢結(jié)果。RecordSet是ADO中最復(fù)雜的對(duì)象,有許多屬性和方法。RecordSet保存的是一行行的記錄,并標(biāo)有一個(gè)當(dāng)前記錄。以下是創(chuàng)建方法:SetRecordSet=Conn.Execute(sqtStr)這條語(yǔ)句創(chuàng)建并打開了對(duì)象RecordSet,其中Con是先前創(chuàng)建的鏈接對(duì)象,rs是一個(gè)字串,代表一條標(biāo)準(zhǔn)的SQL語(yǔ)句。例如:rs=“SELECT*FROMshop_books”SetRecordSet=mConn.Execute(rs)這條語(yǔ)句執(zhí)行后,對(duì)象RecordSet中就保存了表tab1中的所有記錄。四、操作數(shù)據(jù)庫(kù)我們通過(guò)調(diào)用鏈接對(duì)象的Execute方法來(lái)將查詢結(jié)果返回給一個(gè)數(shù)據(jù)對(duì)象或進(jìn)行插入、刪除等操作。例如:rs=“INSERTINTOtab1VALUES(1,2)”mConn.Execute(rs)/執(zhí)行插入操作五、關(guān)閉數(shù)據(jù)對(duì)象和鏈接對(duì)象在使用了ADO對(duì)象之后要關(guān)閉它,因?yàn)樗褂昧艘欢ǖ姆?wù)器資源。通過(guò)調(diào)用方法close實(shí)現(xiàn)關(guān)閉,然后再釋放它。RecordSet.closeSetRecordSet=Nothing/關(guān)閉創(chuàng)建的數(shù)據(jù)對(duì)象mConn.closeSetmConn=Nothing/關(guān)閉創(chuàng)建的鏈接對(duì)象2.7ASP與CGI的比較CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)也是Internet上一種功能強(qiáng)大的Web頁(yè)面技術(shù),其工作方式有別于ASP。我們現(xiàn)對(duì)二者進(jìn)行比較。ActiveServerPages開發(fā)Web應(yīng)用程序的特點(diǎn):完全嵌入HTML,與HTML、Script語(yǔ)言完美結(jié)合。無(wú)須手動(dòng)編譯和鏈接程序。面向?qū)ο?,并可擴(kuò)展ActiveXServer組件功能。使用腳本語(yǔ)言(JavaScript、VBScript或PERL)編寫。存取數(shù)據(jù)庫(kù)輕松容易(使用ADO組件)。可使用任何語(yǔ)言編寫自己的ActiveXServer組件。無(wú)瀏覽器兼容問(wèn)題。程序代碼隱藏,客戶端僅能看到ASP輸出的HTML文件??s短Web開發(fā)時(shí)間。相比之下,使用CGI開發(fā)Web應(yīng)用程序具有以下缺點(diǎn):不易與HTML文件集成。須使用其他較復(fù)雜的語(yǔ)言來(lái)開發(fā)CGI程序。程序開發(fā)時(shí)間較長(zhǎng)。存取數(shù)據(jù)庫(kù)不容易。每個(gè)CGI程序被不同用戶執(zhí)行時(shí)都得重新執(zhí)行一次,并占去Server的一個(gè)端口(Port),降低Server效率。ASP在數(shù)據(jù)庫(kù)訪問(wèn)、與HTML的集成、提高服務(wù)器的效率等諸多方面都優(yōu)于CGI,更適應(yīng)Web應(yīng)用程序開發(fā)的需要,因此本文選擇了ASP作為個(gè)性化頁(yè)面生成器的開發(fā)工具。第三章數(shù)據(jù)庫(kù)設(shè)計(jì)3.1利用ASP進(jìn)行動(dòng)態(tài)數(shù)據(jù)查詢?yōu)榱藢臄?shù)據(jù)庫(kù)中獲得的數(shù)據(jù)顯示在客戶端瀏覽器中,需要在ASP文件中加入Table對(duì)象。Table對(duì)象可以用來(lái)顯示從Server端數(shù)據(jù)庫(kù)中通過(guò)SQL查詢得到的記錄。使用Dreamweaver等可視化工具可以方便地對(duì)*.ASP文件進(jìn)行用戶界面的設(shè)計(jì)。包括添加Table對(duì)象、動(dòng)態(tài)GIF文件等。以下是本網(wǎng)站中的一段查詢代碼:<% sql1="select*fromlinewherelinenamelike'%"&request.form("txtline")&"%'orderbylineiddesc" setrst1=server.createobject("adodb.recordset") rst1.opensql1,conn,1,1%>當(dāng)WebServer處理完用戶的HTTP請(qǐng)求后,將結(jié)果發(fā)送至瀏覽器上,用戶就可以看到結(jié)果。3.2ASP訪問(wèn)數(shù)據(jù)庫(kù)3.2.1ASP內(nèi)置對(duì)象和組件ASP提供了功能強(qiáng)大的六個(gè)內(nèi)置對(duì)象和五個(gè)內(nèi)置組件內(nèi)置對(duì)象:(1)Request(請(qǐng)求):從前端用戶取得信息(2)Response(響應(yīng)):將信息送給前端用戶(3)Server(服務(wù)器):提供Web服務(wù)器工具(4)Session(會(huì)話):儲(chǔ)存在一次會(huì)話內(nèi)的用戶信息,僅被該用戶訪問(wèn)(5)Application(應(yīng)用):管理所有的會(huì)話信息,供所有用戶共享(6)ObjectContext(對(duì)象上下文):配合Transaction服務(wù)器進(jìn)行分布式事務(wù)處理前三個(gè)很常用,Request和Response是用來(lái)實(shí)現(xiàn)webServer與瀏覽器交互。Request的一個(gè)重要方法是ForM(),其作用是提取瀏覽器的用戶輸入信息。如下面的語(yǔ)句可以取得用戶填在文本框里面的內(nèi)容:Request.Form(“nane”)顯然,這比CCI等方法所需要的復(fù)雜編程簡(jiǎn)單多了。而輸出要用到Response的一個(gè)重要方法Write,如:“Response.writeourmessage”該語(yǔ)句向?yàn)g覽器輸出了一條消息。內(nèi)置組件:(1)數(shù)據(jù)庫(kù)存取組件:ASP提供ADO來(lái)存取具有ODBC標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)(2)廣告輪顯組件:用來(lái)維護(hù)、構(gòu)建Internet廣告(3)瀏覽器兼容組件:將瀏覽器的功能數(shù)據(jù)提供給服務(wù)器,以便送出適合于各種瀏覽器的Web頁(yè)面(4)文件存取組件:提供文件讀寫的工具(5)文件超鏈接組件:提供對(duì)Web頁(yè)面的管理3.2.2ASP訪問(wèn)數(shù)據(jù)庫(kù)工作原理訪問(wèn)Web數(shù)據(jù)庫(kù)的技術(shù)有以下幾種方式:公共網(wǎng)關(guān)接口CGI(CommonGatewayInterface)、InternetServer應(yīng)用程序編程接口ISAPI(InternetServerApplicationProgrammingInterface)、Java、Plug-in(插件)和ASP技術(shù)。這些技術(shù)都是為了克服HTML靜態(tài)頁(yè)面發(fā)展起來(lái)的。ASP是一個(gè)基于Web服務(wù)器的腳本開發(fā)環(huán)境,在ASP平臺(tái)上可開發(fā)和運(yùn)行動(dòng)態(tài)的、交互的、高性能的Web服務(wù)器應(yīng)用程序。圖4.5ASP訪問(wèn)數(shù)據(jù)庫(kù)原理圖圖4.5說(shuō)明了ASP訪問(wèn)數(shù)據(jù)庫(kù)工作原理。ASP程序在Web服務(wù)器端工作,當(dāng)前端用戶請(qǐng)求一個(gè)ASP主頁(yè)時(shí),Web服務(wù)器響應(yīng)HTTP請(qǐng)求并調(diào)用ASP引擎執(zhí)行該文件并解釋執(zhí)行其中的腳本,若腳本中有訪問(wèn)數(shù)據(jù)庫(kù)請(qǐng)求,立刻通過(guò)ODBC或ILEDB與相應(yīng)的后臺(tái)數(shù)據(jù)庫(kù)相連,同數(shù)據(jù)庫(kù)訪問(wèn)組件ADO完成操作,最后,ASP根據(jù)訪問(wèn)數(shù)據(jù)庫(kù)的結(jié)果生成HTML語(yǔ)言的主頁(yè)返回給前端用戶,用戶看到的只是HTML網(wǎng)站,而看不到ASP程序代碼,增強(qiáng)了保密性。3.2.3ASP連接數(shù)據(jù)庫(kù)的方法ASP提供兩種訪問(wèn)數(shù)據(jù)庫(kù)的方法:在第一種方法中每次訪問(wèn)數(shù)據(jù)庫(kù)都要與數(shù)據(jù)庫(kù)連接一次,一旦與數(shù)據(jù)庫(kù)建立連接語(yǔ)句就可以對(duì)數(shù)據(jù)進(jìn)行操作;當(dāng)對(duì)數(shù)據(jù)的操作完成,所有相關(guān)的對(duì)象都被關(guān)閉。與數(shù)據(jù)庫(kù)相連的另一種方法是當(dāng)用戶的任務(wù)完成后連接才被關(guān)閉,這是由Global.a(chǎn)sp文件所控制。每個(gè)基于ASP的internet應(yīng)用可以有一個(gè)存放在應(yīng)用根目錄中的Global.asp文件,該文件有四個(gè)事件:Applicattion-start,Senssion-start,Applicattion-End和Session-end用戶與數(shù)據(jù)庫(kù)的連接是在Session-start事件中,用Session-end事件關(guān)閉連接[1]。在本網(wǎng)站中用如下代碼來(lái)實(shí)現(xiàn)ASP與數(shù)據(jù)庫(kù)的連接:<%ifsession("admin")=""then response.Redirect("login.asp")endif%>第四章總體設(shè)計(jì)4.1系統(tǒng)詳細(xì)調(diào)查傳統(tǒng)的軟件工程方法學(xué)使用結(jié)構(gòu)化分析技術(shù),完成分析用戶需求工作。需求分析要了解用戶的情況,接下來(lái)通過(guò)與用戶交流,對(duì)用戶的基本要求反復(fù)細(xì)化,以得出對(duì)目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的需求。需求分析是為了發(fā)現(xiàn)用戶的真正需求,首先應(yīng)從宏觀角度調(diào)查、分析用戶所面臨的問(wèn)題,也就是說(shuō),需求分析的第一步是盡可能準(zhǔn)確地了解用戶當(dāng)前的情況和需要解決的問(wèn)題。在網(wǎng)站中,用戶所需要的無(wú)非就是獲取信息,并查詢到滿足自身查詢條件的詳細(xì)資料。因此在做查詢系統(tǒng)時(shí),充分考慮到了一樣標(biāo)本的自身屬性和用戶有可能用到的查詢條件,兩都有機(jī)結(jié)合,這樣才能更好的為用戶服務(wù)。運(yùn)行環(huán)境大多數(shù)用戶,對(duì)計(jì)算機(jī)的要求并不高,一般只需能實(shí)現(xiàn)信息、添加修改、在線查詢功能即可,所以計(jì)算機(jī)的配置約為普通配置,DDR256M內(nèi)存,17英寸純平顯示器,80G硬盤,標(biāo)準(zhǔn)鍵盤和鼠標(biāo),打印機(jī),Windows98/xp/me/2000操作系統(tǒng)等。而本系統(tǒng)開發(fā)工具選取MacromediaDreamweaverMX2004,所以編制的程序在以上環(huán)境的機(jī)器中均可順利運(yùn)行,并且本系統(tǒng)占用空間較小,主要依靠鼠標(biāo)和鍵盤進(jìn)行錄入。詳細(xì)調(diào)查的重點(diǎn)是對(duì)管理業(yè)務(wù)的流程進(jìn)行描述,通過(guò)采用系統(tǒng)流程圖中部分圖工具來(lái)描述管理活動(dòng),進(jìn)行規(guī)范化說(shuō)明。系統(tǒng)分析的主要成果是系統(tǒng)的邏輯模型。本系統(tǒng)的邏輯模型主要是以系統(tǒng)的數(shù)據(jù)流圖和數(shù)據(jù)字典為主要描述工具。按照信息系統(tǒng)中應(yīng)有的數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)來(lái)勾畫系統(tǒng)的概貌。4.2數(shù)據(jù)流圖數(shù)據(jù)流圖是組織中信息運(yùn)動(dòng)的抽象。是在調(diào)研的基礎(chǔ)上,從系統(tǒng)的科學(xué)性、管理的合理性、實(shí)際運(yùn)動(dòng)的可行性角度出發(fā)。將信息處理功能和彼此之間的聯(lián)系自頂向下,逐層分解,從邏輯上精確地描述系統(tǒng)應(yīng)具有的數(shù)據(jù)加工功能、數(shù)據(jù)輸入、數(shù)據(jù)輸出、數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)來(lái)源和去向(外部實(shí)體)等項(xiàng)目。首先,分析管理系統(tǒng)的總體情況,劃分系統(tǒng)邊界,識(shí)別系統(tǒng)的數(shù)據(jù)來(lái)源和去處,確定外部實(shí)體,得出系統(tǒng)的頂層數(shù)據(jù)流程圖。然后劃分出幾個(gè)主要的信息管理功能,并明確各功能之間的聯(lián)系,繪制出數(shù)據(jù)流程圖。數(shù)據(jù)流程圖的符號(hào)說(shuō)明如圖3.1所示。外部實(shí)體處理數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)圖3.1數(shù)據(jù)流程圖的符號(hào)4.3軟件模塊結(jié)構(gòu)設(shè)計(jì)與傳統(tǒng)媒體不同,網(wǎng)站除了文字和圖像以外,還包含聲音、視頻和動(dòng)畫等新興多媒體元素,更借助由代碼語(yǔ)言編程所實(shí)現(xiàn)的各種交互式效果,增加了網(wǎng)站界面的生動(dòng)性和復(fù)雜性,也使得網(wǎng)站設(shè)計(jì)者需要考慮更多頁(yè)面元素的排布、優(yōu)化。一般來(lái)說(shuō),網(wǎng)站的界面主要由下面幾個(gè)因素構(gòu)成:(1)文字:文字元素是信息傳達(dá)的主體部分。網(wǎng)站中的文字主要包括標(biāo)題、信息、文字鏈接、幾種主要形式。標(biāo)題和傳統(tǒng)媒體中信息傳達(dá)的基本作用相同,是內(nèi)容的簡(jiǎn)概說(shuō)明一般比較醒目、優(yōu)先編排。文字作為占據(jù)頁(yè)面重要比率的元素,同時(shí)又是信息重要載體,它的字體、大小、顏色和排布對(duì)頁(yè)面整體設(shè)計(jì)影響極大。(2)圖形:圖形在網(wǎng)站界面中具有重要作用。合理的運(yùn)用圖形??梢陨鷦?dòng)直觀、形象地表現(xiàn)設(shè)計(jì)主題。網(wǎng)站中常用的圖形格式包括jpg和gif,這兩種格式壓縮比高,得到了規(guī)范瀏覽器的支持,下載速度快,具有跨平臺(tái)的特性,不需要瀏覽器安裝插件即可直接閱覽。圖形元素包括標(biāo)題、背景、主圖、鏈接圖標(biāo)四種。(3)頁(yè)面版式:版式是網(wǎng)站界面設(shè)計(jì)的重要組成部分,它將文字、圖形等視覺(jué)元素進(jìn)行組合配置,使頁(yè)面整體視覺(jué)效果美觀和諧,便于閱讀,實(shí)現(xiàn)信息傳達(dá)的最佳效果。(4)色彩:彩色網(wǎng)站比單色網(wǎng)站更具吸引力;色彩本身具有象征作用。(5)多媒體:網(wǎng)站構(gòu)成中的多媒體元素主要包括音頻、視頻和動(dòng)畫。這些是界面構(gòu)成中最吸引人的元素。(6)技術(shù):網(wǎng)站的技術(shù)要素并非任何情況下在網(wǎng)站中都能直觀體現(xiàn),但是卻代表了設(shè)計(jì)的整體水平,也是衡量設(shè)計(jì)成功的重要標(biāo)準(zhǔn)。網(wǎng)站界面設(shè)計(jì)最基本的技術(shù)要求包括:瀏覽器、傳輸速度、屏幕分辨率、顏色顯示。(1).系統(tǒng)方案確定。通過(guò)對(duì)系統(tǒng)調(diào)研與分析,系統(tǒng)主要應(yīng)完成的功能如下:信息管理、錯(cuò)誤管理、帳戶管理、欄目管理等。(2).軟件結(jié)構(gòu)設(shè)計(jì)。系統(tǒng)執(zhí)行時(shí),先輸入數(shù)據(jù),然后根據(jù)輸入的數(shù)據(jù)選擇執(zhí)行路徑。系統(tǒng)功能圖如下。武義縣旅游網(wǎng)武義縣旅游網(wǎng)系統(tǒng)管理縣內(nèi)旅游縣外旅游武義美食度假酒店網(wǎng)站介紹武義路線圖4.2系統(tǒng)功能模塊圖4.4數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)(Database),是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),是用于查詢的大量數(shù)據(jù)的存儲(chǔ)區(qū)域。使用數(shù)據(jù)庫(kù)可以帶來(lái)許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,實(shí)現(xiàn)數(shù)據(jù)資源的充分共享等等。此外,數(shù)據(jù)庫(kù)技術(shù)還為用戶提供了非常簡(jiǎn)便的使用手段,使用戶易于編寫有關(guān)數(shù)據(jù)庫(kù)應(yīng)用程序。特別是近年來(lái)推出的計(jì)算機(jī)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),操作直觀,使用靈活,編程方便,功能強(qiáng)大,環(huán)境適應(yīng)廣泛,數(shù)據(jù)處理能力極強(qiáng)。數(shù)據(jù)庫(kù)的設(shè)計(jì)是指對(duì)一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),滿足各種用戶需求。作為信息資源開發(fā)、管理和服務(wù)的一種有效的手段,數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用已越來(lái)越廣泛,從小型的單項(xiàng)事務(wù)處理系統(tǒng)到大型的信息系統(tǒng)大都用先進(jìn)的數(shù)據(jù)庫(kù)技術(shù)來(lái)保持系統(tǒng)數(shù)據(jù)的安全性、完整性和共享性。對(duì)一個(gè)實(shí)際的系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)表的設(shè)計(jì)在遵循數(shù)據(jù)庫(kù)理論的同時(shí),必須能用開發(fā)工具來(lái)實(shí)現(xiàn)用戶在各方面提出的功能要求。本網(wǎng)站的主要數(shù)據(jù)庫(kù)表如下:管理員表admin,這個(gè)表存儲(chǔ)的主要是管理員的用戶名和密碼
旅游景點(diǎn)表attractions,這個(gè)表存儲(chǔ)的主要是縣內(nèi)和縣外的景點(diǎn)名和景點(diǎn)類型,stype這個(gè)字段是用來(lái)區(qū)分縣內(nèi)和縣外的景點(diǎn)的,當(dāng)stype為0時(shí)表示為縣內(nèi)景點(diǎn),當(dāng)stype為1時(shí)表示為縣外景點(diǎn)旅游景點(diǎn)圖片表attrimg這個(gè)表存儲(chǔ)的主要是縣內(nèi)和縣外的景點(diǎn)圖片,stype這個(gè)字段是用來(lái)區(qū)分縣內(nèi)和縣外的景點(diǎn)圖片的,當(dāng)stype為0時(shí)表示為縣內(nèi)景點(diǎn)圖片,當(dāng)stype為1時(shí)表示為縣外景點(diǎn)圖片旅游路線預(yù)定表books這個(gè)表存儲(chǔ)的主要是預(yù)定的景點(diǎn)路線武義美食表mfood這個(gè)表存儲(chǔ)的主要是武義的美食武義介紹表fpage這個(gè)表主要存儲(chǔ)的是武義這個(gè)地方的介紹武義介紹表fpage這個(gè)表主要存儲(chǔ)的是武義這個(gè)地方的介紹武義酒店表jdian這個(gè)表主要存儲(chǔ)的是武義這個(gè)地方酒店信息武義旅游路線表line這個(gè)表主要存儲(chǔ)的是武義這個(gè)地方的路線、價(jià)格等信息第五章系統(tǒng)的實(shí)現(xiàn)網(wǎng)站的整體造型在整個(gè)制作中至關(guān)重要,一個(gè)雜亂無(wú)章的網(wǎng)站,給人第一印象極差的網(wǎng)站,用戶訪問(wèn)過(guò)之后是不會(huì)再訪問(wèn)的。在制作本網(wǎng)站時(shí),主要以學(xué)校主頁(yè)界面形式作為參考,因?yàn)樗瓷先ケ容^柔和、簡(jiǎn)潔、和諧,給用戶清新的感覺(jué)。造型就是創(chuàng)造出來(lái)的物體形象。這里是指頁(yè)面的整體形象,這種形象應(yīng)該是一個(gè)整體,圖形與文本的接合應(yīng)該是層疊有序。雖然,顯示器和瀏覽器都是矩形,但對(duì)于頁(yè)面的造型,你可以充分運(yùn)用自然界中的其它形狀以及它們的組合:矩形,圓形,三角形,菱形等。對(duì)于不同的形狀,它們所代表的意義是不同的。比如矩形代表正式,規(guī)則,注意到很多ICP和政府網(wǎng)站都是以矩形為整體造型;圓形代表著柔和,團(tuán)結(jié),溫暖,安全等,許多時(shí)尚站點(diǎn)喜歡以圓形為頁(yè)面整體造型;三角形代表著力量,權(quán)威,牢固,侵略等,許多大型的商業(yè)站點(diǎn)為顯示它的權(quán)威性常以三角形為頁(yè)面整體造型;菱形代表著平衡,協(xié)調(diào),公平,一些交友站點(diǎn)常運(yùn)用菱形作為頁(yè)面整體造型。雖然不同形狀代表著不同意義,但目前的網(wǎng)站制作多數(shù)是接合多個(gè)圖形加以設(shè)計(jì),在這其中某種圖形的構(gòu)圖比例可能占的多一些。制作中主要采用Dreamweaver作為主要制作工具,其中插入了Flash元素,還用了Photoshop處理其中圖片,這樣能使網(wǎng)站更加生動(dòng)。色彩搭配打開一個(gè)網(wǎng)站,給用戶留下第一印象的既不是網(wǎng)站豐富的內(nèi)容,也不是網(wǎng)站合理的版面布局,而是網(wǎng)站的色彩。色彩對(duì)人的視覺(jué)效果非常明顯,一個(gè)網(wǎng)站設(shè)計(jì)成功與否,在某種程度上取決于設(shè)計(jì)者對(duì)色彩的運(yùn)用和搭配。因?yàn)榫W(wǎng)站設(shè)計(jì)屬于一種平面效果設(shè)計(jì),在排除立體圖形、動(dòng)畫效果之外,在平面圖上,色彩的沖擊力是最強(qiáng)的,它很容易給用戶留下深刻的印象。因此,在設(shè)計(jì)網(wǎng)站時(shí),必須要高度重視色彩的搭配。色彩五顏六色、千變?nèi)f化。其中,紅、黃、藍(lán)是三原色,三原色通過(guò)不同比例的混合可以得到各種顏色。色彩有冷暖色之分,冷色(如藍(lán)色)給人的感覺(jué)是安靜、冰冷;而暖色(如紅色)給人的感覺(jué)是熱烈、火熱。冷暖色的巧妙運(yùn)用可以讓網(wǎng)站產(chǎn)生意想不到的效果。色彩與人的心理感覺(jué)和情緒也有一定的關(guān)系,利用這一點(diǎn)可以在設(shè)計(jì)網(wǎng)站時(shí)形成自己獨(dú)特的色彩效果,給瀏覽者留下深刻的印象。一般情況下,各種色彩給人的感覺(jué)是:紅色代表熱情、活潑、熱鬧、溫暖、幸福、吉祥橙色代表光明、華麗、興奮、甜蜜、快樂(lè)黃色代表明朗、愉快、高貴、希望綠色代表新鮮、平靜、和平、柔和、安逸、青春藍(lán)色代表深遠(yuǎn)、永恒、沉靜、理智、誠(chéng)實(shí)、寒冷紫色代表優(yōu)雅、高貴、魅力、自傲白色代表純潔、純真、樸素、神圣、明快灰色代表憂郁、消極、謙虛、平凡、沉默、中庸、寂寞黑色代表崇高、堅(jiān)實(shí)、嚴(yán)肅、剛健、粗莽在色彩搭配中一般遵循下述一些原則:(1)特色鮮明:一個(gè)網(wǎng)站的用色必須要有自己獨(dú)特的風(fēng)格,這樣才能顯得個(gè)性鮮明,給瀏覽者留下深刻的印象。(2)搭配合理:網(wǎng)站設(shè)計(jì)雖然屬于平面設(shè)計(jì)的范疇,但它又與其它平面設(shè)計(jì)不同,它在遵從藝術(shù)規(guī)律的同時(shí),還考慮人的生理特點(diǎn),色彩搭配一定要合理,給人一種和諧、愉快的感覺(jué),避免采用純度很高的單一色彩,這樣容易造成視覺(jué)疲勞。(3)講究藝術(shù)性:網(wǎng)站設(shè)計(jì)也是一種藝術(shù)活動(dòng),因此它必須遵循藝術(shù)規(guī)律,在考慮到網(wǎng)站本身特點(diǎn)的同時(shí),按照內(nèi)容決定形式的原則,大膽進(jìn)行藝術(shù)創(chuàng)新,設(shè)計(jì)出既符合網(wǎng)站要求,又有一定藝術(shù)特色的網(wǎng)站[2]。在設(shè)計(jì)標(biāo)本室時(shí)主要考慮的因素是要能讓用戶瀏覽過(guò)之后,以后還會(huì)再登陸標(biāo)本室網(wǎng)站,因此用了樸素、大方、簡(jiǎn)潔、和諧的設(shè)計(jì)原則。5.1動(dòng)態(tài)網(wǎng)站的優(yōu)點(diǎn)在InterNet迅猛發(fā)展的今天,用戶不再只滿足于通過(guò)瀏覽器看到靜態(tài)頁(yè)面,而是希望能根據(jù)要求生成更加靈活、生動(dòng)的動(dòng)態(tài)頁(yè)面。數(shù)據(jù)庫(kù)對(duì)于信息的動(dòng)態(tài)檢索無(wú)疑具有極大的優(yōu)越性,因此根據(jù)數(shù)據(jù)庫(kù)信息的不斷變化生成動(dòng)態(tài)web頁(yè)面將成為網(wǎng)站設(shè)計(jì)的重要方法。動(dòng)態(tài)網(wǎng)站的技術(shù)就有多個(gè)廠商的支持,他們都有各自的優(yōu)點(diǎn)。利用JSP、ASP、PHP和其它有關(guān)技術(shù),一個(gè)用戶可以將一個(gè)Http請(qǐng)求送到一個(gè)可執(zhí)行應(yīng)用程序而不是一個(gè)靜態(tài)的HTML文件。服務(wù)器將會(huì)立即運(yùn)行這個(gè)限定的程序,對(duì)用戶的輸入做出反應(yīng),將處理結(jié)果返回客戶端,或者對(duì)數(shù)據(jù)的記錄進(jìn)行更新。通過(guò)這個(gè)模型,就可以在服務(wù)器端和客戶端之間有效的進(jìn)行交互。靜態(tài)網(wǎng)站瀏覽者可以直接從服務(wù)器端調(diào)用瀏覽,占用服務(wù)器的資源較少但缺點(diǎn)是其不包含交互功能,對(duì)于使用者來(lái)說(shuō),只能看但不能參與活動(dòng),這是一個(gè)很大的缺陷。動(dòng)態(tài)網(wǎng)站包含交互功能,瀏覽者可以和服務(wù)頁(yè)面間產(chǎn)生會(huì)話作用,完成一系列的動(dòng)作。動(dòng)態(tài)網(wǎng)站有如下一些優(yōu)點(diǎn):(1)讀者可與Web服務(wù)器進(jìn)行交互(2)可實(shí)現(xiàn)數(shù)據(jù)庫(kù)的查詢(3)可以與HTML以外的文件進(jìn)行交互(4)可縮短查詢時(shí)間,提高瀏覽效率它的最大的優(yōu)勢(shì)體現(xiàn)在用戶可以進(jìn)行直接參與活動(dòng)[9]。5.2主窗口界面本系統(tǒng)是為市場(chǎng)上眾多的小型用戶所設(shè)計(jì),是大眾型的,它主要包含以下幾個(gè)模塊:旅游景點(diǎn)查詢,包含有景點(diǎn)信息,線路查詢,餐飲,住宿等信息。主窗體如下圖所示:武義路線板塊如下圖,其中點(diǎn)擊預(yù)定之后該用戶必須先登錄才能預(yù)定。其實(shí)預(yù)定代碼為:<%ifsession("guestid")=""thenresponse.Redirect("guestlogin.asp")endif%><!--#includefile="top.asp"--><%ifrequest.servervariables("content_length")<>0thenlineid=request.querystring("id")outtime=request.form("byear")&"-"&request.form("bmonth")&"-"&request.form("bday")&"00:00:00"renshu=request.Form("renshu")randomizedd=right("00"&rnd()*100,2)'兩們隨機(jī)數(shù)bookid=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&dd'預(yù)定時(shí)間精確到秒ifnotisnumeric(request.Form("renshu"))then response.Write("<scriptlanguage=javascript>alert('預(yù)定人數(shù)必須為數(shù)字!');history.go(-1);</script>") else application.lock'預(yù)定對(duì)兩個(gè)表進(jìn)行操作表books和表line sql2="insertintobooks(bookid,lineid,booker,renshu,booktime,outtime)values('"&bookid&"','"&lineid&"','"&session("guestid")&"',1,'"&now()&"','"&outtime&"')" conn.executesql2 sql3="updatelinesetbooked=booked+1wherelineid='"&lineid&"'" conn.executesql3 application.unlock response.write("<scriptlanguage=javascript>alert('預(yù)訂成功!');location.replace('mybook.asp');</script>")endifendif%><p></p><tablewidth="760"border="1"cellspacing="0"cellpadding="5"bordercolor="#ccccff"style="border-style:solid;border-collapse:collapse;"><formname="form1"method="post"action="<%=request.servervariables("script_name")%>?id=<%=request.querystring("id")%>"><trbgcolor="#CCCCFF"><tdcolspan="2"class="title"><divalign="center">請(qǐng)完成您的預(yù)訂信息</div></td></tr> <% sql1="select*fromlinewherelineid='"&request.querystring("id")&"'" setrst1=server.createobject("adodb.recordset") rst1.opensql1,conn,1,1 %><tr><td>線路名稱:<%=rst1("linename")%></td><tdwidth="250">線路類型:<%=rst1("linetype")%></td></tr><tr><td>出發(fā)時(shí)間:<selectname="byear"><optionselected><%=year(now)%></option></select> 年<selectname="bmonth"> <% fori=month(now)to12 response.write("<option>"&i&"</option>") next %> </select> 月<selectname="bday"> <% fori=1to31 response.write("<option>"&i&"</option>") next %></select> 日</td><td><inputname="renshu"type=textclass="vod"value=1size=5/></td></tr><tralign="right"><tdcolspan="2"><inputtype="button"onClick="chk()"value="完成預(yù)訂"></td></tr> </form></table><p></p><!--#includefile="inc/foot.asp"--></center></body></html>武義介紹的后臺(tái)界面如下圖:代碼如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><!--#includefile="char.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>武義介紹</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><scriptlanguage=javascript>functionchk(){ if(form1.content.value.length=="") { alert("介紹內(nèi)容不能為空!"); form1.content.focus(); } else { form1.submit(); }}</script><body><divalign="center"><%'提交內(nèi)容ifrequest.servervariables("content_length")<>0thencontent=ECHTML(request.form("content"))application.locksql="updatefpagesetcontent='"&content&"'wheretitle='武義介紹'"conn.executesqlapplication.unlockresponse.write("<scriptlanguage=javascript>alert('修改成功!');</script>")endif%></div><divalign="right"></div><tablewidth=600height="500"border=1cellpadding="5"cellspacing="0"bordercolor="#000000"style="border-style:solid;border-collapse:collapse;"> <formname="form1"method="post"action="<%=request.servervariables("script_name")%>"> <trbgcolor="#CCCCFF"><tdclass="title"align="center"colspan=2>編輯武義介紹</td> </tr> <tr> <tdwidth="48"><divalign="center">內(nèi)容:</div></td> <tdwidth="520"> <divalign="center"> <textareacols=60rows=25name=content></textarea></div></td></tr> <tr><tdcolspan=2align="right"><inputtype=buttonvalue="提交"onClick="chk()"> <inputtype=resetvalue="重寫"></td></tr> </form></table><divalign="center"></div><divalign="right"></div></body></html>武義添加線路如下圖所示:代碼如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><!--#includefile="char.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>添加線路</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><scriptlanguage=javascript>functionchk(){ if(form1.linename.value.length=="") { alert("線路名稱不能為空!"); form1.linename.focus(); } elseif(form1.linetype.value.length=="") { alert("線路類型不能為空!"); form1.linetype.focus(); } elseif(form1.price.value.length=="") { alert("線路價(jià)格不能為空!"); form1.price.focus(); } elseif(form1.lineintro.value.length=="") { alert("線路簡(jiǎn)介不能為空!"); form1.lineintro.focus(); } else { form1.submit(); }}</script><body><center><%'將線路寫入數(shù)據(jù)庫(kù)ifrequest.servervariables("content_length")<>0thenlinename=ECHTML(request.form("linename"))linetype=ECHTML(request.form("linetype"))price=ECHTML(request.form("price"))lineintro=ECHTML(request.form("lineintro"))ifnotisnumeric(price)thenresponse.write("<scriptlanguage=javascript>alert('線路價(jià)格必須是數(shù)字!');history.go(-1);</script>")elselineid=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)application.locksql="insertintoline(lineid,linename,linetype,lineintro,price)values('"&lineid&"','"&linename&"','"&linetype&"','"&lineintro&"',"&price&")"conn.executesqlapplication.unlockresponse.write("<scriptlanguage=javascript>alert('添加成功!');location.replace('addline.asp');</script>")endifendif%><tablewidth="600"border="1"cellspacing="0"cellpadding="5"bordercolor="#ccccff"style="border-style:solid;border-collapse:collapse;"><formname="form1"method="post"action="<%=request.servervariables("script_name")%>"><trbgcolor="#CCCCFF"><tdcolspan="2"align="center"class="title">添加線路</td></tr><tr><tdalign="right">名稱:</td><td><inputname="linename"type="text"id="linename"size="30"></td></tr><tr><tdalign="right">類型:</td><td><selectname="linetype"><optionvalue="大眾"selected>大眾<optionvalue="探險(xiǎn)"selected>探險(xiǎn)<optionvalue="休閑"selected>休閑<select></td> </tr><tr><tdalign="right">價(jià)格:</td><td><inputname="price"type="text"id="price"size="30"maxlength="10"></td></tr><tr><td>簡(jiǎn)介:</td><td><textareaname="lineintro"cols="58"rows="15"id="lineintro"></textarea></td></tr><tralign="right"><tdcolspan="2"><inputname="Submit"type="button"value="添加"onclick="chk()"> <inputname="Submit2"type="reset"value="重置"></td></tr></form></table></center></body></html>武義線路預(yù)定管理頁(yè)面如下圖所示:代碼如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>預(yù)訂情況</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><body><center><tablewidth="600"border="1"cellspacing="0"cellpadding="5"bordercolor="#ccccff"style="border-style:solid;border-collapse:collapse;"><tralign="center"class="title"bgcolor="#ffcc33"><tdbgcolor="#CCCCFF">線路ID</td><tdbgcolor="#CCCCFF">名稱</td><tdbgcolor="#CCCCFF">類型</td><tdbgcolor="#CCCCFF">價(jià)格</td><tdbgcolor="#CCCCFF">預(yù)訂人數(shù)</td><tdbgcolor="#CCCCFF">查看</td></tr> <%'從表line讀出線路信息并顯示出來(lái) sql1="select*fromlineorderbylineiddesc" setrst1=server.CreateObject("adodb.recordset") rst1.opensql1,conn,1,1 dowhilenotrst1.eof %><tralign="center"><td><%=rst1("lineid")%></td><td><%=rst1("linename")%></td><td><%=rst1("linetype")%></td><td>¥<%=rst1("price")%></td><td><%=rst1("booked")%></td><td><ahref="linedetail.asp?id=<%=rst1("lineid")%>"class="red">詳情</a></td></tr> <% rst1.movenext loop rst1.close setrst1=nothing %></table></center></body></html>添加景點(diǎn)如下圖所示:代碼如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><!--#includefile="char.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>添加景點(diǎn)</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><scriptlanguage=javascript>functionchk(){ varmyobject=form1.lineid; varmynum=myobject.length; varcount=0; if(form1.attrname.value.length=="") { alert("景點(diǎn)名稱不能為空!"); form1.attrname.focus(); } elseif(form1.attrintro.value.length=="") { alert("景點(diǎn)簡(jiǎn)介不能為空!"); form1.attrintro.focus(); } <!--選中景點(diǎn)所屬線路--> elseif(mynum) { varflag=false; for(i=0;i<=mynum-1;i++) { if(myobject[i].checked) { count=count+1; } else { count=count+0; } } if(count==0) {alert("請(qǐng)選擇景點(diǎn)所屬路線!");} else {form1.submit();} } else { form1.submit(); }}</script><body><center><%ifrequest.servervariables("content_length")<>0thenattrname=ECHTML(request.form("attrname"))attrintro=ECHTML(request.form("attrintro"))randomizeattrid=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&right("00"&rnd()*100,2)application.lock'向表lineattr和表attractions插入數(shù)據(jù)setlineid=request.form("lineid")foreachvalinlineid sql2="insertintolineattr(lineid,attrid)values('"&val&"','"&attrid&"')" conn.executesql2nextsql3="insertintoattractions(attrid,attrname,stype,attrintro)values('"&attrid&"','"&attrname&"',"&request.form("stype")&",'"&attrintro&"')"conn.executesql3application.unlockresponse.write("<scriptlangage=javascript>alert('添加景點(diǎn)成功!');</script>")endif%><tablewidth="600"border="1"cellspacing="0"cellpadding="5"bordercolor="#ccccff"style="border-style:solid;border-collapse:collapse;"><formname="form1"method="post"action="<%=request.servervariables("script_name")%>"><tralign="center"bgcolor="#CCCCFF"><tdcolspan="2"class="title">添加景點(diǎn)</td></tr><tr><tdwidth="106">景點(diǎn)名稱:</td><tdwidth="462"> <inputname="attrname"type="text"id="attrname"></td></tr><tr><td><divalign="left">景點(diǎn)簡(jiǎn)介:</div></td><td> <textareaname="attrintro"cols="50"rows="20"></textarea></td></tr><tr><td> </td><td><selectname="stype"id="stype"><optionvalue=0>縣內(nèi)</option><optionvalue=1>縣外</option></select></td></tr><tr><td>所屬路線:</td><td> <!--從表line讀出每條線路并在每條線路后面顯示checkbox--> <% sql1="select*fromline" setrst1=server.createobject("adodb.recordset") rst1.opensql1,conn,1,1 dowhilenotrst1.eof %> <inputtype="checkbox"name="lineid"id="lineid"value="<%=rst1("lineid")%>"><%=rst1("linename")%> <% rst1.movenext loop rst1.close setrst1=nothing %> </td></tr><tralign="right"><tdcolspan="2"><inputtype="button"value="添加"onClick="chk()"><inputtype="reset"value="重填"></td></tr> </form></table></center></body></html>添加美食如圖所示:代碼如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><!--#includefile="char.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>添加美食</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><scriptlanguage=javascript>functionchk(){ if(form1.attrname.value.length=="") { alert("美食名稱不能為空!"); form1.attrname.focus(); } elseif(form1.attrintro.value.length=="") { alert("美食簡(jiǎn)介不能為空!"); form1.attrintro.focus(); } <!--選中景點(diǎn)所屬線路-->/* elseif(mynum) { varflag=false; for(i=0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025民辦幼兒園教師聘用合同書范本
- 2025監(jiān)理工程師《合同管理》考點(diǎn)合同生效時(shí)間的規(guī)定
- 二零二五年度醫(yī)療項(xiàng)目項(xiàng)目經(jīng)理委托合同3篇
- 二零二五年度互聯(lián)網(wǎng)金融服務(wù)公司股權(quán)及業(yè)務(wù)轉(zhuǎn)讓合同3篇
- 2025年度紙裝修設(shè)計(jì)創(chuàng)新技術(shù)應(yīng)用合同3篇
- 2025年度企業(yè)財(cái)務(wù)分析與稅務(wù)籌劃咨詢服務(wù)合同2篇
- 2025年度醫(yī)療機(jī)構(gòu)與執(zhí)業(yè)藥師簽訂的藥品質(zhì)量追溯體系合作協(xié)議3篇
- 2025年度展臺(tái)搭建與展會(huì)現(xiàn)場(chǎng)布置合同3篇
- 二零二五年度軌道交通設(shè)備維修保養(yǎng)協(xié)議3篇
- 2025年度養(yǎng)殖技術(shù)培訓(xùn)與推廣合作合同3篇
- 一監(jiān)區(qū)服裝生產(chǎn)管理問(wèn)題
- 人教PEP版英語(yǔ)四年級(jí)上冊(cè)單詞表默寫(英譯漢、漢譯英)
- 職業(yè)健康監(jiān)護(hù)技術(shù)規(guī)范
- 水不同溫度的熱焓值
- 小品劇本《超級(jí)招聘》
- 空氣壓縮機(jī)檢驗(yàn)原始記錄表
- 叉車部件的涂裝工藝及體系
- DB32∕T 3261-2017 水利工程預(yù)拌混凝土應(yīng)用技術(shù)規(guī)范
- 物理學(xué)習(xí)的8種思考方式
- 閱讀題賒小雞
- 中國(guó)風(fēng)圍棋對(duì)弈雅致文藝教育培訓(xùn)活動(dòng)策劃版
評(píng)論
0/150
提交評(píng)論