已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于SSH的體育用品銷售管理系統(tǒng)開發(fā)摘要隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)的規(guī)模也逐漸增大,網(wǎng)絡(luò)的元素也隨之不斷增加,有的利用其通信,有的利用其商業(yè)用途,在網(wǎng)絡(luò)上進(jìn)行出售、收購、宣傳等操作,從而使得網(wǎng)絡(luò)越來越成為現(xiàn)今社會上必不可少的元素,而網(wǎng)站就是這個(gè)網(wǎng)絡(luò)里很龐大的元素。本文所討論的系統(tǒng)是基于目前WEB開發(fā)中流行的2大框架STRUTS、HIBERNATE的,是典型的B/S架構(gòu)的系統(tǒng),其開發(fā)主要包括應(yīng)用程序的開發(fā),數(shù)據(jù)庫的建立和維護(hù)兩個(gè)方面。本系統(tǒng)前臺主要使用JSP作為開發(fā)語言,后臺使用ORACLE作為數(shù)據(jù)庫管理系統(tǒng),開發(fā)環(huán)境是ECLIPSE,服務(wù)器采用TOMCAT,開發(fā)出的一個(gè)基于WEB技術(shù)的B/S結(jié)構(gòu)的商城購物系統(tǒng)。應(yīng)用此系統(tǒng),商家可以發(fā)布商業(yè)信息,廣告等等。用戶可以查閱、訂購商品,該系統(tǒng)可以為客戶提供更方便、更好、更快的商務(wù)活動空間,實(shí)現(xiàn)網(wǎng)上交易,是一個(gè)綜合性電子商務(wù)系統(tǒng)。從整個(gè)系統(tǒng)結(jié)構(gòu)上看,本系統(tǒng)包括客戶端和服務(wù)器端,客戶端主要針對客戶的一般需求,而服務(wù)器端主要是針對管理員的需求。管理員能夠?qū)φ麄€(gè)系統(tǒng)的數(shù)據(jù)進(jìn)行管理。整個(gè)系統(tǒng)的開發(fā)過程由需求分析,系統(tǒng)的功能設(shè)計(jì),詳細(xì)設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì)等幾個(gè)部分組成。關(guān)鍵詞電子商城;數(shù)據(jù)庫設(shè)計(jì);模塊設(shè)計(jì);數(shù)據(jù)驗(yàn)證SPORTINGGOODSSALESMANAGEMENTSYSTEMBASEDONSSHABSTRACTWITHTHERAPIDDEVELOPMENTOFCOMPUTERTECHNOLOGYANDCOMMUNICATIONTECHNOLOGY,THESCALEOFTHENETWORKALSOINCREASESGRADUALLY,THENETWORKELEMENTHASBEENINCREASING,SOMEUSETHEIRCOMMUNICATION,SOMEUSEITSCOMMERCIALUSE,FORSALE,PURCHASE,PUBLICITY,ETCINTHENETWORKOPERATION,SOASTOMAKETHENETWORKMOREANDMOREBECOMETHEESSENTIALELEMENTINMODERNSOCIETY,ANDTHESITEISVERYLARGEELEMENTSOFTHENETWORKTHESYSTEMWETALKEDABOUTISBASEDONTWOWIDELYUSEDFRAMEWORKSTRUTS2ANDHIBERNATETHISSYSTEMISATYPICALB/SSTRUCTUREOFTHESYSTEM,INCLUDINGTHEDEVELOPMENTOFITSAPPLICATIONDEVELOPMENT,DATABASECREATIONANDMAINTENANCEOFTHETWOAREASTHISSYSTEMATTHEFRONTDESKMAINLYUSINGJSPASADEVELOPMENTLANGUAGE,THEBACKGROUNDUSINGORACLEASTHEDATABASEMANAGEMENTSYSTEM,THEDEVELOPMENTENVIRONMENTISECLIPSE,SERVERUSINGTOMCAT,DEVELOPEDAWEBTECHNOLOGYBASEDB/SSTRUCTUREOFTHESYSTEMOFSHOPPINGMALLTHROUGHTHISSYSTEM,ADVERTISERCANISSUESBUSINESSINFORMATIONANDPRODUCTSADVERTISEMENTS,ANDUSERSCANCONVENIENTLYORDERGOODSDEPENDINGONB/SPATTERNBECAUSEOFRUNNINGONWEB,THESYSTEMCANOFFERWHOLEDAY,BETTERMOREQUICKROOMOFACTIVITIESTOREALIZETHEBASISFUNCTIONSOFTRANSACTIONININTERNETTHEWEB,ACCORDINGTOTHECURRENTDESIGNPRINCIPLESOFBUSINESSWEB,GIVESFIRSTPLACETOTRANSACTIONFUNCTIONININTERNET,ITISASYNTHESISELECTRONICCOMMERCEWEBFROMTHEANALYSISABOVE,THECONTENTOFTHISPAPERMAINLYINCLUDESTHEDESIGNOFCLIENTANDSERVERCLIENTPARTISSPECIFICTOUSER,SERVERPARTISSPECIFICTOADMINISTRATORADMINISTRATORANDMANAGERTHEHOLESYSTEM,GUARANTEETHEGUARANTEEOFDATABASETHEDEVELOPINGOFTHISSYSTEMCONSISTOFDEMANDANALYSIS、FUNCTIONALDESIGN、DETAILEDDESIGN、DATABASEDESIGNKEYWORDSSALESNETWORKDESIGNMODULARDESIGNDATAVALIDATION目錄摘要IABSTRACTII第一章緒論111課題的背景和意義112工作內(nèi)容113J2EE體系結(jié)構(gòu)介紹1131TOMCAT簡介2132AJAX技術(shù)簡介2133STRUTS2框架的引入3134HIBERNATE框架的引入314網(wǎng)站工作模式415本章小結(jié)4第二章需求分析521需求分析概述522功能模塊圖523可行性分析5231經(jīng)濟(jì)可行性5232技術(shù)可行性6233環(huán)境可行性分析624用戶需求分析6241用戶注冊需求6242用戶登錄需求6243購買商品需求6244購物車管理需求6245訂單管理需求625管理員需求分析6251管理庫存的需求626系統(tǒng)用例圖7第三章概要設(shè)計(jì)931系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)932系統(tǒng)的層次結(jié)構(gòu)設(shè)計(jì)933數(shù)據(jù)庫設(shè)計(jì)934系統(tǒng)組成1335系統(tǒng)文件組織設(shè)計(jì)13第四章詳細(xì)設(shè)計(jì)1541系統(tǒng)運(yùn)行環(huán)境1542系統(tǒng)部署架構(gòu)1543系統(tǒng)時(shí)序圖1544系統(tǒng)的持久化層具體實(shí)現(xiàn)15441定義HIBERNATE工廠類15442使用DAO模式1645系統(tǒng)業(yè)務(wù)邏輯層設(shè)計(jì)1646系統(tǒng)接口及映射文件的實(shí)現(xiàn)設(shè)計(jì)1647模塊功能設(shè)計(jì)與實(shí)現(xiàn)16471登陸功能16472注冊功能17473購買商品功能17474用戶訂單管理18475用戶信息修改1948系統(tǒng)業(yè)務(wù)流程圖2049本章小結(jié)20第五章測試小結(jié)2151測試說明2152系統(tǒng)功能測試2153本章小結(jié)25結(jié)論26參考文獻(xiàn)27致謝28外文原文29中文翻譯37第一章緒論11課題的背景和意義隨著網(wǎng)絡(luò)的發(fā)展越來越迅速,人們也希望互聯(lián)網(wǎng)能對自己的生活、工作提供越來越方便快捷的支持和幫助。本體育用品銷售管理系統(tǒng)是在INTERNET開放的網(wǎng)絡(luò)環(huán)境下,基于瀏覽器/服務(wù)器應(yīng)用方式,實(shí)現(xiàn)顧客網(wǎng)上交易的一種新型的網(wǎng)購模式。本系統(tǒng)將傳統(tǒng)的商品采購流程數(shù)字化,可以大量減少人力、物力另一方面突破了時(shí)間和空間的限制,使得網(wǎng)上交易可以在任何時(shí)間、任何地點(diǎn)進(jìn)行,極大地方便了消費(fèi)者消費(fèi),使商品購買變得輕松、快捷、方便,從而大大提高了效率。以前網(wǎng)上銷售管理系統(tǒng)大多數(shù)是基于客戶機(jī)/服務(wù)器的模式來設(shè)計(jì)和開發(fā)的。隨著技術(shù)飛速發(fā)展,傳統(tǒng)的客戶機(jī)/服務(wù)器面臨著嚴(yán)峻的挑戰(zhàn),其中最為突出的問題是開發(fā)負(fù)擔(dān)重、維護(hù)困難等。目前,許多的網(wǎng)站都采用了STRUTS2、HIBERNATE組合來開發(fā),所以本系統(tǒng)所采用的框架與技術(shù)是目前業(yè)界流行的框架STRUTS2與HIBERNATE的組合使用,這樣的選擇讓業(yè)務(wù)邏輯更清晰,數(shù)據(jù)的管理也更加方便。STRUTS是屬于表現(xiàn)層的技術(shù),而HIBERNATE則主要與數(shù)據(jù)處理打交道。兩者都是開源的框架,這樣,在經(jīng)濟(jì)的可行性分析上面是十分占優(yōu)勢的。本文介紹的是一個(gè)網(wǎng)上體育用品銷售管理系統(tǒng)。系統(tǒng)具有高可靠性、可擴(kuò)展性和重用性的特點(diǎn)。12工作內(nèi)容體育用品銷售管理系統(tǒng)是運(yùn)用現(xiàn)代化的科學(xué)方法,對銷售進(jìn)行合理的組織、整合和調(diào)配,讓用戶能方便的進(jìn)行商品購買、查看等。本系統(tǒng)使用SUN公司的J2EE架構(gòu),并以STRUTS為框架,HIBERNATE作為持久化層,采用了WEB應(yīng)用系統(tǒng)的MVC體系結(jié)構(gòu)。并研究了設(shè)計(jì)模式與框架技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了基于J2EE的體育用品銷售管理系統(tǒng),為以后的研究與實(shí)踐打下了基礎(chǔ)。其中論文主要完成了以下工作()基于STRUTSHIBERNATE構(gòu)件多層WEB應(yīng)用系統(tǒng)的框架及相關(guān)理論研究。()對銷售與管理系統(tǒng)各部分所涉及的功能進(jìn)行分析探討。()按照需求設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)體育用品銷售管理系統(tǒng)。13J2EE體系結(jié)構(gòu)介紹J2EE是一種利用JAVA2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。JAVAEE是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,讓各種依循JAVAEE架構(gòu)的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。J2EE技術(shù)的基礎(chǔ)就是核心JAVA平臺或JAVA2平臺的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),如編寫一次、隨處運(yùn)行的特性、方便存儲數(shù)據(jù)庫的JDBCAPI以及能夠在INTERNET應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對EJB(ENTERPRISEJAVABEANS)、JAVASERVLETSAPI、JSPJAVASERVERPAGES以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開發(fā)者大幅縮短投放市場時(shí)間的體系結(jié)構(gòu)。J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供了對現(xiàn)有應(yīng)用程序集成強(qiáng)有力的支持,完全支持ENTERPRISEJAVABEANS,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。在J2EE開發(fā)模型中,整個(gè)系統(tǒng)可分為以下三個(gè)主要部分()模型(MODULE)模型就是應(yīng)用業(yè)務(wù)邏輯部分,這個(gè)部分主要角色EJB(ENTERPRISEJAVABEANS),借助于EJB強(qiáng)大的組件技術(shù)和企業(yè)級的管理控制,開發(fā)人員可以輕松的創(chuàng)建出可重用的業(yè)務(wù)邏輯模塊。()視圖(VIEW)視圖是用戶界面部分,在WEB應(yīng)用程序中也就是HTML、XML、JSP頁面。這個(gè)部分主要處理用戶看到的東西即用于顯示,動態(tài)JSP部分處理了用戶可看見的動態(tài)網(wǎng)頁,而靜態(tài)的網(wǎng)頁由HTML和XML輸出。()控制器CONTROL控制器負(fù)責(zé)網(wǎng)站的整個(gè)邏輯。它用于管理用戶與視圖發(fā)生的交互??梢詫⒖刂破飨胂癯商幵谝晥D和數(shù)據(jù)之間,對視圖如何與模型交互進(jìn)行管理。通過使視圖完全獨(dú)立于控制器和模型,就可以輕松替換前端客戶程序,即網(wǎng)頁制作人員將可以獨(dú)立自由地改變WEB頁面而不用擔(dān)心影響這個(gè)基于WEB的應(yīng)用程序功能。在J2EE模型中,控制器的功能一般是由SERVLET、JAVABEANS、EJB中的SESSIONBEAN來充當(dāng)?shù)摹?31TOMCAT簡介TOMCAT是APACHE軟件基金會(APACHESOFTWAREFOUNDATION)的JAKARTA項(xiàng)目中的一個(gè)核心項(xiàng)目,由于有了SUN的參與和支持,最新的SERVLET和JSP規(guī)范總是能在TOMCAT中得到體現(xiàn)。由于TOMCAT技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),所以深受JAVA愛好者的喜愛也得到了一些軟件開發(fā)商的認(rèn)可,成為目前比較流行的WEB應(yīng)用服務(wù)器。TOMCAT因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能,所以他深受JAVA愛好者的喜愛。TOMCAT是一個(gè)小型的應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,也是開發(fā)和調(diào)試JSP程序的首選。對于一個(gè)初學(xué)者來說,當(dāng)在一臺機(jī)器上配置好APACHE服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實(shí)際上TOMCAT部分是APACHE服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行TOMCAT時(shí),它實(shí)際上作為一個(gè)與APACHE獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。當(dāng)配置正確時(shí),APACHE為HTML頁面服務(wù),而TOMCAT實(shí)際上運(yùn)行JSP頁面和SERVLET。另外,TOMCAT和IIS、APACHE等WEB服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個(gè)SERVLET和JSP容器,獨(dú)立的SERVLET容器是TOMCAT的默認(rèn)模式。不過,TOMCAT處理靜態(tài)HTML的能力不如APACHE服務(wù)器。132AJAX技術(shù)簡介AJAX全稱“ASYNCHRONOUSJAVASCRIPTANDXML”,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。它包含了以下幾種技術(shù)基于WEB標(biāo)準(zhǔn)XHTMLCSS的表示;使用DOM進(jìn)行動態(tài)顯示及交互;使用XML和XSLT進(jìn)行數(shù)據(jù)交換及相關(guān)操作;使用XMLHTTPREQUEST進(jìn)行異步數(shù)據(jù)查詢、檢索;使用JAVASCRIPT將所有的東西綁定在一起。AJAX,使用它可以構(gòu)建更為動態(tài)和響應(yīng)更靈敏的WEB應(yīng)用程序,讓瀏覽器為用戶提供更為自然的瀏覽體驗(yàn)。AJAX能提供與服務(wù)器異步通信的能力,從而使用戶從請求/響應(yīng)的循環(huán)中解脫出來。借助AJAX,可以在用戶單擊按鈕時(shí),使用JAVASCRIPT和DHTML立即更新UI,并向服務(wù)器發(fā)出異步請求,來執(zhí)行更新或查詢數(shù)據(jù)庫。當(dāng)請求返回時(shí),就可以使用JAVASCRIPT和CSS來相應(yīng)地更新UI,而不是刷新整個(gè)頁面,使用戶看起來是即時(shí)響應(yīng)的。AJAX的核心是JAVASCRIPT對象XMLHTTPREQUEST。該對象是一種支持異步請求的技術(shù)。簡而言之,XMLHTTPREQUEST使用戶可以使用JAVASCRIPT向服務(wù)器提出請求并處理響應(yīng),而不是阻塞用戶。在創(chuàng)建WEB站點(diǎn)時(shí),在客戶端執(zhí)行屏幕更新為用戶提供了很大的靈活性。133STRUTS2框架的引入一個(gè)成功的電子商務(wù)網(wǎng)站的構(gòu)建不僅需要考慮到如何高效快捷的實(shí)現(xiàn)系統(tǒng)功能,還要本著可擴(kuò)展的原則,在一定時(shí)期內(nèi)適應(yīng)技術(shù)發(fā)展與功能擴(kuò)充的需求,同時(shí)要給用戶提供方便、實(shí)用的信息服務(wù),使網(wǎng)站的商務(wù)功能最大化。因此在網(wǎng)上體育用品銷售系統(tǒng)的設(shè)計(jì)中,采用了基于STRUTS2的結(jié)構(gòu)框架設(shè)計(jì),采用此結(jié)構(gòu)框架設(shè)計(jì)的優(yōu)點(diǎn)有1可擴(kuò)展性STRUTS2框架是基于JSPMODEL2的設(shè)計(jì)標(biāo)準(zhǔn),可以說是MVC設(shè)計(jì)模式的一種變化類型,其業(yè)務(wù)邏輯和表示邏輯分開,而且所有默認(rèn)的設(shè)置都可以配置,包括了一系列通用標(biāo)記擴(kuò)展,適應(yīng)復(fù)雜的業(yè)務(wù)形式,具有較強(qiáng)的可擴(kuò)展性,能滿足新業(yè)務(wù)發(fā)展的要求。2標(biāo)準(zhǔn)性和開放性STRUTS2框架基于JAVA語言,而且其基本組件具有統(tǒng)一的標(biāo)準(zhǔn),在許多運(yùn)行標(biāo)準(zhǔn)的容器中都工作的非常好,具備優(yōu)異的可移植性3安全性和高效性STRUTS2具有完善的安全管理機(jī)制,JAVA語言也是當(dāng)前最安全的語言。采用STRUTS能使系統(tǒng)具有較高的網(wǎng)絡(luò)安全性和運(yùn)行效率,保證提供高質(zhì)量的網(wǎng)絡(luò)服務(wù)和快速的響應(yīng)速度。134HIBERNATE框架的引入HIBERNATE是JDBC的輕量級的對象封裝,它是當(dāng)前比較流行的對象持久化技術(shù),用HIBERNATE可以將一個(gè)JAVA對象保存到數(shù)據(jù)庫。它是一個(gè)獨(dú)立的對象持久層框架,和APPLICATIONSERVER、EJB之間沒有什么必然的聯(lián)系。HIBERNATE可以用在任何JDBC可以使用的場合,例如JAVA應(yīng)用程序的數(shù)據(jù)庫訪問代碼,DAO接口的實(shí)現(xiàn)類,甚至可以是BMP里面的訪問數(shù)據(jù)庫的代碼。HIBERNATE是一個(gè)和JDBC密切關(guān)聯(lián)的框架,所以HIBERNATE的兼容性和JDBC驅(qū)動及數(shù)據(jù)庫都有一定的關(guān)系,但是和使用它的JAVA程序、APPLICATIONSERVER沒有任何關(guān)系,也不存在兼容性問題。HIBERNATE的體系總覽如圖11所示。圖11HIBERNATE的體系總覽圖由于HIBERNATE比較復(fù)雜,提供了好幾種運(yùn)行方式。在輕型體系中,應(yīng)用程序自己提供JDBC連接,并自行管理事務(wù)。這種方式使用了HIBERNATEAPI的一個(gè)最小子集。如圖12所示圖12HIBERNATE運(yùn)行方式圖此處SESSIONFACTORY的含義為單一數(shù)據(jù)庫編譯過的映射文件的一個(gè)線程安全的、不可變的緩存快照。它是SESSION的工廠,是CONNECTIONPROVIDER的客戶??赡艹钟幸粋€(gè)可選的二級數(shù)據(jù)緩存,可以在進(jìn)程級別后集群級別保存可以在事務(wù)中重用的數(shù)據(jù)。SESSION是生命周期的單線程對象,代表應(yīng)用程序和持久層之間的一次對話。封裝了一個(gè)JDBC連接,也是TRANSACTION的工廠。保存有必需的(第一級)持久化對象的緩存,用于遍歷對象圖或通過標(biāo)識符查找對象。14網(wǎng)站工作模式目前在應(yīng)用開發(fā)領(lǐng)域中,主要分成兩大編程體系,一種是基于瀏覽器的B/S結(jié)構(gòu),另一種是客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu)。在此網(wǎng)上銷售管理系統(tǒng)中,我們采用了B/S模式。將C/S與B/S模式作一下比較發(fā)現(xiàn)1C/S模式客戶連接多時(shí)導(dǎo)致性能迅速下降、占用資源多。而B/S模式下多采用分層結(jié)構(gòu),分布式處理任務(wù),多客戶時(shí)性能優(yōu)越。2客戶端與服務(wù)器直接相連,安全性差,對客戶端性能要求較高。而B/S模式只需要有瀏覽器即可訪問。3對C/S程序作任何改動都需要重新安裝客戶端,而B/S程序只需要在服務(wù)器端重新部署即可實(shí)現(xiàn)所有客戶程序的更新。4C/S界面操作速度有一定優(yōu)勢,但存在界面死板、不夠美觀的弱點(diǎn),而瀏覽器頁面的元素的多樣性使得系統(tǒng)界面更加美觀。總體上,基于B/S應(yīng)用模式的營銷系統(tǒng)更加符合現(xiàn)在的應(yīng)用環(huán)境和技術(shù)發(fā)展的趨勢。本系統(tǒng)充分利用過濾器和監(jiān)聽器的功能,解決系統(tǒng)亂碼問題,和對SESSION對象的管理。其中監(jiān)聽器使用了SESSIONLISTENER,CONTEXTLISTENER,SESSIONLISTENER實(shí)現(xiàn)了當(dāng)用戶關(guān)閉瀏覽器時(shí),系統(tǒng)會自動刪除SESSION中的購物車,當(dāng)用戶訪問頁面時(shí)即SESSION形成時(shí),監(jiān)聽器會自動監(jiān)聽,系統(tǒng)會自動創(chuàng)建購物車以便后來在用戶購物車管理模塊中當(dāng)用戶購買商品時(shí),放入到此購物車中。CONTEXTLISTENER使用的目的是,監(jiān)聽整個(gè)應(yīng)用系統(tǒng)的啟動和關(guān)閉,當(dāng)系統(tǒng)啟動時(shí)會加載數(shù)據(jù)庫中的所有體育用品商品。這樣做的好處是不必每次請求查看商品數(shù)據(jù)時(shí)都與數(shù)據(jù)庫發(fā)生交互。15本章小結(jié)本章首先分析了下當(dāng)前銷售行業(yè)在網(wǎng)絡(luò)上的發(fā)展態(tài)勢,得出基于WEB系統(tǒng)的開發(fā)是一個(gè)新的趨勢。然后從技術(shù)的角度討論了WEB系統(tǒng)開發(fā)的模式和框架,包括STRUTS2和HIBERNATE框架的運(yùn)行原理和各自的性能特點(diǎn),它們各自代表著控制層和持久層。第二章需求分析21需求分析概述體育用品銷售管理系統(tǒng)主要實(shí)現(xiàn)了在網(wǎng)上選購商品、將商品加入購物車、查詢訂單等功能。本系統(tǒng)實(shí)現(xiàn)了商品信息的展示、購物車管理、注冊用戶信息、修改個(gè)人信息、登錄管理、訂單處理等模塊。需求分析可以分解為用戶需求分析和管理員需求分析。22功能模塊圖功能模塊圖如圖21所示圖21功能模塊圖23可行性分析231經(jīng)濟(jì)可行性通過網(wǎng)站對體育用品銷售進(jìn)行全面的自動化的管理,使銷售管理系統(tǒng)更加規(guī)范,實(shí)現(xiàn)了通過網(wǎng)絡(luò)對商品信息進(jìn)行發(fā)布、傳遞、接收等一系列功能,大大提高了企業(yè)的辦公效率。通過系統(tǒng)對體育用品銷售過程中的數(shù)據(jù)進(jìn)行全面的管理和統(tǒng)計(jì),避免人為處理各類數(shù)據(jù)時(shí)所產(chǎn)生的各種問題,提高了企業(yè)的經(jīng)濟(jì)效益,為企業(yè)經(jīng)營決策提供了大量的、權(quán)威的數(shù)據(jù),使企業(yè)的管理進(jìn)行到科學(xué)化、系統(tǒng)化的范籌。232技術(shù)可行性網(wǎng)絡(luò)體育用品銷售系統(tǒng)的開發(fā)采用了先進(jìn)成熟并且符合實(shí)際應(yīng)用的開發(fā)方法,目前最流行的集成開發(fā)環(huán)境MYECLIPSE,動態(tài)網(wǎng)頁開發(fā)技術(shù)JSP和MVC架構(gòu)技術(shù)STRUTS、SPRING和HIBERNATE,功能強(qiáng)大的數(shù)據(jù)庫管理工具ORACLE,結(jié)合自己的實(shí)際開發(fā)能力,可以開發(fā)出較為完善的體育用品銷售管理系統(tǒng)。233環(huán)境可行性分析在軟件環(huán)境方面,系統(tǒng)的開發(fā)環(huán)境如下操作系統(tǒng)WINDOWS7;WEB應(yīng)用服務(wù)器TOMCAT60;數(shù)據(jù)庫ORACLE100G;開發(fā)工具ELCIPSE;24用戶需求分析241用戶注冊需求注冊要求用戶輸入一些個(gè)人信息,用戶名是每個(gè)注冊用戶的唯一標(biāo)識。注冊過程中還可以檢查用戶名是否存在,當(dāng)注冊成功后,用戶可以使用用戶名和密碼進(jìn)入體育用品銷售系統(tǒng),進(jìn)行購物、查看訂單等活動。242用戶登錄需求在登錄界面上用戶可以輸入用戶名和密碼進(jìn)行登錄,如果用戶名和密碼都正確,則可以進(jìn)入體育用品銷售管理系統(tǒng),如果不正確,提示用戶登陸失敗,請輸入正確的用戶名和密碼,并重新登錄。如果用戶不存在還可以點(diǎn)擊用戶注冊進(jìn)入用戶注冊界面。243購買商品需求用戶可以以兩種身份瀏覽商品。一種是已注冊用戶,另一種是游客。當(dāng)用戶用注冊用戶賬號登錄本系統(tǒng)進(jìn)行購物時(shí),用戶可以先將選中商品加入購物車,再提交訂單,可以選擇貨到付款、郵局匯款、銀行轉(zhuǎn)賬三個(gè)付款方式。如果以游客身份購買商品,可以將選中商品先加入購物車,提交訂單時(shí),系統(tǒng)會自動提示您需要登錄才可以購買此商品,頁面將自動跳轉(zhuǎn)到登錄界面。244購物車管理需求購物車可以跟蹤用戶選擇的商品,用戶在購物車中保存自己所選中的商品。每個(gè)用戶都有自己臨時(shí)的一個(gè)購物車??梢圆榭促徫镘嚕梢孕薷倪x中的商品的數(shù)量,可以添加商品放入購物車,也可以取消已加入購物車的商品或者清空購物車重新選購商品。245訂單管理需求已登陸用戶能查看自己的訂單,能查看自己訂單的詳細(xì)信息,也可以刪除自己的訂單,當(dāng)確認(rèn)訂單后,系統(tǒng)根據(jù)購物車中的數(shù)據(jù)生成一條訂單記錄和一條訂單明細(xì)記錄,并將此次購買信息加入到相應(yīng)顧客的訂單信息中,并清空了購物車中的所有商品。25管理員需求分析251管理庫存的需求核心功能為添加商品,修改商品信息,修改庫存,即對體育用品數(shù)量的增加和刪除,增加體育用品的同時(shí)還要對保存在SESSION里面的體育用品作更新,與數(shù)據(jù)庫的同步,讓顧客可以買到最新型號的體育用品。如圖22所示圖22管理員需求框圖26系統(tǒng)用例圖(1)客戶總體用例圖,如圖23所示圖23客戶總體用例圖2客戶管理用例圖,如圖24所示圖24客戶管理用例圖(3)客戶購物車用例圖,如圖25所示圖25客戶購物車用例圖(4)客戶訂單用例圖,如圖26所示圖26客戶訂單用例圖第三章概要設(shè)計(jì)31系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)()該系統(tǒng)是以關(guān)系數(shù)據(jù)庫為存儲,基于WEB的應(yīng)用系統(tǒng)。由一系列組件和功能模塊組成??傮w結(jié)構(gòu)瀏覽器/服務(wù)器(B/S)編程模式JSPHIBERNATESTRUTS2邏輯結(jié)構(gòu)用戶界面開發(fā)、業(yè)務(wù)邏輯處理和數(shù)據(jù)存儲()該系統(tǒng)聯(lián)合使用業(yè)務(wù)代理和DAO模式32系統(tǒng)的層次結(jié)構(gòu)設(shè)計(jì)系統(tǒng)從邏輯上分為顯示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。從程序分布位置角度來看,系統(tǒng)依次分布在瀏覽器、應(yīng)用服務(wù)器、數(shù)據(jù)庫系統(tǒng)這三層。33數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫技術(shù)是信息資源管理最有效的手段。數(shù)據(jù)庫設(shè)計(jì)是指針對一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最好的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),有效存儲數(shù)據(jù),滿足用戶信息要求和處理要求。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞直接對應(yīng)用系統(tǒng)的效率及實(shí)現(xiàn)效果產(chǎn)生影響。合理的數(shù)據(jù)庫設(shè)計(jì)可以提高數(shù)據(jù)庫的存儲效率、保證數(shù)據(jù)的完整性和一致性。基于系統(tǒng)的功能分析,其ER圖如圖31所示。用戶擁有個(gè)人信息訂貨訂單構(gòu)成訂單明細(xì)體育用品參照擁有體育用品信息購買圖31系統(tǒng)的實(shí)體關(guān)系圖根據(jù)ER圖,可得出數(shù)據(jù)庫的表單如下1USERINFO存放用戶信息如表31所示表31用戶信息表字段名字段類型約束或索引描述USERIDVARCHAR216PK記錄流水號NAMEVARCHAR2(16)用戶名PASSWORDVARCHAR216用戶密碼ZIPVARCHAR2255郵編ADDRESSVARCHAR2255地址TELEPHONEVARCHAR2255電話EMAILVARCHAR2255電子郵件2PRODUCT表存放體育用品信息如表32所示表32體育用品信息表字段名字段類型約束或索引描述PRODUCTIDNUMBERPK記錄流水號NAMEVARCHAR264書名DESCRIPTIONVARCHAR22000體育用品的描述BASEPRICENUMBER體育用品價(jià)錢CATEGORYIDNUMBER體育用品類型PCOUNTNUMBER體育用品的數(shù)量IMAGESVARCHAR2200體育用品的圖片3ORDERLINE表存放訂單明細(xì)信息如表33所示表33訂單明細(xì)表字段名字段類型約束或索引描述LINEIDNUMBER10PK記錄流水號PRODUCTIDNUMBER10FK體育用品的流水記錄號ORDERIDNUMBER10FK訂單的流水記錄號AMOUNTNUMBER10數(shù)量4DER表存放訂單信息如表34所示表34訂單信息表字段名字段類型約束或索引描述ORDERIDNUMBERSEQUENCEPK記錄流水號NAMEVARCHAR232體育用品名稱FINISHEDNUMBER下單時(shí)間COSTNUMBER訂單價(jià)格USERIDVARCHAR216FK用戶編號STATUSIDNUMBERFK訂單狀態(tài)PAYWAYIDNUMBERFK付款方式5PAYWAY表用戶選擇付款方式如表35所示表35付款方式表字段名字段類型約束或索引描述PAYWAYIDNUMBERPK記錄流水號PAYSTYLEVARCHAR216付款方式6CONTACTIONFO表查看訂單詳細(xì)信息如表36所示表36訂單詳細(xì)信息表字段名字段類型約束或索引描述CONTACTIDNUMBERPK記錄流水號USERIDVARCHAR216FK用戶編號STREET1VARCHAR264聯(lián)系地址ZIPVARCHAR28郵編EMAILVARCHAR232EMAIL地址HOMEPHONEVARCHAR216家庭電話CELLPHONEVARCHAR216手機(jī)號碼OFFICEPHONEVARCHAR216辦公室電話34系統(tǒng)組成系統(tǒng)組成表如表37所示表37系統(tǒng)組成表用戶表示層VIEW控制處理層CONTROLLER業(yè)務(wù)邏輯層MODELACTIONADDPRODUCTSJSPPRODUCTDETAILJSPPRODUCTSJSPCONFIRMORDERJSPORDERJSPORDERINFOJSPUSERINFOJSPADMINLOGINJSPINDEXJSPLOGINJSPMYJSPJSPPRODUCTDETAILJSPREGISTERJSPSHOPCARTJSPADDPRODUCTACTIONADMINLOGINACTIONADMINPRODUCTACTIONEXITACTIONINDEXACTIONLOGINACTIONMODIFYACTIONADMINCATEGORYCONTACTIONINFOISHOPCARTORDERORDERLINEORDERSTATUSPAYWAYPRODUCTSHOPCARTUSER35系統(tǒng)文件組織設(shè)計(jì)采用分層開發(fā)設(shè)計(jì),這樣的好處是分工明確,適合團(tuán)隊(duì)開發(fā)。如果某個(gè)地方出現(xiàn)錯(cuò)誤不會影響其他層。這是一種高內(nèi)聚低耦合的設(shè)計(jì)思想。為體現(xiàn)STRUTS框架結(jié)構(gòu)的設(shè)計(jì)思想,可采用以下的包結(jié)構(gòu)的設(shè)計(jì)思想。WEBROOT中的文件主要是直接為用戶提供服務(wù)的頁面文件,也就是MVC中的VIEW,負(fù)責(zé)界面的顯示和與用戶的交互。這樣以來,VIEW只使用或調(diào)用ACTION里的服務(wù),而ACTION和SERVICE也只調(diào)用DAO里面的方法。這種調(diào)用方向單一,有效地降低了耦合,增強(qiáng)了內(nèi)聚。系統(tǒng)文件的組織如圖32所示圖32系統(tǒng)文件的組織第四章詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)是對系統(tǒng)架構(gòu)設(shè)計(jì)的精化,主要是在系統(tǒng)需求規(guī)格和架構(gòu)設(shè)計(jì)的基礎(chǔ)上,對系統(tǒng)用例中使用的類和對象進(jìn)行進(jìn)一步的精化,確定每一個(gè)類的屬性和方法。41系統(tǒng)運(yùn)行環(huán)境系統(tǒng)運(yùn)行的操作系統(tǒng)為WINDOWS,也可以移植到LINUX、UNIX等操作系統(tǒng)下執(zhí)行,數(shù)據(jù)庫采用ORACLE10G,應(yīng)用服務(wù)器采用符合J2EE規(guī)范的TOMCAT60應(yīng)用服務(wù)器。42系統(tǒng)部署架構(gòu)整個(gè)應(yīng)用部署在一臺應(yīng)用服務(wù)器、一臺數(shù)據(jù)庫服務(wù)器上。系統(tǒng)可以可以使用企業(yè)內(nèi)部局域網(wǎng),也可以通過廣域網(wǎng)訪問系統(tǒng)。43系統(tǒng)時(shí)序圖在體育用品銷售管理系統(tǒng)設(shè)計(jì)過程中,時(shí)序圖如圖41所示。圖41系統(tǒng)時(shí)序圖(1)界面在本項(xiàng)目中指JSP頁面,在具體的時(shí)序圖中被實(shí)際的頁面文件所替代。(2)ACTION指STRUTS中的ACTION的具體實(shí)現(xiàn)類,在具體的時(shí)序圖中被實(shí)際的類所替代。其作為控制器的一部份存在。(3)BO業(yè)務(wù)邏輯操作對象(BUSSINESSOBJECT),執(zhí)行功能的業(yè)務(wù)邏輯職責(zé),在具體的時(shí)序圖中被實(shí)際的類所替代。如果某個(gè)功能沒有業(yè)務(wù)邏輯處理,此類可以不在時(shí)序圖中存在。(4)DAO為數(shù)據(jù)操作類處理相應(yīng)的數(shù)據(jù)庫操作。(5)HIBERNATEDATASOURCE數(shù)據(jù)操作實(shí)現(xiàn)類,用來執(zhí)行實(shí)際的數(shù)據(jù)庫訪問。44系統(tǒng)的持久化層具體實(shí)現(xiàn)441定義HIBERNATE工廠類本系統(tǒng)采用STRUTS和HIBERNATE技術(shù)進(jìn)行開發(fā),由HIBERNATE進(jìn)行數(shù)據(jù)庫連接和數(shù)據(jù)對象的操作,這里定義一個(gè)HIBERNATESESSIONFACTORY類去負(fù)責(zé)初始化HIBERNATE。由它創(chuàng)建全局的SESSIONFACTORY工廠類,并且提供創(chuàng)建和關(guān)閉SESSION實(shí)例,創(chuàng)建HIBERNATETRANSACTION負(fù)責(zé)打開/關(guān)閉事物。這樣在使用HIBERNATE時(shí)更加方便,不用每次為創(chuàng)建SESSIONFACTORY實(shí)例,SESSION實(shí)例或者關(guān)閉SESSION實(shí)例,打開/關(guān)閉,事物操作單獨(dú)這些代碼,只要調(diào)用上面的類的方法就可以了,從而簡化了操作。442使用DAO模式本系統(tǒng)的持久化邏輯采用HIBERNATE作為中間件,并使用DAO設(shè)計(jì)模式實(shí)現(xiàn)。主要是在業(yè)務(wù)核心方法和具體數(shù)據(jù)源之間增加一層,這樣就減少了兩者的耦合。每個(gè)持久化類對應(yīng)一個(gè)DAO類,它實(shí)現(xiàn)了持久化類的創(chuàng)建、查詢、更新及刪除方法,以及其它訪問持久化機(jī)制的方法。本系統(tǒng)所有與數(shù)據(jù)庫邏輯有關(guān)的方法都在IDAO接口中,在COMBRIUPDAO包下創(chuàng)建一個(gè)DAO的接口,并在COMBRIUPDAO包下創(chuàng)建一個(gè)IMPL繼承DAO接口實(shí)現(xiàn)具體的操作。45系統(tǒng)業(yè)務(wù)邏輯層設(shè)計(jì)業(yè)務(wù)邏輯層中只包含業(yè)務(wù)邏輯,不包含任何與數(shù)據(jù)庫的交互,因此減少了訪問過程中與數(shù)據(jù)庫交互的過程,大大提高了運(yùn)行的速率。業(yè)務(wù)邏輯層的實(shí)現(xiàn)需要調(diào)用持久化層和數(shù)據(jù)庫交互功能的支持。本系統(tǒng)所有與業(yè)務(wù)邏輯有關(guān)的方法都在SERVICE接口中,并且在COMBRIUPSERVICE包中創(chuàng)建一個(gè)IMPL包,此包中的類是對SERVICE接口的實(shí)現(xiàn)。46系統(tǒng)接口及映射文件的實(shí)現(xiàn)設(shè)計(jì)本系統(tǒng)的持久化邏輯采用HIBERNATE作為中間件,并使用DAO設(shè)計(jì)模式實(shí)現(xiàn)。主要是在業(yè)務(wù)核心方法和具體數(shù)據(jù)源之間增加一層,這樣就減少了兩者的耦合。每個(gè)持久化類對應(yīng)一個(gè)DAO,它實(shí)現(xiàn)了持久化類的創(chuàng)建、查詢、更新及刪除方法,即CRUDCREATE、RETRIEVE、UPDATE、DELETE方法,以及其他訪問持久化機(jī)制方法。本系統(tǒng)所有與數(shù)據(jù)庫邏輯有關(guān)的方法都在DAO的實(shí)現(xiàn)類中,現(xiàn)在DAO包下創(chuàng)建接口IPRODUCTDAO、IORDERDAO、IUSERDAO,并在DAOIMPL包下創(chuàng)建接口的實(shí)現(xiàn)類PRODUCTDAOIMPLORDERDAOIMPL、USERDAOIMPL,注意要繼承相應(yīng)的接口。為了使用HIBERNATE來持久化對象,首先要根據(jù)數(shù)據(jù)庫的各個(gè)表創(chuàng)建映射文件每個(gè)類都對應(yīng)的HIBERNATE映射文件,且都放到BEAN包下。47模塊功能設(shè)計(jì)與實(shí)現(xiàn)471登陸功能任何的用戶都必須通過登陸界面進(jìn)入購書系統(tǒng)。在登錄界面上用戶可以輸入用戶名和密碼進(jìn)行登錄,在登錄時(shí)用戶可以選擇以不同的角色身份登錄。如果用戶名和密碼正確,將成功跳轉(zhuǎn)到體育用品銷售管理系統(tǒng)主頁面,如果不正確,提示給用戶錯(cuò)誤信息,并且還跳轉(zhuǎn)到登錄界面繼續(xù)登錄。具體實(shí)現(xiàn)思想首先客戶端驗(yàn)證通過JAVASCRIPT來完成,比如用戶沒有輸入用戶名時(shí)提示客戶用戶名不能為空,密碼為空時(shí)提示密碼不能為空。只有用戶名和密碼都填寫好以后才能進(jìn)行客戶端數(shù)據(jù)的提交,這樣使得操作更加方便并且提高效率。當(dāng)數(shù)據(jù)提交以后,表單中的數(shù)據(jù)將經(jīng)過攔截器,它的作用是為參數(shù)作類型轉(zhuǎn)換,這個(gè)過程是自動完成的,無須我們?nèi)プ鬟@部分工作。我們在LOGACTION里面也有定義兩個(gè)實(shí)例變量NAME和PASSWORD并且寫上對應(yīng)的SET/GET方法。然后判斷登錄的身份為普通用戶還是管理員,輸入的用戶名和密碼是否正確,ACTION里面的EXECUTE方法調(diào)用IUSERSERVICE接口中的LOGINCUSTOMERC方法實(shí)現(xiàn)登錄的合法性驗(yàn)證。如果為普通用戶,在此SERVICE方法中首先要調(diào)用DAO方法中的FINDSTRINGNAME方法判斷數(shù)據(jù)庫CUSTOMER表中是否存在名字為NAME的記錄,如果不存在提示用戶輸入的用戶名不存在,如果存在,繼續(xù)判斷密碼是否于數(shù)據(jù)庫中的密碼相同,相同的時(shí)候表示登錄成功EXECUTE方法返回SUCCESS,然后STRUTS2根據(jù)配置文件的配置跳轉(zhuǎn)到相關(guān)的頁面,也就是銷售管理的客戶主界面。如果是管理員,我們將把SERVLETCONTEXT里面的ADMIN鍵值對讀出,如果用戶密碼都正確跳轉(zhuǎn)到管理界面否則提示出錯(cuò)。無論是用戶還是管理員,在登錄成功后都把SERVICE層的LOGIN方法返回的CUSTOMER對象保存到SESSION范圍內(nèi)。遇到的問題在寫ACTION的時(shí)候總是忘記把屬性的SET/GET方法寫上,這樣作的后果是STRUTS是沒法給屬性賦值的,可能會產(chǎn)生空指針異常。還有就是由于在EXECUTE方法里面實(shí)際上有普通用戶和管理員的兩個(gè)登錄,所以剛開始寫時(shí)把返回值都寫成了“SUCCESS“和“ERROR“,這樣是不能跳轉(zhuǎn)到正確的頁面的。472注冊功能任何第一次登陸的用戶必須先注冊,與注冊界面有關(guān)的為REGISTERJSP,在完成注冊功能時(shí)需要為注冊功能的實(shí)現(xiàn)定義一個(gè)ACTION名字為REGISTERACTION,在EXECUTE方法中調(diào)用相應(yīng)的DAO和SERVICE方法實(shí)現(xiàn)注冊。對注冊的用戶進(jìn)行合法性的驗(yàn)證,滿足所有的條件的用戶才能注冊成功。用戶名作為用戶登錄的唯一標(biāo)識。在驗(yàn)證注冊新用戶的過程中加入新加入了JAVASCRIPT驗(yàn)證的過程,提示用戶在注冊時(shí)必須提供用戶名和密碼,且為了密碼的安全,位數(shù)在6位和8位之間等等。只由在滿足這一系列條件的情況下才能正常地注冊,否則重新注冊。具體實(shí)現(xiàn)的思想在注冊界面中,對于帶有紅色星號的項(xiàng)必須填寫,其具體的客戶端驗(yàn)證通過JAVASCRIPT完成,如果沒有填寫在提交的時(shí)候系統(tǒng)會提示用戶填寫相關(guān)的項(xiàng)目。在JAVASCRIPT文件的MAINJS中定義了一個(gè)函數(shù),專門對注冊界面提交的表單進(jìn)行合法性驗(yàn)證,如果驗(yàn)證通過,轉(zhuǎn)回FORM中執(zhí)行的ACTION屬性,跳轉(zhuǎn)到REGISTERACTION的EXECUTE方法中,在EXECUTE中接收到從注冊頁面的表單中的提交的相關(guān)數(shù)據(jù),創(chuàng)建USER對象并將提交的數(shù)據(jù)封裝在此USER類中,調(diào)用SERVICE中的REGISTERUSER方法對業(yè)務(wù)邏輯進(jìn)行進(jìn)一步的驗(yàn)證,完全符合條件的情況下才能注冊成功,否則繼續(xù)進(jìn)行注冊。473購買商品功能商品的購買必然要牽涉到購物車的實(shí)現(xiàn),它也是本系統(tǒng)的核心技術(shù)部分,首先是購物車列表的動態(tài)顯示,所有商品的數(shù)據(jù)是通過監(jiān)聽器加載進(jìn)內(nèi)存的,通過分頁技術(shù),讓顧客能瀏覽所有的體育用品商品。實(shí)現(xiàn)購物車中的添加體育用品、修改購買的數(shù)量,以及清空購物車的功能。體育用品列表的動態(tài)顯示是在WEB應(yīng)用啟動的時(shí)候完成的,使用了創(chuàng)建事件監(jiān)聽器的方式實(shí)現(xiàn)。具體實(shí)現(xiàn)在LISTENER包中創(chuàng)建一個(gè)APPLICATIONLISTENER類,繼承系統(tǒng)提供的SERVLETCONTEXTLISTENER類,定義CONTEXTINTIALIZED方法對體育用品列表信息進(jìn)行初始化工作,在此方法中新建一個(gè)PRODUCTS類型的對象,該對象的構(gòu)造方法就有從數(shù)據(jù)庫中查詢出所有的商品,然后把PRODUCTS的對象存放在SERVLETCONTEXT范圍內(nèi)的APPLICATION對象中,存放在SERVLETCONTEXT范圍內(nèi)的對象的生命周期為從WEB的啟動到WEB服務(wù)器的關(guān)閉時(shí)注銷,因此解決了在整個(gè)系統(tǒng)運(yùn)行的過程中都有體育用品信息的存在,而且不用在每次用到體育用品信息的時(shí)候去數(shù)據(jù)庫中查詢調(diào)用數(shù)據(jù),減少了與數(shù)據(jù)庫的交互性并能提高系統(tǒng)的運(yùn)行效率。采用CONTEXTDESTORIYED方法刪除存放在SERVLETCONTEXT范圍中的體育用品信息。購物車的創(chuàng)建是在LISTENER包中創(chuàng)建一個(gè)SHOPCARTLISTENER類,繼承系統(tǒng)提供的HTTPSESSIONLISTENER類,從HTTPSESSIONLISTENER中獲取SESSION對象,創(chuàng)建一個(gè)SHOPCART對象,并把它放在SESSION范圍內(nèi),以供用戶使用。在創(chuàng)建事件監(jiān)聽器以后,一定要在WEBXML配置文件中對事件監(jiān)聽器進(jìn)行配置,否則創(chuàng)建的事件監(jiān)聽器不起任何作用。核心代碼如下COMBRIUPWEBLISTENERSHOPCARTLISTENER體育用品信息在JSP頁面上的動態(tài)顯示使用了在JSP的腳本中使用JSTL標(biāo)簽結(jié)合EL表達(dá)式來處理。使用EL的目的為輸出對象中的屬性值,輸出一些變量值,輸出一些表達(dá)式關(guān)系、邏輯、算術(shù)的結(jié)果例如SESSIONSCOPE把SESSION范圍中的KEY和VALUE進(jìn)行映射SESSIONSETATTRIBUTE“NAME“,“JACK“SESSIONSCOPENAME等于OUTPRINTLNSESSIONGETATTRIBUTE“NAME“用戶點(diǎn)擊購買按鈕時(shí)相當(dāng)于提交了一個(gè)表單,這個(gè)表單包含了一個(gè)隱含的INPUT標(biāo)簽,其內(nèi)容為購買體育用品的ID號,和購買的體育用品數(shù)量。然后這個(gè)表單轉(zhuǎn)向ADDPRODUCTACTION來處理。ACTION的實(shí)例變量ID,和NUM已經(jīng)由STRUTS2進(jìn)行了賦值。EXECUTE方法中新建一個(gè)PRODUCT對象,然后從SESSION對象中獲得SHOPCART對象,并調(diào)用其中的ADDPRODUCT方法往購物車中添加一條PRODUCT對象。點(diǎn)擊體育用品列表下方的查看購物車功能時(shí),跳轉(zhuǎn)到SHOPCARTJSP頁面,在購物車頁面中使用JSP腳本把存放在SESSION范圍內(nèi)的SHOPCART對象取出,將SHOPCART對象中的所有PRODUCTS信息使用JSTL的中的集合遍歷方式遍歷輸出。在購物車中點(diǎn)擊清除按鈕時(shí)可以從購物車中刪除指定的PRODUCTS對象。當(dāng)點(diǎn)擊購物車中指定的書的刪除按鈕時(shí),可以刪除購物車中的這條PRODUCTS。同理,我們也可以體育用品清空購物車時(shí),把SHOPCART所維護(hù)的那個(gè)MAP給清空掉,購物車清空就這樣實(shí)現(xiàn)了,具體方法為調(diào)用SHOPCART的REMOVEALL方法。474用戶訂單管理在體育用品列表中有查看用戶訂單信息的功能,需要實(shí)現(xiàn)IORDERDAO接口中的FINDORDERBYUSERID方法,此方法與數(shù)據(jù)庫交互查詢出當(dāng)前用戶所有的ORDER信息,實(shí)現(xiàn)IORDERSERVICE接口中的業(yè)務(wù)方法LISTORDERSOFUSER,在ORDERACTION中創(chuàng)建EXECUTE方法,調(diào)用SERVICE層的LISTORDERSOFUSER方法來查找用戶所有的訂單信息。將使用LISTORDERSOFUSER查找出來的訂單信息存放在SESSION對象中,在顯示用戶訂單信息的ORDERJSP頁面中使用EL表達(dá)式獲取到存放在SESSION對象中的訂單信息,使用JSTL標(biāo)簽來遍歷集合,將所有的訂單信息顯示在頁面上。在用戶訂單信息中可以查看訂單明細(xì),在LISTORDERJSP中設(shè)置隱藏文本框,可以將指定的訂單的ID號通過表單參數(shù)傳給ORDERDETAILACTION中的EXECUTE方法,在此方法中調(diào)用IORDERSERVICE接口中的LISTORDERSOFUSER方法從數(shù)據(jù)庫中查找確定ID的訂單信息。將此確定的訂單明細(xì)信息存放在REQUEST中,在ORDERLISTJSP頁面中使用EL表達(dá)式REQUESTSCOPEORDER獲取REQUEST對象中的訂單明細(xì)信息,輸出到頁面上。在購物車中有提交訂單的功能,當(dāng)你登錄用戶名時(shí),點(diǎn)擊提交功能時(shí)跳轉(zhuǎn)到CONFIRMORDERJSP頁面,在這個(gè)頁面上點(diǎn)擊確認(rèn)按鈕時(shí)才能正式提交訂單,并將訂單信息提交給相應(yīng)的ACTION來處理。具體實(shí)現(xiàn)思想在ORDERDETAILACTION中創(chuàng)建EXECUTE方法,從SESSION中獲得SHOPCART對象并將它的PRODUCT對象轉(zhuǎn)換為ORDER對象,再封裝一個(gè)訂單對象,然后調(diào)用IORDERSERVICE接口的SAVEORDER方法實(shí)現(xiàn)將訂單信息保存到數(shù)據(jù)庫中。當(dāng)你未登錄用戶名時(shí),點(diǎn)擊提交按鈕系統(tǒng)會自動提示你登錄用戶名,頁面也相應(yīng)轉(zhuǎn)到用戶登錄界面。475用戶信息修改在整個(gè)銷售系統(tǒng)中還可以對用戶的個(gè)人信息進(jìn)行修改,用戶可以只修改密碼也可以修改其他信息。476庫存管理在此模塊中管理員可以增加商品和修改商品。增加的商品會及時(shí)的保存到數(shù)據(jù)庫中,但是由于用戶所看到的商品是在系統(tǒng)啟動的時(shí)候加載進(jìn)內(nèi)存的,所以要多刷新幾次或者下次登錄時(shí),用戶才會看到。同理,刪除的商品雖然在數(shù)據(jù)庫中刪除,但是仍然在表現(xiàn)層用戶還是會看到已經(jīng)商品的購買,而此時(shí)用戶點(diǎn)擊購買會出現(xiàn)異常情況。48系統(tǒng)業(yè)務(wù)流程圖圖42系統(tǒng)業(yè)務(wù)流程圖49本章小結(jié)本章主要參考概要設(shè)計(jì)所提出的軟件架構(gòu),用分層的思想實(shí)現(xiàn)了銷售管理的基本功能。在用戶的功能實(shí)現(xiàn)上,有對選購商品,購物車管理,訂單管理等。在管理層方面實(shí)現(xiàn)了添加物品,修改庫存,物品信息管理模塊。第五章測試小結(jié)51測試說明一、測試的目的及要求軟件測試試圖以最少的代價(jià)發(fā)現(xiàn)軟件分析、設(shè)計(jì)和編碼中存在的各種不同類型的錯(cuò)誤,從而提高軟件質(zhì)量,降低軟件成本。軟件測試是保證軟件質(zhì)量的關(guān)鍵,也是發(fā)現(xiàn)軟件中錯(cuò)誤和缺陷的主要手段。軟件測試的目的是確保最終交給用戶的產(chǎn)品的功能符合用戶需求,在產(chǎn)品交給用戶之前發(fā)現(xiàn)并改正盡可能多的問題。測試過程中我們能發(fā)現(xiàn)體育用品銷售管理系統(tǒng)的每個(gè)功能是否都能正常使用,檢查程序功能是否按照需求分析的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生預(yù)期的輸出信息。二、測試流程軟件測試的流程一般分為以下三步1準(zhǔn)備測試數(shù)據(jù),并預(yù)測結(jié)果;2數(shù)據(jù)輸入,進(jìn)行測試,并記錄測試結(jié)果;3分析測試結(jié)果及其產(chǎn)生原因。三、功能測試簡介功能測試,又稱黑盒測試或數(shù)據(jù)驅(qū)動測試,是指已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個(gè)功能是否都能正常使用。在測試時(shí),把程序看做一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者對程序接口進(jìn)行測試,它只檢查程序功能是否能按照需求規(guī)格說明書的規(guī)定正常使用。52系統(tǒng)功能測試本銷售管理系統(tǒng)分為客戶端的功能測試和服務(wù)端的功能測試。在進(jìn)行用戶端測試之前,為了能讓用戶能購買體育用品所以預(yù)先錄入了一些商品信息。為了方便服務(wù)端的測試系統(tǒng)在啟動時(shí)讀取配置文件獲得默認(rèn)的管理員帳號和密碼,在登錄時(shí)可以選擇此帳戶并以管理員身份登錄進(jìn)行后臺數(shù)據(jù)的管理。一、用戶注冊1準(zhǔn)備測試數(shù)據(jù),并預(yù)測結(jié)果。測試數(shù)據(jù)如表51所示表51用戶注冊數(shù)據(jù)如下用戶名宋志鵬密碼123456確認(rèn)密碼123456所在地區(qū)中國山西省朔州聯(lián)系地址1太原理工大學(xué)聯(lián)系地址2迎澤西大街79號ZIP郵政編碼030024家庭電話000000辦公室電話000000手機(jī)12345678912EMAIL123456789QQCOM預(yù)期結(jié)果使用測試數(shù)據(jù)能夠完成用戶的注冊模塊,并且跳入商品顯示頁面。如果之前有用戶注冊了一個(gè)相同用戶名的賬號則此次注冊失敗,并提示用戶。2數(shù)據(jù)輸入,進(jìn)行測試,并記錄測試結(jié)果輸入的數(shù)據(jù)如圖51所示圖51注冊信息數(shù)據(jù)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒語言理解能力評估量表試題及答案
- 醫(yī)療器械經(jīng)營人員繼續(xù)教育考試試題沖刺卷
- 烹飪師技能水平測試規(guī)范試題沖刺卷
- 道路交通信號燈安裝與維護(hù)規(guī)范(標(biāo)準(zhǔn)版)
- 親水平臺專項(xiàng)施工方案
- 高一物理新能源技術(shù)測試試題及答案
- 航空業(yè)客艙服務(wù)標(biāo)準(zhǔn)手冊
- 建筑設(shè)計(jì)規(guī)范與施工指南
- 企業(yè)環(huán)保設(shè)施運(yùn)行管理指南(標(biāo)準(zhǔn)版)
- 醫(yī)療護(hù)理服務(wù)質(zhì)量規(guī)范手冊
- 2025-2030中國寵物醫(yī)藥市場經(jīng)營形勢分析及投資規(guī)劃趨勢研究研究報(bào)告
- 2026北森測評試題及答案
- 員工股權(quán)激勵方案設(shè)計(jì)模板
- 2026西藏自治區(qū)教育考試院招聘非編工作人員11人備考考試題庫及答案解析
- ??低曅@招聘在線測評題庫
- 急性上消化道大出血的急診綠色通道管理
- 2025廈門大學(xué)鷺江創(chuàng)新實(shí)驗(yàn)室未來樞紐海洋科技產(chǎn)業(yè)合作經(jīng)理招聘1人備考考試題庫及答案解析
- 小學(xué)控輟保學(xué)培訓(xùn)材料
- 泵站運(yùn)行維護(hù)方案
- 施工單位春節(jié)安全培訓(xùn)課件
- 物業(yè)石材養(yǎng)護(hù)合同
評論
0/150
提交評論