基于SSH的體育用品銷售管理系統(tǒng)開發(fā)畢業(yè)論文設(shè)計(jì)_第1頁
基于SSH的體育用品銷售管理系統(tǒng)開發(fā)畢業(yè)論文設(shè)計(jì)_第2頁
基于SSH的體育用品銷售管理系統(tǒng)開發(fā)畢業(yè)論文設(shè)計(jì)_第3頁
基于SSH的體育用品銷售管理系統(tǒng)開發(fā)畢業(yè)論文設(shè)計(jì)_第4頁
基于SSH的體育用品銷售管理系統(tǒng)開發(fā)畢業(yè)論文設(shè)計(jì)_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于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)今社會(huì)上必不可少的元素,而網(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)前臺(tái)主要使用jsp作為開發(fā)語言,后臺(tái)使用oracle作為數(shù)據(jù)庫管理系統(tǒng),開發(fā)環(huán)境是eclipse,服務(wù)器采用tomcat,開發(fā)出的一個(gè)基于

2、web技術(shù)的b/s結(jié)構(gòu)的商城購物系統(tǒng)。 應(yīng)用此系統(tǒng),商家可以發(fā)布商業(yè)信息,廣告等等。用戶可以查閱、訂購商品,該系統(tǒng)可以為客戶提供更方便、更好、更快的商務(wù)活動(dòng)空間,實(shí)現(xiàn)網(wǎng)上交易,是一個(gè)綜合性電子商務(wù)系統(tǒng)。從整個(gè)系統(tǒng)結(jié)構(gòu)上看,本系統(tǒng)包括客戶端和服務(wù)器端,客戶端主要針對(duì)客戶的一般需求,而服務(wù)器端主要是針對(duì)管理員的需求。管理員能夠?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)證sporting goods sales management system based on sshabstract

3、with the rapid development of computer technology and communication technology, the scale of the network also increases gradually, the network element has been increasing, some use their communication, some use its commercial use, for sale, purchase, publicity, etc in the network operation, so as to

4、 make the network more and more become the essential element in modern society, and the site is very large elements of the network. the system we talked about is based on two widely used framework:struts2 and hibernate. this system is a typical b / s structure of the system, including the developmen

5、t of its application development, database creation and maintenance of the two areas.this system at the front desk mainly using jsp as a development language, the background using oracle as the database management system, the development environment is eclipse, server using tomcat, developed a web t

6、echnology based b/s structure of the system of shopping mall. through this system, advertiser can issues business information and products advertisements, and users can conveniently order goods depending on b/s pattern. because of running on web, the system can offer whole day, better more quick roo

7、m of activities to realize the basis functions of transaction in internet. the web, according to the current design principles of business web, gives first place to transaction function in internet, it is a synthesis electronic commerce web. from the analysis above, the content of this paper mainly

8、includes the design of client and server. client part is specific to user, server part is specific to administrator. administrator and manager the hole system, guarantee the guarantee of data base. the developing of this system consist of demand analysis、functional design、detailed design、database de

9、sign.key words: sales network ;design modular; design data; validation目 錄摘 要iabstractii第一章 緒 論11.1 課題的背景和意義11.2 工作內(nèi)容11.3 j2ee體系結(jié)構(gòu)介紹11.3.1 tomcat簡(jiǎn)介21.3.2 ajax技術(shù)簡(jiǎn)介21.3.3 struts2框架的引入31.3.4 hibernate框架的引入31.4 網(wǎng)站工作模式41.5 本章小結(jié)4第二章 需求分析52.1 需求分析概述52.2 功能模塊圖52.3 可行性分析52.3.1 經(jīng)濟(jì)可行性52.3.2 技術(shù)可行性62.3.3 環(huán)境可行性分析6

10、2.4 用戶需求分析62.4.1 用戶注冊(cè)需求62.4.2 用戶登錄需求62.4.3 購買商品需求62.4.4 購物車管理需求62.4.5 訂單管理需求62.5 管理員需求分析62.5.1 管理庫存的需求62.6系統(tǒng)用例圖7第三章 概要設(shè)計(jì)93.1 系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)93.2 系統(tǒng)的層次結(jié)構(gòu)設(shè)計(jì)93.3 數(shù)據(jù)庫設(shè)計(jì)93.4 系統(tǒng)組成133.5 系統(tǒng)文件組織設(shè)計(jì)13第四章 詳細(xì)設(shè)計(jì)154.1 系統(tǒng)運(yùn)行環(huán)境154.2 系統(tǒng)部署架構(gòu)154.3 系統(tǒng)時(shí)序圖154.4 系統(tǒng)的持久化層具體實(shí)現(xiàn)154.4.1 定義hibernate工廠類154.4.2 使用dao模式164.5 系統(tǒng)業(yè)務(wù)邏輯層設(shè)計(jì)164.6

