微納繪本館論文_第1頁(yè)
微納繪本館論文_第2頁(yè)
微納繪本館論文_第3頁(yè)
微納繪本館論文_第4頁(yè)
微納繪本館論文_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE40PAGE1微納繪本館[摘要]JSP全名為JavaServerPage,其根本是一個(gè)簡(jiǎn)化的的Servlet設(shè)計(jì),它實(shí)現(xiàn)了Html語(yǔ)法中的Java擴(kuò)張。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。本文通過對(duì)微納繪本館系統(tǒng)的需求調(diào)研,根據(jù)用戶的需求定約,設(shè)計(jì)并開發(fā)了一個(gè)微納繪本館在線管理系統(tǒng),提供繪本在線預(yù)覽、繪本借閱、繪本訂購(gòu)等功能。在系統(tǒng)設(shè)計(jì)中綜合運(yùn)用多種開發(fā)技術(shù)(JSP、Servlet、AJAX、JS、Jquery),使用MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),實(shí)現(xiàn)信息系統(tǒng)層。本系統(tǒng)使用JSP開發(fā)前端頁(yè)面,通過AJAX向Servlet傳送,使用JS和Jquery操作返回的數(shù)據(jù),以此實(shí)現(xiàn)頁(yè)面的動(dòng)態(tài)化。[關(guān)鍵字]繪本館JSPServletAJAXJSJquery

MicroContainPictureGallery[ABSTRACT]JSP(JavaServerPage)isasimplifieddesignofServlet,whichimplementsHTMLandHTTP.TheJSPWebapplicationsarecross-platform,TheycanrununderLinux,andotheroperatingsystems.Accordingtothedemandresearchofmicrocontainpicturegallerysystemandtheusers’stipulation,thispaperdesignsanddevelopsanonlinemanagementsystemtoprovidepreviewing,borrowingorpurchasingbooks.Inthedesignofthesystemframework,thevariousdevelopmenttechnologies(JSP,Servlet,AJAX,JSandJquery)aresyntheticallyapplied,thesystemusesJSPasviewlayer,andusesMySQLasdatabase,andalsousesAJAXtoachievedynamicpages.[KEYWORDS]PictureGallery;JSP;Servlet;AJAX;JS;JqueryPAGE39目錄引言 1第一章 相關(guān)技術(shù)綜述 21.1JSP介紹 21.1.1JSP的改進(jìn) 41.1.2JSP的優(yōu)勢(shì) 51.2AJAX介紹 61.2.1AJAX的優(yōu)點(diǎn) 81.3Servlet介紹 91.3.1Servlet主要方法 101.4JS介紹 121.5Jquery介紹 131.5.1Jquery的功能 14第二章 系統(tǒng)概要設(shè)計(jì) 162.1需求分析 162.1.1用戶需求分析 162.1.2功能需求分析 162.2開發(fā)及運(yùn)行環(huán)境 172.3系統(tǒng)功能規(guī)劃 172.4系統(tǒng)設(shè)計(jì) 182.4.1會(huì)員功能 182.4.2管理員功能 19第三章 系統(tǒng)詳細(xì)設(shè)計(jì) 213.1技術(shù)架構(gòu) 213.2源碼組織 213.3ER圖設(shè)計(jì) 223.4類圖設(shè)計(jì) 233.5數(shù)據(jù)庫(kù)設(shè)計(jì) 233.6結(jié)構(gòu)設(shè)計(jì) 253.6.1表現(xiàn)層設(shè)計(jì) 253.6.2數(shù)據(jù)層設(shè)計(jì) 253.7詳細(xì)設(shè)計(jì)說(shuō)明 263.7.1用戶預(yù)約借閱 263.7.2用戶訂購(gòu)繪本 263.7.3管理員繪本管理 273.7.4管理員預(yù)約借閱管理 273.7.5管理員借閱管理 27第四章 系統(tǒng)實(shí)現(xiàn) 284.1運(yùn)行環(huán)境 284.2系統(tǒng)實(shí)現(xiàn) 284.2.1系統(tǒng)主界面 284.2.2用戶搜索繪本 294.2.3用戶預(yù)覽繪本 294.2.4用戶預(yù)約借閱繪本 304.2.5用戶訂購(gòu)繪本 314.2.6管理員添加借閱 324.2.7管理員歸還繪本 334.2.8管理員添加繪本 334.2.9管理員編輯繪本 35總結(jié) 37致謝 38參考文獻(xiàn) 39集美大學(xué)本科生畢業(yè)設(shè)計(jì)(論文)微納繪本館引言繪本,顧名思義就是“畫出來(lái)的書”。早期被稱作為圖畫書(PictureBook),通俗的說(shuō)法是指有圖畫、主題簡(jiǎn)單、情節(jié)內(nèi)容簡(jiǎn)短的故事書。主要是針對(duì)幼兒、兒童所設(shè)定的出版品,多以適合幼兒、兒童閱讀的內(nèi)容為取向;但也有供成人閱讀的繪本。繪本作為一種綜合性藝術(shù)形式,它源自于作者的直覺,它憑借作者心靈的力量對(duì)事物進(jìn)行整體性的把握。繪本書籍一般都比較貴,如果純粹自購(gòu)的話,將是一筆不小的開支。而且,有些繪本沒有必要收藏。為解決上述的不便,“微納繪本館”提供在線預(yù)覽功能,同時(shí)提供繪本借閱,使用戶可以不用購(gòu)買就能夠欣賞繪本,同時(shí)也提供訂購(gòu)繪本的功能。

