![基于JSP技術(shù)的網(wǎng)上書(shū)店系統(tǒng)的分析與設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view/27ec3b6dbf062d56f25025091f09c961/27ec3b6dbf062d56f25025091f09c9611.gif)
![基于JSP技術(shù)的網(wǎng)上書(shū)店系統(tǒng)的分析與設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view/27ec3b6dbf062d56f25025091f09c961/27ec3b6dbf062d56f25025091f09c9612.gif)
![基于JSP技術(shù)的網(wǎng)上書(shū)店系統(tǒng)的分析與設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view/27ec3b6dbf062d56f25025091f09c961/27ec3b6dbf062d56f25025091f09c9613.gif)
![基于JSP技術(shù)的網(wǎng)上書(shū)店系統(tǒng)的分析與設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view/27ec3b6dbf062d56f25025091f09c961/27ec3b6dbf062d56f25025091f09c9614.gif)
![基于JSP技術(shù)的網(wǎng)上書(shū)店系統(tǒng)的分析與設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view/27ec3b6dbf062d56f25025091f09c961/27ec3b6dbf062d56f25025091f09c9615.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEII基于JSP技術(shù)的網(wǎng)上書(shū)店系統(tǒng)的分析與設(shè)計(jì)摘要:互聯(lián)網(wǎng)絡(luò)技術(shù)在全球的廣泛使用,標(biāo)志著人類社會(huì)開(kāi)始進(jìn)入了“網(wǎng)絡(luò)經(jīng)濟(jì)”時(shí)代?!熬W(wǎng)絡(luò)經(jīng)濟(jì)”時(shí)代一個(gè)最顯著的特征就是信息技術(shù)在傳統(tǒng)商業(yè)領(lǐng)域的應(yīng)用,即電子商務(wù)。網(wǎng)上書(shū)店作為電子商務(wù)的一種應(yīng)用形式,具有廣闊的發(fā)展前景。因此研究如何構(gòu)建高效可靠的網(wǎng)上書(shū)店系統(tǒng)具有實(shí)際意義。本文首先介紹了JSP和Java等相關(guān)技術(shù),針對(duì)網(wǎng)上書(shū)店的特點(diǎn)和系統(tǒng)的功能要求,對(duì)網(wǎng)站做出整體的規(guī)化。與其它電子商務(wù)網(wǎng)站類似,我所設(shè)計(jì)的網(wǎng)上書(shū)店系統(tǒng)由前臺(tái)系統(tǒng)和后臺(tái)管理系統(tǒng)組成,前臺(tái)系統(tǒng)是面向用戶的網(wǎng)頁(yè)界面,它是用戶直接訪問(wèn)和進(jìn)行購(gòu)買活動(dòng)的地方。用戶可以在網(wǎng)上進(jìn)行注冊(cè)、登錄、書(shū)籍查詢、瀏覽、圖書(shū)訂購(gòu)、查看訂單信息等操作。后前管理系統(tǒng)是網(wǎng)站所有者利用計(jì)算機(jī)對(duì)電子商務(wù)網(wǎng)站各種功能進(jìn)行管理、控制的系統(tǒng)。由于Web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器多數(shù)情況下不在“本地”,所以后臺(tái)管理通常執(zhí)行的是遠(yuǎn)程控制管理。該網(wǎng)上書(shū)店后臺(tái)管理的功能主要實(shí)現(xiàn)圖書(shū)、用戶、訂單的管理。本系統(tǒng)用戶界面友好,模塊清晰,操作簡(jiǎn)單,使用性強(qiáng),性能穩(wěn)定,易于推廣、維護(hù)和升級(jí),具有廣泛的應(yīng)用前景。關(guān)鍵字:電子商務(wù),網(wǎng)上書(shū)店,MVC設(shè)計(jì)模式,JavaBeanTheanalysisanddesignoftheonlinebookstoresystembasedonJSPtechnologyAbstract:ThewidelyapplyingofInternettechnologyintheworldmarkedthathumansocietyhassteppedintotheInterneteconomyera.ThemostprominentfeatureoftheInterneteconomyistheapplicationofITintraditionalcommercefield,theso-calledE-commerce.Theon-linebookshopasakindofapplicationfortheE-commercehasagoodfuture.Hence,theresearchonhowtoconstructahighefficientandreliableonlinebookshopsystemisofquitepracticalmeanings.ThispaperhasintroducedtherelevanttechnologieslikeJSPandJAVAatfirst.Inviewofthecharacteristicsinternetbookstoreanditsfunctionrequirementofsystem,acompleteplanofthewebsitehasbeenmade.Idesigntheinternetbookstorecomprisedoftwoparts,frontgroundsystemandbackgroundmanagementsystem,justlikeanyotherE-businesswebsites.Thefrontgroundsystemfacestheusersdirectlyandisaplaceforusers’visitsandpurchasing.Userscanregister,signon,researchbooks,browse,orderandcheckorders,etc.backgroundmanagementsystemisfortheownerofthewebsitetomanageandcontrolitskindsoffunctions.BecausetheWebserveranddatabaseserverarenotatlocalmostofthetime,thebackgroundmanagementsystemusuallyplaysitsroleatfardistance,themainfunctionofitistorealizethemanagementofbooks,usersandorders.Thissystemownsfriendlyboundary,clearmould,easyoperation,convenienceforhandling,strongpracticability,stableperformance,andiseasytopromote,maintainandupdate.Besides,ithasextensiveappliedprospects.Keywords:ElectronicCommerce,on-linebookshop,Mode/View/Controllerdesignpattern,JavaBean目錄摘要 IAbstract II1緒論 11.1研究背景及意義 11.2國(guó)內(nèi)外的發(fā)展情況 11.3本論文的主要內(nèi)容 22網(wǎng)上書(shū)店系統(tǒng)的開(kāi)發(fā)技術(shù)和模式 32.1Java技術(shù)介紹 32.2JavaServlet 32.4JSP開(kāi)發(fā)的模式 52.5MVC 63網(wǎng)上書(shū)店系統(tǒng)的系統(tǒng)分析 83.1系統(tǒng)需求分析 83.2系統(tǒng)的組織結(jié)構(gòu)分析 83.3系統(tǒng)工作流程分析 93.3.1前臺(tái)流程 93.3.2后臺(tái)管理流程 93.3.3完整的購(gòu)書(shū)架構(gòu) 103.4系統(tǒng)的數(shù)據(jù)流程分析 104網(wǎng)上書(shū)店系統(tǒng)的運(yùn)行環(huán)境及數(shù)據(jù)庫(kù)設(shè)計(jì) 124.1JSP的運(yùn)行環(huán)境 124.1.1JDK安裝和配置 124.1.2Tomcat的安裝和測(cè)試 124.2數(shù)據(jù)庫(kù)設(shè)計(jì) 134.2.1概念結(jié)構(gòu)設(shè)計(jì) 134.2.2邏輯結(jié)構(gòu)設(shè)計(jì) 145網(wǎng)上書(shū)店系統(tǒng)的界面設(shè)計(jì)與實(shí)現(xiàn) 175.1系統(tǒng)設(shè)計(jì)特點(diǎn) 175.1.1界面設(shè)計(jì) 175.1.2三層結(jié)構(gòu) 175.1.3面向?qū)ο蟪绦蛟O(shè)計(jì) 175.1.4人性化設(shè)計(jì) 175.2類的設(shè)計(jì) 175.2.1操作數(shù)據(jù)庫(kù)類(DBClass) 185.2.2檢測(cè)字符串類(StrClass) 195.3前臺(tái)用戶頁(yè)面設(shè)計(jì) 215.3.1主頁(yè)面index.jsp的設(shè)計(jì) 215.3.2用戶注冊(cè)模塊(userRegister.jsp) 225.3.3用戶登錄模塊(userLogin.jsp) 235.3.4圖書(shū)評(píng)論模塊(bookComment.jsp) 235.3.5用戶購(gòu)書(shū)模塊(addCart.jsp) 245.4后臺(tái)管理模塊設(shè)計(jì) 255.4.1管理員登錄模塊(adminLogin.jsp) 255.4.2訂單管理模塊 255.4.3用戶管理模塊(customerManage.jsp) 265.4.4圖書(shū)管理模塊 266結(jié)論 28致謝 29參考文獻(xiàn) 30附錄 31附錄1:英文原文 31附錄2:中文譯文 35華北水利水電學(xué)院畢業(yè)設(shè)計(jì)PAGE401緒論1.1研究背景及意義隨著現(xiàn)代信息技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)技術(shù)在現(xiàn)代社會(huì)的商業(yè)中的應(yīng)用日益廣泛和深入,在網(wǎng)絡(luò)技術(shù)逐漸滲入社會(huì)生活各個(gè)層面的今天,傳統(tǒng)的面對(duì)面的交易方式也面臨著變革,而通過(guò)網(wǎng)絡(luò)進(jìn)行書(shū)籍交易則是一個(gè)很重要的方向?;赪eb技術(shù)的網(wǎng)絡(luò)交易系統(tǒng)可以借助于遍布全球的Internet進(jìn)行,大大拓展了交易的靈活性。因此,通過(guò)網(wǎng)絡(luò)進(jìn)行交易將是以后進(jìn)行書(shū)籍交易一個(gè)重要的發(fā)展趨勢(shì)。網(wǎng)上書(shū)店是電子商務(wù)的一種具體形式,它主要是企業(yè)通過(guò)在互聯(lián)網(wǎng)上開(kāi)設(shè)網(wǎng)上書(shū)店,消費(fèi)者通過(guò)網(wǎng)絡(luò)瀏覽圖書(shū)信息,并可以在網(wǎng)上下訂單,采用多種方式支付的一種經(jīng)營(yíng)模式。目前國(guó)內(nèi)的這種商務(wù)網(wǎng)站大多是用ASP來(lái)編寫(xiě),但ASP有它的局限性,它是解釋運(yùn)行的,在多個(gè)客戶訪問(wèn)的情況下會(huì)變得非常慢,而且網(wǎng)站服務(wù)器的負(fù)荷也很重,且只能運(yùn)行在微軟的操作系統(tǒng)和服務(wù)器上。JSP能夠適應(yīng)市場(chǎng)上85%的服務(wù)器產(chǎn)品,其安全機(jī)制、性能和速度均好于ASP。JSP不但能夠?qū)崿F(xiàn)跨平臺(tái)和兼容各種Web服務(wù)器產(chǎn)品,而且還能將強(qiáng)大的服務(wù)器端Java技術(shù)有機(jī)的融合到網(wǎng)頁(yè)中去,在JSP程序中采用的JavaBean技術(shù)封裝業(yè)務(wù)邏輯(功能實(shí)現(xiàn)部分),可以實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺(tái)顯示的分離,使系統(tǒng)更加健壯和靈活。本系統(tǒng)采用的技術(shù)方案為JSP/Servlet+Mysql,即采用JSP作為Web服務(wù)器端開(kāi)發(fā)語(yǔ)言,采用Tomcat作為Web服務(wù)器和JSP引擎,采用Mysql作為后臺(tái)網(wǎng)絡(luò)數(shù)據(jù)管理系統(tǒng),這樣就實(shí)現(xiàn)了整個(gè)網(wǎng)上書(shū)店系統(tǒng)的構(gòu)建。1.2國(guó)內(nèi)外的發(fā)展情況2007年度美國(guó)電子商務(wù)達(dá)到了1024億美元,較2006年增長(zhǎng)20%。美國(guó)電子商務(wù)零售額的逐季攀升顯示美國(guó)消費(fèi)者已逐漸把在線購(gòu)物視為一種替代的購(gòu)物方式。歷經(jīng)十年風(fēng)雨,亞馬遜依然領(lǐng)袖電子商務(wù)市場(chǎng)。創(chuàng)建于1995年的美國(guó)亞馬遜網(wǎng)上書(shū)店在短短的10年間迅速成長(zhǎng)為全球500強(qiáng)企業(yè),不僅開(kāi)創(chuàng)了圖書(shū)銷售模式的歷史新紀(jì)元,帶動(dòng)全球電子商務(wù)的發(fā)展,而且給全球零售業(yè)帶來(lái)了巨大變革。我國(guó)自1997年開(kāi)始探索網(wǎng)上圖書(shū)之路,隨著互聯(lián)網(wǎng)技術(shù)的突飛猛進(jìn)和網(wǎng)絡(luò)的普及,我國(guó)網(wǎng)上書(shū)店得到了空前發(fā)展。除有200多家出版社建立了自己的網(wǎng)站之外,專門(mén)性的網(wǎng)上書(shū)店也有幾百家,如當(dāng)當(dāng)、卓越網(wǎng)、貝塔斯曼在線均有30多萬(wàn)種商品以上,其年銷售額均在1億元以上。目前我國(guó)網(wǎng)上書(shū)店采用的三種配送方式是本地讀者送書(shū)上門(mén)、外地讀者郵局投遞及利用加盟書(shū)店就近配送[2]。1.3本論文的主要內(nèi)容鑒于前面介紹的課題背景和國(guó)內(nèi)外概況,本課題將設(shè)計(jì)和實(shí)現(xiàn)一套基于B/S模式的網(wǎng)上書(shū)店系統(tǒng)。該系統(tǒng)采用window開(kāi)發(fā)平臺(tái),使用Java語(yǔ)言、JSP動(dòng)態(tài)編程語(yǔ)言來(lái)實(shí)現(xiàn)。本文的主要內(nèi)容如下:(1)介紹一下本課題的研究背景和意義,國(guó)內(nèi)外網(wǎng)上書(shū)店的發(fā)展情況。(2)將JSP與ASP和PHP技術(shù)進(jìn)行比較,分析出JSP開(kāi)發(fā)技術(shù)的先進(jìn)性,從而確定本系統(tǒng)所使用的技術(shù)。另外,介紹了本系統(tǒng)的開(kāi)發(fā)模式,即MVC模式。(3)對(duì)網(wǎng)上書(shū)店系統(tǒng)進(jìn)行分析與設(shè)計(jì),主要包括系統(tǒng)的需求分析、系統(tǒng)的組織結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)的工作流程分析和系統(tǒng)的數(shù)據(jù)流程分析。(4)分析系統(tǒng)的開(kāi)發(fā)環(huán)境,設(shè)計(jì)出數(shù)據(jù)的概念結(jié)構(gòu)和邏輯結(jié)構(gòu)。(5)對(duì)網(wǎng)上書(shū)店進(jìn)行詳細(xì)的設(shè)計(jì)與實(shí)現(xiàn)。2網(wǎng)上書(shū)店系統(tǒng)的開(kāi)發(fā)技術(shù)和模式2.1Java技術(shù)介紹Java是一種簡(jiǎn)單易用、完全面向?qū)ο?、具有平臺(tái)無(wú)關(guān)性且安全可靠的主要面向Internet的開(kāi)發(fā)工具。自從1995年正式問(wèn)世以來(lái),Java的快速發(fā)展已經(jīng)讓整個(gè)Web世界發(fā)生了翻天覆地的變化[2]。在早期,Java比較多的用在瀏覽器上,插入到網(wǎng)頁(yè)中(即是JavaApplet程序),成為最靈活、最強(qiáng)大的網(wǎng)頁(yè)多媒體的載體,但由于Java虛擬機(jī)相對(duì)于個(gè)人電腦而言,有占用資源大,安全性相對(duì)較差等缺點(diǎn),Applet逐漸的被后起之秀Flash所替代,但隨著JavaServlet的推出,Java在電子商務(wù)方面開(kāi)始嶄露頭角,最新的JSP(JavaServerPage)技術(shù)的推出,更是讓Java成為基于Web的應(yīng)用程序的首選開(kāi)發(fā)工具,目前的Java技術(shù)已成為所有大型電子商務(wù)項(xiàng)目的必然選擇[3]。2.2JavaServletServlet是一種獨(dú)立于平臺(tái)和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動(dòng)態(tài)的Web頁(yè)面。Servlet是使用JavaServlet應(yīng)用程序設(shè)計(jì)接口及相關(guān)類和方法的Java程序,它在Web服務(wù)器上或應(yīng)用服務(wù)器上運(yùn)行并擴(kuò)展了該服務(wù)器的能力。JavaServlet對(duì)于Web服務(wù)器就好像JavaApplet對(duì)于Web瀏覽器。Applet裝入Web瀏覽器并在Web服務(wù)器內(nèi)執(zhí)行,而Servlet則是裝入Web服務(wù)器并在Web瀏覽器內(nèi)執(zhí)行,而Servlet則是裝入Web服務(wù)器并在Web服務(wù)器內(nèi)執(zhí)行。JavaServletAPI定義了Servlet和服務(wù)器之間的一個(gè)標(biāo)準(zhǔn)接口,這使得Servlet具有跨服務(wù)器平臺(tái)的特性。Servlet通過(guò)創(chuàng)建一個(gè)框架擴(kuò)展服務(wù)器的能力,采用請(qǐng)求—響應(yīng)模式提供Web服務(wù)。當(dāng)客戶機(jī)發(fā)送請(qǐng)求至服務(wù)器時(shí),服務(wù)器將請(qǐng)求信息發(fā)送給Servlet,Servlet生成響應(yīng)內(nèi)容并將其傳給Server,然后再由Server將響應(yīng)返回給客戶端。與傳統(tǒng)的CGI(CommonGatewayInterface公用網(wǎng)關(guān)接口)和許多其他類似CGI的技術(shù)相比,JavaServlet有許多優(yōu)點(diǎn)。在Servlet中,每個(gè)請(qǐng)求由一個(gè)輕量級(jí)的Java線程處理,如果處理請(qǐng)求的是N個(gè)線程,只是需要一份Servlet類代碼,具有很高的效率;Servlet提供了大量的實(shí)用工具例程,更容易使用;許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以由Servlet輕松地完成,功能更強(qiáng)大;Servlet用Java編寫(xiě),幾乎所有的主流服務(wù)器都江堰市直接或通過(guò)插件支持Servlet,具有更好的可移植性。在末來(lái)的技術(shù)發(fā)展過(guò)程中,Servlet有可能徹底取代CGI。JavaServlet是JSP技術(shù)的基礎(chǔ),大型的Web應(yīng)用程序的開(kāi)發(fā)需要JavaServlet和JSP配合才能完成[5]。
2.3JSP與其它技術(shù)比較目前動(dòng)態(tài)網(wǎng)頁(yè)的開(kāi)發(fā)技術(shù)主要有三種:JSP、ASP、PHP.通過(guò)這三種開(kāi)發(fā)技術(shù)的比較,我們可以看出JSP所具有的優(yōu)勢(shì)。三者都提供在HTML代碼中混合某種程序代碼、有語(yǔ)言引擎解釋執(zhí)行程序代碼的能力.在ASP、PHP、JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通HTML頁(yè)面只依賴于Web服務(wù)器,而ASP、PHP、JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP、PHP、JSP三者都面向服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。但JSP代碼被編譯成Servlet并由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生,因此采用JSP技術(shù)的頁(yè)面執(zhí)行速度較快。從應(yīng)用范圍來(lái)看,ASP是Microsoft開(kāi)發(fā)的動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng),只能執(zhí)行于微軟的服務(wù)器產(chǎn)品,IIS(InternetInformationServer)和PWS(PersonalWebServer)上。在UNIX下也有ChiliSoft的組件來(lái)支持ASP,但是ASP本身的功能有限,必須通過(guò)ASP+COM的群組合來(lái)擴(kuò)充,在UNIX的COM實(shí)現(xiàn)起來(lái)非常困難。PHP可在Windows、UNIX、Linux的Web服務(wù)器上正常運(yùn)行,還支持IIS、Apache等一般的Web服務(wù)器。用戶更換平臺(tái)時(shí),無(wú)需變換PHP代碼,可即拿即用。JSP與PHP類似,幾乎可以執(zhí)行于所有平臺(tái),如WindowsNT、Linux、UNIX.在WindowsNT下IIS通過(guò)一個(gè)外加服務(wù)器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服務(wù)器Apache已經(jīng)能夠支持JSP,由于Apache廣泛應(yīng)用在WindowsNT,UNIX和Linux上,因此JSP有更廣泛的執(zhí)行平臺(tái)。雖然現(xiàn)在WNT操作系統(tǒng)占了很大的市場(chǎng)份額,但是在服務(wù)器方面,UNIX的優(yōu)勢(shì)仍然很大,而新崛起的Linux更是來(lái)勢(shì)不小。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和javaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。由于PHP本身存在一些缺點(diǎn),使得它不適合應(yīng)用于大型電子商務(wù)站點(diǎn),而更適合于一些小型的商業(yè)站點(diǎn)。首先,PHP缺乏規(guī)模支持;其次,它缺乏多層結(jié)構(gòu)支持??偨Y(jié)JSP的優(yōu)勢(shì)如下:(1)一次編寫(xiě)多次運(yùn)行。系統(tǒng)多平臺(tái)支持。強(qiáng)大的可伸縮性。多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。2.4JSP開(kāi)發(fā)的模式JSP規(guī)范提現(xiàn)了兩種用JSP技術(shù)建立應(yīng)用程序的方式,這兩種方式分別稱作JSPModel1和JSPModel2,如圖2.1和圖2.2所示[4]。圖2.1Model1的工作模式圖2.2Model2的工作模式Model1體系結(jié)構(gòu)把所有的代碼都放在JSP中或抽取部分邏輯代碼放于JavaBean中。這樣做的好處是簡(jiǎn)單、開(kāi)發(fā)快、易于實(shí)現(xiàn)。缺點(diǎn)是JSP頁(yè)面中存在著大量Java代碼,整個(gè)JSP頁(yè)面顯得混亂,可讀性差,難以維護(hù),代碼重用性低,還必須另外添加用于控制業(yè)務(wù)流程的代碼。Model1體系十分適合簡(jiǎn)單應(yīng)用的需要,它卻不能滿足復(fù)雜的大型應(yīng)用程序的實(shí)現(xiàn)。Model2體系結(jié)構(gòu)是一種把JSP與Servlet聯(lián)合使用來(lái)實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容服務(wù)的方法。用JSP生成表達(dá)層的內(nèi)容,讓Servlet完成深層次的處理任務(wù)。Servlet充當(dāng)控制者的角色,負(fù)責(zé)完成接受請(qǐng)求,根據(jù)請(qǐng)求改變模型的數(shù)據(jù),在數(shù)據(jù)改變后,通知相關(guān)的視圖進(jìn)行刷新。Model2體系的優(yōu)點(diǎn)是JSP網(wǎng)頁(yè)專門(mén)用于表現(xiàn)數(shù)據(jù)而無(wú)需進(jìn)行其他操作,使得JSP頁(yè)面沒(méi)有或只含很少的Java代碼,使得頁(yè)面清晰,提高了可讀性,便于維護(hù)。Model2實(shí)現(xiàn)了業(yè)務(wù)邏輯、表示輸出和請(qǐng)求處理之間的分離,項(xiàng)目越復(fù)雜,使用Model2體系結(jié)構(gòu)的好處就越大。2.5MVC模型/視圖/控制器(MVC)模式源于傳統(tǒng)的面向?qū)ο笳Z(yǔ)言SmallTalk,它是第一個(gè)分開(kāi)表示邏輯和業(yè)務(wù)邏輯的設(shè)計(jì)模式。MVC引入視圖(表示層)、模型(數(shù)據(jù))和和協(xié)調(diào)兩者的控制器。在出現(xiàn)MVC模式之前,用戶界面設(shè)計(jì)通常把這些層合并在一起,而MVC模式則把它們分離開(kāi),使各個(gè)模塊相對(duì)獨(dú)立,提高靈活性與復(fù)用性。MVC將應(yīng)用程序系統(tǒng)分為三個(gè)組成部分:
(1)模型(Model)
模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù),或者業(yè)務(wù)邏輯,這是整個(gè)模型的核心。它表示的是解決方案空間的真正的邏輯。它采用面向?qū)ο蟮姆椒?,將?wèn)題領(lǐng)域中的對(duì)象抽象為應(yīng)用程序?qū)ο?。在這些抽象的對(duì)象中封裝了對(duì)象的屬性和這些對(duì)象所隱含的邏輯。(2)視圖(View)
視圖是應(yīng)用程序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面,與Web應(yīng)用程序一樣,主管應(yīng)用程序與人之間的接口。一方面它為用戶提供了輸入手段,并觸發(fā)應(yīng)用邏輯運(yùn)行;另一方面,它又將邏輯運(yùn)行的結(jié)果以某種形式顯示給用戶。
(3)控制器(controller)
該部分是用戶與Model的接口。一方面它解釋來(lái)自于View的輸入,將其解釋成為系統(tǒng)能夠理解的對(duì)象,同時(shí)它也識(shí)別用動(dòng)作,并將其解釋為對(duì)Model特定定方法的調(diào)用;另一方面,它處理來(lái)自于Model的事件和Model邏輯執(zhí)行的結(jié)果,調(diào)用適當(dāng)?shù)腣iew為用戶提供反饋。在三者的關(guān)系中,Controller接收使用者的消息,要求Model處理應(yīng)用領(lǐng)域的資料:Model告訴View,讓View知道Model的內(nèi)容已更新,View接獲通知并進(jìn)行準(zhǔn)備工作,就緒了才要求Model送來(lái)新內(nèi)容,顯示于視窗里[6]。Model、View、Controller三者的動(dòng)態(tài)協(xié)作關(guān)系如下圖:
圖2-3MVC組件類型的關(guān)系和功能MVC框架的出現(xiàn)不僅實(shí)現(xiàn)了功能模塊和顯示模塊的分離,同時(shí)它還提高了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)用性。3網(wǎng)上書(shū)店系統(tǒng)的系統(tǒng)分析3.1系統(tǒng)需求分析網(wǎng)上書(shū)店系統(tǒng)主要是實(shí)現(xiàn)網(wǎng)上選書(shū)、購(gòu)書(shū)、產(chǎn)生訂單等功能的系統(tǒng)。一個(gè)典型的網(wǎng)上商城一般都需要實(shí)現(xiàn)商品信息的動(dòng)態(tài)提示、購(gòu)物車管理、客戶信息注冊(cè)登錄管理、訂單處理等模塊。根據(jù)網(wǎng)上書(shū)店的基本需求,本系統(tǒng)需要完成的具體任務(wù)如下:書(shū)圖查詢:當(dāng)客戶進(jìn)入網(wǎng)上書(shū)店時(shí),應(yīng)該在主頁(yè)面中顯示的書(shū)目信息,以供客戶選擇所需圖書(shū),同時(shí)也應(yīng)該提供按照?qǐng)D書(shū)名稱快速查詢所需書(shū)目信息的功能。購(gòu)物車管理:當(dāng)客戶選擇購(gòu)買某圖書(shū)產(chǎn)品時(shí),應(yīng)該能夠?qū)?duì)應(yīng)圖書(shū)信息,如:價(jià)格、數(shù)量記錄到對(duì)應(yīng)的購(gòu)物車中,并允許客戶返回書(shū)目查詢頁(yè)面,選擇其他商品,并添加到購(gòu)物車中,當(dāng)對(duì)應(yīng)的購(gòu)物訂單生成后,應(yīng)該能夠自動(dòng)清除以生成訂單的購(gòu)物車中的信息。訂單處理:對(duì)應(yīng)客戶購(gòu)買圖書(shū)商品信息的需求,在確定了所購(gòu)圖書(shū)商品的價(jià)格、數(shù)量等信息后,提示用戶選擇對(duì)應(yīng)的送貨方式及付款方式,最終生成對(duì)應(yīng)的訂單記錄,以便于網(wǎng)站配貨人員依據(jù)訂單信息進(jìn)行后續(xù)的出貨、送貨的處理。會(huì)員注冊(cè):為能夠?qū)崿F(xiàn)圖書(shū)商品的購(gòu)買,需要管理客戶相關(guān)的聯(lián)系方式等信息。3.2系統(tǒng)的組織結(jié)構(gòu)分析作為一個(gè)完整的網(wǎng)上書(shū)店系統(tǒng),其系統(tǒng)架構(gòu)如下圖:圖3-1系統(tǒng)的組織結(jié)構(gòu)圖3.3系統(tǒng)工作流程分析網(wǎng)上書(shū)店系統(tǒng)貫穿著這樣三個(gè)流程:前臺(tái)流程、后臺(tái)管理流程、完整的購(gòu)書(shū)流程。3.3.1前臺(tái)流程下圖描述了網(wǎng)上書(shū)店的前臺(tái)流程:圖3-2系統(tǒng)前工作流程圖在前臺(tái)子系統(tǒng)中,用戶可以直接瀏覽圖書(shū)和進(jìn)行圖書(shū)查詢。用戶登錄和注冊(cè)后,便可以查看用戶信息、修改用戶信息和密碼、查看圖書(shū)詳細(xì)資料、將圖書(shū)加入購(gòu)物車。購(gòu)物車是一個(gè)圖書(shū)的臨時(shí)存放地,用戶可以對(duì)購(gòu)物車進(jìn)行管理,如刪除圖書(shū)或修改購(gòu)買的數(shù)量。用戶完全選定了要購(gòu)買的圖書(shū)后,就可以提交購(gòu)物車并生成訂單,系統(tǒng)會(huì)提示提交成功,并顯示訂單號(hào),前臺(tái)的用戶操作流程就結(jié)束了。此后用戶還可以查詢定單的執(zhí)行情況。3.3.2后臺(tái)管理流程下圖描述了網(wǎng)上書(shū)店的后臺(tái)管理流程:圖3-3系統(tǒng)的后臺(tái)管理工作流程圖后臺(tái)各個(gè)流程之間的關(guān)系相對(duì)獨(dú)立一些,所以后臺(tái)的管理流程相對(duì)來(lái)說(shuō)簡(jiǎn)單一些,不同流程對(duì)應(yīng)的功能模塊之間也基本獨(dú)立,基本上是一種平行關(guān)系。3.3.3完整的購(gòu)書(shū)架構(gòu)如果合并用戶的前臺(tái)購(gòu)書(shū)流程和管理員的后臺(tái)管理流程,就會(huì)得到完整的購(gòu)書(shū)流程,如圖3-4所示。系統(tǒng)的購(gòu)書(shū)流程貫穿于整個(gè)系統(tǒng)之中,是連接前、后臺(tái)的核心流程。用戶在前臺(tái)瀏覽和查詢圖書(shū),然后將圖書(shū)放入購(gòu)物車,通過(guò)提交購(gòu)物車,生成圖書(shū)訂單,并實(shí)際支付,網(wǎng)上書(shū)店后臺(tái)系統(tǒng)收到付款后根據(jù)訂單發(fā)貨,最后用戶收到圖書(shū)并確認(rèn),這就是完成了整個(gè)購(gòu)書(shū)流程。圖3.4系統(tǒng)的購(gòu)書(shū)流程圖3.4系統(tǒng)的數(shù)據(jù)流程分析數(shù)據(jù)流圖描述數(shù)據(jù)流動(dòng)、存儲(chǔ)、處理的邏輯關(guān)系,也稱為邏輯數(shù)據(jù)流程圖,一般用DFD表示。數(shù)據(jù)流程圖是系統(tǒng)分析員調(diào)查業(yè)務(wù)過(guò)程,與用戶交換思想的工具。因此,數(shù)據(jù)圖應(yīng)該簡(jiǎn)明易懂。設(shè)計(jì)好數(shù)據(jù)流圖有利于后面的設(shè)計(jì),有利于整個(gè)系統(tǒng)的實(shí)現(xiàn)[7]。網(wǎng)上書(shū)店頂層數(shù)據(jù)流圖如下圖3-5所示。圖3.5網(wǎng)上書(shū)店頂層數(shù)據(jù)流圖網(wǎng)上書(shū)店一層數(shù)據(jù)流圖如下圖3-6所示。圖3-6網(wǎng)上書(shū)店一層數(shù)據(jù)流圖網(wǎng)上書(shū)店二層數(shù)據(jù)流圖如下3.7所示:圖3-7網(wǎng)上書(shū)店二層數(shù)據(jù)流圖4網(wǎng)上書(shū)店系統(tǒng)的運(yùn)行環(huán)境及數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)采用的技術(shù)方案為JSP+Tomcat+MysSql,即使用JSP作為Web服務(wù)器端開(kāi)發(fā)語(yǔ)言,采用Tomcat作為Web服務(wù)器和JSP引擎,采用MySql作為后臺(tái)網(wǎng)絡(luò)數(shù)據(jù)管理系統(tǒng)。4.1JSP的運(yùn)行環(huán)境要開(kāi)發(fā)JSP應(yīng)用程序,服務(wù)器端必須有相應(yīng)的開(kāi)發(fā)環(huán)境,開(kāi)發(fā)環(huán)境主要有以下兩部分組成:JDK(JavaDeveloperKit,Java開(kāi)發(fā)工具包)、JSP服務(wù)器。4.1.1JDK安裝和配置JDK是Sun公司免費(fèi)提供的Java語(yǔ)言開(kāi)發(fā)工具,它包含了Java開(kāi)發(fā)中所不同必需的開(kāi)發(fā)工具和Java運(yùn)行環(huán)境(JRE-JavaRunEnvironment),是Java應(yīng)用程序開(kāi)發(fā)的基礎(chǔ)。我們可以在Sun公司的官方網(wǎng)站上下載JDK,安裝的路徑為D:\ProgramFiles\Java\jdk1.5.0_14安裝完JDK后,需要配置環(huán)境變量。配置環(huán)境變量的目的是讓操作系統(tǒng)自動(dòng)查找所需國(guó)的命令文件所在的目錄。新建系統(tǒng)變量名“JAVA_HOME”,變量值:D:\ProgramFiles\Java\jdk1.5.0_14在系統(tǒng)變量“Path”中添加變量值“.;D:\ProgramFiles\Java\jdk1.5.0_14\bin”.新建用戶變量名“CLASSPATH”,變量值:“.;D:\ProgramFiles\Java\jdk1.5.0_14\lib\dt.jar;D:\ProgramFiles\Java\jdk1.5.0_14\lib\tools.jar;”安裝并配置完成后編寫(xiě)一個(gè)簡(jiǎn)單的Java程序HelloWorld.java,在命令行狀態(tài)下編譯、運(yùn)行成功。4.1.2Tomcat的安裝和測(cè)試Tomcat服務(wù)器是在Sun公司的JSWDK(JavaWeb服務(wù)器開(kāi)發(fā)工具包)的基礎(chǔ)上發(fā)展而來(lái)的一個(gè)優(yōu)秀的JavaWeb服務(wù)器,它是由JavaSoft和Apache開(kāi)發(fā)團(tuán)隊(duì)共同提出合作計(jì)劃的產(chǎn)品,它還可以和目前大部分的主流HTTP服務(wù)器(如Apache服務(wù)器)一起工作,且性能穩(wěn)定、效率高。Eclipse是一個(gè)可視化設(shè)計(jì)的Java語(yǔ)言開(kāi)發(fā)環(huán)境,它可以自動(dòng)生成各種Java語(yǔ)言應(yīng)用的向?qū)?,Java語(yǔ)言程序開(kāi)發(fā)者可以在eclipse單一的環(huán)境中進(jìn)行創(chuàng)建、修改、編譯、運(yùn)行、調(diào)試和封裝Java語(yǔ)言應(yīng)用程序和Applet小程序。Eclipse編程環(huán)境對(duì)于面向?qū)ο缶幊潭愿庇^、更容易使用。我所設(shè)計(jì)的網(wǎng)上書(shū)店系統(tǒng)中的Java程序和JSP都是在eclipse開(kāi)發(fā)環(huán)境中創(chuàng)建、編譯、運(yùn)行和調(diào)試的[8]。4.2數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)是信息系統(tǒng)的核心和基礎(chǔ),是信息系統(tǒng)開(kāi)發(fā)和建設(shè)的重要組成部分,把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來(lái),提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫(kù)中獲得所需的信息。在動(dòng)態(tài)網(wǎng)站的設(shè)計(jì)中,數(shù)據(jù)庫(kù)設(shè)計(jì)的重要性不言而喻。合理地設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和統(tǒng)一。如果設(shè)計(jì)不當(dāng),查詢起來(lái)就非常吃力,程序的性能也會(huì)受到影響[9]。4.2.1概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)是在需求分析的基礎(chǔ)上對(duì)所有數(shù)據(jù)要求按一定方法進(jìn)行抽象與綜合處理,設(shè)計(jì)出不依賴于某種具體DBMS的滿足用戶應(yīng)用需求的信息結(jié)構(gòu)。這種信息結(jié)構(gòu)我們稱為概念模型。最常用的概念結(jié)構(gòu)設(shè)計(jì)方法有實(shí)體分析法、面向?qū)ο笤O(shè)計(jì)方法、屬性綜合法和規(guī)范化關(guān)系方法。我在本系統(tǒng)設(shè)計(jì)中主要用的是實(shí)體分析法,這是一種自上而下抽象的方法。根據(jù)我對(duì)數(shù)據(jù)的需求分析,確定系統(tǒng)范圍,確定實(shí)體及其屬性,畫(huà)出系統(tǒng)的E-R圖如下。圖4-1用戶購(gòu)書(shū)子系統(tǒng)E-R圖圖4-2后臺(tái)管理子系統(tǒng)E-R圖4.2.2邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是把概念模型,也就是上面的E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型的方法。下面是具體的轉(zhuǎn)化結(jié)果,即所對(duì)應(yīng)具體的數(shù)據(jù)庫(kù)表。表4-1系統(tǒng)數(shù)據(jù)庫(kù)bookshop中使用的所有表表名說(shuō)明admin保存管理員帳號(hào)和密碼book保存圖書(shū)信息bookcomment保存用戶信息customer保存用戶信息orderlist保存每一份訂單中所包含的各種圖書(shū)信息userorder保存訂單信息下面是各個(gè)表的詳細(xì)信息。表4-2管理員信息表admin字段名稱數(shù)據(jù)類型說(shuō)明id文本管理員帳號(hào)password文本管理員密碼表4-2圖書(shū)信息表book字段名稱數(shù)據(jù)類型說(shuō)明id文本圖書(shū)編號(hào)name文本書(shū)名author文本作者publisher文本出版社type文本圖書(shū)類別ifNew文本是否為推薦書(shū)price文本單價(jià)表4-3書(shū)評(píng)信息表bookcomment字段名稱數(shù)據(jù)類型說(shuō)明id文本書(shū)評(píng)編號(hào)bookId文本被評(píng)論圖書(shū)的書(shū)號(hào)userId文本評(píng)論者comment文本書(shū)評(píng)內(nèi)容stars文本總體評(píng)價(jià)表4-4用戶信息表customer字段名稱數(shù)據(jù)類型說(shuō)明id文本用戶帳號(hào)password文本密碼name文本姓名sex文本性別address文本地址code文本郵政編碼tel文本電話email文本E-mail表4-5訂單項(xiàng)信息表orderlist字段名稱數(shù)據(jù)類型說(shuō)明id文本訂單號(hào)user文本用戶帳號(hào)book文本書(shū)號(hào)sum文本數(shù)量money文本共計(jì)金額表4-6訂單信息表userorder字段名稱數(shù)據(jù)類型說(shuō)明id文本帳單編號(hào)user文本用戶帳號(hào)day文本提交訂單的日期money文本訂單總額各表之間除了customer表和bookcomment表之間的關(guān)系不實(shí)施參照完整性以外(即在customer表中刪除用戶的同時(shí),不必對(duì)bookcomment內(nèi)的相關(guān)內(nèi)容進(jìn)行更新,因?yàn)橛慰鸵部梢詤⑴c評(píng)論圖書(shū)),其他都是“實(shí)施參照完整性”和“級(jí)聯(lián)刪除相關(guān)記錄”的,所有的關(guān)系都是“一對(duì)多”類型。各表的關(guān)系如下表如示:表4-7各表之間的關(guān)系左表左表字段右表右表字段bookidbookcommentbookidcustomeridbookcommentuseridcustomeriduserorderuseruserorderidorderlistid5網(wǎng)上書(shū)店系統(tǒng)的界面設(shè)計(jì)與實(shí)現(xiàn)5.1系統(tǒng)設(shè)計(jì)特點(diǎn)5.1.1界面設(shè)計(jì)本系統(tǒng)在界面設(shè)計(jì)上采用了模塊化的思想,把很多頁(yè)面共有部分單獨(dú)集成一個(gè)模塊,例如頁(yè)面的頭、尾等,在開(kāi)發(fā)系統(tǒng)時(shí),遇到這些相同的頁(yè)面部分就不需要重復(fù)編寫(xiě),而只要在相應(yīng)位置上加上<jsp:includepage="/utility/siteName.jsp"/>即可,大大提高了開(kāi)發(fā)效率。5.1.2三層結(jié)構(gòu)本系統(tǒng)采用三層結(jié)構(gòu)設(shè)計(jì),即程序邏輯結(jié)構(gòu)分為用戶表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲(chǔ)層。由于網(wǎng)上書(shū)店系統(tǒng)的功能較強(qiáng),相應(yīng)的代碼設(shè)計(jì)比較復(fù)雜,JSP網(wǎng)頁(yè)文本也會(huì)變得龐大,需要大量的嵌入Java代碼和HTML語(yǔ)句,其中,Java代碼為邏輯代碼,即這些代碼用來(lái)完成所需要的功能。嵌入Java代碼、HTML語(yǔ)句、JavaScript語(yǔ)句,使編寫(xiě)和維護(hù)JSP和JavaBean結(jié)合起來(lái),業(yè)務(wù)邏輯處理層采用JavaBean實(shí)現(xiàn),然后在JSP網(wǎng)頁(yè)中調(diào)用,而JSP文本著重是網(wǎng)頁(yè)界面設(shè)計(jì),這會(huì)使JSP網(wǎng)頁(yè)變得清晰,可以節(jié)省軟件開(kāi)發(fā)時(shí)間,系統(tǒng)的安全性、可維護(hù)性、重用性和可擴(kuò)展性都大大提高[9]。5.1.3面向?qū)ο蟪绦蛟O(shè)計(jì)在本系統(tǒng)中將操作數(shù)據(jù)庫(kù)、存儲(chǔ)圖書(shū)信息、組成購(gòu)物車、用戶信息等都封裝成相應(yīng)的類,同時(shí)每個(gè)類又都有與其對(duì)應(yīng)的操作類,從而再次提高了對(duì)數(shù)據(jù)庫(kù)操作的安全性和程序的可擴(kuò)展性[10]。5.1.4人性化設(shè)計(jì)本系統(tǒng)導(dǎo)航清晰,操作方便、簡(jiǎn)單,不管理用戶位于本“書(shū)店”的任何地方,都不會(huì)迷路。5.2類的設(shè)計(jì)在本系統(tǒng)中,為了實(shí)現(xiàn)前臺(tái)顯示和業(yè)務(wù)邏輯的分離,使系統(tǒng)更加健壯和靈活,將網(wǎng)上書(shū)店中的公共類進(jìn)行了封裝,都封裝在Javabean里,主要包括操作數(shù)據(jù)庫(kù)的公共類、檢測(cè)字符串類、儲(chǔ)存用戶信息類、存儲(chǔ)圖書(shū)信息類、組成購(gòu)物車類。5.2.1操作數(shù)據(jù)庫(kù)類(DBClass)網(wǎng)上書(shū)店系統(tǒng)中涉及到數(shù)據(jù)庫(kù)操作的JSP頁(yè)面或Servlet都會(huì)用到它。該類含有對(duì)數(shù)據(jù)庫(kù)操作的各種方法,如連接數(shù)據(jù)庫(kù)、查詢/更新數(shù)據(jù)庫(kù)以及關(guān)閉數(shù)據(jù)庫(kù)連接等。 /*連接數(shù)據(jù)庫(kù)*/ publicvoidconnect(){ try{ Class.forName(driver); connection=DriverManager.getConnection(url,username,password); statement=connection.createStatement(); }catch(ClassNotFoundExceptioncnfe){ message="connection:"+cnfe; }catch(SQLExceptionsqle){ message="executeQuery:"+sqle; } } /*執(zhí)行SQL查詢并返回結(jié)果*/ publicResultSetexecuteQuery(Stringquery){ ResultSetresultset=null; try{ resultset=statement.executeQuery(query); }catch(SQLExceptionsqle){ message="executeQuery:"+sqle; } returnresultset; } /*執(zhí)行數(shù)據(jù)庫(kù)更新操作*/ publicvoidexecuteUpdate(Stringcommand){ try{ statement.executeUpdate(command); }catch(SQLExceptionsqle){ message="executeUpdate:"+sqle; } }publicDBClass(Stringdriver,Stringurl,Stringusername,Stringpassword){ this.driver=driver; this.url=url; this.username=username; this.password=password; this.connection=null; this.statement=null; this.message=""; } /*關(guān)閉數(shù)據(jù)庫(kù)連接*/ publicvoidcloseConnection(){ try{ connection.close(); }catch(SQLExceptionsqle){ message="closeConnection:"+sqle; } }}5.2.2檢測(cè)字符串類(StrClass)StrClass是負(fù)責(zé)對(duì)字符串進(jìn)行檢測(cè)和轉(zhuǎn)化的公用類。在網(wǎng)上書(shū)店系統(tǒng)中,經(jīng)常需要判斷字符串是否為數(shù)字或E-mail地址,另外,由于表單參數(shù)全部都是以字符串形式來(lái)傳遞的,因此我們常常需要將字符串轉(zhuǎn)化為整數(shù)或浮點(diǎn)數(shù),StrClass類就提供了這些方法。下面是主要的方法的的實(shí)現(xiàn)。/*測(cè)試字符串是否為數(shù)字:是,返回true;否則返回false*/ publicbooleanisNum(){ booleanbool=true; for(inti=0;i<str.length();i++){ charch=str.charAt(i); if(!Character.isDigit(ch)){ bool=false; break; } } returnbool; } /*測(cè)試字符串是否為E-mail地址:是返回true;否則返回false*/ publicbooleanisEmail(){ if(str.indexof("@")==-1){ returnfalse; }elseif(str.indexof(".",str.indexof("@"))==-1){ returnfalse; }else{ returntrue; } } /*將字符串轉(zhuǎn)化為整數(shù)*/ publicinttoInt(){ returnInteger.parseInt(str); } publicfloattoFloat(){ returnFloat.parseFloat(str); }5.3前臺(tái)用戶頁(yè)面設(shè)計(jì)5.3.1主頁(yè)面index.jsp的設(shè)計(jì)我所設(shè)計(jì)的網(wǎng)上書(shū)店名為bookshoponline,該書(shū)店的主頁(yè)如下圖所示:圖5-1網(wǎng)上書(shū)店主頁(yè)面圖Index.jsp是我們網(wǎng)上書(shū)店的首頁(yè),用戶以及管理員的一切操作都是從這里開(kāi)始的。在index.jsp代碼中(代碼見(jiàn)系統(tǒng)),可以看到有這樣的一段反復(fù)的代碼:<pclass="bookInfo">作者:<%=book.getAuthor()%></p><pclass="bookInfo">出版社:<%=book.getPublisher()%></p><pclass="bookInfo">類別:<%=book.getType()%></p><pclass="bookInfo">單價(jià):¥<%=book.getPrice()%></p>這些代碼負(fù)責(zé)顯示圖書(shū)信息,并且在顯示圖書(shū)信息的時(shí)候使用了動(dòng)態(tài)技術(shù),即并沒(méi)有將圖書(shū)信息直接寫(xiě)入頁(yè)面。這樣當(dāng)圖書(shū)信息發(fā)生變化時(shí),不需要修改頁(yè)面代碼,十分方便。相對(duì)應(yīng)的,我使用了一個(gè)vector類型的變量booklist來(lái)存儲(chǔ)要顯示的圖書(shū)信息。Vector是Java語(yǔ)言中的一個(gè)數(shù)據(jù)類型,是一個(gè)對(duì)象數(shù)組,它的每一個(gè)元素都是一個(gè)對(duì)象。具體到這個(gè)程序中,booklist就是一個(gè)BookInf類的對(duì)象(book)的數(shù)組,而B(niǎo)ookInf正是用來(lái)存儲(chǔ)圖書(shū)信息的JavaBean.因此,index.jsp只需要從booklist中讀出這些信息并將它們顯示出來(lái)就可以了,今后即使數(shù)據(jù)庫(kù)中圖書(shū)信息發(fā)生了變化,我們也不必修改index.jsp中的代碼。Booklist這個(gè)變量是由一個(gè)Servlet(ShowBook.java)創(chuàng)建的。ShowBook.java根據(jù)請(qǐng)求判斷哪些圖書(shū)需要被顯示,然后從數(shù)據(jù)庫(kù)中讀出這些圖書(shū)的信息,并將它們儲(chǔ)存到booklist中,最后將這個(gè)變量寫(xiě)入會(huì)話上下文中供index.jsp讀取。這是一個(gè)典型的MVC結(jié)構(gòu)。5.3.2用戶注冊(cè)模塊(userRegister.jsp)用戶注冊(cè)模塊的功能是接受用戶注冊(cè),在檢查過(guò)用戶注冊(cè)數(shù)據(jù)的合法性后將用戶信息寫(xiě)入數(shù)據(jù)庫(kù)。下面是用戶注冊(cè)模塊圖:圖5-2用戶注冊(cè)模塊圖在用戶注冊(cè)模塊中,同樣用到了MVC框架。在用戶注冊(cè)的代碼中,userInf和errInf是由UserRegister.java創(chuàng)建的兩個(gè)Bean。其中userInf存儲(chǔ)在userRegister.jsp中填入的信息,這些信息經(jīng)過(guò)UserRegister.java檢查后,合法的信息將被保留下來(lái),這樣一來(lái),當(dāng)用戶信息中含有不合法的數(shù)據(jù)并要求用戶重新填寫(xiě)時(shí),那些不合法信息則不必再次填寫(xiě)。另外,errInf儲(chǔ)存的是錯(cuò)誤提示信息,當(dāng)表單數(shù)據(jù)中含有不合法數(shù)據(jù)時(shí),這些信息會(huì)被顯示出來(lái)提示用戶。5.3.3用戶登錄模塊(userLogin.jsp)用戶登錄模塊負(fù)責(zé)檢查用戶的登錄信息,具體地說(shuō)說(shuō)是檢查用戶填寫(xiě)的帳號(hào)和密碼是否相符合,如果是則完成用戶登錄,否則重新轉(zhuǎn)到登錄表單并提示錯(cuò)誤信息。下面是登錄頁(yè)面圖:圖5-3用戶登陸圖5.3.4圖書(shū)評(píng)論模塊(bookComment.jsp)用戶在index.jsp中點(diǎn)擊圖書(shū)封面的圖標(biāo),可以進(jìn)入圖書(shū)評(píng)論系統(tǒng)。在這個(gè)系統(tǒng)中,用戶(以登錄的用戶或游客身份)可以查看其他人對(duì)該書(shū)的評(píng)論并發(fā)表自己的評(píng)論。在這個(gè)模塊中,只需要提供一個(gè)頁(yè)面提供一個(gè)頁(yè)面顯示用戶對(duì)該圖書(shū)的評(píng)論,并在這個(gè)頁(yè)面中包含一個(gè)表單,使用戶可以添加書(shū)評(píng)。圖5-4圖書(shū)評(píng)論圖5.3.5用戶購(gòu)書(shū)模塊(addCart.jsp)用戶購(gòu)書(shū)模塊是網(wǎng)上書(shū)店系統(tǒng)中最核心也是最復(fù)雜的模塊,它負(fù)責(zé)完成用戶用戶對(duì)訂單的查詢、修改及提交等操作。我把些模塊又分為四個(gè)小模塊,分別為:購(gòu)書(shū)模塊、修改訂單模塊、提交訂單模塊、提交訂單模塊、查看歷史訂單模塊。(1)購(gòu)書(shū)模塊(addCart.jsp)在用戶開(kāi)始購(gòu)書(shū)的時(shí)候,系統(tǒng)會(huì)為其創(chuàng)建一個(gè)購(gòu)物車(一個(gè)儲(chǔ)存訂單信息的Bean)。所謂的購(gòu)書(shū)過(guò)程,其實(shí)就是將用戶選中的圖書(shū)的書(shū)號(hào)等信息儲(chǔ)存到購(gòu)物車的過(guò)程。購(gòu)物車是一個(gè)vector的變量,它的每一個(gè)元素都是一個(gè)CarInf類(Bean)。用戶向購(gòu)物車中添加圖書(shū)的操作十分簡(jiǎn)單,只需要在index.jsp中單擊Addtoshoppingcart圖標(biāo)并在彈出窗口中填入需要的數(shù)量即可。提交成功后,給出確認(rèn)信息。修改訂單模塊(mycart.jsp)在修改用戶信息中,包含兩種操作,即從購(gòu)物車中刪除某種圖書(shū)和修改欲購(gòu)圖書(shū)數(shù)量。從某種程度上來(lái)說(shuō),這兩個(gè)操作其實(shí)可以認(rèn)為是一個(gè),因?yàn)閷?shù)量修改為0就是刪除了該種圖書(shū)。我在用ChangeOrder.java實(shí)現(xiàn)修改訂單功能時(shí)就是本著這樣的一個(gè)思路。若用戶在訂購(gòu)數(shù)量欄中輸入了非整數(shù),則系統(tǒng)會(huì)出現(xiàn)錯(cuò)誤提示信息。如果用戶想取消訂購(gòu)某種圖書(shū),只需單擊“我不要了”按鈕,系統(tǒng)會(huì)自動(dòng)將該圖書(shū)從購(gòu)物車中刪除。圖5-5修改訂單圖提交訂單模塊(SubmitOrder.java)提交訂單模塊只需將購(gòu)物車中的圖書(shū)信息寫(xiě)入數(shù)據(jù)庫(kù)中就行了。不過(guò)由于我將訂單信息與訂單項(xiàng)信息是分開(kāi)在兩個(gè)表里加以存儲(chǔ)的,因?yàn)檫@兩個(gè)表之間存在著參照完整性規(guī)則約束,因此這一操作將要涉及到兩個(gè)表的同時(shí)更新。提交訂單只能由已登錄用戶來(lái)完成。雖然系統(tǒng)也會(huì)為游客創(chuàng)建購(gòu)物車,但在提交訂單時(shí)要求用戶必須登錄,否則提交訂單是沒(méi)有任何意義的,因?yàn)橛慰蜎](méi)有登記過(guò)任何的資料,無(wú)法將其所購(gòu)圖書(shū)遞交給他。這一點(diǎn)在Servlet中反映為在提交用戶訂單會(huì)檢查用戶是否登錄,如果沒(méi)有則提示用戶只有登錄以后才能順利完成操作。查看歷史訂單模塊(UserOrder.jsp)訂單提交以后就變成了歷史訂單,用戶可以通過(guò)單擊導(dǎo)航欄中的“歷史訂單”鏈接來(lái)查看這些訂單,userOrder.jsp就是負(fù)責(zé)這項(xiàng)任務(wù)。圖5-6歷史訂單圖5.4后臺(tái)管理模塊設(shè)計(jì)5.4.1管理員登錄模塊(adminLogin.jsp)管理員可以通過(guò)index.jsp頁(yè)面的管理員入口進(jìn)入管理登錄表單頁(yè)面。圖5-6管理員登陸圖5.4.2訂單管理模塊訂單管理主要完成查詢操作,包括訂單詳細(xì)信息查詢和用戶信息查詢。圖5-7訂單管理圖5.4.3用戶管理模塊(customerManage.jsp)用戶管理包含兩種操作,即管理員對(duì)用戶信息的查詢和刪除。我用了一個(gè)JSP頁(yè)面顯示所有注冊(cè)用戶信息??紤]到網(wǎng)站注冊(cè)用戶的數(shù)量會(huì)比較多,因此我用了分頁(yè)顯示功能,當(dāng)一頁(yè)顯示不下的時(shí)候,用戶可以通過(guò)“上一頁(yè)”或“下一頁(yè)”鏈接來(lái)翻頁(yè)。為了實(shí)現(xiàn)刪除用戶功能,我在用戶管理頁(yè)面上設(shè)置一個(gè)表單,這個(gè)表單為每一個(gè)用戶分配了一個(gè)復(fù)選框。當(dāng)管理員要?jiǎng)h除哪個(gè)用戶的時(shí)候,只需要選中它的復(fù)選框,然后單擊刪除按鈕提交表單。圖5-8用戶管理圖5.4.4圖書(shū)管理模塊圖書(shū)管理模塊涉及刪除圖書(shū)、查看和刪除圖書(shū)評(píng)論以及修改圖書(shū)信息等。刪除圖書(shū)是由一個(gè)Servlet(DeleteBook.java)負(fù)責(zé)的,在刪除圖書(shū)之后,要將用戶對(duì)該書(shū)的書(shū)評(píng)一起刪除。圖5-9圖書(shū)管理圖6結(jié)論其于JSP的網(wǎng)上書(shū)店系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)是源于信陽(yáng)市內(nèi)一家中型書(shū)店的需求來(lái)進(jìn)行的。該系統(tǒng)由前臺(tái)和后臺(tái)兩個(gè)子系統(tǒng)構(gòu)成,前臺(tái)系統(tǒng)實(shí)現(xiàn)了網(wǎng)上購(gòu)書(shū)、動(dòng)態(tài)查詢、用戶注冊(cè)、登錄等功能模塊。后臺(tái)系統(tǒng)由管理負(fù)責(zé)維護(hù)和管理數(shù)據(jù)庫(kù)的圖書(shū)信息、用戶信息和訂單信息,保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性。在系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)過(guò)程中,采用面向?qū)ο蟮姆椒ê湍K化的設(shè)計(jì),針對(duì)網(wǎng)上書(shū)店的特點(diǎn)和系統(tǒng)的功能要求,對(duì)網(wǎng)站做出整體的規(guī)化,使整個(gè)系統(tǒng)流程清晰、邏輯合理,為系統(tǒng)的實(shí)現(xiàn)創(chuàng)造了良好的條件。該系統(tǒng)采用當(dāng)前比較流行的Java和JSP等技術(shù)構(gòu)建,采用MVC架構(gòu),是基于B/S應(yīng)用體系結(jié)構(gòu)的一個(gè)應(yīng)用,實(shí)現(xiàn)了業(yè)務(wù)邏輯、前臺(tái)頁(yè)面和數(shù)據(jù)存儲(chǔ)層的分離,任何一層的變化,不會(huì)影響其他兩層,使系統(tǒng)更加健壯和靈活,能夠適應(yīng)系統(tǒng)的不斷變化和發(fā)展。由于時(shí)間精力和技術(shù)有限,網(wǎng)上書(shū)店系統(tǒng)還存在些缺點(diǎn),功能也不夠完善。如沒(méi)有購(gòu)書(shū)流程說(shuō)明,沒(méi)有缺貨統(tǒng)計(jì),沒(méi)有支付方式。這些方面還有待改進(jìn)??偟膩?lái)說(shuō),此次畢業(yè)設(shè)計(jì)完成了學(xué)校規(guī)定的各項(xiàng)要求,在學(xué)習(xí)Java語(yǔ)言等內(nèi)容的基礎(chǔ)上,進(jìn)一步學(xué)習(xí)實(shí)踐了網(wǎng)頁(yè)制作、Web服務(wù)器安裝、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)操作、JSP程序設(shè)計(jì)等多種實(shí)用技術(shù),還學(xué)習(xí)了MVC模式,成功設(shè)計(jì)出了一個(gè)功能基本齊全的電子商務(wù)網(wǎng)站。既學(xué)習(xí)了不少新的知識(shí)和技術(shù),又親身體驗(yàn)軟件設(shè)計(jì)、開(kāi)發(fā)的過(guò)程,個(gè)人覺(jué)的收獲頗豐。致謝時(shí)光荏苒,轉(zhuǎn)眼間已在華北水利水電學(xué)院學(xué)習(xí)了四年的時(shí)間,這四年的學(xué)習(xí)生涯,不僅是我豐富個(gè)人知識(shí)的重要階段,也是我提升自身素質(zhì)與能力的關(guān)鍵時(shí)期。在此,我首先向?qū)W識(shí)淵博、治學(xué)嚴(yán)謹(jǐn)、誨人不倦的導(dǎo)師楊雪教授表示最衷心的感謝。從最初的開(kāi)題報(bào)告到系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)以及在論文的撰寫(xiě)過(guò)程中都得到了楊老師的精心的指導(dǎo),在導(dǎo)師的熱心教導(dǎo)與關(guān)懷下我的論文得以須利完成;楊教授治學(xué)嚴(yán)謹(jǐn)?shù)膽B(tài)度,做人的方式,讓我終生受益。在整個(gè)的設(shè)計(jì)過(guò)程中,韓紅旗老師和張?zhí)鞓蚶蠋熥詈?,感謝所有的教師四年來(lái)給予我精心的指導(dǎo),傳授我科學(xué)文化知識(shí),教導(dǎo)我做人的道理,提升我自身的素質(zhì);感謝同窗好友四年來(lái)在生活方面給我的幫助,讓我在0482班感受到了陽(yáng)光;感謝我的父母,感謝多年來(lái)對(duì)我的養(yǎng)育之恩。參考文獻(xiàn)[1]林珊如.書(shū)籍網(wǎng)站信息組織架構(gòu)與瀏覽接口設(shè)計(jì)的考量:以亞馬遜網(wǎng)絡(luò)為例[J].大學(xué)圖書(shū)館.1990.5.[2]嚴(yán)衛(wèi)青,朱沈鈺.國(guó)內(nèi)外網(wǎng)上書(shū)店比較[J].情報(bào)探索.2005.
[3]江義華.Java完美經(jīng)典[M].北京:中國(guó)鐵道出版社,2004.
[4]耿祥義.Java2實(shí)用教程[M].北京:清華大學(xué)出版社,2004.[5]ChristianKirkeggaardandAndersMoller.StaticAnalysisforJavaServletsandJSP[J],ComputerScience,StaticAnalysis.2005.[6]張軍.JSP網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)例學(xué)與實(shí)踐[M].北京:清華大學(xué)出版社,2006.[7]鄺孔武,王曉敏.信息系統(tǒng)分析與設(shè)計(jì)[M].北京:清華大學(xué)出版社,2006.
[8]朱敏,朱晴婷,李媛媛.JSPWeb應(yīng)用教程[M].北京:北京交通大學(xué)出版社,2004.
[9]張海藩.軟件工程[M].北京:人民郵電出版社,2002.
[10]CayS.horstmann,Garycornell.CoreJava2volumeⅡ--AdvancedFeatures,ServenthEdition[M].2004.[11]AlainLeroy,J2EEand.NET:InteroperabilitywithWebservices,LectureNotesinComputerScience[J],2004.[12]黃梯云,李一軍.管理信息系統(tǒng)[M].高等教育出版社,2000.[13]何成萬(wàn),余秋惠.MVC模式2及軟件框架Struts的研究[J].計(jì)算機(jī)工程學(xué)報(bào),2006.[14]王軍.MySQL從入門(mén)到精通[M].電子工業(yè)出版社,2003.[15]趙玉彬,基于B/S模式的MIS系統(tǒng)的開(kāi)發(fā)[J],科技論壇.2005.附錄附錄1:英文原文TheDesignofJDBCFromthestart,thedevelopersoftheJavatechnologyatSunwereawareofthepotentialthatJavashowedforworkingwithdatabases.Startingin1995,theybeganworkingonextendingthestandardJavalibrarytodealwithSQLaccesstodatabases.WhattheyfirsthopedtodowastoextendJavasothatitcouldtalktoanyrandomdatabase,usingonly"pure"Java.Itdidn'ttakethemlongtorealizethatthisisanimpossibletask:Therearesimplytoomanydatabasesoutthere,usingtoomanyprotocols.Moreover,whiledatabasevendorswereallinfavorofSunprovidingastandardnetworkprotocolfordatabaseaccess,theywereonlyinfavorofitifSundecidedtousetheirnetworkprotocol.WhatallthedatabasevendorsandtoolvendorsdidagreeonwasthatitwouldbeusefulifSunprovidedapureJavaAPIforSQLaccessalongwithadrivermanagertoallowthird-partydriverstoconnecttospecificdatabases.Databasevendorscouldprovidetheirowndriverstoplugintothedrivermanager.Therewouldthenbeasimplemechanismforregisteringthird-partydriverswiththedrivermanagerthepointbeingthatallthedriversneededtodowasfollowtherequirementslaidoutinthedrivermanagerAPI.Asaresult,twointerfaceswerecreated.ApplicationprogrammersusetheJDBCAPI,anddatabasevendorsandtoolprovidersusetheJDBCDriverAPI.ThisorganizationfollowstheverysuccessfulmodelofMicrosoft'sODBC,whichprovidedaCprogramminglanguageinterfacefordatabaseaccess.BothJDBCandODBCarebasedonthesameidea:ProgramswrittenaccordingtotheAPItalktothedrivermanager,which,inturn,usesthedriversthatarepluggedintoittotalktotheactualdatabase.AllthismeanstheJDBCAPIisallthatmostprogrammerswilleverhavetodealwithseeFigure4.1NOTEYoucanuseJDBCinapplets,butyouprobablydon'twantto.Bydefault,thesecuritymanagerpermitsadatabaseconnectiononlytotheserverfromwhichtheappletisdownloaded.Thatmeansthewebserverandthedatabaseservermustbethesamemachine,whichisnotatypicalsetup.Youwouldneedtosigntheapplettoovercomethisproblem.Moreover,theappletwouldneedtoincludetheJDBCdriver.JDBCDriverTypesJDBCdriversareclassifiedintothefollowingtypes:Atype1drivertranslatesJDBCtoODBCandreliesonanODBCdrivertocommunicatewiththedatabase.Sunincludesonesuchdriver,theJDBC/ODBCbridge,withtheJDK.However,thebridgerequiresdeploymentandproperconfigurationofanODBCdriver.WhenJDBCwasfirstreleased,thebridgewashandyfortesting,butitwasneverintendedforproductionuse.Atthispoint,plentyofbetterdriversareavailable,andweadviseagainstusingtheJDBC/ODBCbridge.Atype2driveriswrittenpartlyinJavaandpartlyinnativecode;itcommunicateswiththeclientAPIofadatabase.Whenyouusesuchadriver,youmustinstallsomeplatform-specificcodeinadditiontoaJavalibrary.Atype3driverisapureJavaclientlibrarythatusesadatabase-independentprotocoltocommunicatedatabaserequeststoaservercomponent,whichthentranslatestherequestsintoadatabase-specificprotocol.Thiscansimplifydeploymentsincethedatabase-dependentcodeislocatedonlyontheserver.Atype4driverisapureJavalibrarythattranslatesJDBCrequestsdirectlytoadatabase-specificprotocol.Mostdatabasevendorssupplyeitheratype3ortype4driverwiththeirdatabase.Furthermore,anumberofthird-partycompaniesspecializeinproducingdriverswithbetterstandardsconformance,supportformoreplatforms,betterperformance,or,insomecases,simplybetterreliabilitythanthedriversthatareprovidedbythedatabasevendors.Insummary,theultimategoalofJDBCistomakepossiblethefollowing:ProgrammerscanwriteapplicationsintheJavaprogramminglanguagetoaccessanydatabase,usingstandardSQLstatementsorevenspecializedextensionsofSQLwhilestillfollowingJavalanguageconventions.Databasevendorsanddatabasetoolvendorscansupplythelow-leveldrivers.Thus,theycanoptimizetheirdriversfortheirspecificproducts.NoteIfyouarecuriousastowhySunjustdidn'tadopttheODBCmodel,theirresponse,asgivenattheJavaOneconferenceinMay1996,wasthis:ODBCishardtolearn.ODBChasafewcommandswithlotsofcomplexoptions.ThepreferredstyleintheJavaprogramminglanguageistohavesimpleandintuitivemethods,buttohavelotsofthem.ODBCreliesontheuseofvoidpointersandotherCfeaturesthatarenotnaturalintheJavaprogramminglanguage.AnODBC-basedsolutionisinherentlylesssa
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京課改版歷史八年級(jí)下冊(cè)第2課《新中國(guó)的初步鞏固》聽(tīng)課評(píng)課記錄
- 人民版道德與法治九年級(jí)上冊(cè)4.2《城鄉(xiāng)差距》聽(tīng)課評(píng)課記錄
- 招投文件合同范本(2篇)
- 生物燃料鍋爐購(gòu)買合同(2篇)
- 人教版數(shù)學(xué)七年級(jí)下冊(cè)《7-2-2用坐標(biāo)表示平移》聽(tīng)評(píng)課記錄
- 魯人版道德與法治九年級(jí)上冊(cè)9.1《公正律師法律援助》配套聽(tīng)課評(píng)課記錄
- 湘師大版道德與法治七年級(jí)上冊(cè)2.3《快樂(lè)學(xué)習(xí)》聽(tīng)課評(píng)課記錄
- 道德與法治部編版七年級(jí)上冊(cè)同步聽(tīng)課評(píng)課記錄《第8課 生命可以永恒嗎》
- 【部編版】八年級(jí)歷史上冊(cè)《鴉片戰(zhàn)爭(zhēng)》公開(kāi)課 聽(tīng)課評(píng)課記錄及教學(xué)反思
- 蘇科版數(shù)學(xué)八年級(jí)上冊(cè)《課題學(xué)習(xí) 關(guān)于勾股定理的研究》聽(tīng)評(píng)課記錄
- 藏族唐卡藝術(shù)特色分析
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 護(hù)士團(tuán)隊(duì)的協(xié)作和領(lǐng)導(dǎo)力培養(yǎng)培訓(xùn)課件
- QFD模板含計(jì)算公式計(jì)分標(biāo)準(zhǔn)說(shuō)明模板
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢(shì)管理與擺位》
- 人工智能在生物醫(yī)學(xué)倫理與法律中的基因編輯與生命倫理問(wèn)題研究
- 《論文的寫(xiě)作技巧》課件
- 國(guó)有資產(chǎn)管理辦法-國(guó)有資產(chǎn)管理辦法條例
- 公務(wù)車輛定點(diǎn)維修車輛保養(yǎng)(附彩圖) 投標(biāo)方案
- 00015-英語(yǔ)二自學(xué)教程-unit3
- 第二章共混改性基本原理
評(píng)論
0/150
提交評(píng)論