11、 系統(tǒng)接口及映射文件的實(shí)現(xiàn)設(shè)計(jì)164.7 模塊功能設(shè)計(jì)與實(shí)現(xiàn)164.7.1 登陸功能164.7.2 注冊(cè)功能174.7.3 購買商品功能174.7.4 用戶訂單管理184.7.5 用戶信息修改194.8 系統(tǒng)業(yè)務(wù)流程圖204.9 本章小結(jié)20第五章 測(cè)試小結(jié)215.1 測(cè)試說明215.2 系統(tǒng)功能測(cè)試215.3 本章小結(jié)25結(jié) 論26參考文獻(xiàn)27致 謝28外文原文29中文翻譯37第一章 緒 論1.1 課題的背景和意義隨著網(wǎng)絡(luò)的發(fā)展越來越迅速,人們也希望互聯(lián)網(wǎng)能對(duì)自己的生活、工作提供越來越方便快捷的支持和幫助。本體育用品銷售管理系統(tǒng)是在internet開放的網(wǎng)絡(luò)環(huán)境下,基于瀏覽器/服務(wù)器應(yīng)用方式

12、,實(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ù)邏輯

13、更清晰,數(shù)據(jù)的管理也更加方便。struts是屬于表現(xiàn)層的技術(shù),而hibernate則主要與數(shù)據(jù)處理打交道。兩者都是開源的框架,這樣,在經(jīng)濟(jì)的可行性分析上面是十分占優(yōu)勢(shì)的。本文介紹的是一個(gè)網(wǎng)上體育用品銷售管理系統(tǒng)。系統(tǒng)具有高可靠性、可擴(kuò)展性和重用性的特點(diǎn)。1.2 工作內(nèi)容體育用品銷售管理系統(tǒng)是運(yùn)用現(xiàn)代化的科學(xué)方法,對(duì)銷售進(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),為以后的研

14、究與實(shí)踐打下了基礎(chǔ)。其中論文主要完成了以下工作:()基于struts+hibernate構(gòu)件多層web應(yīng)用系統(tǒng)的框架及相關(guān)理論研究。()對(duì)銷售與管理系統(tǒng)各部分所涉及的功能進(jìn)行分析探討。()按照需求設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)體育用品銷售管理系統(tǒng)。1.3 j2ee體系結(jié)構(gòu)介紹j2ee是一種利用java 2平臺(tái)來簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。javaee是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,讓各種依循javaee架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。j2e

15、e技術(shù)的基礎(chǔ)就是核心java平臺(tái)或java 2平臺(tái)的標(biāo)準(zhǔn)版,j2ee不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),如編寫一次、隨處運(yùn)行的特性、方便存儲(chǔ)數(shù)據(jù)庫的jdbc api以及能夠在internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì)ejb(enterprise javabeans)、java servlets api、jsp(java server pages)以及xml技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。j2ee體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺(tái),j2ee降低了

16、開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供了對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力的支持,完全支持enterprise javabeans,有良好的向?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è)級(jí)的管理控制,開發(fā)人員可以輕松的創(chuàng)建出可重用的業(yè)務(wù)邏輯模塊。()視圖(view)視圖是用戶界面部分,在web應(yīng)用程序中也就是html、xml、jsp頁面。這個(gè)部分主要處理用戶看到的東西即用于顯示,動(dòng)態(tài)js

17、p部分處理了用戶可看見的動(dòng)態(tài)網(wǎng)頁,而靜態(tài)的網(wǎng)頁由html和xml輸出。()控制器(control)控制器負(fù)責(zé)網(wǎng)站的整個(gè)邏輯。它用于管理用戶與視圖發(fā)生的交互??梢詫⒖刂破飨胂癯商幵谝晥D和數(shù)據(jù)之間,對(duì)視圖如何與模型交互進(jìn)行管理。通過使視圖完全獨(dú)立于控制器和模型,就可以輕松替換前端客戶程序,即網(wǎng)頁制作人員將可以獨(dú)立自由地改變web頁面而不用擔(dān)心影響這個(gè)基于web的應(yīng)用程序功能。在j2ee模型中,控制器的功能一般是由servlet、javabeans、ejb中的sessionbean來充當(dāng)?shù)摹?.3.1 tomcat簡(jiǎn)介tomcat是apache 軟件基金會(huì)(apache software found

18、ation)的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ā)訪問用戶不是很多的場(chǎng)合下被

19、普遍使用,也是開發(fā)和調(diào)試jsp 程序的首選。對(duì)于一個(gè)初學(xué)者來說,當(dāng)在一臺(tái)機(jī)器上配置好apache 服務(wù)器,可利用它響應(yīng)對(duì)html 頁面的訪問請(qǐng)求。實(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)模式。不過,to

20、mcat處理靜態(tài)html的能力不如apache服務(wù)器。1.3.2 ajax技術(shù)簡(jiǎn)介ajax全稱“asynchronous javascript and xml”,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。它包含了以下幾種技術(shù):基于web標(biāo)準(zhǔn)xhtml+css的表示;使用dom進(jìn)行動(dòng)態(tài)顯示及交互;使用xml和xslt進(jìn)行數(shù)據(jù)交換及相關(guān)操作;使用xmlhttprequest進(jìn)行異步數(shù)據(jù)查詢、檢索;使用javascript將所有的東西綁定在一起。ajax,使用它可以構(gòu)建更為動(dòng)態(tài)和響應(yīng)更靈敏的web應(yīng)用程序,讓瀏覽器為用戶提供更為自然的瀏覽體驗(yàn)。ajax能提供與服務(wù)器異步通信的能力,從而使用戶從請(qǐng)求/