相關(guān)技術(shù)綜述微納繪本館管理系統(tǒng)主要采用JSP和Servlet開發(fā),其中JSP用于開發(fā)前端頁(yè)面,Servlet用于開發(fā)后臺(tái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,兩者相互配合,保證更好的開發(fā)效率、系統(tǒng)的穩(wěn)定性、可靠性。本系統(tǒng)使用JSP技術(shù)作為表現(xiàn)層技術(shù),負(fù)責(zé)收集用戶的請(qǐng)求數(shù)據(jù)并將其通過AJAX技術(shù)提交到Servlet,當(dāng)Servlet處理完用戶的請(qǐng)求后,通過AJAX返回?cái)?shù)據(jù),JSP頁(yè)面負(fù)責(zé)將處理結(jié)果呈現(xiàn)給用戶,實(shí)現(xiàn)異步刷新。本系統(tǒng)的JSP頁(yè)面還使用了JS、Jquery語(yǔ)言,用于對(duì)JSP頁(yè)面的元素進(jìn)行選取操作,然后與后臺(tái)數(shù)據(jù)進(jìn)行交互,對(duì)返回的數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)頁(yè)面的動(dòng)態(tài)化。本系統(tǒng)是一個(gè)綜合的解決方案,系統(tǒng)中用到的相關(guān)技術(shù)比較多,故在下面的相關(guān)技術(shù)介紹中,本文將主要介紹系統(tǒng)中使用到的技術(shù),并結(jié)合系統(tǒng)對(duì)此技術(shù)的使用情況作一些簡(jiǎn)要的介紹。1.1JSP介紹JSP是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)簽,就構(gòu)成了JSP網(wǎng)頁(yè)java程序片段可以操縱數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送E-mail等,實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,這樣大大降低了對(duì)客戶瀏覽器的要求,即使客戶瀏覽器端不支持Java,也可以訪問JSP網(wǎng)頁(yè)。JSP全名為JavaServerPages,其根本是一個(gè)簡(jiǎn)化的Servlet設(shè)計(jì),他實(shí)現(xiàn)了Html語(yǔ)法中的java擴(kuò)張(以<%,%>形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的。通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務(wù)器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java

Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο螅哂衅脚_(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。1.1.1JSP的改進(jìn)為了快速方便地進(jìn)行動(dòng)態(tài)網(wǎng)站的開發(fā),JSP在以下幾個(gè)方面做了改進(jìn),使其成為快速建立跨平臺(tái)的動(dòng)態(tài)網(wǎng)站的首選方案。1.將內(nèi)容的生成和顯示進(jìn)行分離用JSP技術(shù),Web頁(yè)面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面,并使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容(內(nèi)容是根據(jù)請(qǐng)求變化的,例如請(qǐng)求賬戶信息或者特定的一瓶酒的價(jià)格等)。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運(yùn)行。由于核心邏輯被封裝在標(biāo)識(shí)和JavaBeans中,所以Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和腳本,生成所請(qǐng)求的內(nèi)容(例如,通過訪問JavaBeans組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫(kù)或者包含文件),并且將結(jié)果以HTML(或者XML)頁(yè)面的形式發(fā)送回瀏覽器。這既有助于作者保護(hù)自己的代碼,又能保證任何基于HTML的Web瀏覽器的完全可用性。2.可重用組件絕大多數(shù)JSP頁(yè)面依賴于可重用的、跨平臺(tái)的組件(JavaBeans或者EnterpriseJavaBeans組件)來(lái)執(zhí)行應(yīng)用程序所要求的復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者和客戶團(tuán)體所使用。基于組件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。3.采用標(biāo)識(shí)Web頁(yè)面開發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。4.適應(yīng)平臺(tái)幾乎所有平臺(tái)都支持Java,JSP+JavaBeans幾乎可以在所有平臺(tái)下通行無(wú)阻。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBeans甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。5.數(shù)據(jù)庫(kù)連接Java中連接數(shù)據(jù)庫(kù)的技術(shù)是JDBC,Java程序通過JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。Sun公司還開發(fā)了JDBC-ODBCbridge,利用此技術(shù)Java程序可以訪問帶有ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù),大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都帶有ODBC驅(qū)動(dòng)程序,所以Java程序能訪問諸如Oracle、Sybase、MSSQLServer和MSAccess等數(shù)據(jù)庫(kù)。此外,通過開發(fā)標(biāo)識(shí)庫(kù),JSP技術(shù)可以進(jìn)一步擴(kuò)展。第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來(lái)進(jìn)行工作。JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且能擴(kuò)展到支持企業(yè)級(jí)的分布式應(yīng)用中。作為采用Java技術(shù)家族的一部分,以及Java2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java的,而且所有的JSP頁(yè)面都被編譯成為JavaServlets,所以JSP頁(yè)面具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫,各處運(yùn)行”的特點(diǎn)。1.1.2JSP的優(yōu)勢(shì)JSP優(yōu)勢(shì)如下:(1)一次編寫,到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺(tái)支持。基本上可以在所有平臺(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP的局限性JSP的優(yōu)勢(shì)是顯而易見的。(3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。(4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。(5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來(lái)支持,開發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁(yè)面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVABEANS組件來(lái)實(shí)現(xiàn)復(fù)雜商務(wù)功能。JSP的編譯原理如圖1-1所示。圖1-1JSP編譯原理示意圖1.2AJAX介紹AJAX由HTML、JavaScript技術(shù)、DHTML和DOM組成,這一杰出的方法可以將笨拙的Web界面轉(zhuǎn)化成交互性的AJAX應(yīng)用程序。在一般的Web應(yīng)用程序中,用戶填寫表單字段并單擊提交按鈕。然后整個(gè)表單發(fā)送到服務(wù)器,服務(wù)器將它轉(zhuǎn)發(fā)給處理表單的腳本(通常是PHP或java,也可能是CGI進(jìn)程或者類似的東西),腳本執(zhí)行完成后再發(fā)送回全新的頁(yè)面。該頁(yè)面可能是帶有已經(jīng)填充某些數(shù)據(jù)的新表單的HTML,也可能是確認(rèn)頁(yè)面,或者是具有根據(jù)原來(lái)表單中輸入數(shù)據(jù)選擇的某些選項(xiàng)的頁(yè)面。當(dāng)然,在服務(wù)器上的腳本或程序處理和返回新表單時(shí)用戶必須等待。屏幕變成一片空白,等到服務(wù)器返回?cái)?shù)據(jù)后再重新繪制。這就是交互性差的原因,用戶得不到立即反饋,因此感覺不同于桌面應(yīng)用程序。AJAX基本上就是把JavaScript技術(shù)和XMLHttpRequest對(duì)象放在Web表單和服務(wù)之間。當(dāng)用戶填寫表單時(shí),數(shù)據(jù)發(fā)送給一些JavaScript代碼而不是直接發(fā)送給服務(wù)器。相反,JavaScript代碼捕獲表單數(shù)據(jù)并向服務(wù)器發(fā)送請(qǐng)求。同時(shí)用戶屏幕上的表單也不會(huì)閃爍、消失或延遲。換句話說(shuō),JavaScript代碼不用等待服務(wù)的響應(yīng)。因此用戶可以繼續(xù)輸入數(shù)據(jù)、滾動(dòng)屏幕和使用應(yīng)用程序。然后,服務(wù)器將數(shù)據(jù)返回JavaScript代碼(仍然在Web表單),后者決定如何處理這些數(shù)據(jù)。它可以迅速更新表單數(shù)據(jù),讓人感覺應(yīng)用程序是立即完成的,表單沒有提交或刷新而用戶得到了新數(shù)據(jù)。許多重要的技術(shù)和AJAX開發(fā)模式可以從現(xiàn)有的知識(shí)中獲取。例如,在一個(gè)發(fā)送請(qǐng)求到服務(wù)端的應(yīng)用中,必須包含請(qǐng)求順序、優(yōu)先級(jí)、超時(shí)響應(yīng)、錯(cuò)誤處理及回調(diào),其中許多元素已經(jīng)在Web服務(wù)中包含了。同時(shí),隨著技術(shù)的成熟還會(huì)有許多地方需要改進(jìn),特別是UI部分的易用性。AJAX開發(fā)與傳統(tǒng)的C/S開發(fā)有很大的不同。這些不同引入了新的編程問題,最大的問題在于易用性。由于AJAX依賴瀏覽器的JavaScript和XML,瀏覽器的兼容性和支持的標(biāo)準(zhǔn)也變得和JavaScript的運(yùn)行時(shí)性能一樣重要了。這些問題中的大部分來(lái)源于瀏覽器、服務(wù)器和技術(shù)的組合,因此必須理解如何才能最好的使用這些技術(shù)。綜合各種變化的技術(shù)和強(qiáng)耦合的客戶服務(wù)端環(huán)境,AJAX提出了一種新的開發(fā)方式。AJAX開發(fā)人員必須理解傳統(tǒng)的MVC架構(gòu),這限制了應(yīng)用層次之間的邊界。同時(shí),開發(fā)人員還需要考慮C/S環(huán)境的外部和使用AJAX技術(shù)來(lái)重定型MVC邊界。最重要的是,AJAX開發(fā)人員必須禁止以頁(yè)面集合的方式來(lái)考慮Web應(yīng)用而需要將其認(rèn)為是單個(gè)頁(yè)面。一旦UI設(shè)計(jì)與服務(wù)架構(gòu)之間的范圍被嚴(yán)格區(qū)分開來(lái)后,開發(fā)人員就需要更新和變化的技術(shù)集合了。1.2.1AJAX的優(yōu)點(diǎn)傳統(tǒng)的web應(yīng)用允許用戶填寫表單(form),當(dāng)提交表單時(shí)就向web服務(wù)器發(fā)送一個(gè)請(qǐng)求。服務(wù)器接收并處理傳來(lái)的表單,然後返回一個(gè)新的網(wǎng)頁(yè)。這個(gè)做法浪費(fèi)了許多帶寬,因?yàn)樵谇搬醿蓚€(gè)頁(yè)面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請(qǐng)求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其它一些基于XML的webservice接口,并在客戶端采用JavaScript處理來(lái)自服務(wù)器的響應(yīng)。因此在服務(wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用。同時(shí)很多的處理工作可以在發(fā)出請(qǐng)求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也減少了。使用AJAX的最大優(yōu)點(diǎn),就是能在不更新整個(gè)頁(yè)面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動(dòng)作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變過的信息。AJAX不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執(zhí)行。就像DHTML應(yīng)用程序那樣,AJAX應(yīng)用程序必須在眾多不同的瀏覽器和平臺(tái)上經(jīng)過嚴(yán)格的測(cè)試。隨著AJAX的成熟,一些簡(jiǎn)化AJAX使用方法的程序庫(kù)也相繼問世。同樣,也出現(xiàn)了另一種輔助程序設(shè)計(jì)的技術(shù),為那些不支持JavaScript的用戶提供替代功能。JavaScript代碼甚至可以對(duì)收到的數(shù)據(jù)執(zhí)行某種計(jì)算,再發(fā)送另一個(gè)請(qǐng)求,完全不需要用戶干預(yù)!這就是XMLHttpRequest的強(qiáng)大之處。它可以根據(jù)需要自行與服務(wù)器進(jìn)行交互,用戶甚至可以完全不知道幕后發(fā)生的一切。結(jié)果就是類似于桌面應(yīng)用程序的動(dòng)態(tài)、快速響應(yīng)、高交互性的體驗(yàn),但是背后又擁有互聯(lián)網(wǎng)的全部強(qiáng)大力量。圖1-2展示了傳統(tǒng)的web請(qǐng)求與AJAX請(qǐng)求的差異。圖1-2傳統(tǒng)web請(qǐng)求響應(yīng)與AJAX請(qǐng)求響應(yīng)的比較1.3Servlet介紹Servlet是在服務(wù)器上運(yùn)行的小程序。這個(gè)詞是在Java

applet的環(huán)境中創(chuàng)造的,Javaapplet是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁(yè)一起發(fā)送的小程序,它通常用于在客戶端運(yùn)行,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等服務(wù)。服務(wù)器上需要一些程序,常常是根據(jù)用戶輸入訪問數(shù)據(jù)庫(kù)的程序。這些通常是使用公共網(wǎng)關(guān)接口(CGI(CommonGatewayInterface))應(yīng)用程序完成的。然而,在服務(wù)器上運(yùn)行Java,這種程序可使用Java編程語(yǔ)言實(shí)現(xiàn)。在通信量大的服務(wù)器上,JavaServlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無(wú)需創(chuàng)建單獨(dú)的進(jìn)程,這意味著服務(wù)器端處理請(qǐng)求的系統(tǒng)開銷將明顯降低。HTTPServlet使用一個(gè)HTML表單來(lái)發(fā)送和接收數(shù)據(jù)。要?jiǎng)?chuàng)建一個(gè)

HTTPServlet,請(qǐng)擴(kuò)展

HttpServlet

類,該類是用專門的方法來(lái)處理HTML

表單的GenericServlet的一個(gè)子類。HTML表單是由<FORM>和</FORM>標(biāo)記定義的。表單中典型地包含輸入字段(如文本輸入字段、復(fù)選框、單選按鈕和選擇列表)和用于提交數(shù)據(jù)的按鈕。當(dāng)提交信息時(shí),它們還指定服務(wù)器應(yīng)執(zhí)行哪一個(gè)Servlet(或其它的程序)。HttpServlet類包含init()、destroy()、service()等方法。其中init()和destroy()方法是繼承的。1.3.1Servlet主要方法(1)init()方法在Servlet的生命期中,僅執(zhí)行一次init()方法。它是在服務(wù)器裝入Servlet時(shí)執(zhí)行的??梢耘渲梅?wù)器,以在啟動(dòng)服務(wù)器或客戶機(jī)首次訪問Servlet時(shí)裝入Servlet。無(wú)論有多少客戶機(jī)訪問Servlet,都不會(huì)重復(fù)執(zhí)行init()。缺省的init()方法通常是符合要求的,但也可以用定制init()方法來(lái)覆蓋它,典型的是管理服務(wù)器端資源。例如,可能編寫一個(gè)定制init()來(lái)只用于一次裝入GIF圖像,改進(jìn)Servlet返回GIF圖像和含有多個(gè)客戶機(jī)請(qǐng)求的性能。另一個(gè)示例是初始化數(shù)據(jù)庫(kù)連接。缺省的init()方法設(shè)置了Servlet的初始化參數(shù),并用它的ServletConfig對(duì)象參數(shù)來(lái)啟動(dòng)配置,因此所有覆蓋init()方法的Servlet應(yīng)調(diào)用super.init()以確保仍然執(zhí)行這些任務(wù)。在調(diào)用service()方法之前,應(yīng)確保已完成了init()方法。(2)service()方法service()方法是Servlet的核心。每當(dāng)一個(gè)客戶請(qǐng)求一個(gè)HttpServlet對(duì)象,該對(duì)象的service()方法就要被調(diào)用,而且傳遞給這個(gè)方法一個(gè)"請(qǐng)求"(ServletRequest)對(duì)象和一個(gè)"響應(yīng)"(ServletResponse)對(duì)象作為參數(shù)。在HttpServlet中已存在service()方法。缺省的服務(wù)功能是調(diào)用與HTTP請(qǐng)求的方法相應(yīng)的do功能。例如,如果HTTP請(qǐng)求方法為GET,則缺省情況下就調(diào)用doGet()。Servlet應(yīng)該為Servlet支持的HTTP方法覆蓋do功能。因?yàn)镠ttpServlet.service()方法會(huì)檢查請(qǐng)求方法是否調(diào)用了適當(dāng)?shù)奶幚矸椒?,不必要覆蓋service()方法。只需覆蓋相應(yīng)的do方法就可以了。Servlet的響應(yīng)可以是下列幾種類型:一個(gè)輸出流,瀏覽器根據(jù)它的內(nèi)容類型(如text/HTML)進(jìn)行解釋。一個(gè)HTTP錯(cuò)誤響應(yīng),重定向到另一個(gè)URL、servlet、JSP。(3)doGet()方法當(dāng)一個(gè)客戶通過HTML

