![基于JSP的網(wǎng)上書店系統(tǒng)的設(shè)計與實現(xiàn)(論文)_第1頁](http://file4.renrendoc.com/view/405bfda2e0ac052ea4e9ca9cce9d2f82/405bfda2e0ac052ea4e9ca9cce9d2f821.gif)
![基于JSP的網(wǎng)上書店系統(tǒng)的設(shè)計與實現(xiàn)(論文)_第2頁](http://file4.renrendoc.com/view/405bfda2e0ac052ea4e9ca9cce9d2f82/405bfda2e0ac052ea4e9ca9cce9d2f822.gif)
![基于JSP的網(wǎng)上書店系統(tǒng)的設(shè)計與實現(xiàn)(論文)_第3頁](http://file4.renrendoc.com/view/405bfda2e0ac052ea4e9ca9cce9d2f82/405bfda2e0ac052ea4e9ca9cce9d2f823.gif)
![基于JSP的網(wǎng)上書店系統(tǒng)的設(shè)計與實現(xiàn)(論文)_第4頁](http://file4.renrendoc.com/view/405bfda2e0ac052ea4e9ca9cce9d2f82/405bfda2e0ac052ea4e9ca9cce9d2f824.gif)
![基于JSP的網(wǎng)上書店系統(tǒng)的設(shè)計與實現(xiàn)(論文)_第5頁](http://file4.renrendoc.com/view/405bfda2e0ac052ea4e9ca9cce9d2f82/405bfda2e0ac052ea4e9ca9cce9d2f825.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
摘要隨著Internet信息技術(shù)的高速發(fā)展,以及個人,企業(yè)上網(wǎng)的迅速普及,企業(yè)的WWW網(wǎng)站在商業(yè)活動中發(fā)揮著越來越大的作用,互聯(lián)網(wǎng)已經(jīng)成為人們進(jìn)行交易的主要方式。在信息時代,能夠建立一個省時簡單的購物環(huán)境,對商家和買方都是不小的誘惑,因此建立一個功能強大、操作簡單且界面美觀的電子商物網(wǎng)站,對企業(yè)的發(fā)展至關(guān)重要。網(wǎng)上書店系統(tǒng)作為B2B、B2C(BusinesstoCustomer,企業(yè)對消費者),C2C(CustomertoCustomer,消費者對消費者)電子商務(wù)的前端商務(wù)平臺,在其商務(wù)活動的全過程中起著舉足輕重的作用。系統(tǒng)使用Eclipse作為前臺開發(fā)工具;使用MicrosoftSQLServer2000作為后臺數(shù)據(jù)庫的管理工具;使用的開發(fā)工具包是JDKVersion1.6;使用Tomcat1.6.0作為Web服務(wù)器。另外,本系統(tǒng)采用了JSP+Servlet+JavaBean(MVC)三層架構(gòu)模式。本系統(tǒng)采用B/S架構(gòu)。主要有兩個參與者:客戶和管理員??蛻艨梢詾g覽圖書信息,注冊賬號,修改自已的賬號信息,購買圖書,下發(fā)訂單,給管理員留言等。管理員可對圖書進(jìn)行增刪改查等維護(hù)工作,以及查看訂單,查看留言和修改登錄密碼等。關(guān)鍵詞:B/S,JSP,EclipseAbstractWiththerapiddevelopmentofInternetinformationtechology,aswellasindividua,therapidpopularizationofInternetenterprises,enterprisesincommercialactivitiesoftheWWWsiteisplayingthemoreandmoremajorrole,theInternethasbecomethemainwaypeopletraded.Intheinformationage,buildingatime-savingshoppingenvironment,simpletobusinessmenandthebuyerisquiteatemptation,thusestablishingapowerful,simpletooperateandinterfaceaestheticsofelectronicbusinesscontentsites,toenterprise'sdevelopmentisveryimportant.Asonlinebookstoresystemofe-commerceB2B,B2C(BusinesstoCustomer)andC2C(CustomertoCustomer)frontinitsbusinessplatform,andthewholeprocessofbusinessactivityplaysapivotalrole.SystemsuseEclipseasareceptionistdevelopmenttools;UseMicrosoftSQLServer2000asbackenddatabasemanagementtools.UsedevelopmentkitisJDKVersion1.60;Use1.6.0asaTomcatWebserver.Inaddition,thissystemUSESaJSP+Servlet+JavaBean(MVC)three-layerstructuremode.ThesystemUSEStheB/Sstructure.Therearetwomajorparticipants:thecustomerandadministrators.Customerscanbrowsebooksinformation,registrationnumber,modifyownaccountinformation,buyingbooks,issuedorders,giveadministratormessage,etc.Administratorscanincreasetorevisecheckbookssuchasmaintenance,andviewtheorder,checkthemessageandmodifyloginpasswords,etcKeywords:B/S,JSP,Eclipse目錄前言 1一網(wǎng)上購物系統(tǒng)概述 21.1系統(tǒng)開發(fā)背景 21.1.1網(wǎng)上購物的發(fā)展 21.1.2網(wǎng)上購物系統(tǒng)的現(xiàn)狀 21.2系統(tǒng)的開發(fā)意義 31.3JavaWeb開發(fā)技術(shù)介紹 31.4本系統(tǒng)概述 61.5 開發(fā)所用軟件介紹 61.5.1Eclipse介紹 61.5.2Tomcat介紹 71.5.3SQLServer2000介紹 8二系統(tǒng)需求分析與總體設(shè)計 92.1系統(tǒng)可行性分析 92.1.1技術(shù)可行性分析 92.1.2經(jīng)濟可行性分析 92.1.3操作可行性 92.1.4法律可行性 92.2系統(tǒng)需求分析 92.3系統(tǒng)總體設(shè)計 102.3.1MVC模式介紹 102.3.2系統(tǒng)流程圖 112.4數(shù)據(jù)庫設(shè)計 132.4.1數(shù)據(jù)庫ER圖 132.4.2表格 18三系統(tǒng)詳細(xì)設(shè)計 203.1數(shù)據(jù)庫連接 203.1.1JDBC介紹 203.2系統(tǒng)功能模塊 203.2.1登錄模塊 203.2.2注冊模塊 213.2.3圖書操作模塊 223.2.4購物車模塊 233.2.5訂單模塊 253.2.6留言模塊 253.2.7信息修改模塊 26四系統(tǒng)頁面設(shè)計 294.1首頁 294.2用戶登錄頁面 294.3購物車頁面 304.4結(jié)算中心頁面 314.5用戶注冊頁面 314.6新增圖書頁面 324.7修改圖書頁面 334.8刪除圖書頁面 334.9查找圖書頁面 34五系統(tǒng)難點分析與軟件測試 355.1系統(tǒng)難點分析之購物車模塊 355.1.1購物車的歸屬問題 355.1.2購物車的設(shè)置問題 355.2系統(tǒng)測試 365.2.1測試環(huán)境 365.2.2軟件測試的定義 365.2.3軟件詳細(xì)調(diào)試 36總結(jié) 39致謝 40主要參考文獻(xiàn) 41附錄一:部分程序源代碼 421數(shù)據(jù)庫連接代碼 422登錄模塊代碼 433注冊模塊代碼 444購物車模塊代碼 45前言目前,網(wǎng)絡(luò)正以一種前所未有的沖擊力在影響著人類的活動,包括人類的生產(chǎn)和日常生活。網(wǎng)絡(luò)的誕生和發(fā)展,顛覆了傳統(tǒng)的信息傳播方式,沖破了存在于傳統(tǒng)交流方式中時間和空間的種種壁壘,極大地改變了人類從物質(zhì)到精神、從形式到內(nèi)容、從生產(chǎn)到生活的各種活動,并且給人類帶來了新的機遇和挑戰(zhàn)。2006年1月17日,中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)在京發(fā)布“第十七次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告”。報告顯示,截至2005年12月31日,我國上網(wǎng)用戶總數(shù)突破1億,為1.11億人,其中寬帶上網(wǎng)人數(shù)達(dá)到6430萬人。目前,我國網(wǎng)民數(shù)和寬帶上網(wǎng)人數(shù)均位居世界第二。國家頂級域名CN注冊量首次突破百萬,達(dá)到109萬,成為國內(nèi)用戶注冊域名的首選,穩(wěn)居亞洲第一。上網(wǎng)計算機數(shù)達(dá)到4950萬臺,網(wǎng)絡(luò)國際出口帶寬達(dá)到136106M,網(wǎng)站數(shù)達(dá)到69.4萬個。IP地址總數(shù)達(dá)到7439萬個,僅次于美國和日本,位居世界第三。在互聯(lián)網(wǎng)服務(wù)業(yè)務(wù)方面:電子郵件、搜索引擎、網(wǎng)上銀行、在線交易、網(wǎng)絡(luò)廣告、網(wǎng)絡(luò)新聞、網(wǎng)絡(luò)游戲等服務(wù)業(yè)務(wù)仍然快速的發(fā)展著。而本次畢業(yè)設(shè)計的任務(wù)是,構(gòu)建一個電子商務(wù)網(wǎng)站,采用的主要技術(shù)是基于服務(wù)器端的JSP、Java的組件JavaBean,以及網(wǎng)頁編程語言HTML。JSP是JavaServerPage的縮寫,是由SunMicrosystems公司倡導(dǎo)、許多公司參與建立一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),它在動態(tài)網(wǎng)頁的建設(shè)中有強大而特別的功能。JSP是一種服務(wù)器端HTML(或XML)嵌入Java代碼的腳本語言,是開發(fā)Web動態(tài)網(wǎng)站快速而有效的工具,JSP技術(shù)的優(yōu)勢:1.JSP技術(shù)是用Java語言作為腳本語言的。Java語言是成熟的、強大的、易擴充的編程語言。2.高效性與安全性。JSP在執(zhí)行前先被編譯成字節(jié)碼,字節(jié)碼由Java虛擬機解釋執(zhí)行,比源碼解釋效率高。3.可維護(hù)性。由于JSP技術(shù)是一種開放的、跨平臺的結(jié)構(gòu),因此Web服務(wù)器、平臺及其他組件能很容易升級或切換,且不會影響JSP基本的應(yīng)用程序。4.穩(wěn)定性。5.產(chǎn)品的多樣性。目前,在國內(nèi)JSP還是一種較新的技術(shù)。但JSP+Servlet+JDBC+JavaBean目前已經(jīng)成為開發(fā)電子商務(wù)平臺的主流技術(shù)。隨著國內(nèi)與國際的接軌,JSP必將成為網(wǎng)站開發(fā)技術(shù)的首選。一網(wǎng)上購物系統(tǒng)概述1.1系統(tǒng)開發(fā)背景1.1.1網(wǎng)上購物的發(fā)展近年來,隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費者展示出一種新穎的購物理念。網(wǎng)上購物系統(tǒng)作為B2B,B2C(BusinesstoCustomer,即企業(yè)對消費者),C2C(CustomertoCustomer,即消費者對消費者)電子商務(wù)的前端商務(wù)平臺,在其商務(wù)活動全過程中起著舉足輕重的作用。本文主要考慮的是如何建設(shè)B2C的網(wǎng)上購物系統(tǒng)。網(wǎng)上購物是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供靜態(tài)和動態(tài)兩類信息資源。所謂靜態(tài)信息是指那些比經(jīng)常變動或更新的資源,如公司簡介、管理規(guī)范和公司制度等等;動態(tài)信息是指隨時變化的信息,如商品報價,會議安排和培訓(xùn)信息等。網(wǎng)上購物系統(tǒng)具有強大的交互功能,可使商家和用戶方便的傳遞信息,完成電子貿(mào)易或EDI交易。這種全新的交易方式實現(xiàn)了公司間文檔與資金的無紙化交換。1.1.2網(wǎng)上購物系統(tǒng)的現(xiàn)狀目前在國內(nèi)PHP與ASP應(yīng)用最為廣泛。而JSP由于是一種較新的技術(shù),國內(nèi)采用的較少。但在國外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務(wù)類的網(wǎng)站,多采用JSP。采用PHP的網(wǎng)站如新浪網(wǎng)(sina)、中國人(Chinaren)等,但由于PHP本身存在的一些缺點,使得它不適合應(yīng)用于大型電子商務(wù)站點,而更適合一些小型的商業(yè)站點。首先,PHP缺乏規(guī)模支持。其次,缺乏多層結(jié)構(gòu)支持。對于大負(fù)荷站點,解決方法只有一個:分布計算。數(shù)據(jù)庫、應(yīng)用邏輯層、表示邏輯層彼此分開,而且同層也可以根據(jù)流量分開,組成二維陣列。而PHP則缺乏這種支持。還有上面提到過的一點,PHP提供的數(shù)據(jù)庫接口支持不統(tǒng)一,這就使得它不適合運用在電子商務(wù)中。ASP和JSP則沒有以上缺陷,ASP可以通過MicrosoftWindowsd的COM/DCOM獲得ActiveX規(guī)模支持,通過DCOM和TranscationServer獲得結(jié)構(gòu)支持;JSP可以通過SUNJava的JavaClass和EJB獲得規(guī)模支持,通過EJB/CORBA以及眾多廠商的ApplicationServer獲得結(jié)構(gòu)支持。三者中,JSP應(yīng)該是未來發(fā)展的趨勢。世界上一些大的電子商務(wù)解決方案提供商都采用JSP/Servlet。比較出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere;西方另外一個非常著名的電子商務(wù)軟件提供商,Intershop。它原來的產(chǎn)品Intershop12,3,4占據(jù)了主要的電子商務(wù)軟件份額。它們都是通過CGI來提供支持的。但去年10月后它推出了Enfinity,一個采用JSP/Servlet的電子商務(wù)ApplicationServer,而且聲言不再開發(fā)傳統(tǒng)軟件。總的來說,ASP,PHP,JSP三者都有相當(dāng)數(shù)量的支持者,而這三者也各有所長,在開發(fā)過程中,我們應(yīng)該根據(jù)實際的需要來使用最合適的技術(shù),本系統(tǒng)則采用較新的JSP技術(shù),一方面JSP的安全性和跨平臺性比較好,另一方面,我也希望能從開發(fā)該系統(tǒng)的過程中,深入學(xué)習(xí)一下這門編程語言。1.2系統(tǒng)的開發(fā)意義Internet的發(fā)展,為改變傳統(tǒng)的商業(yè)運作模式提供了一種技術(shù)上的可行性的方案:利用Internet的技術(shù)和協(xié)議,建立各種企業(yè)內(nèi)部網(wǎng)Intranet,企業(yè)外部網(wǎng)Extranet,通過廉價的通訊手段,將買家與賣家、廠商和合作伙伴緊密結(jié)合在了一起,消除時間與空間帶來的障礙,從而大大的節(jié)約了交易成本,擴大了交易范圍。而在實際的生活中,這種方案已經(jīng)被廣泛的運用到了實際的商業(yè)活動中了,人們將這種交易模式稱為:電子商務(wù)。當(dāng)今比較流行的網(wǎng)上購物系統(tǒng)國外有“淘寶()”,國內(nèi)有“當(dāng)當(dāng)()”。它們都是相當(dāng)優(yōu)秀的電子商務(wù)網(wǎng)站,對其他的網(wǎng)站提供了良好的典范。設(shè)計中可以學(xué)習(xí)參考他們的思想,了解和熟悉整個網(wǎng)站的開發(fā)流程及完整的電子商務(wù)網(wǎng)站應(yīng)有的功能和注意事項。設(shè)計和完成一個電子商務(wù)網(wǎng)站的,將會牽涉到許多技術(shù)上的問題,如:動態(tài)網(wǎng)頁制作技術(shù)的,后臺數(shù)據(jù)庫的設(shè)計和管理,通過實際的制作個網(wǎng)站,可以避免紙上談兵,在實踐中掌握上述技術(shù)的使用。1.3JavaWeb開發(fā)技術(shù)介紹J2EE(Java2PlatformEnterpriseEdition)建立在J2SE(Java2PlatformStandardEdition)的基礎(chǔ)上,為企業(yè)級應(yīng)用提供了完整、穩(wěn)定、安全和快速的Java平臺。J2EE提供的Web開發(fā)技術(shù)主要支持兩類軟件的開發(fā)和應(yīng)用,一類是做高級信息系統(tǒng)框架的Web應(yīng)用服務(wù)器(WebApplcationServer),另一類是在Web應(yīng)用服務(wù)運行的Web應(yīng)用(WebApplication)。J2EE提供了企業(yè)級計算模型和運行環(huán)境,用于開發(fā)和部署多層分布式結(jié)構(gòu)的應(yīng)用模型。該模型具有重用組件的能力、基于擴展標(biāo)記語言(XML)的數(shù)據(jù)交換、統(tǒng)一的安全模式和靈活的事務(wù)控制。它是通過提供企業(yè)計算環(huán)境所必需的各種服務(wù),使得部署在J2EE平臺上的多層應(yīng)用可以實現(xiàn)高可用性、安全性、可擴展性和可靠性。目前,Web動態(tài)網(wǎng)站的開發(fā)技術(shù)很多,如Servlet,JSP,ASP,PHP等,這些技術(shù)都得到了廣泛應(yīng)用,其中JSP技術(shù)的發(fā)展前景最明朗。JSP技術(shù)的前身是Servlet。Servlet是由Java語言編寫,運行在Tomcat服務(wù)器中,能夠主動生成HTML標(biāo)記和客戶端需要的數(shù)據(jù),將生成的數(shù)語返回到客戶端。與傳統(tǒng)的CGI和許多其他類似CGI技術(shù)相比,JavaServlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節(jié)省投資。其詳細(xì)信息表如表1-1所示:表1-1Servlet技術(shù)優(yōu)勢優(yōu)勢說明高效在傳統(tǒng)的CGI中,每個請求都要啟動一個新的進(jìn)程,如果CGI程序本身執(zhí)行時間較短,啟動進(jìn)程所需要的開銷很可能反而超過實際執(zhí)行時間。而在Servlet中,每個請求由一個輕量級的Java線程處理(而不是重量級的操作系統(tǒng)進(jìn)程)在傳統(tǒng)CGI中,如果對同一CGI程序有N個并發(fā)請求,則該CGI程序的代碼在內(nèi)存中重復(fù)裝載了N次;而對于Servlet,處理請求的是N個線程,只需要一份Servlet類代碼。在性能優(yōu)化方面,Servlet也比CGI有著更多的選擇,比如緩沖以前的計算結(jié)果,保持?jǐn)?shù)據(jù)庫連接的活動等等方便Servlet提供了大量的實用工具例程,例如自動地解析和解碼HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭,處理Cookie、跟蹤會話狀態(tài)等功能強大在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web服務(wù)器交互,而普通的CGI程序不能。Servlet還能夠在各個程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實現(xiàn)可移植性好Servlet用Java編寫,ServletAPI具有完善的標(biāo)準(zhǔn)。為I-PlanetEnterpriseServer寫的Servlet無需任何實質(zhì)上的改動即可移植到Apache、MicrosoftIIS或者WebStar。幾乎所有的主流服務(wù)器都直接或通過插件支持Servlet節(jié)省投資不僅有許多廉價甚至免費的Web服務(wù)器可供個人或小規(guī)模網(wǎng)站使用,而且對于現(xiàn)有的服務(wù)器,加上這部分功能也往往是免費的但遺憾的是,Servlet具有一個致命缺點,就是所有響應(yīng)代碼都是通過Servlet程序生成的,如HTML標(biāo)記。Servlet程序中大量的代碼都是用來生成這些HTML標(biāo)記響用代碼,只有其中少部分代碼用作數(shù)據(jù)的處理和響應(yīng)。開發(fā)Servlet程序起來要求較高。Servlet產(chǎn)生之后,沒有像PHP和ASP那樣,快速得到應(yīng)用。因此Sun公司在結(jié)合了Servlet技術(shù)和Asp技術(shù)等特點,又推出了JSP技術(shù),JSP技術(shù)完全繼承了Servlet技術(shù)的優(yōu)勢,并具備了新的優(yōu)勢。如表1-2所示。表1-2JSP優(yōu)勢優(yōu)勢說明數(shù)據(jù)庫內(nèi)容和顯示分離Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面。使用了JSP標(biāo)識或者小腳本來產(chǎn)生頁面上的動態(tài)內(nèi)容。產(chǎn)生內(nèi)容的邏輯被封裝在標(biāo)識和JavaBeans群組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端執(zhí)行。如果核心邏輯被封閉在標(biāo)識和Beans中,那么其他人,如Web管理人員和頁面設(shè)計者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的產(chǎn)生。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識,產(chǎn)生所請求的內(nèi)容(例如,通過存取JavaBeans群組件,使用JDBC技術(shù)存取數(shù)據(jù)庫),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性可重用組件絕大多數(shù)JSP頁面依賴可重用且跨平臺的組件(如JavaBeans或者EnterpriseJavaBeans)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者用戶團(tuán)本所使用。基于組件的方法加速了總體開發(fā)過程。采用標(biāo)識簡化頁面開發(fā)Web頁面開發(fā)人員不會都是熟悉腳本語言的程序設(shè)計人員。JSP技術(shù)封裝了許多易用的功能,用于在與JSP相關(guān)的XML的標(biāo)識中生成動態(tài)內(nèi)容。標(biāo)準(zhǔn)的JSP標(biāo)識能夠存取和實例化JavaBeans組件,設(shè)定或者檢索群組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時的功能一種技術(shù)功能越是強大,其復(fù)雜性就越高,JSP技術(shù)也不例化。在使用JSP技術(shù)編寫高效,安全的Web網(wǎng)站的同時,JSP也面臨入門比較難的問題。與ASP,PHP相比,這三種技術(shù)各其優(yōu)點。其詳細(xì)信息如表1-3所示:表1-3JSP、PHP和ASP技術(shù)比較參數(shù)JSPASPPHP運行速度快較快較快運行耗時較小較大較大難易程度容易掌握簡單簡單運行平臺絕大部分平臺均可Windows平臺Windows/Unix平臺擴展性好較好較差安全性好較差好數(shù)據(jù)庫支持多多多廠商支持多較少較多對XML的支持支持不支持支持函數(shù)支持多較少多對組件的支持支持支持不支持對分布式處理的支持支持支持不支持應(yīng)用程序較廣較廣較廣其中JSP應(yīng)該是未來發(fā)展的趨勢。世界上一些大的電子商務(wù)解決方案提供商都采用JSP/Servlet。比較IBM的Ebusiness,它的核心的采用JSP/Servlet的WebSphere.它推出的Enfinity就是采用JSP/Servlet的電子商務(wù)ApplicationServer。1.4本系統(tǒng)概述本網(wǎng)上書店系統(tǒng)采用的開發(fā)工具是Eclipse,采用Tomcat作為Web服務(wù)器,用SQLSERVER2000作為數(shù)據(jù)庫,編程語言為Java,JavaScript。顯示的頁面為JSP頁面,另外用CSS來對頁面的排版和美觀。本網(wǎng)上書店系統(tǒng)采用B/S模式。主要供兩個角色使用:普通用戶和管理員。普通用戶可以查看圖書,訂購圖書,登錄,注冊,修改密碼以及發(fā)送訂單和給管理員留言等;管理員可以對圖書進(jìn)行增刪改查等維護(hù)工作,以及查看留言和訂單等。1.5 開發(fā)所用軟件介紹1.5.1Eclipse介紹eclipse-galileoEclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentTools,JDT)。Eclipse最初是由IBM公司開發(fā)的替代商業(yè)軟件VisualAgeforJava的下一代IDE開發(fā)環(huán)境,2001年11月貢獻(xiàn)給開源社區(qū),現(xiàn)在它由非營利軟件供應(yīng)商聯(lián)盟Eclipse基金會(EclipseFoundation)管理。2003年,Eclipse3.0選擇OSGi服務(wù)平臺規(guī)范為運行時架構(gòu)。2007年6月,穩(wěn)定版3.3發(fā)布。2008年6月發(fā)布代號為Ganymede的3.4版。2009年7月發(fā)布代號為GALILEO的3.5版。Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比如C++和Python的開發(fā)工具。Eclipse的本身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT和PDE。目前由IBM牽頭,圍繞著Eclipse項目已經(jīng)發(fā)展成為了一個龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一個開發(fā)源碼項目,它其實是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其開放源碼,任何人都可以免費得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來越受人們關(guān)注。近期還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項目,并宣稱Eclipse將來能成為可進(jìn)行任何語言開發(fā)的IDE集大成者,使用者只需下載各種語言的插件即可。雖然大多數(shù)用戶很樂于將Eclipse當(dāng)作JavaIDE來使用,但Eclipse的目標(biāo)不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個組件主要針對希望擴展Eclipse的軟件開發(fā)人員,因為它允許他們構(gòu)建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所?;贓clipse的應(yīng)用程序的突出例子是IBM的WebSphereStudioWorkbench,它構(gòu)成了IBMJava開發(fā)工具系列的基礎(chǔ)。例如,WebSphereStudioApplicationDeveloper添加了對JSP、servlet、EJB、XML、Web服務(wù)和數(shù)據(jù)庫訪問的支持。Eclipse的主要組成:Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成——EclipsePlatform、JDT、CDT和PDE.JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),EclipsePlatform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎(chǔ)。EclipsePlatform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結(jié)束,而另一個工具功能在哪里開始。EclipseSDK(軟件開發(fā)者包)是EclipsePlatform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到EclipsePlatform中的工具。EclipseSDK由Eclipse項目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產(chǎn)的軟件以CPL發(fā)布,第三方組件有各自自身的許可協(xié)議。1.5.2Tomcat介紹Tomcat是ApacheJakarta軟件組織的一個子項目,Tomcat是一個JSP/Servlet容器,它是在SUN公司的JSWDK(JavaServerWebDevelopmentKit)基礎(chǔ)上發(fā)展起來的一個JSP和Servlet規(guī)范的標(biāo)準(zhǔn)實現(xiàn),使用Tomcat可以體驗JSP和Servlet的最新規(guī)范。經(jīng)過多年的發(fā)展,Tomcat不僅是JSP和Servlet規(guī)范的標(biāo)準(zhǔn)實現(xiàn),而且具備了很多商業(yè)JavaServlet容器的特性,并被一些企業(yè)用于商業(yè)用途。Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷地改進(jìn),任何一個感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat是一個輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)器的擴展,但它是獨立運行的,所以當(dāng)你運行tomcat時,它實際上作為一個與Apache獨立的進(jìn)程單獨運行的。這里的訣竅是,當(dāng)配置正確時,Apache為HTML頁面服務(wù),而Tomcat實際上運行JSP頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為7.0.12Released。1.5.3SQLServer2000介紹SQLServer是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由MicrosoftSybase和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個OS/2版本。在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚鑣了。Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本;Sybase則較專注于SQLServer在UNIX操作系統(tǒng)上的應(yīng)用。在本書中介紹的是MicrosoftSQLServer以后簡稱為SQLServer或MSSQLServer。SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng)的一個版本。該版本繼承了SQLServer7.0版本的優(yōu)點同時又比它增加了許多更先進(jìn)的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺使用。 二系統(tǒng)需求分析與總體設(shè)計2.1系統(tǒng)可行性分析 2.1.1技術(shù)可行性分析硬件要求:主要配置為CPU(PII300以上)、內(nèi)存(64M以上)、顯卡(4M以上)以及大容量硬盤(10G以上)等。軟件要求:系統(tǒng)采用Eclipse和SQLServer2000開發(fā),用JSP制作系統(tǒng)的用戶界面,SQLServer2000制作后臺數(shù)據(jù)庫,兩者結(jié)合完成系統(tǒng)功能,可運行在Windows98及以上的系列操作系統(tǒng)上。2.1.2經(jīng)濟可行性分析由于本系統(tǒng)開發(fā)的費用比較低,而在交付使用之后幾年內(nèi)所得的效益完全超過軟件的開發(fā)費用,此后就會帶來相應(yīng)的經(jīng)濟效益,也會因為此軟件的高效性、準(zhǔn)確性、及時性贏得廣大客戶的尊重,取得無形的社會效益。2.1.3操作可行性本系統(tǒng)運行在通用的Windows操作系統(tǒng)上,具有瀏覽器的前臺。具有簡單易學(xué),使用方便等特點,熟悉計算機的人員不需要再經(jīng)過專門的培訓(xùn)即可熟練操作。2.1.4法律可行性本系統(tǒng)是完全有計算機學(xué)院的學(xué)生單獨開發(fā)完成的軟件,使用的是Eclipse和SQLServer2000等授權(quán)軟件,它不是模仿他人已有的軟件,在軟件中也不會設(shè)置各種邏輯陷阱、特洛伊木馬以及其它非法程序,也不會借此發(fā)布非法事件,故在法律上、專利問題上不會存在違反法律的行為。2.2系統(tǒng)需求分析近年來,隨著Internet的訊速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道,并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域,于是電子商務(wù)開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費者展示出一種新穎的購物理念。網(wǎng)上書店系統(tǒng)作為B2B、B2C(BusinesstoCustomer,企業(yè)對消費者),C2C(CustomertoCustomer,消費者對消費者)電子商務(wù)的前端商務(wù)平臺,在其商務(wù)活動的全過程中起著舉足輕重的作用。網(wǎng)上購物是一種具有交互功能的商業(yè)信息系統(tǒng),它向用戶提供靜態(tài)和動態(tài)兩類信息資源。所謂靜態(tài)信息是指那些經(jīng)常變動或更新的資源,如公司簡介,管理規(guī)范和公司制度等;動態(tài)信息是指隨時變化的信息,如商口報價,會議安排和培訓(xùn)信息等。網(wǎng)上購物系統(tǒng)具有強大的交互功能,可隨商家和用戶方便地傳遞信息,完成電子貿(mào)易或EDI交易。這種全新的交易方式實現(xiàn)了公司間文檔與資金的無紙化交換。購物系統(tǒng)作為電子商務(wù)平臺實現(xiàn)的一個方面,在推動電子商務(wù)的發(fā)展上起著非常重要的作用。2.3系統(tǒng)總體設(shè)計 2.3.1MVC模式介紹MVC模式即:“Model-View-Controller”,就是“模式-視圖-控制器”。視圖(View)代表用戶交互界面,對于Web應(yīng)用來說,可以概括為HTML界面,但有可能為XHTML,XML和Applet。模型(Model)就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。控制(Controller)可以理解為從用戶接收請求,將模型與視圖匹配在一起,共同完成用戶的請求。MVC應(yīng)用程序由這三個部分組成。模型,視圖與控制器的分離,使得一個模型可以具有多個示視圖。如果用戶通過某個視圖的控制器改變了模型的數(shù)據(jù),所有其他依賴于這些數(shù)據(jù)的視圖都反映到這些變化。因此,無論何時發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導(dǎo)致示圖的更新。這實際上是一種模型的變化-傳播機制?,F(xiàn)在我們來了解一下MVC三個部分在JSP架構(gòu)中的對應(yīng)關(guān)系位置。View處于Web層或者說是Client層,通常是JSP/Servlet,即頁面顯示部分。Controller也處于Web層,通常用Servlet來實現(xiàn),即頁面顯示的邏輯部分實現(xiàn)。Model處于中間層,通常用服務(wù)端的JavaBean或者EJB實現(xiàn),即業(yè)務(wù)邏輯部分的實現(xiàn)。其形式如圖2-1所示。瀏覽器瀏覽器控制器ServletJSP視圖JavaBean模型應(yīng)用服務(wù)器Database數(shù)據(jù)庫1請求2實例化3數(shù)據(jù)處理4調(diào)用6響用5調(diào)用圖2-1MVC三層架構(gòu)2.3.2系統(tǒng)流程圖整個系統(tǒng)的流程圖如圖2-2所示。用戶管理員管理員用戶管理員管理員登錄已登錄NOYES查看圖書增刪改查查看留言查看訂單修改密碼退出登錄用戶登錄通過NO繼續(xù)YES查看圖書查找圖書放入購物車通過NOYES發(fā)送訂單退出登錄注冊2-2系統(tǒng)流程圖2.4數(shù)據(jù)庫設(shè)計2.4.1數(shù)據(jù)庫ER圖實體: 關(guān)系: 屬性:bookspressbookspresspriceauthornamebidpresentationdiscountrdatetypereserve 圖2-3books屬性圖customercustomerzipmailboxconsumptionaddresstelephonepasswordrealnamenicknamecid圖2-4customer屬性圖managermanagerrrmidpassword圖2-5manager屬性圖issdateissdateorderssumcidpaypatternpresentationoid圖2-6orders屬性圖itemitembidcidcountsubtotal圖2-7item屬性圖messagemessagecontentdatemessageIdcid圖2-8message屬性圖nn1customerorders發(fā)送patterncidsumpresentationissdateoid 圖2-9發(fā)送訂單nn1發(fā)送messagercontentmessageIdcustomercid 圖2-10發(fā)送留言nn1manger新增rdatebooksbidmid 圖2-11新增圖書2.4.2表格(1)表menager。記錄管理員的賬號與密碼。(2)表customer。記錄客戶信息。(3)表books。記錄書信息。(4)表orders。記錄訂單信息。(5)表item。記錄著購物車的一條記錄的信息。(6)表message。記錄著留言的信息。三系統(tǒng)詳細(xì)設(shè)計3.1數(shù)據(jù)庫連接3.1.1JDBC介紹JDBC(JavaDataBaseConnectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一的訪問,它是由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠使用純Java語言編寫完整的數(shù)據(jù)庫應(yīng)用程序。JDBC是Sun提供的一套數(shù)據(jù)庫編程接口API函數(shù),由Java語言編寫的類,界面組成。用JDBC寫的程序能夠自動地將SQL語句傳送給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)。不但如此,使用Java編寫的應(yīng)用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上編寫不同的應(yīng)用。Java和JDBC的結(jié)合可以讓開發(fā)數(shù)據(jù)庫應(yīng)用程序時真正實現(xiàn)“WriteOnce,RunEverywhere!”JDBC的用法:本系統(tǒng)中運應(yīng)的的是“四層應(yīng)用模型”,即:命令先是被發(fā)送到服務(wù)的“中間層”即業(yè)務(wù)邏輯層,然后由它調(diào)用數(shù)據(jù)庫訪問層稱為O/R層。最后數(shù)據(jù)庫訪問層對SQL語句進(jìn)行處理,通過JDBC訪問數(shù)據(jù)庫,最后將結(jié)果返回給中間層,再由中間層將結(jié)果返回給客戶。如圖3-1所示。Http,RMI等Http,RMI等客戶機業(yè)務(wù)邏輯中間層O/R映射,中間層JDBC數(shù)據(jù)庫數(shù)據(jù)庫協(xié)議圖3-1四層應(yīng)用模型3.2系統(tǒng)功能模塊3.2.1登錄模塊管理員想要進(jìn)行相關(guān)操作或者用戶想要購買書都要進(jìn)行登錄。輸入的賬號和密碼將提交到相應(yīng)的Servlet類中進(jìn)行處理。如果賬號和密碼都正確,則通過,否則不能過。如圖3-2所示。YESYES響應(yīng)NO請求登錄頁面通過Servlet圖3-2登錄模塊流程圖3.2.2注冊模塊當(dāng)用戶想要創(chuàng)建一個賬號時,便要進(jìn)行注冊。通過注冊頁面,用戶輸入注冊信息,點擊“注冊”后,信息首先將提交到過濾器,判斷輸入的信息是否合法。如果不合法,則返回注冊界面,重新輸入;如果合法過濾器則將信息進(jìn)一步提交給Servlet處理,Servlet調(diào)用數(shù)據(jù)庫操作類,將信息保存到數(shù)據(jù)庫中。如圖3-3所示。YESYES保存調(diào)用響應(yīng)NO請求注冊頁面過濾器合法Servlet數(shù)據(jù)庫處理類數(shù)據(jù)庫響應(yīng)圖3-3注冊模塊流程圖3.2.3圖書操作模塊 (1)新增。當(dāng)管理員登錄之后,便可以向數(shù)據(jù)庫中新增圖書。通過新增頁面,管理員輸入要新增的書的信息,點擊“新增”之后,信息便被提交到過濾器中。過濾器判斷管理員輸入的是否合法。如果不合法,返回新增頁面;如果合法,則過濾器將信息進(jìn)一步提交給Servlet處理,Servlet將調(diào)用數(shù)據(jù)庫處理類,將信息保存到數(shù)據(jù)庫中。如圖3-4所示。 響應(yīng)響應(yīng)保存NOYES調(diào)用合法Servlet數(shù)據(jù)庫處理類數(shù)據(jù)庫新增頁面過濾器響應(yīng)圖3-4新增模塊流程圖(2)刪除。當(dāng)管理員登錄之后,可以根據(jù)書的編號,對書進(jìn)行刪除。通過點擊“刪除”,將要刪除的書的編號提交到Servlet中,Servlet便根據(jù)書的編號調(diào)用數(shù)據(jù)庫處理類,將書從數(shù)據(jù)庫中刪除。如圖3-5所示。刪除刪除請求調(diào)用刪除頁面數(shù)據(jù)庫處理類數(shù)據(jù)庫Servlet響應(yīng)圖3-5刪除模塊流程圖(3)修改。當(dāng)管理員登錄之后,可以對書信息進(jìn)行修改。通過點擊“修改”,信息便被提交到過濾器中。過濾器判斷管理員輸入的是否合法。如果不合法,返回新增頁面;如果合法,則過濾器將信息進(jìn)一步提交給Servlet處理,Servlet將調(diào)用數(shù)據(jù)庫處理類,將信息保存到數(shù)據(jù)庫中。該流程圖和圖3-4類似。(4)查找。管理員和客戶都可以對書進(jìn)行查找。通過點擊“查找”,關(guān)鍵字和查找的內(nèi)容便被提交到Servlet中,Servlet將調(diào)用數(shù)據(jù)庫處理類,將查找到的結(jié)果返回到查找頁面。如圖3-6所示:調(diào)用調(diào)用查找響應(yīng)請求刪除頁面數(shù)據(jù)庫處理類數(shù)據(jù)庫Servlet返回結(jié)果圖3-6查找模塊流程圖3.2.4購物車模塊購物車模塊是本系統(tǒng)中一個非常重要的模塊。一個購物車包括以下幾項:1客戶的昵稱(昵稱是唯一的,可以用來標(biāo)識不同的客戶)。表示這個購物車是誰的。可以為空,但在進(jìn)行結(jié)算時,這個值必須初始化,即客戶必須已登錄。2一個由Item項組成的集合。Item是由書號,書名,數(shù)量,小計組成的。一個購物車可以有0個或多個Item項。當(dāng)一本書第一次加入購物車時,便新建一個Item項。當(dāng)再次加入書時,數(shù)量加1,并且小計加上書的單價。當(dāng)一本書從購物車中刪除時,數(shù)量減1,并且小計減去書的單價。如果某個Item項的數(shù)量為0,則刪去該項。3總計。所有小計的和。流程圖如3-7所示。書書放入是否有購物車是否登錄創(chuàng)建一個匿名購物車創(chuàng)建一個帶呢稱的購物車該書是否為第一次加入購物車書刪除對應(yīng)的Item的count減1。小計減去單價購物車該Item項的count是否為0刪除該Item項繼續(xù)新建Item項對應(yīng)的Item項加1,小計加上單價繼續(xù)NOYESNOYESYESYESYES圖3-7購物車模塊流程圖3.2.5訂單模塊當(dāng)客戶購物完畢要發(fā)送訂單時,如果未登錄,則先進(jìn)行登錄。如果登錄了,且購物車?yán)镉袌D書,則進(jìn)入訂單發(fā)送頁面。這時,客戶還可以修改購物車或者個人信息。點擊“提交定單”之后,信息將提交到Servlet。Servlet調(diào)用數(shù)據(jù)庫處理類,將信息保存到數(shù)據(jù)庫中。而管理員則可以查看所有的訂單。如圖3-8所示.。 訂單發(fā)送頁面訂單發(fā)送頁面修改提交訂單修改個人信息或者購物車Servlet數(shù)據(jù)庫處理類數(shù)據(jù)庫交易成功頁面NOYES請求調(diào)用保存響應(yīng)圖3-8訂單模塊流程圖3.2.6留言模塊用戶可以通過留言模塊給管理員留言,點擊“提交”之后,信息將被提交到Servlet。Servlet將調(diào)用數(shù)據(jù)庫處理類,將信息保存到數(shù)據(jù)庫中。而管理員則可以查看所有留言并刪除留言。管理員點擊“刪除”之后,信息將被提交到Servlet。Servlet將調(diào)用數(shù)據(jù)庫處理類,將留言從數(shù)據(jù)庫中刪除。如圖3-9所示。 用戶Servlet用戶Servlet留言頁面數(shù)據(jù)庫處理類數(shù)據(jù)庫請求調(diào)用保存響應(yīng)請求調(diào)用刪除管理員留言頁面Servlet響應(yīng)數(shù)據(jù)庫處理類數(shù)據(jù)庫3.2.7信息修改模塊用戶和管理員登錄之后都可以修改自己的密碼。另處,用戶在發(fā)送訂單之前也可以修改個人信息如:收獲地址,聯(lián)系電話等。(1)當(dāng)修改密碼時,信息將會被提交到Servlet,Servlet判斷原密碼是否正確和兩次密碼輸入是否一致。若原密碼不正確或者兩次密碼輸入不一致,則返回修改頁面重新輸入。若兩者都無誤,則調(diào)用數(shù)據(jù)庫處理類,將新密碼保存到數(shù)據(jù)庫中。修改成功。如圖3-10所示。密碼修改Servlet密碼修改Servlet原密碼是否正確兩次密碼是否一致數(shù)據(jù)庫數(shù)據(jù)庫處理類YESNOYESNO請求保存(2)當(dāng)用戶修改個人信息時,信息首先將被提交到過濾器中,如果輸入不合法,則返回修改頁面。如果合法,則信息會進(jìn)一步提交到Servlet中,Servlet將調(diào)用數(shù)據(jù)庫處理類,將新信息保存到數(shù)據(jù)庫中。如圖3-11所示。個人信息修改過濾器個人信息修改過濾器是否合法Servlet數(shù)據(jù)庫處理類數(shù)據(jù)庫YESNO調(diào)用保存請求四系統(tǒng)頁面設(shè)計每個頁面(除留言頁面,幫助頁面,退出頁面,成功交易頁面外)頭部和腳部都是一樣的,而中間的部分因不同頁面而不同。4.1首頁首頁供用戶或者管理員登錄,用戶注冊,查看圖書等。如圖4-1所示: 圖4-1未登錄的首頁4.2用戶登錄頁面用戶輸入昵稱和密碼,如果正確則跳轉(zhuǎn)至首頁。如果有誤,則提示,并重新登錄。如圖4-2所示: 圖4-2用戶登錄頁面4.3購物車頁面 購物車頁面顯示了購物車的信息:書名,書的單價,數(shù)量,小計,以及總計。點擊右下腳的“進(jìn)入結(jié)算中心”便可以進(jìn)入結(jié)算中心。如圖4-3所示:圖4-3購物車頁面4.4結(jié)算中心頁面用戶購物完畢后便可以進(jìn)入結(jié)算頁面進(jìn)行結(jié)算并發(fā)送訂單。訂單上顯示了用戶的購物車信息和個人基本信息,用戶可以修改。另外,用戶還必須選擇付款方式。以及填寫對該訂單的一些備注(可不填)。如圖4-4所示:圖4-4結(jié)算中心頁面4.5用戶注冊頁面用戶輸入注冊信息,便可以注冊。如果用戶輸入的信息合法,則顯示“注冊成功信息”;如果用戶輸入的信息不合法,則提示相應(yīng)的錯誤輸入。如圖4-5所示:圖4-5用戶注冊頁面 4.6新增圖書頁面 通過此頁面,管理員可以向數(shù)據(jù)庫中添加新的圖書。如果管理員輸入的信息合法,則顯示“新增成功”;如果管理員輸入的信息不合法,則提示相應(yīng)的錯誤信息。如圖4-6所示: 圖4-6新增圖書頁面 4.7修改圖書頁面通過此頁面,管理員可以修改現(xiàn)有圖書的信息,并把新的信息保存到數(shù)據(jù)庫中。如果管理員輸入的信息合法,則顯示“修改成功”;如果管理員輸入的信息不合法,則提示相應(yīng)的錯誤信息。如圖4-7所示:圖4-7修改圖書頁面 4.8刪除圖書頁面 通過此頁面,管理員可以刪除數(shù)據(jù)庫現(xiàn)有的圖書。點擊“刪除”之后,則可以刪除該書,并提示管理員圖書已刪除。如圖4-8所示:圖4-8刪除圖書頁面4.9查找圖書頁面用戶或者管理員通過選擇關(guān)鍵字和內(nèi)容便可以查找與之相關(guān)的圖書。如圖4-9所示:圖4-9查找圖書頁面五系統(tǒng)難點分析與軟件測試5.1系統(tǒng)難點分析之購物車模塊 本系統(tǒng)最大的難點我覺得在于購物車模塊。5.1.1購物車的歸屬問題當(dāng)我們逛一個網(wǎng)上商店時,我們可以先登錄,然后瀏覽商品,并購買商品;也可以不登錄,瀏覽商品,將商品放入購物車,只是在結(jié)算的時候需要進(jìn)行登錄,并根據(jù)您的賬號顯示出您的基本信息。本系統(tǒng)也是這樣設(shè)計的。并且一個用戶在不同頁面之間的跳轉(zhuǎn)時,會維持當(dāng)前的系統(tǒng)中已登錄的賬號和購物車是一樣的。這就是靠JSP的內(nèi)置對象Session來起用的。Session對象簡介:Session對象是JSP中一個很重要的內(nèi)置對象,當(dāng)用戶與服務(wù)器連接時,服務(wù)器為每個用戶創(chuàng)建一個Session對象,并設(shè)定其中的內(nèi)容。創(chuàng)建的Session對象之間相互獨立,服務(wù)器可以借此來辨別用戶信息,進(jìn)而提供個別服務(wù)。Session對象在用戶第一次連接到服務(wù)器時自動創(chuàng)建,并被并聯(lián)到Request對象。本系統(tǒng)中,當(dāng)用戶第一次打瀏覽器時,系統(tǒng)便為之分配一個Session對象。此后,用戶在不同頁面之間切換時,其Session對象是不變的。因此通過Session對象便可以維持用戶在整個從登錄到退出期間同一個賬號,同一個購物車。當(dāng)用戶退出時,系統(tǒng)便調(diào)用Session對象的removeAttribute方法來注銷Session對象里面的內(nèi)容。當(dāng)用戶再次登錄時,此時的Session對象便不同了。5.1.2購物車的設(shè)置問題本系統(tǒng)中,購物車主要包括三大部分。一是nickname,用來表是這個購物車的歸屬。二是一個以Item對象作為元素的集合,Item表示購物車的一項,由圖書編號,圖書名稱,數(shù)量,小計購成。三是總計,所有小計之后便購成總計。購物車類的主要方法:構(gòu)造函數(shù)(兩個,分別用來構(gòu)造一個帶nickname的購物車和一個匿名的購物車),addToList(向購物車中增加一條記錄),delFromList(從購物車中刪除一條記錄),getSum(到得總計)。5.2系統(tǒng)測試5.2.1測試環(huán)境操作系統(tǒng):WindowsXP數(shù)據(jù)庫:MicrosoftSQLServer2000開發(fā)工具平臺:Eclipse5.2.2軟件測試的定義軟件測試的目的就是在軟件投入生產(chǎn)性運行之前,盡可能多的發(fā)現(xiàn)軟件中的錯誤.目前,軟件測試仍然是保證軟件質(zhì)量的關(guān)鍵步驟,它是對軟件規(guī)格說明、設(shè)計和編碼的最后復(fù)審。測試的目標(biāo):1.測試是為了發(fā)現(xiàn)程序的錯誤而執(zhí)行程序的過程;2.好的測試方案實際可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案;3.成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。該軟件經(jīng)過了先期的模塊測試和后期的綜合測試,一切正常,達(dá)到了預(yù)期的要求。5.2.3軟件詳細(xì)調(diào)試(一)密碼修改在用戶密碼修改模塊,首先要先輸入原始密碼,再兩次輸入新密碼。以用戶zly為例。輸入:(1)原密碼:123新密碼:abc確認(rèn)密碼:abc預(yù)測:修改成功測示結(jié)果:修改成功。(2)原密碼:123新密碼:空確認(rèn)密碼:空預(yù)測:修改失敗測示結(jié)果:修改成功原因:因為這時原密碼輸入正確,且兩次密碼輸入相同,滿足密碼修改的條件。這時新密碼便是空,這不是我們想要的。之后,我便把新密碼和確認(rèn)密碼都設(shè)為非空,一旦出現(xiàn)空的情況便提示出錯,要求再次輸入。(二)注冊在用戶注冊模塊,用戶輸入點擊提交后,便會對用戶輸入的信息進(jìn)行檢測,如果合法則注冊成功,如果失敗,則提示錯誤信息。輸入:(1)呢稱:abc真實姓名:張三密碼:123確認(rèn)密碼:123郵箱:地址:安徽省馬鞍山市電話:郵政編碼:123456預(yù)測:修改成功測示結(jié)果:修改成功(2)呢稱:abc真實姓名:張三密碼:123確認(rèn)密碼:123郵箱:zhangsan地址:安徽省馬鞍山市電話:郵政編碼:123456預(yù)測:郵箱格式錯誤測示結(jié)果:郵箱格式錯誤在測試過程中,我經(jīng)過模塊測試,排除了系統(tǒng)的大部分錯誤。當(dāng)然排除所有錯誤是不太可能的,我想應(yīng)該還有些不易檢測到的錯誤還沒有被發(fā)現(xiàn),需要在使用的過程中進(jìn)一步的完善,數(shù)據(jù)庫的加密是一個重要的概念,在實際的應(yīng)用過程中是一個尚待解決的問題,應(yīng)該做好數(shù)據(jù)庫的完善工作,特別是備份和安全工作;另一方面本系統(tǒng)沒有制作相關(guān)的打印,由于時間倉促難免有錯誤和不完善的地方,希望老師能夠幫我指點和糾正。測試總結(jié)綜合以上測試讓我了解到:寫代碼的過程是不斷調(diào)試的過程,其中內(nèi)容和經(jīng)過不在這里一一贅述。事實上有些糾錯的過程往往是出人意料的,比如:臨界值的選取要考慮全面,否則系統(tǒng)就不能正常運行,程序的健壯性就不夠。十分感謝我的導(dǎo)師在各個方面給予了我很大的幫助,讓我盡量全面地考慮到各種不同情況。另外,具體寫代碼時我也深深地體會到軟件測試在編程中的占有的重要性,而且在本軟件的測試中,讓我確實的增長了不少知識,確實是收益匪淺??偨Y(jié)通過這幾個月對畢業(yè)設(shè)計的不斷更新和完善,我所做的網(wǎng)上書店系統(tǒng)已經(jīng)基本上成型,基本完成了網(wǎng)上購物系統(tǒng)所要求的主要功能。當(dāng)然由于時間倉促,加之本人水平有限,系統(tǒng)中難免存在著許多疏漏和不足之處,這就要求我在日后的工作中更加努力的學(xué)習(xí)和提高。幾個月的時間不知不覺地過去了,現(xiàn)在看著自己的勞動成果,不禁感慨萬千。在這次的畢業(yè)設(shè)計中,我體會最深的是書本知識和實踐相結(jié)合的問題。書本知識和實際工作的差距,不是說幾次上機,幾次實驗就可以完美解決的。它需要我們用不斷的實踐去親身體會,它要求我們自身擁有克服困難,解決問題的能力,而這些都是我們以前在大學(xué)生活中沒有體會到的。在今后的學(xué)習(xí)工作和生活中,我還有很多要學(xué)習(xí)的知識,還需要進(jìn)一步的,更深層次地積累扎實的實踐技術(shù)。現(xiàn)在,理論知識不僅得到了進(jìn)一步地理解,還將它和具體的應(yīng)用系統(tǒng)聯(lián)系起來,分析它在實際中的應(yīng)用。畢業(yè)設(shè)計任務(wù)的完成僅僅是一個開始,畢業(yè)以后會有更多的挑戰(zhàn)等著我去面對。畢業(yè)設(shè)計的過程對我來說是寶貴的經(jīng)驗,其中的歷練積累,讓我不至于一見到問題就手忙腳亂,可以充滿信心地去面對任何考驗,為自己的未來開創(chuàng)一片精彩的天地。致謝本論文是在xxx老師的悉心指導(dǎo)下完成的。xxx在該項目的需求分析和設(shè)計分析時給了我很多的幫助,系統(tǒng)的每一個功能,xxx都和我進(jìn)行了詳細(xì)的探討。作為一名即將離校的學(xué)生,在就業(yè)和以后人生規(guī)劃問題上的迷茫,許老師也給了我一些寶貴的指引。在此,感謝許老師的督促和指導(dǎo)。感謝我的父母,這么多年對我學(xué)業(yè)的支持。在實習(xí)的這段時間里,我深刻感覺到了掙錢很辛苦,這些年為了我能夠繼續(xù)求學(xué),他們辛苦了。另外,我還要感謝計算機學(xué)院的各位領(lǐng)導(dǎo)和老師們,感謝您們大學(xué)四年里傳授我知識,謝謝您們在學(xué)業(yè)上的精心指導(dǎo)。此外,感謝四年來所有鼓勵和幫助過我的同學(xué)、學(xué)長、學(xué)姐們。是他們給我了學(xué)業(yè)、生活上的幫助與支持,祝他們事業(yè)有成。最后向參與此次答辯的老師致以深深的謝意!主要參考文獻(xiàn)1.張銀鶴,劉治國《《JSP完全學(xué)習(xí)手冊》》,北京:清華大學(xué)出版社,2007.112.連洪武,《《EclipseWeb開發(fā)從入門到精通》》,北京:清華大學(xué)出版社,2007.53.陳剛,《《CSS標(biāo)準(zhǔn)網(wǎng)頁布局開發(fā)指南》》,北京:清華大學(xué)出版社,2007.34.張海藩,《軟件工程導(dǎo)論》(第三版),北京:清華大學(xué)出版社,1998.15.王珊,薩師煊《《數(shù)據(jù)庫系統(tǒng)概論》》,北京,高等教育出版社,1999.66.李鐘慰,馬文強《《Java從入門到精通》》,北京,清華大學(xué)出版社,2008.97.溫謙,《《HTML+CSS網(wǎng)頁設(shè)計與布局從入門到精通》》,北京,人民郵電出版社2008.88.張軍《《JSP網(wǎng)絡(luò)應(yīng)用開發(fā)例學(xué)與實踐》》,北京,清華大學(xué)出版社,2006.4附錄一:部分程序源代碼1數(shù)據(jù)庫連接代碼packagedatabase;importjava.sql.Connection;importjava.sql.DriverManager;publicclassDBConnection{ privateStringdriver; privateStringurl; privateStringuser; privateStringpassword;publicDBConnection(){ this.driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; this.url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webshoping;";//直接連到webshopping數(shù)據(jù)庫 this.user="sa"; this.password="123";}publicConnectiongetDBConnection(){ try{ System.out.println("正在連接到數(shù)據(jù)庫"); Class.forName(driver); Connectionconn=DriverManager.getConnection(url,user,password); System.out.println("已連接到數(shù)據(jù)庫!"); returnconn; }catch(Exceptione){ System.out.println("連接數(shù)據(jù)庫出錯!"+e); } returnnull; } publicstaticvoidmain(String[]args){ DBConnectiondbc=newDBConnection(); dbc.getDBConnection(); }}2登錄模塊代碼packageservlet;importjava.io.IOException;importjava.sql.SQLException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importdatabase.*;importbean.*;publicclassClogonextendsHttpServlet{ GetDatagetdata=newGetData(); privatestaticfinallongserialVersionUID=1L; protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Customercustomer=newCustomer(); Stringnickname=newString(request.getParameter("nickname").getBytes("ISO-8859-1"),"GBK"); Stringpassword=newString(request.getParameter("password").getBytes("ISO-8859-1"),"GBK"); try{ customer=getdata.getCustomerByNickName(nickname); }catch(SQLExceptione){ e.printStackTrace(); } if(!customer.getNickName().equals("")&&customer.getPassword().equals(password)){ request.setAttribute("nickname1",nickname); request.getRequestDispatcher("index.jsp").forward(request,response); } else{ request.setAttribute("message","昵稱或密碼錯誤!"); request.getRequestDispatcher("clogon.jsp").forward(request,response); } } protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ this.doPost(request,response); } publicvoidinit()throwsServletException{ }}3注冊模塊代碼packageservlet;importjava.io.IOException;importjava.sql.SQLException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importdatabase.InputData;publicclassRegistextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; InputDatainputdata=newInputData(); Stringmessage=""; booleansuccess=false; publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ System.out.println("C"); Stringnickname=newString(request.getParameter("nickname").getBytes("ISO-8859-1"),"GBK"); Stringrealname=newString(request.getParameter("realname").getBytes("ISO-8859-1"),"GBK"); Stringpassword=newString(request.getParameter("password1").getBytes("ISO-8859-1"),"GBK"); Stringmailbox=newString(request.getParameter("m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 白酒總代理合同年
- 小學(xué)口算練習(xí)題小數(shù)300道
- 2025年呼和浩特貨運從業(yè)考試試題及答案解析
- 2025年吉林市a2貨運從業(yè)資格證模擬考試
- 小學(xué)四年級數(shù)學(xué)計算題大全
- 2022年新課標(biāo)八年級上冊道德與法治《8.2 堅持國家利益至上 》聽課評課記錄
- 社區(qū)殘疾人工作計劃
- 酒店主管年度個人總結(jié)
- 車間生產(chǎn)主管年終總結(jié)
- 電子技術(shù)實習(xí)生工作總結(jié)
- 小學(xué)一年級數(shù)學(xué)思維訓(xùn)練100題(附答案)
- 蘇教版小學(xué)信息技術(shù)五年級下冊五年級下冊教案全集
- 蘇教版八年級數(shù)學(xué)上冊期末試卷及答案【完美版】
- 法院拍賣議價協(xié)議書
- 新能源充電站運營手冊
- 2021年人教版八年級物理上冊期末考試卷(完美版)
- TB 10009-2016 鐵路電力牽引供電設(shè)計規(guī)范
- 2024年東南亞雞蛋分級包裝設(shè)備市場深度研究及預(yù)測報告
- 2024年蘭州新區(qū)實正鑫熱電有限公司招聘筆試沖刺題(帶答案解析)
- 血透室護(hù)士長述職
- (正式版)JTT 1218.4-2024 城市軌道交通運營設(shè)備維修與更新技術(shù)規(guī)范 第4部分:軌道
評論
0/150
提交評論