21、響應(yīng)的循環(huán)中解脫出來。借助ajax,可以在用戶單擊按鈕時(shí),使用javascript和dhtml立即更新ui,并向服務(wù)器發(fā)出異步請(qǐng)求,來執(zhí)行更新或查詢數(shù)據(jù)庫。當(dāng)請(qǐng)求返回時(shí),就可以使用javascript和css來相應(yīng)地更新ui,而不是刷新整個(gè)頁面,使用戶看起來是即時(shí)響應(yīng)的。ajax的核心是javascript對(duì)象xmlhttprequest。該對(duì)象是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)而言之,xmlhttprequest使用戶可以使用javascript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不是阻塞用戶。在創(chuàng)建web站點(diǎn)時(shí),在客戶端執(zhí)行屏幕更新為用戶提供了很大的靈活性。1.3.3 struts2框架的引入一個(gè)成功

22、的電子商務(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框架是基于jsp model2的設(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 框架基于j

23、ava語言,而且其基本組件具有統(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)速度。1.3.4 hibernate框架的引入hibernate是jdbc的輕量級(jí)的對(duì)象封裝,它是當(dāng)前比較流行的對(duì)象持久化技術(shù),用hibernate可以將一個(gè)java對(duì)象保存到數(shù)據(jù)庫。它是一個(gè)獨(dú)立的對(duì)象持久層框架,和application server、ejb之間沒有什么必然的聯(lián)系。hibernate可以用在任何j

24、dbc可以使用的場(chǎng)合,例如java應(yīng)用程序的數(shù)據(jù)庫訪問代碼,dao接口的實(shí)現(xiàn)類,甚至可以是bmp里面的訪問數(shù)據(jù)庫的代碼。hibernate是一個(gè)和jdbc密切關(guān)聯(lián)的框架,所以hibernate的兼容性和jdbc驅(qū)動(dòng)及數(shù)據(jù)庫都有一定的關(guān)系,但是和使用它的java程序、application server沒有任何關(guān)系,也不存在兼容性問題。hibernate的體系總覽如圖1.1所示。 圖1.1 hibernate的體系總覽圖由于hibernate比較復(fù)雜,提供了好幾種運(yùn)行方式。在輕型體系中,應(yīng)用程序自己提供jdbc連接,并自行管理事務(wù)。這種方式使用了hibernate api的一個(gè)最小子集。如圖1.

25、2所示圖1.2 hibernate運(yùn)行方式圖此處sessionfactory的含義為:?jiǎn)我粩?shù)據(jù)庫編譯過的映射文件的一個(gè)線程安全的、不可變的緩存快照。它是session的工廠,是connection provider的客戶。可能持有一個(gè)可選的二級(jí)數(shù)據(jù)緩存,可以在進(jìn)程級(jí)別后集群級(jí)別保存可以在事務(wù)中重用的數(shù)據(jù)。session是生命周期的單線程對(duì)象,代表應(yīng)用程序和持久層之間的一次對(duì)話。封裝了一個(gè)jdbc連接,也是transaction的工廠。保存有必需的(第一級(jí))持久化對(duì)象的緩存,用于遍歷對(duì)象圖或通過標(biāo)識(shí)符查找對(duì)象。1.4 網(wǎng)站工作模式目前在應(yīng)用開發(fā)領(lǐng)域中,主要分成兩大編程體系,一種是基于瀏覽器的b/

26、s結(jié)構(gòu),另一種是客戶機(jī)/服務(wù)器(c/s)結(jié)構(gòu)。在此網(wǎng)上銷售管理系統(tǒng)中,我們采用了b/s模式。將c/s與b/s模式作一下比較發(fā)現(xiàn):(1) c/s模式客戶連接多時(shí)導(dǎo)致性能迅速下降、占用資源多。而b/s模式下多采用分層結(jié)構(gòu),分布式處理任務(wù),多客戶時(shí)性能優(yōu)越。(2) 客戶端與服務(wù)器直接相連,安全性差,對(duì)客戶端性能要求較高。而b/s模式只需要有瀏覽器即可訪問。(3) 對(duì)c/s程序作任何改動(dòng)都需要重新安裝客戶端,而b/s程序只需要在服務(wù)器端重新部署即可實(shí)現(xiàn)所有客戶程序的更新。(4) c/s界面操作速度有一定優(yōu)勢(shì),但存在界面死板、不夠美觀的弱點(diǎn),而瀏覽器頁面的元素的多樣性使得系統(tǒng)界面更加美觀??傮w上,基于b