表單發(fā)出一個(gè)HTTPGET請(qǐng)求或直接請(qǐng)求一個(gè)URL時(shí),doGet()方法被調(diào)用。與GET請(qǐng)求相關(guān)的參數(shù)添加到URL的后面,并與這個(gè)請(qǐng)求一起發(fā)送。當(dāng)不會(huì)修改服務(wù)器端的數(shù)據(jù)時(shí),應(yīng)該使用doGet()方法。(4)doPost()方法當(dāng)一個(gè)客戶通過HTML表單發(fā)出一個(gè)HTTPPOST請(qǐng)求時(shí),doPost()方法被調(diào)用。與POST請(qǐng)求相關(guān)的參數(shù)作為一個(gè)單獨(dú)的HTTP請(qǐng)求從瀏覽器發(fā)送到服務(wù)器。當(dāng)需要修改服務(wù)器端的數(shù)據(jù)時(shí),應(yīng)該使用doPost()方法。(5)destroy()方法destroy()方法僅執(zhí)行一次,即在服務(wù)器停止且卸裝Servlet時(shí)執(zhí)行該方法。典型的,將Servlet作為服務(wù)器進(jìn)程的一部分來(lái)關(guān)閉。缺省的destroy()方法通常是符合要求的,但也可以覆蓋它,典型的是管理服務(wù)器端資源。例如,如果Servlet在運(yùn)行時(shí)會(huì)累計(jì)統(tǒng)計(jì)數(shù)據(jù),則可以編寫一個(gè)destroy()方法,該方法用于在未裝入Servlet時(shí)將統(tǒng)計(jì)數(shù)字保存在文件中。另一個(gè)示例是關(guān)閉數(shù)據(jù)庫(kù)連接。(6)GetServletConfig()方法GetServletConfig()方法返回一個(gè)ServletConfig對(duì)象,該對(duì)象用來(lái)返回初始化參數(shù)和ServletContext。ServletContext接口提供有關(guān)servlet的環(huán)境信息。(7)GetServletInfo()方法GetServletInfo()方法是一個(gè)可選的方法,它提供有關(guān)servlet的信息,如作者、版本、版權(quán)。當(dāng)服務(wù)器調(diào)用sevlet的Service()、doGet()和doPost()這三個(gè)方法時(shí),均需要"請(qǐng)求"和"響應(yīng)"對(duì)象作為參數(shù)。"請(qǐng)求"對(duì)象提供有關(guān)請(qǐng)求的信息,而"響應(yīng)"對(duì)象提供了一個(gè)將響應(yīng)信息返回給瀏覽器的一個(gè)通信途徑。當(dāng)服務(wù)器卸裝Servlet時(shí),將在所有service()方法調(diào)用完成后,或在指定的時(shí)間間隔過后調(diào)用destroy()方法。一個(gè)Servlet在運(yùn)行service()方法時(shí)可能會(huì)產(chǎn)生其它的線程,因此請(qǐng)確認(rèn)在調(diào)用destroy()方法時(shí),這些線程已終止或完成。Servlet的工作原理如圖1-3所示。圖1-3Servlet工作原理圖1.4JS介紹JS即JavaScript,是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語(yǔ)言。同時(shí)也是一種廣泛用于客戶端Web開發(fā)的腳本語(yǔ)言,常用來(lái)給HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)網(wǎng)頁(yè)添加動(dòng)態(tài)功能,比如響應(yīng)用戶的各種操作。它最初由網(wǎng)景公司(Netscape)的BrendanEich設(shè)計(jì),是一種動(dòng)態(tài)、弱類型、基于原型的語(yǔ)言,內(nèi)置支持類。JavaScript是Sun公司(已被oracle收購(gòu))的注冊(cè)商標(biāo)。Ecma國(guó)際以JavaScript為基礎(chǔ)制定了ECMAScript標(biāo)準(zhǔn)。JavaScript也可以用于其他場(chǎng)合,如服務(wù)器端編程。完整的JavaScript實(shí)現(xiàn)包含三個(gè)部分:ECMAScript,文檔對(duì)象模型,瀏覽器對(duì)象模型。JavaScript程序是由若干語(yǔ)句組成的,語(yǔ)句是編寫程序的指令。JavaScript提供了完整的基本編程語(yǔ)句,它們是:賦值語(yǔ)句、switch選擇語(yǔ)句、while循環(huán)語(yǔ)句、for循環(huán)語(yǔ)句、foreach循環(huán)語(yǔ)句、do…while循環(huán)語(yǔ)句、break循環(huán)中止語(yǔ)句、continue循環(huán)中斷語(yǔ)句、with語(yǔ)句、try…catch語(yǔ)句、if語(yǔ)句(if..else,if…elseif…)。函數(shù)是命名的語(yǔ)句段,這個(gè)語(yǔ)句段可以被當(dāng)作一個(gè)整體來(lái)引用和執(zhí)行。使用函數(shù)要注意以下幾點(diǎn):(1)函數(shù)由關(guān)鍵字function定義(也可由Function構(gòu)造函數(shù)構(gòu)造)。(2)使用function關(guān)鍵字定義的函數(shù)在一個(gè)作用域內(nèi)是可以在任意處調(diào)用的(包括定義函數(shù)的語(yǔ)句前);而用var關(guān)鍵字定義的必須定義后才能被調(diào)用。(3)函數(shù)名是調(diào)用函數(shù)時(shí)引用的名稱,區(qū)分大小寫,調(diào)用函數(shù)時(shí)不可寫錯(cuò)函數(shù)名。(4)參數(shù)表示傳遞給函數(shù)使用或操作的值,它可以是常量,也可以是變量,也可以是函數(shù),在函數(shù)內(nèi)部可以通過arguments對(duì)象(arguments對(duì)象是一個(gè)偽數(shù)組,屬性callee引用被調(diào)用的函數(shù))訪問所有參數(shù)。(5)return語(yǔ)句用于返回表達(dá)式的值。(6)yield語(yǔ)句扔出一個(gè)表達(dá)式,并且中斷函數(shù)執(zhí)行直到下一次調(diào)用next。JavaScript的一個(gè)重要功能就是面向?qū)ο蟮墓δ?,通過基于對(duì)象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開發(fā)。1.5Jquery介紹Jquery是繼prototype之后又一個(gè)優(yōu)秀的Javascript框架。它是輕量級(jí)的js庫(kù),它兼容CSS3,還兼容各種瀏覽器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+),Jquery2.0及后續(xù)版本將不再支持IE6/7/8瀏覽器。Jquery使用戶能更方便地處理HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)、events、實(shí)現(xiàn)動(dòng)畫效果,并且方便地為網(wǎng)站提供AJAX交互。Jquery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。Jquery能夠使用戶的html頁(yè)面保持代碼和html內(nèi)容分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需定義id即可。Jquery是一個(gè)兼容多瀏覽器的javascript框架,核心理念是writeless,domore(寫得更少,做得更多)。Jquery在2006年1月由美國(guó)人JohnResig在紐約的barcamp發(fā)布,吸引了來(lái)自世界各地的眾多JavaScript高手加入,由DaveMethvin率領(lǐng)團(tuán)隊(duì)進(jìn)行開發(fā)。如今,Jquery已經(jīng)成為最流行的javascript框架,在世界前10000個(gè)訪問最多的網(wǎng)站中,有超過55%在使用Jquery。Jquery是免費(fèi)、開源的,使用MIT許可協(xié)議。Jquery的語(yǔ)法設(shè)計(jì)可以使開發(fā)者更加便捷,例如操作文檔對(duì)象、選擇DOM元素、制作動(dòng)畫效果、事件處理、使用Ajax以及其他功能。除此以外,Jquery提供API讓開發(fā)者編寫插件。其模塊化的使用方式使開發(fā)者可以很輕松的開發(fā)出功能強(qiáng)大的靜態(tài)或動(dòng)態(tài)網(wǎng)頁(yè)。1.5.1Jquery的功能目前Jquery主要提供如下功能:(1)訪問頁(yè)面框架的局部。這是DOM模型所完成的主要工作之一,DOM獲取頁(yè)面中某個(gè)節(jié)點(diǎn)或者某一類節(jié)點(diǎn)有固定的方法,而Jquery則大大地簡(jiǎn)化了其操作的步驟。(2)修改頁(yè)面的表現(xiàn)(Presentation)。CSS的主要功能就是通過樣式風(fēng)格來(lái)修改頁(yè)面的表現(xiàn)。然而由于各個(gè)瀏覽器對(duì)CSS3標(biāo)準(zhǔn)的支持程度不同,使得很多CSS的特性沒能很好地體現(xiàn)。Jquery的出現(xiàn)很好地解決了這個(gè)問題,它通過封裝好的JavaScript代碼,使得各種瀏覽器都能很好地使用CSS3標(biāo)準(zhǔn),極大地豐富了CSS的運(yùn)用。(3)更改頁(yè)面的內(nèi)容。通過強(qiáng)大而方便的API修改文本的內(nèi)容、插入新的圖片、表單的選項(xiàng),甚至整個(gè)頁(yè)面的框架。(4)響應(yīng)事件。JavaScript有處理事件的相關(guān)方法,而引入Jquery之后,可以更加輕松地處理事件,而且開發(fā)人員不再需要考慮討厭的瀏覽器兼容性問題。(5)為頁(yè)面添加動(dòng)畫。通常在頁(yè)面中添加動(dòng)畫都需要開發(fā)大量的JavaScript代碼,而Jquery大大簡(jiǎn)化了這個(gè)過程。Jquery的庫(kù)提供了大量可自定義參數(shù)的動(dòng)畫效果。(6)與服務(wù)器異步交互。Ajax框架可以簡(jiǎn)化代碼的編寫,Jquery也提供了一整套Ajax相關(guān)的操作,大大方便了異步交互的開發(fā)和使用。(7)簡(jiǎn)化常用的JavaScript操作。Jquery還提供了很多附加的功能來(lái)簡(jiǎn)化常用的JavaScript操作,例如數(shù)組的操作、迭代運(yùn)算等。