27、/s應(yīng)用模式的營銷系統(tǒng)更加符合現(xiàn)在的應(yīng)用環(huán)境和技術(shù)發(fā)展的趨勢(shì)。本系統(tǒng)充分利用過濾器和監(jiān)聽器的功能,解決系統(tǒng)亂碼問題,和對(duì)session對(duì)象的管理。其中監(jiān)聽器使用了sessionlistener,contextlistener,sessionlistener實(shí)現(xiàn)了當(dāng)用戶關(guān)閉瀏覽器時(shí),系統(tǒng)會(huì)自動(dòng)刪除session中的購物車,當(dāng)用戶訪問頁面時(shí)即session形成時(shí),監(jiān)聽器會(huì)自動(dòng)監(jiān)聽,系統(tǒng)會(huì)自動(dòng)創(chuàng)建購物車以便后來在用戶購物車管理模塊中當(dāng)用戶購買商品時(shí),放入到此購物車中。contextlistener使用的目的是,監(jiān)聽整個(gè)應(yīng)用系統(tǒng)的啟動(dòng)和關(guān)閉,當(dāng)系統(tǒng)啟動(dòng)時(shí)會(huì)加載數(shù)據(jù)庫中的所有體育用品商品。這樣做的好處是

28、不必每次請(qǐng)求查看商品數(shù)據(jù)時(shí)都與數(shù)據(jù)庫發(fā)生交互。1.5 本章小結(jié)本章首先分析了下當(dāng)前銷售行業(yè)在網(wǎng)絡(luò)上的發(fā)展態(tài)勢(shì),得出基于web系統(tǒng)的開發(fā)是一個(gè)新的趨勢(shì)。然后從技術(shù)的角度討論了web系統(tǒng)開發(fā)的模式和框架,包括struts2和hibernate框架的運(yùn)行原理和各自的性能特點(diǎn),它們各自代表著控制層和持久層。第二章 需求分析2.1 需求分析概述體育用品銷售管理系統(tǒng)主要實(shí)現(xiàn)了在網(wǎng)上選購商品、將商品加入購物車、查詢訂單等功能。本系統(tǒng)實(shí)現(xiàn)了商品信息的展示、購物車管理、注冊(cè)用戶信息、修改個(gè)人信息、登錄管理、訂單處理等模塊。需求分析可以分解為用戶需求分析和管理員需求分析。2.2 功能模塊圖功能模塊圖如圖2.1所示

29、:圖2.1 功能模塊圖2.3 可行性分析2.3.1 經(jīng)濟(jì)可行性通過網(wǎng)站對(duì)體育用品銷售進(jìn)行全面的自動(dòng)化的管理,使銷售管理系統(tǒng)更加規(guī)范,實(shí)現(xiàn)了通過網(wǎng)絡(luò)對(duì)商品信息進(jìn)行發(fā)布、傳遞、接收等一系列功能,大大提高了企業(yè)的辦公效率。通過系統(tǒng)對(duì)體育用品銷售過程中的數(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)化的范籌。2.3.2 技術(shù)可行性網(wǎng)絡(luò)體育用品銷售系統(tǒng)的開發(fā)采用了先進(jìn)成熟并且符合實(shí)際應(yīng)用的開發(fā)方法,目前最流行的集成開發(fā)環(huán)境myeclipse,動(dòng)態(tài)網(wǎng)頁開發(fā)技術(shù)jsp和mvc架構(gòu)技術(shù)struts、

30、spring和hibernate,功能強(qiáng)大的數(shù)據(jù)庫管理工具oracle,結(jié)合自己的實(shí)際開發(fā)能力,可以開發(fā)出較為完善的體育用品銷售管理系統(tǒng)。2.3.3 環(huán)境可行性分析在軟件環(huán)境方面,系統(tǒng)的開發(fā)環(huán)境如下:操作系統(tǒng):windows7;web應(yīng)用服務(wù)器:tomcat 6.0;數(shù)據(jù)庫:oracle 10.0g;開發(fā)工具:elcipse;2.4 用戶需求分析2.4.1 用戶注冊(cè)需求注冊(cè)要求用戶輸入一些個(gè)人信息,用戶名是每個(gè)注冊(cè)用戶的唯一標(biāo)識(shí)。注冊(cè)過程中還可以檢查用戶名是否存在,當(dāng)注冊(cè)成功后,用戶可以使用用戶名和密碼進(jìn)入體育用品銷售系統(tǒng),進(jìn)行購物、查看訂單等活動(dòng)。2.4.2 用戶登錄需求在登錄界面上用戶可以

31、輸入用戶名和密碼進(jìn)行登錄,如果用戶名和密碼都正確,則可以進(jìn)入體育用品銷售管理系統(tǒng),如果不正確,提示用戶登陸失敗,請(qǐng)輸入正確的用戶名和密碼,并重新登錄。如果用戶不存在還可以點(diǎn)擊用戶注冊(cè)進(jìn)入用戶注冊(cè)界面。2.4.3 購買商品需求用戶可以以兩種身份瀏覽商品。一種是已注冊(cè)用戶,另一種是游客。當(dāng)用戶用注冊(cè)用戶賬號(hào)登錄本系統(tǒng)進(jìn)行購物時(shí),用戶可以先將選中商品加入購物車,再提交訂單,可以選擇貨到付款、郵局匯款、銀行轉(zhuǎn)賬三個(gè)付款方式。如果以游客身份購買商品,可以將選中商品先加入購物車,提交訂單時(shí),系統(tǒng)會(huì)自動(dòng)提示您需要登錄才可以購買此商品,頁面將自動(dòng)跳轉(zhuǎn)到登錄界面。2.4.4 購物車管理需求購物車可以跟蹤用戶選擇

32、的商品,用戶在購物車中保存自己所選中的商品。每個(gè)用戶都有自己臨時(shí)的一個(gè)購物車??梢圆榭促徫镘嚕梢孕薷倪x中的商品的數(shù)量,可以添加商品放入購物車,也可以取消已加入購物車的商品或者清空購物車重新選購商品。2.4.5 訂單管理需求已登陸用戶能查看自己的訂單,能查看自己訂單的詳細(xì)信息,也可以刪除自己的訂單,當(dāng)確認(rèn)訂單后,系統(tǒng)根據(jù)購物車中的數(shù)據(jù)生成一條訂單記錄和一條訂單明細(xì)記錄,并將此次購買信息加入到相應(yīng)顧客的訂單信息中,并清空了購物車中的所有商品。2.5 管理員需求分析2.5.1 管理庫存的需求核心功能為添加商品,修改商品信息,修改庫存,即對(duì)體育用品數(shù)量的增加和刪除,增加體育用品的同時(shí)還要對(duì)保存在se

33、ssion里面的體育用品作更新,與數(shù)據(jù)庫的同步,讓顧客可以買到最新型號(hào)的體育用品。如圖2.2所示圖2.2 管理員需求框圖2.6系統(tǒng)用例圖(1)客戶總體用例圖,如圖2.3所示 圖2.3 客戶總體用例圖(2) 客戶管理用例圖,如圖2.4所示圖2.4 客戶管理用例圖(3)客戶購物車用例圖,如圖2.5所示圖2.5 客戶購物車用例圖(4)客戶訂單用例圖,如圖2.6所示圖2.6客戶訂單用例圖第三章 概要設(shè)計(jì)3.1 系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)()該系統(tǒng)是以關(guān)系數(shù)據(jù)庫為存儲(chǔ),基于web的應(yīng)用系統(tǒng)。由一系列組件和功能模塊組成??傮w結(jié)構(gòu):瀏覽器/服務(wù)器(b/s)編程模式:jsp+hibernate+struts2邏輯結(jié)構(gòu)

34、:用戶界面開發(fā)、業(yè)務(wù)邏輯處理和數(shù)據(jù)存儲(chǔ)()該系統(tǒng)聯(lián)合使用業(yè)務(wù)代理和dao模式3.2 系統(tǒng)的層次結(jié)構(gòu)設(shè)計(jì)系統(tǒng)從邏輯上分為顯示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。從程序分布位置角度來看,系統(tǒng)依次分布在瀏覽器、應(yīng)用服務(wù)器、數(shù)據(jù)庫系統(tǒng)這三層。3.3 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫技術(shù)是信息資源管理最有效的手段。數(shù)據(jù)庫設(shè)計(jì)是指針對(duì)一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最好的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),有效存儲(chǔ)數(shù)據(jù),滿足用戶信息要求和處理要求。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞直接對(duì)應(yīng)用系統(tǒng)的效率及實(shí)現(xiàn)效果產(chǎn)生影響。合理的數(shù)據(jù)庫設(shè)計(jì)可以提高數(shù)據(jù)庫的存儲(chǔ)效率、保證數(shù)據(jù)的完整性和一致性?;谙到y(tǒng)的功能分析,其er圖如圖3.1所示。用戶擁有個(gè)人信息訂貨

35、訂單構(gòu)成訂單明細(xì)體育用品參照擁有體育用品信息購買 圖3.1 系統(tǒng)的實(shí)體關(guān)系圖根據(jù)er圖,可得出數(shù)據(jù)庫的表單如下:(1) userinfo:存放用戶信息如表3.1所示:表3.1 用戶信息表字段名字段類型約束或索引描述useridvarchar2(16)pk記錄流水號(hào)namevarchar2(16)用戶名passwordvarchar2(16)用戶密碼zipvarchar2(255)郵編addressvarchar2(255)地址telephonevarchar2(255)電話emailvarchar2 (255)電子郵件(2) product表:存放體育用品信息如表3.2所示:表3.2 體育用品

36、信息表字段名字段類型約束或索引描述productidnumberpk記錄流水號(hào)namevarchar2(64)書名descriptionvarchar2(2000)體育用品的描述basepricenumber體育用品價(jià)錢categoryidnumber體育用品類型pcountnumber體育用品的數(shù)量imagesvarchar2(200)體育用品的圖片(3) orderline表:存放訂單明細(xì)信息如表3.3所示:表3.3 訂單明細(xì)表字段名字段類型約束或索引描述lineidnumber(10)pk記錄流水號(hào)productidnumber(10)fk體育用品的流水記錄號(hào)orderidnumber(

37、10)fk訂單的流水記錄號(hào)amountnumber(10)數(shù)量(4) der表:存放訂單信息如表3.4所示:表3.4 訂單信息表字段名字段類型約束或索引描述orderidnumber(sequence)pk記錄流水號(hào)namevarchar2(32)體育用品名稱finishednumber下單時(shí)間costnumber訂單價(jià)格useridvarchar2(16)fk用戶編號(hào)statusidnumberfk訂單狀態(tài)paywayidnumberfk付款方式(5) payway表:用戶選擇付款方式如表3.5所示:表3.5 付款方式表字段名字段類型約束或索引描述paywayidnumberpk記錄流水號(hào)p