系統(tǒng)概要設(shè)計(jì)2.1需求分析2.1.1用戶需求分析通過對(duì)繪本館現(xiàn)有模式的研究,發(fā)現(xiàn)繪本書籍一般都比較貴,如果純粹自購(gòu)的話,將是一筆不小的開支。而且,有些繪本沒有必要收藏。為解決上述的不便,設(shè)計(jì)開發(fā)出“微納繪本館”,結(jié)合線上線下的模式,提供在線預(yù)覽功能,同時(shí)提供繪本借閱,使用戶可以不用購(gòu)買就能夠欣賞繪本,同時(shí)也提供訂購(gòu)繪本的功能。2.1.2功能需求分析本系統(tǒng)功能模塊主要包括會(huì)員功能模塊,管理員功能模塊。本系統(tǒng)需要滿足以下幾點(diǎn)要求:會(huì)員功能模塊需要滿足用戶使用繪本館系統(tǒng)的一系列操作。搜索繪本查看和修改個(gè)人信息添加和刪除借書架查看借閱繪本信息預(yù)約借閱和取消預(yù)約訂購(gòu)繪本和刪除訂單添加和刪除收藏(2)管理員功能模塊需要滿足管理員使用繪本館系統(tǒng)的一系列操作。用戶管理繪本管理借閱管理預(yù)約借閱管理訂單管理收藏管理2.2開發(fā)及運(yùn)行環(huán)境根據(jù)需求調(diào)研的反饋,確定如下的系統(tǒng)環(huán)境:網(wǎng)絡(luò)環(huán)境:互聯(lián)網(wǎng);運(yùn)行環(huán)境:操作系統(tǒng):linux、windowsXP、windows7服務(wù)器:tomcat6.0數(shù)據(jù)庫(kù):MySQL5.0開發(fā)環(huán)境:操作系統(tǒng):windows7服務(wù)器:tomcat6.0數(shù)據(jù)庫(kù):MySQL5.0開發(fā)工具:myeclipse10.02.3系統(tǒng)功能規(guī)劃根據(jù)需求調(diào)研,將系統(tǒng)功能劃分為如表2-1的各個(gè)模塊,各個(gè)模塊又各自劃分子模塊,由上往下,一個(gè)模塊一個(gè)模塊地開發(fā),保證開發(fā)順序清晰,以方便在項(xiàng)目實(shí)現(xiàn)設(shè)計(jì)及編碼的任務(wù),才能有效地管理項(xiàng)目的開發(fā)進(jìn)度。表2-1系統(tǒng)功能劃分清單模塊編號(hào)模塊名稱子模塊編號(hào)子模塊名稱備注100會(huì)員功能00搜索繪本用戶根據(jù)條件和關(guān)鍵字搜索繪本01個(gè)人信息用戶個(gè)人信息的查看、修改02我的借書架刪除借書架、預(yù)約借閱、03我的購(gòu)物車刪除購(gòu)物車、訂購(gòu)繪本04我的借閱用戶借閱信息的查看05我的預(yù)約借閱用戶預(yù)約借閱信息的查看、取消預(yù)約06我的訂單用戶訂單信息的查看、刪除、支付訂單07我的收藏用戶收藏的查看、加入借書架、購(gòu)物車200管理員功能00用戶管理查看用戶信息01繪本管理對(duì)繪本信息的增、刪、改、查02借閱管理查看用戶借閱信息、歸還繪本03預(yù)約借閱管理取消預(yù)約、確認(rèn)借閱、設(shè)置租借款04訂單管理查看、刪除用戶訂單信息、訂單發(fā)貨05收藏管理查看、刪除用戶收藏信息2.4系統(tǒng)設(shè)計(jì)2.4.1會(huì)員功能圖2-1會(huì)員功能模塊用例圖如圖2-1是會(huì)員功能模塊用例圖,功能包括:1.搜索繪本:用戶根據(jù)條件和關(guān)鍵字搜索繪本。2.查看和修改個(gè)人信息:用戶可查看和修改個(gè)人信息。3.添加和刪除借書架:用戶可添加繪本到借書架和刪除借書架里的繪本。4.查看借閱繪本信息:用戶可查看自己借閱的繪本信息。5.預(yù)約借閱和取消預(yù)約:用戶可預(yù)約借閱繪本和取消預(yù)約。6.訂購(gòu)繪本和刪除訂單:用戶可訂購(gòu)繪本和刪除訂單。7.添加和刪除收藏:用戶可添加和刪除收藏2.4.1管理員功能圖2-2管理功能模塊用例圖如圖2-2是管理員功能模塊用例圖,功能包括:1.用戶管理:查看用戶信息。2.繪本管理:對(duì)繪本信息的增、刪、改、查。3.借閱管理:查看用戶借閱信息、歸還繪本。4.預(yù)約借閱管理:取消預(yù)約、確認(rèn)借閱、設(shè)置租借款。5.訂單管理:查看、刪除用戶訂單信息、訂單發(fā)貨。6.收藏管理:查看、刪除用戶收藏信息。系統(tǒng)詳細(xì)設(shè)計(jì)3.1技術(shù)架構(gòu)該系統(tǒng)采用JSP+Servlet的兩層結(jié)構(gòu),分為表現(xiàn)層和數(shù)據(jù)服務(wù)層。兩層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問等工作放到數(shù)據(jù)服務(wù)層處理,客戶端不直接與數(shù)據(jù)庫(kù)交互,而是通過Servlet與數(shù)據(jù)庫(kù)交互。表現(xiàn)層主要使用JSP的表現(xiàn)層標(biāo)簽。使用表現(xiàn)層標(biāo)簽簡(jiǎn)化表現(xiàn)層邏輯,同時(shí),使用JS和Jquery和操作頁(yè)面元素,實(shí)現(xiàn)頁(yè)面動(dòng)態(tài)化,使用AJAX和后臺(tái)數(shù)據(jù)交互,提高用戶體驗(yàn),實(shí)現(xiàn)異步刷新。系統(tǒng)技術(shù)架構(gòu)圖如圖3-1所示:圖3-1系統(tǒng)技術(shù)架構(gòu)圖3.2源碼組織項(xiàng)目的源代碼結(jié)構(gòu)如圖3-2所示:PictureBook \src --系統(tǒng)的源代碼 \com --系統(tǒng)源碼的包\WebAppLibraries--MySQL驅(qū)動(dòng)包 \WebRoot --表現(xiàn)層的相關(guān)資源存放目錄 \WEB-INF --存放web配置 \images --表現(xiàn)層圖片存放目錄 \script --表現(xiàn)層js文件存放目錄 \style --web的樣式表存放目錄 \upload --表現(xiàn)層圖片上傳存放目錄圖3-2項(xiàng)目的源代碼結(jié)構(gòu)圖3.3ER圖設(shè)計(jì)系統(tǒng)的ER圖設(shè)計(jì)如圖3-3所示:圖3-3系統(tǒng)ER圖設(shè)計(jì)3.4類圖設(shè)計(jì)圖3-4系統(tǒng)類圖設(shè)計(jì)如圖3-4是系統(tǒng)的設(shè)計(jì)類圖。其中User是用戶信息類;PictureBook是繪本信息類;Borrow是用戶借閱繪本類;Preview是用戶預(yù)約借閱類;Order是用戶訂單類;Collect是用戶收藏類;Bookshelf是用戶借書架;ShoppingCart是用戶購(gòu)物車類。3.5數(shù)據(jù)庫(kù)設(shè)計(jì)圖3-5數(shù)據(jù)庫(kù)表結(jié)構(gòu)示意圖系統(tǒng)的數(shù)據(jù)庫(kù)的表結(jié)構(gòu)示意圖如圖3-5所示。其中User是用戶信息表,用于存儲(chǔ)用戶相關(guān)信息;PictureBook是繪本表,用于存儲(chǔ)繪本相關(guān)信息;Image是圖片表,用于存儲(chǔ)繪本圖片相關(guān)信息;Kind是繪本主題表,用于存儲(chǔ)繪本主題類型;Publish是出版社表,用于存儲(chǔ)出版社信息;Bookshelf是借書架表,用于存儲(chǔ)用戶借書架上繪本的相關(guān)信息;ShoppingCart是購(gòu)物車表,用于存儲(chǔ)用戶購(gòu)物車上繪本的相關(guān)信息;Borrow是用戶借閱表,用于存儲(chǔ)用戶借閱繪本的相關(guān)信息;Preview是用戶預(yù)約借閱表,用于存儲(chǔ)用戶預(yù)約借閱繪本的相關(guān)信息;UserOrder是用戶訂單表,用于存儲(chǔ)用戶訂單的相關(guān)信息;OrderDetail是用戶訂單詳細(xì)表,用于存儲(chǔ)訂單的繪本的詳細(xì)信息;Collect是用戶收藏表,用于存儲(chǔ)用戶收藏繪本的相關(guān)信息。3.6結(jié)構(gòu)設(shè)計(jì)3.6.1表現(xiàn)層設(shè)計(jì)在表現(xiàn)層的設(shè)計(jì)上,采用了JSP的標(biāo)簽,JSP的標(biāo)簽相當(dāng)于Html的標(biāo)簽,JSP頁(yè)面在Html的頁(yè)面里嵌入了Java語(yǔ)言,提取頁(yè)面元素,然后向后臺(tái)傳送數(shù)據(jù),后臺(tái)獲得數(shù)據(jù)后對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,然后再把數(shù)據(jù)返回前臺(tái)JSP頁(yè)面,利用這樣的模式完成用戶的一系列操作。在表現(xiàn)層里使用了JS和Jquery這兩個(gè)語(yǔ)言選取和操作頁(yè)面元素,使頁(yè)面能夠動(dòng)態(tài)化,然后再通過AJAX將獲取的數(shù)據(jù)傳到后臺(tái),后臺(tái)返回?cái)?shù)據(jù)給AJAX,再用這數(shù)據(jù)對(duì)頁(yè)面進(jìn)行操作,實(shí)現(xiàn)異步刷新,提高用戶的體驗(yàn)。AJAX是一種異步傳輸技術(shù),在構(gòu)建表現(xiàn)層的時(shí)候非常方便實(shí)用,能在不刷新網(wǎng)頁(yè)的情況下動(dòng)態(tài)改變局部頁(yè)面,以滿足用戶的需求。表現(xiàn)層綜合運(yùn)用這幾種技術(shù),能夠?qū)崿F(xiàn)頁(yè)面動(dòng)態(tài)化和異步刷新,提高了網(wǎng)站的實(shí)用性。3.6.2數(shù)據(jù)層設(shè)計(jì)在數(shù)據(jù)層的設(shè)計(jì)上面,本系統(tǒng)采用了Servlet獲取前臺(tái)AJAX傳來(lái)的請(qǐng)求,然后將獲取的數(shù)據(jù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增、刪、查、改,最后再通過response.getWriter().write()的方法向AJAX返回?cái)?shù)據(jù),以此來(lái)實(shí)現(xiàn)前臺(tái)和后臺(tái)數(shù)據(jù)的交互。創(chuàng)建一個(gè)Servlet類,具體流程如下:在com包下創(chuàng)建其實(shí)現(xiàn)類,如RegisterServlet;配置相關(guān)Servlet信息;Servlet的相關(guān)配置信息可以在“/WebRoot/WEB-INF/web.xml”這個(gè)文件中找到,部分具體信息如下:<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="3.0" xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name> <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><servlet><servlet-name>RegisterServlet</servlet-name><servlet-class>com.RegisterServlet</servlet-class></servlet><servlet-mapping><servlet-name>RegisterServlet</servlet-name><url-pattern>/register.do</url-pattern></servlet-mapping><servlet><servlet-name>LoginServlet</servlet-name><servlet-class>com.LoginServlet</servlet-class></servlet><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/login.do</url-pattern></servlet-mapping> 3.7詳細(xì)設(shè)計(jì)說(shuō)明3.7.1用戶預(yù)約借閱用戶要想借閱繪本首先就得在繪本館系統(tǒng)上提交預(yù)約申請(qǐng),當(dāng)用戶成功填寫預(yù)約借閱信息,提交預(yù)約申請(qǐng)后,會(huì)生成相應(yīng)的預(yù)約借閱信息,然后等待用戶前去繪本館借閱,只有管理員確認(rèn)借閱了才算是借閱成功,用戶預(yù)約借閱功能由Preview類的addPreview()方法實(shí)現(xiàn)。3.7.2用戶訂購(gòu)繪本用戶要想訂購(gòu)繪本首先就得在繪本館系統(tǒng)上提交訂購(gòu)繪本申請(qǐng),用戶可自用選擇要訂購(gòu)的繪本,然后選擇加入購(gòu)物車,填好訂購(gòu)繪本信息以及配送信息,然后提交訂單,當(dāng)用戶提交成功后會(huì)生成一個(gè)訂單,然后用戶可以選擇支付,當(dāng)用戶支付成功后由管理員選擇發(fā)貨,由此完成訂購(gòu)繪本的流程。用戶訂購(gòu)繪本的功能由Order類的addOrder()方法實(shí)現(xiàn)。3.7.3管理員繪本管理管理員可以對(duì)繪本進(jìn)行管理,可以實(shí)現(xiàn)繪本的增、刪、查、改,及時(shí)上傳新繪本,和更改相應(yīng)的繪本信息,實(shí)現(xiàn)對(duì)繪本的管理。當(dāng)管理員上傳新繪本或更新繪本信息時(shí),用戶都能及時(shí)的查看到,實(shí)現(xiàn)系統(tǒng)實(shí)時(shí)更新。管理員繪本管理功能由PictureBook類的addPictureBook()和updatePictureBook()和deletePictureBook()方法實(shí)現(xiàn)。3.7.4管理員預(yù)約借閱管理管理員可以對(duì)用戶的預(yù)約借閱進(jìn)行管理,當(dāng)用戶提交預(yù)約申請(qǐng)時(shí),管理員可以查看到用戶預(yù)約信息,如果用戶到截止借閱時(shí)間還未前來(lái)借閱,就可以取消其預(yù)約,當(dāng)用戶在借閱期內(nèi)前來(lái)借閱,可以確認(rèn)其信息,然后確認(rèn)添加借閱,使用戶真正借閱到繪本。管理員借閱管理功能由Preview類的addPreview()和deletePreview方法實(shí)現(xiàn)。3.7.5管理員借閱管理管理員可以對(duì)用戶的借閱進(jìn)行管理,管理員可以查看用戶的借閱信息,以了解用戶的借閱需求,當(dāng)用戶看完繪本前來(lái)歸還的時(shí)候,可以使用歸還繪本功能,使繪本真正歸還到繪本館,然后會(huì)根據(jù)用戶借閱的天數(shù)計(jì)算應(yīng)付的租借款,實(shí)現(xiàn)自動(dòng)計(jì)算化。管理員借閱管理功能由Borrow類的addBorrow()和deleteBorrow()方法實(shí)現(xiàn)。

系統(tǒng)實(shí)現(xiàn)4.1運(yùn)行環(huán)境系統(tǒng):Windows7硬盤:320GBCPU:Corei5-450M內(nèi)存:4GB內(nèi)存4.2系統(tǒng)實(shí)現(xiàn)4.2.1系統(tǒng)主界面圖4-1系統(tǒng)主界面如圖4-1,運(yùn)行系統(tǒng),顯示系統(tǒng)的主界面4.2.2用戶搜索繪本圖4-2用戶搜索繪本如圖4-2,用戶搜索繪本關(guān)鍵字,顯示搜索繪本結(jié)果。4.2.3用戶預(yù)覽繪本圖4-3用戶預(yù)覽繪本如圖4-3,用戶可點(diǎn)擊繪本,在線預(yù)約繪本部分內(nèi)容。4.2.4用戶預(yù)約借閱繪本圖4-4用戶預(yù)約借閱繪本如圖4-4,用戶可添加繪本到我的借書架,然后輸入預(yù)約借閱數(shù)量和預(yù)約借閱日期,進(jìn)行預(yù)約借閱繪本。圖4-5用戶查看預(yù)約借閱信息如圖4-5,當(dāng)用戶成功預(yù)約借閱繪本時(shí),可到我的預(yù)約借閱查看預(yù)約借閱信息。4.2.5用戶訂購(gòu)繪本圖4-6用戶填寫購(gòu)物車信息如圖4-6,用戶可添加繪本到我的購(gòu)物車,然后輸入訂購(gòu)數(shù)量數(shù)量和批量選擇要購(gòu)買的繪本,點(diǎn)擊去結(jié)算進(jìn)行訂購(gòu)繪本。圖4-7用戶填寫配送信息如圖4-7,當(dāng)用戶點(diǎn)擊去結(jié)算后,頁(yè)面將自動(dòng)跳轉(zhuǎn)到配送信息頁(yè)面,用戶需正確填寫配送信息,才能成功提交訂單。圖4-8用戶查看訂單信息如圖4-8,當(dāng)用戶點(diǎn)擊確認(rèn)下單時(shí),成功生成訂單,在我的訂單可查看訂單詳細(xì)信息。4.2.6管理員添加借閱圖4-9管理員添加借閱如圖4-9,當(dāng)用戶預(yù)約成功,前來(lái)繪本館借閱時(shí),管理員可點(diǎn)擊確認(rèn)借閱,則用戶借閱繪本成功。4.2.7管理員歸還繪本圖4-10管理員歸還繪本如圖4-10,當(dāng)用戶歸還會(huì)本時(shí),管理員可點(diǎn)擊歸還,則用戶歸還繪本成功。4.2.8管理員添加繪本圖4-11管理員查看繪本管理信息如圖4-11,管理員可在繪本管理查看繪本管理信息,點(diǎn)擊添加繪本進(jìn)行添加繪本操作。圖4-12管理員添加繪本信息如圖4-12,管理員可填寫相應(yīng)的繪本信息,點(diǎn)擊確認(rèn)添加進(jìn)行添加繪本。圖4-13管理員成功添加繪本如圖4-13,管理員已成功添加新繪本,并在繪本管理里顯示。4.2.9管理員編輯繪本圖4-14管理員編輯繪本信息如圖4-14,管理員可在繪本管理點(diǎn)擊編輯,然后跳到修改繪本頁(yè)面,修改相應(yīng)繪本信息。圖4-15管理員成功編輯繪本如圖4-15,管理員編輯修改相應(yīng)的繪本信息已實(shí)時(shí)生效,成功編輯繪本,可在繪本管理查看已更新的繪本。