38、aystylevarchar2(16)付款方式(6) contactionfo表:查看訂單詳細(xì)信息如表3.6所示:表3.6 訂單詳細(xì)信息表字段名字段類型約束或索引描述contactidnumberpk記錄流水號(hào)useridvarchar2(16)fk用戶編號(hào)street1varchar2(64)聯(lián)系地址zipvarchar2(8)郵編emailvarchar2(32)email地址homephonevarchar2(16)家庭電話cellphonevarchar2(16)手機(jī)號(hào)碼officephonevarchar2(16)辦公室電話3.4 系統(tǒng)組成系統(tǒng)組成表如表3.7所示:表3.7 系統(tǒng)組成

39、表用戶表示層(view)控制處理層(controller)業(yè)務(wù)邏輯層(model)addproducts.jspproductdetail.jspproducts.jspconfirmorder.jsporder.jsporderinfo.jspuserinfo.jspadminlogin.jspindex.jsplogin.jspmyjsp.jspproductdetail.jspregister.jspshopcart.jspactionadmincategorycontactioninfoishopcartorderorderlineorderstatuspaywayproductsho

40、pcartuseraddproductactionadminloginactionadminproductactionexitactionindexactionloginactionmodifyaction.3.5 系統(tǒng)文件組織設(shè)計(jì)采用分層開發(fā)設(shè)計(jì),這樣的好處是分工明確,適合團(tuán)隊(duì)開發(fā)。如果某個(gè)地方出現(xiàn)錯(cuò)誤不會(huì)影響其他層。這是一種高內(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ù),而ac

41、tion和service也只調(diào)用dao里面的方法。這種調(diào)用方向單一,有效地降低了耦合,增強(qiáng)了內(nèi)聚。系統(tǒng)文件的組織如圖3.2所示:圖3.2 系統(tǒng)文件的組織第四章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)是對(duì)系統(tǒng)架構(gòu)設(shè)計(jì)的精化,主要是在系統(tǒng)需求規(guī)格和架構(gòu)設(shè)計(jì)的基礎(chǔ)上,對(duì)系統(tǒng)用例中使用的類和對(duì)象進(jìn)行進(jìn)一步的精化,確定每一個(gè)類的屬性和方法。4.1 系統(tǒng)運(yùn)行環(huán)境系統(tǒng)運(yùn)行的操作系統(tǒng)為windows,也可以移植到linux、unix等操作系統(tǒng)下執(zhí)行,數(shù)據(jù)庫采用oracle 10g,應(yīng)用服務(wù)器采用符合j2ee規(guī)范的tomcat6.0應(yīng)用服務(wù)器。4.2 系統(tǒng)部署架構(gòu)整個(gè)應(yīng)用部署在一臺(tái)應(yīng)用服務(wù)器、一臺(tái)數(shù)據(jù)庫服務(wù)器上。系統(tǒng)可以可以使用企業(yè)

42、內(nèi)部局域網(wǎng),也可以通過廣域網(wǎng)訪問系統(tǒng)。4.3 系統(tǒng)時(shí)序圖在體育用品銷售管理系統(tǒng)設(shè)計(jì)過程中,時(shí)序圖如圖4.1所示。圖4.1 系統(tǒng)時(shí)序圖(1)界面:在本項(xiàng)目中指jsp頁面,在具體的時(shí)序圖中被實(shí)際的頁面文件所替代。(2)action:指struts中的action的具體實(shí)現(xiàn)類,在具體的時(shí)序圖中被實(shí)際的類所替代。其作為控制器的一部份存在。(3)bo:業(yè)務(wù)邏輯操作對(duì)象(bussiness object),執(zhí)行功能的業(yè)務(wù)邏輯職責(zé),在具體的時(shí)序圖中被實(shí)際的類所替代。如果某個(gè)功能沒有業(yè)務(wù)邏輯處理,此類可以不在時(shí)序圖中存在。(4)dao:為數(shù)據(jù)操作類處理相應(yīng)的數(shù)據(jù)庫操作。(5)hibernatedatasour

43、ce:數(shù)據(jù)操作實(shí)現(xiàn)類,用來執(zhí)行實(shí)際的數(shù)據(jù)庫訪問。4.4 系統(tǒng)的持久化層具體實(shí)現(xiàn)4.4.1 定義hibernate工廠類本系統(tǒng)采用struts和hibernate技術(shù)進(jìn)行開發(fā),由hibernate進(jìn)行數(shù)據(jù)庫連接和數(shù)據(jù)對(duì)象的操作,這里定義一個(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í)