總結(jié)在剛開始做本系統(tǒng)的總體設(shè)計(jì)時(shí),對(duì)微納繪本館這個(gè)模式還不是很熟悉,需求調(diào)研了解得不夠多,但后期通過查找資料和導(dǎo)師的溝通交流,漸漸完善了系統(tǒng)。在做系統(tǒng)開發(fā)的時(shí)候也遇到了很多問題,前臺(tái)頁(yè)面的操作,數(shù)據(jù)庫(kù)的操作以及前臺(tái)和后臺(tái)數(shù)據(jù)的交互都是比較容易出錯(cuò)的,但只要熟悉了這個(gè)開發(fā)模式,后面的開發(fā)也就變得容易了。系統(tǒng)總是不斷完善的,只有不斷地去了解需求,多站在用戶體驗(yàn)的角度去設(shè)計(jì)系統(tǒng),才能做出一個(gè)更好的系統(tǒng)。通過本次設(shè)計(jì),我的專業(yè)技術(shù)又得到了進(jìn)一步提升,考慮問題也變得更加全面,遇到問題都能自己去查找資料并解決,培養(yǎng)了自己獨(dú)立分析和解決問題的能力,在系統(tǒng)設(shè)計(jì)能力方面也有了一定的提升,這是一次意義非凡的設(shè)計(jì),讓我各方面都獲得了成長(zhǎng),我將繼續(xù)努力,爭(zhēng)取更大的進(jìn)步。