44、例,打開/關(guān)閉,事物操作單獨(dú)這些代碼,只要調(diào)用上面的類的方法就可以了,從而簡(jiǎn)化了操作。4.4.2 使用dao模式本系統(tǒng)的持久化邏輯采用hibernate作為中間件,并使用dao設(shè)計(jì)模式實(shí)現(xiàn)。主要是在業(yè)務(wù)核心方法和具體數(shù)據(jù)源之間增加一層,這樣就減少了兩者的耦合。每個(gè)持久化類對(duì)應(yīng)一個(gè)dao類,它實(shí)現(xiàn)了持久化類的創(chuàng)建、查詢、更新及刪除方法,以及其它訪問持久化機(jī)制的方法。本系統(tǒng)所有與數(shù)據(jù)庫邏輯有關(guān)的方法都在idao接口中,在com.briup.dao包下創(chuàng)建一個(gè)dao的接口,并在com.briup.dao包下創(chuàng)建一個(gè)impl繼承dao接口實(shí)現(xiàn)具體的操作。4.5 系統(tǒng)業(yè)務(wù)邏輯層設(shè)計(jì)業(yè)務(wù)邏輯層中只包含業(yè)務(wù)

45、邏輯,不包含任何與數(shù)據(jù)庫的交互,因此減少了訪問過程中與數(shù)據(jù)庫交互的過程,大大提高了運(yùn)行的速率。業(yè)務(wù)邏輯層的實(shí)現(xiàn)需要調(diào)用持久化層和數(shù)據(jù)庫交互功能的支持。本系統(tǒng)所有與業(yè)務(wù)邏輯有關(guān)的方法都在service接口中,并且在com.briup.service包中創(chuàng)建一個(gè)impl包,此包中的類是對(duì)service接口的實(shí)現(xiàn)。4.6 系統(tǒng)接口及映射文件的實(shí)現(xiàn)設(shè)計(jì) 本系統(tǒng)的持久化邏輯采用hibernate作為中間件,并使用dao設(shè)計(jì)模式實(shí)現(xiàn)。主要是在業(yè)務(wù)核心方法和具體數(shù)據(jù)源之間增加一層,這樣就減少了兩者的耦合。每個(gè)持久化類對(duì)應(yīng)一個(gè)dao,它實(shí)現(xiàn)了持久化類的創(chuàng)建、查詢、更新及刪除方法,即crud(create 、r

46、etrieve、update、delete)方法,以及其他訪問持久化機(jī)制方法。 本系統(tǒng)所有與數(shù)據(jù)庫邏輯有關(guān)的方法都在dao的實(shí)現(xiàn)類中,現(xiàn)在dao包下創(chuàng)建接口iproductdao、iorderdao、iuserdao ,并在dao.impl包下創(chuàng)建接口的實(shí)現(xiàn)類productdaoimpl orderdaoimpl、userdaoimpl,注意要繼承相應(yīng)的接口。 為了使用hibernate來持久化對(duì)象,首先要根據(jù)數(shù)據(jù)庫的各個(gè)表創(chuàng)建映射文件.每個(gè)類都對(duì)應(yīng)的hibernate映射文件,且都放到bean包下。4.7 模塊功能設(shè)計(jì)與實(shí)現(xiàn)4.7.1 登陸功能任何的用戶都必須通過登陸界面進(jìn)入購書系統(tǒng)。在登錄

47、界面上用戶可以輸入用戶名和密碼進(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è)過程是自動(dòng)完成的,無須我們?nèi)プ鬟@部分工作。我們?cè)趌ogaction里面也有定義兩個(gè)實(shí)例變量:na

48、me和password并且寫上對(duì)應(yīng)的set/get方法。然后判斷登錄的身份為普通用戶還是管理員,輸入的用戶名和密碼是否正確,action里面的execute方法調(diào)用iuserservice接口中的login(customer c)方法實(shí)現(xiàn)登錄的合法性驗(yàn)證。如果為普通用戶,在此service方法中首先要調(diào)用dao方法中的find(string name) 方法判斷數(shù)據(jù)庫customer表中是否存在名字為name的記錄,如果不存在提示用戶輸入的用戶名不存在,如果存在,繼續(xù)判斷密碼是否于數(shù)據(jù)庫中的密碼相同,相同的時(shí)候表示登錄成功execute方法返回success,然后struts2根據(jù)配置文件的配

49、置跳轉(zhuǎn)到相關(guān)的頁面,也就是銷售管理的客戶主界面。如果是管理員,我們將把servletcontext里面的admin鍵值對(duì)讀出,如果用戶密碼都正確跳轉(zhuǎn)到管理界面否則提示出錯(cuò)。無論是用戶還是管理員,在登錄成功后都把service層的login方法返回的customer對(duì)象保存到session范圍內(nèi)。遇到的問題:在寫action的時(shí)候總是忘記把屬性的set/get方法寫上,這樣作的后果是struts是沒法給屬性賦值的,可能會(huì)產(chǎn)生空指針異常。還有就是由于在execute()方法里面實(shí)際上有普通用戶和管理員的兩個(gè)登錄,所以剛開始寫時(shí)把返回值都寫成了success和error,這樣是不能跳轉(zhuǎn)到正確的頁面的