致謝在此謹(jǐn)向所有曾經(jīng)給予我?guī)椭闹笇?dǎo)老師、同學(xué)和朋友們致以衷心的感謝!因?yàn)橛兴麄儯业漠厴I(yè)設(shè)計(jì)才得以順利完成。本文在選題、撰寫過程和系統(tǒng)的設(shè)計(jì)上得到了李旺導(dǎo)師的細(xì)心幫助與指導(dǎo),特此感謝。李旺導(dǎo)師對(duì)我的指導(dǎo)讓我更加了解這個(gè)系統(tǒng)的模式,他細(xì)心并耐心地指出了我系統(tǒng)設(shè)計(jì)和論文中的問題,并教導(dǎo)我如何去做,使我不斷地完善系統(tǒng)和論文,最后順利完成了畢業(yè)設(shè)計(jì),非常感謝他的悉心教導(dǎo)。

參考文獻(xiàn)[1]張躍平、耿祥義編著.《JSP程序設(shè)計(jì)》.清華大學(xué)出版社.[2]劉俊亮、王清華編著.《JSPWeb開發(fā)學(xué)習(xí)實(shí)錄》.清華大學(xué)出版社.[3]王林瑋、沙明峰編著.《精通JSP開發(fā)應(yīng)用》.清華大學(xué)出版社.[4]顏志軍編著.《JSP與Servlet程序設(shè)計(jì)實(shí)踐教程》.清華大學(xué)出版社.[5]林信良編著.《JSP&Servlet學(xué)習(xí)筆記》.清華大學(xué)出版社.[6]袁江編著.《jQuery開發(fā)從入門到精通》.清華大學(xué)出版社.[7]周愛民編著.《JavaScript語(yǔ)言精髓與編程實(shí)踐》.電子工業(yè)出版社.[8]曾順編著.《精通JavaScript+jQuery》.人民郵電出版社.[9]李剛編著.《瘋狂Ajax講義》.電子工業(yè)出版社.[10]陳華編著.《Ajax從入門到精通》.清華大學(xué)出版社.基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開發(fā)HYPERLINK"/detail.htm?23

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論