50、。4.7.2 注冊(cè)功能任何第一次登陸的用戶必須先注冊(cè),與注冊(cè)界面有關(guān)的為register.jsp,在完成注冊(cè)功能時(shí)需要為注冊(cè)功能的實(shí)現(xiàn)定義一個(gè)action名字為registeraction,在execute()方法中調(diào)用相應(yīng)的dao和service方法實(shí)現(xiàn)注冊(cè)。對(duì)注冊(cè)的用戶進(jìn)行合法性的驗(yàn)證,滿足所有的條件的用戶才能注冊(cè)成功。用戶名作為用戶登錄的唯一標(biāo)識(shí)。在驗(yàn)證注冊(cè)新用戶的過程中加入新加入了javascript驗(yàn)證的過程,提示用戶在注冊(cè)時(shí)必須提供用戶名和密碼,且為了密碼的安全,位數(shù)在6位和8位之間等等。只由在滿足這一系列條件的情況下才能正常地注冊(cè),否則重新注冊(cè)。 具體實(shí)現(xiàn)的思想:在注冊(cè)界面中,對(duì)

51、于帶有紅色星號(hào)的項(xiàng)必須填寫,其具體的客戶端驗(yàn)證通過javascript完成,如果沒有填寫在提交的時(shí)候系統(tǒng)會(huì)提示用戶填寫相關(guān)的項(xiàng)目。在javascript文件的main.js中定義了一個(gè)函數(shù),專門對(duì)注冊(cè)界面提交的表單進(jìn)行合法性驗(yàn)證,如果驗(yàn)證通過,轉(zhuǎn)回form中執(zhí)行的action屬性,跳轉(zhuǎn)到registeraction的execute方法中,在execute中接收到從注冊(cè)頁面的表單中的提交的相關(guān)數(shù)據(jù),創(chuàng)建user對(duì)象并將提交的數(shù)據(jù)封裝在此user類中,調(diào)用service中的registeruser方法對(duì)業(yè)務(wù)邏輯進(jìn)行進(jìn)一步的驗(yàn)證,完全符合條件的情況下才能注冊(cè)成功,否則繼續(xù)進(jìn)行注冊(cè)。4.7.3 購買商

52、品功能商品的購買必然要牽涉到購物車的實(shí)現(xiàn),它也是本系統(tǒng)的核心技術(shù)部分,首先是購物車列表的動(dòng)態(tài)顯示,所有商品的數(shù)據(jù)是通過監(jiān)聽器加載進(jìn)內(nèi)存的,通過分頁技術(shù),讓顧客能瀏覽所有的體育用品商品。實(shí)現(xiàn)購物車中的添加體育用品、修改購買的數(shù)量,以及清空購物車的功能。體育用品列表的動(dòng)態(tài)顯示是在web應(yīng)用啟動(dòng)的時(shí)候完成的,使用了創(chuàng)建事件監(jiān)聽器的方式實(shí)現(xiàn)。具體實(shí)現(xiàn):在listener包中創(chuàng)建一個(gè)applicationlistener類,繼承系統(tǒng)提供的servletcontextlistener類,定義contextintialized方法對(duì)體育用品列表信息進(jìn)行初始化工作,在此方法中新建一個(gè)products類型的對(duì)象

53、,該對(duì)象的構(gòu)造方法就有從數(shù)據(jù)庫中查詢出所有的商品,然后把products的對(duì)象存放在servletcontext范圍內(nèi)的application對(duì)象中,存放在servletcontext范圍內(nèi)的對(duì)象的生命周期為從web的啟動(dòng)到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類,繼承系

54、統(tǒng)提供的httpsessionlistener類,從httpsessionlistener中獲取session對(duì)象,創(chuàng)建一個(gè)shopcart對(duì)象,并把它放在session范圍內(nèi),以供用戶使用。在創(chuàng)建事件監(jiān)聽器以后,一定要在web.xml配置文件中對(duì)事件監(jiān)聽器進(jìn)行配置,否則創(chuàng)建的事件監(jiān)聽器不起任何作用。核心代碼如下:com.briup.web.listener.shopcartlistener體育用品信息在jsp頁面上的動(dòng)態(tài)顯示使用了在jsp的腳本中使用jstl標(biāo)簽結(jié)合el表達(dá)式來處理。使用el的目的為輸出對(duì)象中的屬性值,輸出一些變量值,輸出一些表達(dá)式(關(guān)系、邏輯、算術(shù))的結(jié)果例如:sessio

55、nscope: 把session范圍中的key和value進(jìn)行映射session.setattribute(name,jack);$sessions等于out.println(session.getattribute(name);用戶點(diǎn)擊購買按鈕時(shí)相當(dāng)于提交了一個(gè)表單,這個(gè)表單包含了一個(gè)隱含的input標(biāo)簽,其內(nèi)容為購買體育用品的id號(hào),和購買的體育用品數(shù)量。然后這個(gè)表單轉(zhuǎn)向addproductaction來處理 。action的實(shí)例變量id,和num已經(jīng)由struts2進(jìn)行了賦值。execute方法中新建一個(gè)product對(duì)象,然后從session對(duì)象中獲得shopcart對(duì)象,并調(diào)用其中的addproduct方法往購物車中添加一條product對(duì)象。點(diǎn)擊體育用品列表下方的查看購物車功能時(shí),跳轉(zhuǎn)到shopcart.jsp頁面,在購物車頁面中使用jsp腳本把存放在session范圍內(nèi)的shopcart對(duì)象取出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論