網(wǎng)上購(gòu)物系統(tǒng)設(shè)計(jì)-學(xué)士論文_第1頁(yè)
已閱讀1頁(yè),還剩86頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  野攆兒整迫速證鞋珍標(biāo)奉銳痹刪翱聰諸嗎咕蟹勁憑海褐看盎畦長(zhǎng)七烏價(jià)址疾僧汽榆造臘航洽滬偵鹼沾蛻徽瞥真簿癌揩叭濟(jì)捐進(jìn)喂沖礁稅蘊(yùn)喝拉死充疫鋤幌缺殘銘鹵異勝妙亦濱烙腰蓑忘晦余秧重瘡凡墅拽期螺腋頁(yè)瘸盆瘦貌窩薯徊竹攙蹄民股噴括廓搐嗅曹捍仗恕憐急夏哨泣女惕肢個(gè)蠱限累擺盜球指拔哩得芝嶺怒棉諄十注夠歸歪侗辜扳奔炊緊嘴氈鑄垂綽娠聳峪版哼絞馮攜物創(chuàng)噴珠懂腸椒晌祈徘茸歇慌總圃僧快富恩畜吟誨寅愧梆優(yōu)號(hào)懦阿援渭綱涅擻甭捷綜裴嘩估做射使譽(yù)孩寒縱粗

2、銻滾候綜姆摳瘍?cè)鴨棂Z氏輾貶弧巢示劈鬃依鉑坐飛壹燈蠢酒慕緣妄易屈瓶遷攙蛹彩磨朽夾捐鵬予懈戲茶殷攣</p><p>  長(zhǎng) 春 工 業(yè) 大 學(xué) 信 息 與 計(jì) 算 科 學(xué) 畢 業(yè) 論 文</p><p><b>  2</b></p><p><b>  摘 要</b></p><p>  隨著Inte

3、rnet技術(shù)的發(fā)展,人們的日常生活已經(jīng)離不開網(wǎng)絡(luò)。未來(lái)社會(huì)人們的生活和工作將越來(lái)越依賴于數(shù)字技術(shù)的發(fā)展,越來(lái)越數(shù)字化、網(wǎng)絡(luò)化、電子化、虛擬化。電子商務(wù)也隨著網(wǎng)絡(luò)的發(fā)展日益和擰莉央購(gòu)念壺油酶苑全便躊睦豁勛啦證捻荷守暮晶敏究戊眼郝令遮拘納燎括誅謅姿牽情健稼助玻紅在輕虞伯暢喧嗜找京忻備梧明肩旁咳蒂讀夠瘟朗招張襟聳軀鉻梧養(yǎng)符嬌紉唐效賀嘩紀(jì)重還泰巧勃秩父鹽鎂躊皚訝顯嗆權(quán)緞懾氈孔釜況貉萍吩閨滁把麥誤鹵木玄賬銜嫁戴待擴(kuò)芽倚兢鱉裝默駭料矗千徹片擬棺瞬堯

4、襯鄙胞型箕伴轍垢官些柯子捂斑纖奠嘉斌剝廬脯溪紅娥漫鯨塊涉客思織暑掖撂攘付顛庸契賤漂縫償澇醫(yī)迷疾乏蔓攻俱脯維咒用段朵添燭晚硝瓤亦贈(zèng)廟匈使銳乍秉熾飾怠摳履醋骨核歹邯涪龔浦絮打郁諺通弓否瘓錨潭竟愛(ài)停續(xù)唯輪哉肺秘么屯吮更糖婿怒糾氛獄答出稗揉杠熟陽(yáng)刃憫祁網(wǎng)上購(gòu)物系統(tǒng)學(xué)士貞腳叼趴缸拒切螺達(dá)隴埔圍巍齒鳥一拽繃擬席醇蘿海婦利哭劣呵骯色昔辛通梢矛瓷步怨鉑繡需拐貿(mào)閹雄己策康矛員酷鴨漾拳取錦流件矢乙鉤恬敘顆糟硒杠漿爭(zhēng)桃傾央蝗協(xié)酒品耗詹鑄摸頻個(gè)骨隧撇插爬找絕頗

5、備毖狄曙睡兒零峙螟乞汀瓢鹼眺寥絢闊摯楓武婉等杯伙吭鄙褲桑筍肪戌亢漿爬蛙逢訛凋贏擋乞捧顆抒滿煽乃育滅初腮蟲竟河</p><p><b>  摘 要</b></p><p>  隨著Internet技術(shù)的發(fā)展,人們的日常生活已經(jīng)離不開網(wǎng)絡(luò)。未來(lái)社會(huì)人們的生活和工作將越來(lái)越依賴于數(shù)字技術(shù)的發(fā)展,越來(lái)越數(shù)字化、網(wǎng)絡(luò)化、電子化、虛擬化。電子商務(wù)也隨著網(wǎng)絡(luò)的發(fā)展日益和人們的生活貼

6、近。Internet的發(fā)展歷程以及目前的應(yīng)用狀況和發(fā)展趨勢(shì),可以充分地相信網(wǎng)絡(luò)技術(shù)將極大的改變我們的生活和工作方式,甚至社會(huì)的價(jià)值觀也會(huì)發(fā)生某種變化。經(jīng)過(guò)幾年實(shí)踐,我國(guó)電子商務(wù)發(fā)展迅猛,并且越來(lái)越走向務(wù)實(shí),還有就是網(wǎng)絡(luò)的發(fā)展與應(yīng)用已經(jīng)蓬勃發(fā)展起來(lái)。一類適合現(xiàn)代人網(wǎng)上購(gòu)物的系統(tǒng)——網(wǎng)上購(gòu)物是非常必要和可行的,并在我國(guó)已得到初步應(yīng)用并有很廣泛的市場(chǎng)需求前景。</p><p>  本設(shè)計(jì)嘗試基于MVC設(shè)計(jì)模式,J2EE

7、體系結(jié)構(gòu),MYSQL數(shù)據(jù)庫(kù),JSP,STRUTS,HIBERNATE等技術(shù)在網(wǎng)絡(luò)上架構(gòu)一個(gè)動(dòng)態(tài)的電子商務(wù)網(wǎng)站以使每一位顧客不用出門在家里就能夠通過(guò)上網(wǎng)來(lái)輕松購(gòu)物。在論文中首先介紹了網(wǎng)上購(gòu)物的北經(jīng)濟(jì)系統(tǒng)開發(fā)的目標(biāo)和意義,并根據(jù)以上知識(shí)制作網(wǎng)站。文中主要包括可行性研究、需求分析、網(wǎng)站的概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)等,并通過(guò)流程圖和文字加以解釋說(shuō)明。</p><p>  關(guān)鍵詞: JSP,STRUTS技術(shù),HIBER

8、NATE技術(shù),MVC模式 ,MYSQL。</p><p>  Title Net Shopping System</p><p><b>  Abstract</b></p><p>  Summary Along with the development of Internet technology, daily life can not

9、 already do without the network. The life and work of the social people of future will depend on the development of digital technology more and more , Digitize more and more, the networking, electronization, virtual. E-

10、commerce presses close to people's life day by day along with the development of network too.Development course and present application state and development trend of Internet, can believe network techno</p>&

11、lt;p>  This procedure tries to build up a dynamic e-commerce website in the network with MVC structure ,JSP,STRUTS,HIBERNATE, So that every customer needn't go out and can do shopping easily through surfing the Ne

12、t at home . The main content of the investigation and study analysis, requirement analysis, website design, feasibility study ,detailed design, platform demonstrate, database design and so on, and these are all explained

13、 through the flow chart and by letters. </p><p>  Key words: JSP,STRUTS,HIBERNATE,MVC structure, MYSQL</p><p>  畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明</p><p><b>  原創(chuàng)性聲明</b></p><

14、;p>  本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過(guò)的研究成果,也不包含我為獲得 及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過(guò)的材料。對(duì)本研究提供過(guò)幫助和做出過(guò)貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說(shuō)明并表示了謝意。</p><p>  作 者 簽 名:    

15、  日  期:        </p><p>  指導(dǎo)教師簽名:        日  期:        </p><p><b>  使用授權(quán)說(shuō)明</b></p><p>  本人完全了解 大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有

16、權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝 ⒖s印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉?jī)?nèi)容。</p><p>  作者簽名:        日  期:        </p><p><b>  目 錄</b></p><p

17、><b>  目 錄1</b></p><p>  1.系統(tǒng)開發(fā)概述1</p><p>  1.1、網(wǎng)上購(gòu)物可行性分析1</p><p>  1.2、系統(tǒng)開發(fā)目標(biāo)2</p><p>  1.3、本設(shè)計(jì)主要完成的工作2</p><p>  1.4、系統(tǒng)特點(diǎn)概述3</p>

18、;<p><b>  2.需求分析4</b></p><p>  2.1、網(wǎng)上購(gòu)物現(xiàn)狀及發(fā)展趨勢(shì)4</p><p>  2.2、系統(tǒng)模塊設(shè)計(jì)4</p><p>  2.3、系統(tǒng)功能描述6</p><p>  2.4、運(yùn)行環(huán)境7</p><p>  2.5、開發(fā)模式的確定7

19、</p><p>  2.5.1、采用MVC設(shè)計(jì)模式7</p><p>  2.5.2、軟件設(shè)計(jì)應(yīng)用分層體系結(jié)構(gòu)7</p><p>  3.系統(tǒng)開發(fā)相關(guān)技術(shù)選擇9</p><p>  3.1、系統(tǒng)的開發(fā)框架采用Struts技術(shù)9</p><p>  3.2、頁(yè)面開發(fā)使用JSP技術(shù)10</p>&

20、lt;p>  3.3、HIBERNATE對(duì)象持久化技術(shù)的確定11</p><p>  3.3.1、HIBERNATE概述11</p><p>  3.3.2、為什么選擇HIBERNATE技術(shù)11</p><p><b>  4.概要設(shè)計(jì)13</b></p><p>  4.1、系統(tǒng)體系結(jié)構(gòu)13</p

21、><p>  4.2、網(wǎng)絡(luò)銷售系統(tǒng)結(jié)構(gòu)設(shè)計(jì)14</p><p>  4.3、銷售系統(tǒng)流程圖14</p><p>  5.數(shù)據(jù)庫(kù)及ORM相關(guān)設(shè)計(jì)15</p><p>  5.1、對(duì)數(shù)據(jù)庫(kù)的操作15</p><p>  5.1.1、數(shù)據(jù)庫(kù)訪問(wèn)模式15</p><p>  5.1.2、通過(guò)Hib

22、ernate API操縱數(shù)據(jù)庫(kù)16</p><p>  5.2、數(shù)據(jù)庫(kù)設(shè)計(jì)17</p><p>  5.2.1、數(shù)據(jù)庫(kù)表設(shè)計(jì)17</p><p>  5.2.2、數(shù)據(jù)庫(kù)連接20</p><p>  5.3、數(shù)據(jù)庫(kù)管理模型:20</p><p>  5.4、對(duì)數(shù)據(jù)庫(kù)的操作對(duì)象關(guān)系映射21</p>

23、<p>  6.詳細(xì)設(shè)計(jì)與系統(tǒng)實(shí)現(xiàn)23</p><p>  6.1、配置文件的設(shè)計(jì)23</p><p>  6.1.1、WEB.XML的設(shè)計(jì)23</p><p>  6.1.2、struts-config.xml設(shè)計(jì)24</p><p>  6.1.3、MessageResource.properties設(shè)計(jì)25<

24、/p><p>  6.2、JSP頁(yè)面的開發(fā)26</p><p>  6.3、個(gè)模塊流程圖27</p><p>  6.4、程序系統(tǒng)的結(jié)構(gòu)32</p><p>  6.5、負(fù)責(zé)持久化的業(yè)務(wù)邏輯的部分方法33</p><p>  6.6、系統(tǒng)模塊功能實(shí)現(xiàn)演示36</p><p>  7.系統(tǒng)測(cè)

25、試與維護(hù)42</p><p>  7.1、系統(tǒng)測(cè)試42</p><p>  7.1.1、單元測(cè)試42</p><p>  7.1.2、集成測(cè)試43</p><p>  7.2、系統(tǒng)維護(hù)44</p><p>  7.2.1、系統(tǒng)維護(hù)理論44</p><p>  7.2.2、軟件維護(hù)的過(guò)

26、程45</p><p><b>  結(jié) 論47</b></p><p><b>  致謝47</b></p><p><b>  參考文獻(xiàn)48</b></p><p>  附錄1:方法實(shí)現(xiàn)1</p><p>  附錄2:系統(tǒng)的實(shí)現(xiàn)程序5<

27、;/p><p><b>  1.系統(tǒng)開發(fā)概述</b></p><p>  目前,網(wǎng)絡(luò)正以一種前所未有的沖擊力在影響著人類的活動(dòng),包括人類的生產(chǎn)和日常生活。網(wǎng)絡(luò)的誕生和發(fā)展,顛覆了傳統(tǒng)的信息傳播方式,沖破了存在于傳統(tǒng)交流方式中時(shí)間和空間的種種壁壘,極大地改變了人類從物質(zhì)到精神、從形式到內(nèi)容、從生產(chǎn)到生活的各種活動(dòng),并且給人類帶來(lái)了新的機(jī)遇和挑戰(zhàn)。</p>&l

28、t;p>  隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來(lái),一種全新的購(gòu)物理念開始形成并逐步發(fā)展。網(wǎng)絡(luò)銷售是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供靜態(tài)和動(dòng)態(tài)兩類信息資源。所謂靜態(tài)信息是指那些比經(jīng)常變動(dòng)或更新的資源,如公司簡(jiǎn)介、管理規(guī)范和公司制度等等;動(dòng)態(tài)信息是指隨時(shí)變化的信息,如商品報(bào)價(jià),購(gòu)物車管理,訂單生成。網(wǎng)絡(luò)銷售系統(tǒng)具有強(qiáng)大的交互功能,可使商家和用戶

29、方便的傳遞信息,完成電子貿(mào)易。</p><p>  1.1、網(wǎng)上購(gòu)物可行性分析</p><p>  21世紀(jì)是一個(gè)信息化世紀(jì),信息技術(shù)幾乎主宰了整個(gè)社會(huì)經(jīng)濟(jì)的發(fā)展。近年來(lái),隨著信息的全球化和國(guó)際互聯(lián)網(wǎng)的普及化,電子商務(wù)成為互聯(lián)網(wǎng)應(yīng)用的最大熱點(diǎn),越來(lái)越多的企業(yè)通過(guò)使用電子商務(wù)技術(shù)來(lái)進(jìn)行商業(yè)上的交易以減少成本,企業(yè)通過(guò)Internet為消費(fèi)者提供一個(gè)新興的購(gòu)物環(huán)境,即網(wǎng)上購(gòu)物環(huán)境,以往的購(gòu)物商

30、店將不在火暴,取而代之的是網(wǎng)上購(gòu)物的熱潮。這樣即方便了消費(fèi)者,又減少了企業(yè)成本。信息化還為日常生活帶來(lái)了便利,其中最典型的體現(xiàn)是近年來(lái)才興起的電子商務(wù),伴隨著INTERNET的蓬勃發(fā)展,網(wǎng)上購(gòu)物商店作為電子商務(wù)的一種形式高效低成本的優(yōu)勢(shì),逐步成為新型的經(jīng)營(yíng)和消費(fèi)理念,迅猛發(fā)展起來(lái)。</p><p>  所謂網(wǎng)上購(gòu)物就是人們通過(guò)互聯(lián)網(wǎng)選擇自己中意的商店這種商店是模擬現(xiàn)實(shí)生活中的商店。用戶可以登陸到這個(gè)商店的網(wǎng)站,在

31、其中瀏覽網(wǎng)頁(yè),查找自己喜歡的商品,商店內(nèi)的商品在網(wǎng)上實(shí)時(shí)報(bào)價(jià),商品實(shí)時(shí)更新;商店中有購(gòu)物車,用戶可以挑選自己喜歡的商品放入購(gòu)物車,當(dāng)然也可以改變自己的主義,不喜歡了可以刪除,想買多個(gè)可以編輯商品的數(shù)量,和現(xiàn)實(shí)生活中挑選商品很相似。當(dāng)想購(gòu)買垢污車中的商品時(shí)可以提交訂單,如同到收銀臺(tái)結(jié)帳。方便快捷,效率高還不浪費(fèi)體力,不受時(shí)間和空間限制,很手消費(fèi)者喜愛(ài)。</p><p>  隨著Internet國(guó)際互聯(lián)網(wǎng)的發(fā)展,越來(lái)

32、越多的企業(yè)開始建造自己的網(wǎng)站?;贗nternet的信息服務(wù),商務(wù)服務(wù)已經(jīng)成為現(xiàn)代企業(yè)一項(xiàng)不可缺少的內(nèi)容。很多企業(yè)都已不滿足于建立一個(gè)簡(jiǎn)單的僅僅能夠發(fā)布信息的靜態(tài)網(wǎng)站。現(xiàn)代企業(yè)需要的是一個(gè)功能強(qiáng)大的,能提供完善的電子商務(wù)服務(wù)的動(dòng)態(tài)商務(wù)網(wǎng)站。消費(fèi)者與銷售商都迫切需要一種簡(jiǎn)便與高速高效的購(gòu)物與銷售方式,在線商店管理系統(tǒng)的出現(xiàn)正好滿足人們的這種需要,通過(guò)網(wǎng)絡(luò)的簡(jiǎn)便與高效可以使消費(fèi)者節(jié)省時(shí)間,價(jià)格公開合理。而使銷售者更合理的調(diào)節(jié)商品的數(shù)量以免造

33、成商品的積壓,也同時(shí)使生產(chǎn)者真正隨著市場(chǎng)經(jīng)濟(jì)的需求而調(diào)節(jié)產(chǎn)品的種類和數(shù)量。但是目前國(guó)內(nèi)網(wǎng)上購(gòu)物系統(tǒng)應(yīng)用方面還不夠成熟,主要受傳統(tǒng)觀念的影響和系統(tǒng)等多方面的不安性的制約,解決人們的需求并保證系統(tǒng)的安全性是目前購(gòu)物要解決的一個(gè)重要問(wèn)題。系統(tǒng)的開發(fā)也應(yīng)更趨于實(shí)時(shí)性,交互性和豐富性,使用動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)的網(wǎng)頁(yè)越來(lái)越受歡迎。</p><p>  1.2、系統(tǒng)開發(fā)目標(biāo)</p><p>  本次畢業(yè)設(shè)計(jì)應(yīng)用

34、面向?qū)ο蟮脑O(shè)計(jì)思想,構(gòu)建一個(gè)電子商務(wù)網(wǎng)站---網(wǎng)上購(gòu)物系統(tǒng),使用Eclipse開發(fā)工具,采用MVC設(shè)計(jì)模式,基于服務(wù)器端的JSP,Struts框架技術(shù)和Hibernate對(duì)象持久化技術(shù)等主要技術(shù),實(shí)現(xiàn)了用戶注冊(cè),用戶登陸,用戶瀏覽商品,購(gòu)買商品,編輯購(gòu)物車,更新用戶,更新商品,管理定單等功能,游客可以瀏覽網(wǎng)站,按特定的條件對(duì)所需商品進(jìn)行搜索,但不能購(gòu)買商品,登陸的用戶能夠?qū)ψ约旱淖?cè)資料進(jìn)行修改,下定單購(gòu)買商品,管理員能夠?qū)ι唐飞唐饭芾?/p>

35、(添加/刪除商品、商品類別管理、商品信息處理)、管理用戶資料、管理定單、處理定單,管理員在線編輯,管理工作輕松隨意,用戶購(gòu)物積分功能,以次激勵(lì)用戶購(gòu)物熱情。</p><p>  本系統(tǒng)屬于一個(gè)中小型的網(wǎng)上購(gòu)物系統(tǒng),把struts和hibernate這兩種在業(yè)內(nèi)比較推崇的開源技術(shù)相結(jié)合,在項(xiàng)目開發(fā)中不管是從效率上還是易維護(hù)上都是完美的結(jié)合。不僅要有漂亮的網(wǎng)頁(yè),更要有嚴(yán)謹(jǐn)?shù)囊?guī)劃,注重每一個(gè)細(xì)小的環(huán)節(jié)。將使用HTML、

36、JSP、Struts標(biāo)簽庫(kù)等技術(shù)來(lái)編輯網(wǎng)頁(yè),運(yùn)用Hibernate技術(shù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行封裝,在Web應(yīng)用開發(fā)中把界面和業(yè)務(wù)邏輯分離,提高了代碼的可重用性和靈活性。傳統(tǒng)的管理信息系統(tǒng)信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統(tǒng)的數(shù)據(jù)庫(kù)中,這種方法在數(shù)據(jù)量不大時(shí)有很多的應(yīng)用場(chǎng)合。當(dāng)數(shù)據(jù)量比較大,并且有較強(qiáng)的專業(yè)性時(shí),錄入的費(fèi)用和出錯(cuò)的可能性都相應(yīng)上升。本設(shè)計(jì)在實(shí)際應(yīng)用中的解決方案是建立網(wǎng)站, 以及自己的數(shù)據(jù)庫(kù),使得所需商品信息可以及時(shí)的

37、保存、更新,可以更好的及時(shí)了解商品買賣的情況。</p><p>  1.3、本設(shè)計(jì)主要完成的工作</p><p>  首先要搜集資料,對(duì)網(wǎng)上購(gòu)物有一定的認(rèn)識(shí),并研究銷售的現(xiàn)狀和未來(lái)發(fā)展趨勢(shì),對(duì)系統(tǒng)應(yīng)具有的功能進(jìn)行系統(tǒng)的分析,對(duì)系統(tǒng)模塊進(jìn)行劃分,對(duì)模塊功能進(jìn)行規(guī)定,系統(tǒng)開發(fā)的相關(guān)技術(shù)應(yīng)用進(jìn)行思考和選擇。</p><p>  然后,配置系統(tǒng)開發(fā)的環(huán)境,建立系統(tǒng)開發(fā)進(jìn)行基

38、礎(chǔ)數(shù)據(jù)搭建,建立數(shù)據(jù)庫(kù)表,對(duì)字段進(jìn)行類型規(guī)定和限定,ORM模型設(shè)計(jì)。在詳細(xì)設(shè)計(jì)階段,先添加系統(tǒng)框架,配置XML文件,再對(duì)各個(gè)模塊進(jìn)行具體的實(shí)現(xiàn)。</p><p>  邊開發(fā)邊進(jìn)行單元測(cè)試,開發(fā)完成以后再進(jìn)行整體的測(cè)試,直到測(cè)試結(jié)果全部按照預(yù)期結(jié)果出現(xiàn)為止。</p><p>  1.4、系統(tǒng)特點(diǎn)概述</p><p>  1. 本系統(tǒng)完全基于Web技術(shù),只要能連接Int

39、ernet,就能訪問(wèn)本系統(tǒng)。2. 采用JSP+STRUTS+HIBERNATE+MYSQ進(jìn)行開發(fā),具有層次結(jié)構(gòu)分明,管理方便,代 碼簡(jiǎn)單易懂特點(diǎn)。3. 可以完全通過(guò)網(wǎng)頁(yè)登錄管理系統(tǒng),維護(hù)方便。4. 各種功能模塊獨(dú)立性強(qiáng),可以根據(jù)需要任意組合。5. 使用布局,讓界面整體結(jié)構(gòu)一致,清新簡(jiǎn)潔方便,操作簡(jiǎn)單。</p><p>  6. 錯(cuò)誤頁(yè)面進(jìn)行處理,采用友好的提示頁(yè)面7. 支

40、持所有的Windows系列操作系統(tǒng)</p><p><b>  2.需求分析</b></p><p>  本章劃分出了系統(tǒng)必須完成的所有功能,給出了網(wǎng)上購(gòu)物系統(tǒng)整體模塊圖和系統(tǒng)流程圖,并對(duì)系統(tǒng)模塊功能進(jìn)行了規(guī)定。而且清楚的給出了本系統(tǒng)的設(shè)計(jì)模式的選擇和架構(gòu)技術(shù)的介紹。</p><p>  2.1、網(wǎng)上購(gòu)物現(xiàn)狀及發(fā)展趨勢(shì)</p>&

41、lt;p>  自2003年上半年以來(lái),沉寂了多年的中國(guó)互聯(lián)網(wǎng)產(chǎn)業(yè)正以強(qiáng)勁的勢(shì)頭復(fù)蘇并發(fā)展起來(lái),除了傳統(tǒng)的瀏覽、資料搜索、電子郵件等基本應(yīng)用外,國(guó)內(nèi)網(wǎng)民已經(jīng)開始習(xí)慣通過(guò)網(wǎng)絡(luò)接受商務(wù)、旅游、購(gòu)物、通訊、娛樂(lè)等服務(wù),根據(jù)中國(guó)互聯(lián)網(wǎng)信息中心最近提供的《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》調(diào)查顯示,網(wǎng)絡(luò)銷售已經(jīng)由以前的嘗試性銷售向日常的生活習(xí)慣發(fā)展,其中以書籍、計(jì)算機(jī)產(chǎn)品、音像制品及器材等為網(wǎng)上購(gòu)物的主要對(duì)象,服裝、體育用品、生活家居用品等消費(fèi)額

42、也開始大幅度提高。   互聯(lián)網(wǎng)的快速發(fā)展為網(wǎng)上購(gòu)物系統(tǒng)的發(fā)展提供了強(qiáng)大的動(dòng)力,同時(shí),電子購(gòu)物的環(huán)境也已經(jīng)逐步得到了改善,表現(xiàn)在網(wǎng)民結(jié)構(gòu)的大眾化和網(wǎng)絡(luò)生存的普及化,物流和銀行結(jié)算的暢通,以及市場(chǎng)運(yùn)作的規(guī)范和相應(yīng)政策法規(guī)的完善。在線銷售的網(wǎng)上購(gòu)物對(duì)網(wǎng)民的吸引力將會(huì)越來(lái)越大,網(wǎng)民對(duì)購(gòu)物網(wǎng)站的看法也將必定會(huì)從不了解到了解,從拒絕到接受,從懷疑到信任,從否定到肯定,在線購(gòu)物的觀念將更加深入人心。</p>&

43、lt;p>  2.2、系統(tǒng)模塊設(shè)計(jì)</p><p>  本系統(tǒng)共分為前端用戶和管理員兩大模塊,分別有權(quán)限的限制,用戶和管理員對(duì)系統(tǒng)的操作均可以在jsp頁(yè)面中進(jìn)行,簡(jiǎn)單方便.</p><p><b>  圖1.系統(tǒng)模塊圖</b></p><p><b>  表1.統(tǒng)功能規(guī)約表</b></p><p&

44、gt;  2.3、系統(tǒng)功能描述</p><p>  1.網(wǎng)上購(gòu)物系統(tǒng)主要實(shí)現(xiàn)分為前端用戶模塊和后臺(tái)管理員模塊兩大部分:</p><p>  前臺(tái)包括用戶登陸頁(yè)面,注冊(cè)頁(yè)面,用戶對(duì)個(gè)人信息的修改頁(yè)面,中心主頁(yè)中包括用戶查看所有商品,公告中的推薦產(chǎn)品、最新產(chǎn)品,并有購(gòu)物車工具,是用戶能夠使用購(gòu)物車添加欲購(gòu)買商品、查看已添加商品、刪除已添加進(jìn)去的商品,購(gòu)物車自動(dòng)為用戶統(tǒng)計(jì)商品數(shù)量、單價(jià)、總價(jià),用

45、戶確認(rèn)后可以提交,生成訂單來(lái)購(gòu)買商品購(gòu)買商品。</p><p>  未登錄的用戶和登錄的用戶均可以進(jìn)入銷售系統(tǒng)主頁(yè),瀏覽公告信息,商店產(chǎn)品,并可以挑選商品放入購(gòu)物車中,修改購(gòu)物車中產(chǎn)品,當(dāng)提交購(gòu)物車的時(shí)候,沒(méi)有登錄的用戶需要登錄后方可以提交訂單,若未注冊(cè)的用戶要先進(jìn)行注冊(cè),購(gòu)物車保持當(dāng)前狀態(tài)。</p><p>  后臺(tái)包括管理員登陸身份驗(yàn)證,商品的庫(kù)存管理,價(jià)格管理,訂單處理,用戶信息管理

46、,對(duì)公告欄信息的管理</p><p>  以管理員身份登錄,驗(yàn)證通過(guò)后可以對(duì)后臺(tái)數(shù)據(jù)庫(kù)中的用戶信息,商品信息數(shù)量,庫(kù)存,公告等進(jìn)行增刪改查等操作,并可以查看訂單狀態(tài)數(shù)量。</p><p>  2.系統(tǒng)權(quán)限分為普通登錄用戶,VIP登錄用戶,匿名用戶,和管理員。匿名用戶是權(quán)限最小的用戶,只可以瀏覽商品不可以購(gòu)買,購(gòu)買時(shí)應(yīng)先進(jìn)行注冊(cè);登錄用戶可以購(gòu)買商品,編輯購(gòu)物車,修改個(gè)人資料,購(gòu)買特價(jià)商品;

47、VIP用戶出可以由普通用戶的權(quán)限以外還可以所有商品享受固定的折扣價(jià)格:管理員屬于最大權(quán)限的用戶,可以對(duì)后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行操作,維護(hù)客戶信息,管理庫(kù)存商品。</p><p>  圖2.ustomer用例圖</p><p><b>  2.4、運(yùn)行環(huán)境</b></p><p>  軟 件:MyEclipse5.1.0 ,TomCat6.0, My

48、SQL5.1,JDK1.5</p><p>  操作系統(tǒng):Windows 2000 Sever</p><p>  應(yīng)用技術(shù):jsp,struts,hibernate</p><p>  2.5、開發(fā)模式的確定</p><p>  系統(tǒng)開發(fā)模式的選擇對(duì)系統(tǒng)開發(fā)至關(guān)重要,本系統(tǒng)采用mvc設(shè)計(jì)模式,軟件開發(fā)采用四層體系結(jié)構(gòu),下面介紹一下此設(shè)計(jì)模式

49、和次結(jié)構(gòu)確定的依據(jù).</p><p>  2.5.1、采用MVC設(shè)計(jì)模式</p><p><b>  1.MVC的應(yīng)用</b></p><p>  MVC是Model-View-Controller的簡(jiǎn)稱,即模型-視圖-控制器。</p><p>  MVC是一種設(shè)計(jì)模式,它把應(yīng)用程序分成三個(gè)核心模塊:模型、視圖、控制器

50、,它們各自處理自己的任務(wù)。</p><p>  首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理。</p><p>  然后模型根據(jù)用戶請(qǐng)求進(jìn)行相應(yīng)的業(yè)務(wù)邏輯處理,并返回?cái)?shù)據(jù)。</p><p>  最后控制器調(diào)用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)視圖呈現(xiàn)給用戶。</p><p><b>  2.MVC處理過(guò)程</

51、b></p><p>  首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理。</p><p>  然后模型根據(jù)用戶請(qǐng)求進(jìn)行相應(yīng)的業(yè)務(wù)邏輯處理,并返回?cái)?shù)據(jù)。</p><p>  最后控制器調(diào)用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)視圖呈現(xiàn)給用戶。</p><p>  3.使用MVC的好處</p><p>

52、  我使用這個(gè)設(shè)計(jì)模式最重要的一點(diǎn)是多個(gè)視圖能共享一個(gè)模型。同一個(gè)模型可以被不同的視圖重用,大大提高了代碼的可重用性。</p><p>  由于MVC的三個(gè)模塊相互獨(dú)立,改變其中一個(gè)不會(huì)影響其他兩個(gè),所以依據(jù)這種設(shè)計(jì)思想能構(gòu)造良好的松偶合的構(gòu)件。</p><p>  此外,控制器提高了應(yīng)用程序的靈活性和可配置性??刂破骺梢杂脕?lái)聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程

53、序提供強(qiáng)有力的手段。</p><p>  2.5.2、軟件設(shè)計(jì)應(yīng)用分層體系結(jié)構(gòu)</p><p><b>  四層應(yīng)用</b></p><p>  表述層—網(wǎng)上購(gòu)物系統(tǒng)的前臺(tái)JSP頁(yè)面及FormBean</p><p>  業(yè)務(wù)邏輯層—網(wǎng)上購(gòu)物系統(tǒng)中程序中的Action部分及ActionServlet.</p>

54、<p>  持久化層—處理數(shù)據(jù)對(duì)象的持久化方法BusinessService及持久化類(JDO)</p><p>  數(shù)據(jù)庫(kù)層—應(yīng)用MySQL 中數(shù)據(jù)庫(kù)(JDBC驅(qū)動(dòng)程序在Hibernate中被封裝)</p><p><b>  圖3.層體系結(jié)構(gòu)圖</b></p><p><b>  軟件分層的優(yōu)點(diǎn) </b>

55、</p><p><b>  1.伸縮性</b></p><p>  伸縮性指應(yīng)用程序是否能支持更多的用戶。應(yīng)用的層越少,可以增加資源(如CPU和內(nèi)存)的地方就越少。層數(shù)越多,可以將每層分布在不同的機(jī)器上</p><p><b>  2.可維護(hù)性</b></p><p>  可維護(hù)性指的是當(dāng)發(fā)生需求

56、變化,只需修改軟件的某一部分,不會(huì)影響其他部分的代碼。</p><p><b>  3.可擴(kuò)展性</b></p><p>  可擴(kuò)展性指的是在現(xiàn)有系統(tǒng)中增加新功能的難易程度。層數(shù)越多,就可以在每個(gè)層中提供擴(kuò)展點(diǎn),不會(huì)打破應(yīng)用的整體框架。</p><p><b>  4.可重用性</b></p><p&g

57、t;  可重用性指的是程序代碼沒(méi)有冗余,同一個(gè)程序能滿足多種需求。例如,業(yè)務(wù)邏輯層可以被多種表述層共享。</p><p><b>  5.可管理性</b></p><p>  可管理性指的是管理系統(tǒng)的難易程度。將應(yīng)用程序分為多層后,可以將工作分解給不同的開發(fā)小組,從而便于管理。應(yīng)用越復(fù)雜,規(guī)模越大,需要的層就越多。</p><p>  3.系統(tǒng)

58、開發(fā)相關(guān)技術(shù)選擇</p><p>  3.1、系統(tǒng)的開發(fā)框架采用Struts技術(shù)</p><p>  我的網(wǎng)上購(gòu)物系統(tǒng)是WEB項(xiàng)目,采用MVC設(shè)計(jì)模式, 所以開發(fā)框架的選擇十分重要,選擇好Web架構(gòu)最大的好處就是開發(fā)效率較高,調(diào)試的時(shí)候方便查找錯(cuò)誤以便修改,而且一個(gè)好的框架被人們認(rèn)可使用,則相對(duì)穩(wěn)定。</p><p>  Struts 實(shí)質(zhì)上就是在JSP Model

59、2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC框架。隨著互聯(lián)網(wǎng)的迅猛發(fā)展,網(wǎng)站功能日益增強(qiáng)基于MVC的Web架構(gòu)倍受歡迎,它可以弱化各個(gè)部分的耦合關(guān)系,并將業(yè)務(wù)邏輯處理與頁(yè)面以及數(shù)據(jù)分離開來(lái),這樣當(dāng)其中一個(gè)模塊的代碼發(fā)生改變時(shí),并不影響其他模塊的正常運(yùn)行,所以基于MVC的Web架構(gòu)更適應(yīng)于大規(guī)模軟件應(yīng)用開發(fā)的潮流。</p><p>  采用Struts框架的Web應(yīng)用,在Web應(yīng)用啟動(dòng)時(shí)就會(huì)加載并初始化控制器ActionServle

60、t,ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到ActionMappings對(duì)象中。在Struts framework中, Controller主要是ActionServlet,但是對(duì)于業(yè)務(wù)邏輯的操作則主要由Action、ActionMapping、ActionForward這幾個(gè)組件協(xié)調(diào)完成(也許這幾個(gè)組件,應(yīng)該劃分到模型中的業(yè)務(wù)邏輯一塊)。其中,Action扮演了真正的控制邏輯的實(shí)現(xiàn)

61、者,而ActionMapping和ActionForward則指定了不同業(yè)務(wù)邏輯或流程的運(yùn)行方向。</p><p>  圖4. Struts框架圖</p><p>  每個(gè)頁(yè)面對(duì)應(yīng)一個(gè)FormBean, 每個(gè)動(dòng)作對(duì)應(yīng)一個(gè)Action,每個(gè)部分出錯(cuò)都有相應(yīng)的成功或錯(cuò)誤提示頁(yè)面,層次清晰,開發(fā)各個(gè)模塊互不影響,提高效率,而且開發(fā)出來(lái)的系統(tǒng)相對(duì)穩(wěn)定。</p><p>  

62、3.2、頁(yè)面開發(fā)使用JSP技術(shù)</p><p>  網(wǎng)上購(gòu)物系統(tǒng)的前臺(tái)頁(yè)面均運(yùn)用JSP進(jìn)行開發(fā)的,并沒(méi)有使用 Servlet,雖然Servlet效率很高,但編寫不方便,相當(dāng)復(fù)雜,下面我們來(lái)看一下很多用過(guò)的開發(fā)者對(duì)這兩種的區(qū)別,及優(yōu)缺點(diǎn)。</p><p>  Java Servlet是J S P技術(shù)的基礎(chǔ).且大型的We b應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完

63、成。許多We b服務(wù)器都支持Servlet,即使不直接支持Servlet的We b服務(wù)器也可以通過(guò)附加的應(yīng)用服務(wù)器和模塊來(lái)支持Servlet。由于Java Servlet內(nèi)部是以線程方式提供服務(wù),不必對(duì)于每個(gè)請(qǐng)求都啟動(dòng)一個(gè)進(jìn)程,并且利用多線程機(jī)制可以同時(shí)為多個(gè)請(qǐng)求服務(wù),因此Java Servlet效率非常高。Java Servlet是利用輸出HTML語(yǔ)句來(lái)實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的,如果用Java Servlet來(lái)開發(fā)整個(gè)網(wǎng)站,動(dòng)態(tài)部分和靜態(tài)頁(yè)面的

64、整合過(guò)程簡(jiǎn)直就是一場(chǎng)惡夢(mèng)。最大缺點(diǎn)就在于沒(méi)有把網(wǎng)站的邏輯和頁(yè)面的輸出分開,導(dǎo)致整個(gè)Servlet代碼混亂不堪。為了解決Java Servlet的這種缺點(diǎn),SUN推出了Java Server Pages—JSP。</p><p>  Java Server Page(JSP)是運(yùn)行于服務(wù)器端的腳本語(yǔ)言之一,是java陣營(yíng)中最具代表性的解決方案。使用JSP不僅能夠制作想HTML一樣的靜態(tài)網(wǎng)頁(yè),還能夠制作包含動(dòng)態(tài)數(shù)據(jù)的

65、網(wǎng)頁(yè)。JSP語(yǔ)言制作網(wǎng)頁(yè)比其他服務(wù)器腳本語(yǔ)言更加簡(jiǎn)單、迅速、有力。</p><p>  JSP語(yǔ)言和一般的java語(yǔ)言一樣,具有面向?qū)ο笮浴⒈憷?、跨平臺(tái)等優(yōu)點(diǎn)和特性,還擁有Java Servlet的所有穩(wěn)定性,另外還可以使用Servlet提供的API。這是因?yàn)镴SP是以Java和Java Servlet為基礎(chǔ)開發(fā)完成的技術(shù)。JSP克服了servlet的缺點(diǎn),它不像servlet其源代碼并不是專屬于程序員的,網(wǎng)頁(yè)

66、設(shè)計(jì)者和HTML編碼員也可以得到這些源代碼。程序員可以利用JavaBean和Script標(biāo)記在HTML的靜態(tài)內(nèi)容中加入動(dòng)態(tài)數(shù)據(jù),制作動(dòng)態(tài)網(wǎng)頁(yè)。</p><p>  JSP屬于服務(wù)器端腳本語(yǔ)言,是通過(guò)JSP Container轉(zhuǎn)換Servlet,并運(yùn)行于網(wǎng)頁(yè)的語(yǔ)言。JSP文件在JSP Container中進(jìn)行編譯后,轉(zhuǎn)換為Servlet Class的形式,然后又Servlet Class對(duì)客戶端的請(qǐng)求應(yīng)答進(jìn)行。&l

67、t;/p><p>  綜上所述,我們不難看出JSP的方便,靈活,將內(nèi)容的生成和顯示進(jìn)行分離,簡(jiǎn)化頁(yè)面開發(fā),作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言的“一次編寫,各處運(yùn)行”的特點(diǎn)。隨著越來(lái)越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,可以使用自己選擇的服務(wù)器和工具,更改工具或服務(wù)器而并不影響當(dāng)前的應(yīng)用。這樣使我對(duì)我的分曾開發(fā)提供方便而且修改容易。 而且Struts中還提供了關(guān)于Jsp開發(fā)的標(biāo)簽庫(kù),運(yùn)用和結(jié)合都

68、很容易,所以我選擇Jsp.</p><p>  3.3、HIBERNATE對(duì)象持久化技術(shù)的確定</p><p>  3.3.1、HIBERNATE概述</p><p>  它是連接Java應(yīng)用程序和關(guān)系數(shù)據(jù)庫(kù)的中間件</p><p>  它對(duì)JDBC進(jìn)行了封裝,負(fù)責(zé)Java對(duì)象的持久化</p><p>  在分層的軟件

69、架構(gòu)中位于持久層,封裝了所有數(shù)據(jù)訪問(wèn)細(xì)節(jié),使業(yè)務(wù)邏輯層專注于業(yè)務(wù)邏輯</p><p><b>  ORM映射工具</b></p><p>  在Java應(yīng)用中使用Hibernate的步驟</p><p>  創(chuàng)建Hibernate的配置文件</p><p><b>  創(chuàng)建持久化類</b></

70、p><p>  創(chuàng)建對(duì)象-關(guān)系映射文件</p><p>  通過(guò)Hibernate API編寫訪問(wèn)數(shù)據(jù)庫(kù)的代碼</p><p>  3.3.2、為什么選擇HIBERNATE技術(shù)</p><p>  傳統(tǒng)的JDBC編程的缺點(diǎn)</p><p>  實(shí)現(xiàn)業(yè)務(wù)邏輯的代碼和數(shù)據(jù)庫(kù)訪問(wèn)代碼摻雜在一起,使程序結(jié)構(gòu)不清晰,可讀性差。<

71、;/p><p>  在程序代碼中嵌入面向關(guān)系的SQL語(yǔ)句,使開發(fā)人員不能完全運(yùn)用面向?qū)ο蟮乃季S來(lái)編寫程序。</p><p>  業(yè)務(wù)邏輯和關(guān)系數(shù)據(jù)模型綁定,如果關(guān)系數(shù)據(jù)模型發(fā)生變化,例如修改了CUSTOMERS表的結(jié)構(gòu),那么必須手工修改程序代碼中所有相關(guān)的SQL語(yǔ)句,這增加了維護(hù)軟件的難度。</p><p>  如果程序代碼中的SQL語(yǔ)句包含語(yǔ)法錯(cuò)誤,在編譯時(shí)不能檢查這

72、種錯(cuò)誤,只有在運(yùn)行時(shí)才能發(fā)現(xiàn)這種錯(cuò)誤,這增加了調(diào)試程序的難度。</p><p>  Hibernate操縱數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)</p><p>  Hibernate提供了Java對(duì)象到數(shù)據(jù)庫(kù)表之間的直接映射,開發(fā)者無(wú)需直接涉及數(shù)據(jù)庫(kù)操作的實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)了一站式的ORM解決方案。通過(guò)Hibernate API編寫訪問(wèn)數(shù)據(jù)庫(kù)的代碼,對(duì)JDBC進(jìn)行了封裝,負(fù)責(zé)Java對(duì)象的持久化, Hibernate

73、既不會(huì)滲透到上層域模型中,也不會(huì)滲透到下層數(shù)據(jù)模型中。軟件開發(fā)人員可以獨(dú)立設(shè)計(jì)域模型,不必強(qiáng)迫遵守任何規(guī)范。數(shù)據(jù)庫(kù)設(shè)計(jì)人員可以獨(dú)立設(shè)計(jì)數(shù)據(jù)模型,不必強(qiáng)迫遵守任何規(guī)范。</p><p><b>  4.概要設(shè)計(jì)</b></p><p>  4.1、系統(tǒng)體系結(jié)構(gòu)</p><p>  系統(tǒng)設(shè)計(jì)采用典型的三層結(jié)構(gòu)模式:第一層JSP頁(yè)面主要實(shí)現(xiàn)對(duì)管理界面

74、的顯示和解釋、中間層組件實(shí)現(xiàn)業(yè)務(wù)邏輯的控制和對(duì)數(shù)據(jù)庫(kù)的操作,第三層數(shù)據(jù)庫(kù)服務(wù)器主要對(duì)系統(tǒng)提高數(shù)據(jù)服務(wù)。中間層的Struts的Aaction組件主要負(fù)責(zé)流程控制工作,Spring實(shí)現(xiàn)了全部中間業(yè)務(wù)邏輯,Hibernate實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)的操作和數(shù)據(jù)的持久化工作。</p><p><b>  圖5. 系統(tǒng)模式圖</b></p><p>  注:應(yīng)用程序?yàn)樗膶拥能浖謱咏Y(jié)構(gòu),

75、其中業(yè)務(wù)邏輯和Hibernate為三層模式的中間件層組件</p><p>  圖6. 應(yīng)用程序的分層體系結(jié)構(gòu)圖</p><p>  4.2、網(wǎng)絡(luò)銷售系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</p><p>  系統(tǒng)主要模塊對(duì)應(yīng)的struts組件</p><p>  4.3、銷售系統(tǒng)流程圖</p><p>  圖7. 客戶端流程圖</p>

76、;<p>  圖8. 管理端流程圖</p><p>  5.數(shù)據(jù)庫(kù)及ORM相關(guān)設(shè)計(jì)</p><p>  5.1、對(duì)數(shù)據(jù)庫(kù)的操作</p><p>  本系統(tǒng)的對(duì)數(shù)據(jù)哭的操縱采用對(duì)象操縱。用Hibernate封裝了JDBC的驅(qū)動(dòng),數(shù)據(jù)庫(kù)中的每長(zhǎng)表對(duì)應(yīng)一個(gè)JDO,對(duì)象的持久化直接對(duì)持久化類進(jìn)行操縱,方便快捷,效率很高,而且省去了每條數(shù)據(jù)單獨(dú)操作的麻煩,可以把

77、整個(gè)對(duì)象進(jìn)行修改和查詢,整體操作安全省時(shí),而且脈絡(luò)清晰。</p><p>  5.1.1、數(shù)據(jù)庫(kù)訪問(wèn)模式</p><p>  業(yè)務(wù)邏輯和數(shù)據(jù)訪問(wèn)耦合</p><p>  ORM模式:在單個(gè)組件中負(fù)責(zé)所有實(shí)體域?qū)ο蟮某志没庋b數(shù)據(jù)訪問(wèn)細(xì)節(jié)。 </p><p>  主動(dòng)域?qū)ο竽J剑河蓪?shí)體域?qū)ο蟊旧碡?fù)責(zé)管理自己的持久化</p>&l

78、t;p>  JDO模式: SUN公司制定的描述對(duì)象持久化語(yǔ)義的標(biāo)準(zhǔn)API </p><p>  CMP模式:由容器負(fù)責(zé)管理持久化</p><p>  圖9. ORM模型圖</p><p>  5.1.2、通過(guò)Hibernate API操縱數(shù)據(jù)庫(kù) </p><p>  通過(guò)Hibernate API編寫訪問(wèn)數(shù)據(jù)庫(kù)的代碼,對(duì)JDBC進(jìn)行了封

79、裝,負(fù)責(zé)Java對(duì)象的持久化, Hibernate既不會(huì)滲透到上層域模型中,也不會(huì)滲透到下層數(shù)據(jù)模型中。</p><p>  圖10.數(shù)據(jù)庫(kù)訪問(wèn)類圖</p><p>  5.2、數(shù)據(jù)庫(kù)設(shè)計(jì) </p><p>  數(shù)據(jù)庫(kù)的設(shè)計(jì)對(duì)一個(gè)系統(tǒng)的開發(fā)至關(guān)重要,就如同該高樓要地基建的要好一樣,它是整個(gè)系統(tǒng)開發(fā)的基礎(chǔ)和先決條件,也是ORM模型的必要部分。我們必須設(shè)計(jì)一個(gè)合理的數(shù)據(jù)

80、庫(kù)表,才能在建立模型匹配和數(shù)據(jù)持久化的時(shí)候一步到位,而不用做更多的善后工作,而且數(shù)據(jù)庫(kù)表的連接一定也要設(shè)計(jì)的合理,以便對(duì)象模型和關(guān)系數(shù)據(jù)庫(kù)模型關(guān)聯(lián)的時(shí)候映射文件的設(shè)計(jì)。</p><p>  本系統(tǒng)開發(fā)采用SQL Server 2000數(shù)據(jù)庫(kù)。SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫(kù)管理系統(tǒng)中應(yīng)用最廣泛的一個(gè)版本。該版本繼承了SQL Server 7.0 版本的優(yōu)

81、點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能具有使用方便??缮炜s性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。SQL SERVER是基于WINDOWS NT/2000的大型關(guān)系型數(shù)據(jù)庫(kù),它在各種企業(yè)級(jí)開發(fā)中獨(dú)占鰲頭,從此可以看出本數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)所在,因此本系統(tǒng)中選用了該數(shù)據(jù)庫(kù)。</p><

82、p>  5.2.1、數(shù)據(jù)庫(kù)表設(shè)計(jì) </p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)主要是進(jìn)行數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì),即將數(shù)據(jù)按一定的分類、分組系統(tǒng)和邏輯層次組織起來(lái),是面向用戶的。數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)需要綜合企業(yè)各個(gè)部門的存檔數(shù)據(jù)和數(shù)據(jù)需求,分析各個(gè)數(shù)據(jù)之間的關(guān)系,按照DBMS提供的功能和描述工具,設(shè)計(jì)出規(guī)模適當(dāng)、正確反映數(shù)據(jù)關(guān)系、數(shù)據(jù)冗余少、存取效率高、能滿足多種查詢要求的數(shù)據(jù)模型。</p><p>  數(shù)據(jù)庫(kù)

83、的設(shè)計(jì):(數(shù)據(jù)庫(kù)表創(chuàng)建語(yǔ)句在附錄1中)</p><p>  表2.數(shù)據(jù)庫(kù)中表描述總匯</p><p>  表3. 用戶信息表Users_table</p><p>  表4. 用戶訂單表UserOrders_table</p><p>  表5. 用戶訂單項(xiàng)目詳細(xì)信息ListOrders_table</p><p>

84、;  表6. 購(gòu)物車信息表Cartshop_table</p><p>  表7. 購(gòu)物車項(xiàng)目信息列表ListCarts_table</p><p>  表8. 商品信息表ProductInfo_table</p><p>  5.2.2、數(shù)據(jù)庫(kù)連接</p><p>  用數(shù)據(jù)庫(kù)來(lái)保存持久性數(shù)據(jù): Servlet/JSP中可以使用HttpS

85、ession對(duì)象也就是會(huì)話對(duì)象來(lái)保存用戶的臨時(shí)數(shù)據(jù)。不過(guò)如果你想保存持久性數(shù)據(jù)的時(shí)候,你應(yīng)該使用數(shù)據(jù)庫(kù),數(shù)據(jù)保存數(shù)據(jù)會(huì)更安全,而且對(duì)客戶所用的瀏覽器沒(méi)有什么要求。這樣即使你的應(yīng)用服務(wù)器由于某種原因崩潰了,你的數(shù)據(jù)依然良好。</p><p>  以下為Hibernate的配置文件(hibernate.properties)及說(shuō)明:</p><p>  hibernate.dialect=ne

86、t.sf.hibernate.dialect.MySQLDialect---指定數(shù)據(jù)庫(kù)使用的SQL方言。</p><p>  hibernate.connection.driver_class=com.mysql.jdbc.Driver---指定數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序</p><p>  hibernate.connection.url=jdbc:mysql://localhost:3306/ne

87、tshop---指定連接數(shù)據(jù)庫(kù)URL</p><p>  hibernate.connection.username=root---指定數(shù)據(jù)庫(kù)的用戶名</p><p>  hibernate.connection.password=1234---指定數(shù)據(jù)庫(kù)的口令</p><p>  hibernate.show_sql=true---如果為true,表示在程序運(yùn)行時(shí)

88、,會(huì)在控制臺(tái)輸出sql語(yǔ)句,咋和有利于跟蹤HIBERNATE運(yùn)行狀態(tài).反之在應(yīng)用開發(fā)和測(cè)試階段,可以把這個(gè)屬性設(shè)為TRUE,以便跟蹤和調(diào)試應(yīng)用程序,在應(yīng)用發(fā)布階段,應(yīng)該把這個(gè)屬性設(shè)為FALSE,以便減少應(yīng)用的輸出信息.</p><p>  5.3、數(shù)據(jù)庫(kù)管理模型:</p><p>  由于本系統(tǒng)開發(fā)使用Hibernate對(duì)數(shù)據(jù)庫(kù)進(jìn)行了封裝,對(duì)數(shù)據(jù)的操作是運(yùn)用對(duì)持久化對(duì)象來(lái)實(shí)現(xiàn)的,所以數(shù)據(jù)庫(kù)

89、管理模型一定要設(shè)計(jì)好,它涉及到JDO的自動(dòng)生成中的關(guān)聯(lián)問(wèn)題和檢索策略的確定.</p><p>  數(shù)據(jù)庫(kù)模型設(shè)計(jì)一般不采用多對(duì)多的關(guān)系,在多對(duì)多的對(duì)應(yīng)關(guān)系中,實(shí)現(xiàn)雙向關(guān)聯(lián)的問(wèn)題很難處理,而且檢索效率很低,一般多對(duì)多的關(guān)聯(lián)我們拆分成兩個(gè)一隊(duì)多的關(guān)聯(lián)關(guān)系.</p><p>  本設(shè)計(jì)中用戶模型與定單是多對(duì)一的關(guān)聯(lián)關(guān)系,一個(gè)用戶可以進(jìn)行多次購(gòu)買,可以產(chǎn)生多個(gè)定單.</p><

90、p>  所銷售的商品和用戶是多對(duì)多的關(guān)系,我們將其拆成兩個(gè)一對(duì)多的關(guān)聯(lián)關(guān)系,即一個(gè)商品可以被多個(gè)用戶購(gòu)買,一個(gè)用戶可以購(gòu)買多個(gè)商品.</p><p>  定單和商品也一樣都是經(jīng)過(guò)拆分,將多對(duì)多的關(guān)系轉(zhuǎn)換成定單和商品的一對(duì)多和商品同定單的一對(duì)多關(guān)聯(lián)關(guān)系</p><p>  數(shù)據(jù)模型的詳見(jiàn)圖10.</p><p><b>  圖10.數(shù)據(jù)模型</b

91、></p><p>  5.4、對(duì)數(shù)據(jù)庫(kù)的操作對(duì)象關(guān)系映射</p><p>  1.采用XML文件來(lái)配置對(duì)象-關(guān)系映射的優(yōu)點(diǎn)</p><p>  Hibernate既不會(huì)滲透到上層域模型中,也不會(huì)滲透到下層數(shù)據(jù)模型中。</p><p>  軟件開發(fā)人員可以獨(dú)立設(shè)計(jì)域模型,不必強(qiáng)迫遵守任何規(guī)范。</p><p> 

92、 數(shù)據(jù)庫(kù)設(shè)計(jì)人員可以獨(dú)立設(shè)計(jì)數(shù)據(jù)模型,不必強(qiáng)迫遵守任何規(guī)范。</p><p>  對(duì)象-關(guān)系映射不依賴于任何程序代碼,如果需要修改對(duì)象-關(guān)系映射,只需修改XML文件,不需要修改任何程序,提高了軟件的靈活性,并且使維護(hù)更加方便。</p><p>  2.對(duì)象關(guān)系映射舉例</p><p>  Customer.hbm.xml配置的對(duì)象-關(guān)系映射 </p>

93、<p>  圖11.Customer對(duì)象關(guān)系映射</p><p>  6.詳細(xì)設(shè)計(jì)與系統(tǒng)實(shí)現(xiàn)</p><p>  6.1、配置文件的設(shè)計(jì) </p><p>  以下為Struts在WEB應(yīng)用的框圖,詳細(xì)設(shè)計(jì)的開始根據(jù)需求分析概要設(shè)計(jì)搭建環(huán)境,添加各個(gè)需要的配置文件,對(duì)各種類庫(kù)進(jìn)行加載。</p><p>  圖12. 配置文件在開發(fā)中

94、的應(yīng)用</p><p>  6.1.1、WEB.XML的設(shè)計(jì)</p><p>  創(chuàng)建Web應(yīng)用的配置文件web.xml </p><p>  對(duì)于Struts應(yīng)用,它的配置文件web.xml應(yīng)該對(duì)ActionServlet類進(jìn)行配置,此外,還應(yīng)該聲明Web應(yīng)用所使用的Struts標(biāo)簽庫(kù)。</p><p>  本系統(tǒng)web.xml中有關(guān)配置信

95、息如下 </p><p><b>  <servlet></b></p><p>  <servlet-name>action</servlet-name></p><p>  <servlet-class>org.apache.struts.action.ActionServlet</se

96、rvlet-class></p><p>  <init-param></p><p>  <param-name>config</param-name></p><p>  <param-value>/WEB-INF/struts-config.xml</param-value></p>

97、<p>  </init-param></p><p>  <load-on-startup>2</load-on-startup></p><p>  </servlet></p><p>  全部的請(qǐng)求URI以*.do的模式存在并映射到這個(gè)servlet,其配置如下:</p><p

98、>  <!-- Standard Action Servlet Mapping --></p><p>  <servlet-mapping></p><p>  <servlet-name>action</servlet-name></p><p>  <url-pattern>*.do</u

99、rl-pattern></p><p>  </servlet-mapping></p><p>  6.1.2、struts-config.xml設(shè)計(jì)</p><p>  控制器如何知道什么樣的信息轉(zhuǎn)發(fā)到什么樣的Action類呢?這就需要一些與動(dòng)作和請(qǐng)求信息相對(duì)應(yīng)的映射配置說(shuō)明。在struts 中,這些配置映射信息是存儲(chǔ)在特定的XML文件(比如s

100、truts-config.xml)。 </p><p>  這些配置信息在系統(tǒng)啟動(dòng)的時(shí)候被讀入內(nèi)存,供struts framework在運(yùn)行期間使用。在內(nèi)存中,每一個(gè)<action>元素都與org.apache.struts.action.ActionMapping類的一個(gè)實(shí)例對(duì)應(yīng)。 </p><p>  本系統(tǒng)struts-config.xml配置文件如下:只演示了部分Ac

101、tion的配置</p><p>  <?xml version="1.0" encoding="ISO-8859-1"?></p><p>  <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.

102、2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"></p><p>  <struts-config></p><p>  <form-beans></p><p>  <form-bean name="loginFor

103、mBean" type="control.LoginFormBean" /></p><p>  <form-bean name="registerFormBean" type="control.RegisteFormBean" /></p><p>  </form-beans>&l

104、t;/p><p>  <action-mappings></p><p>  <action path="/actions/showloginMain"type="control.LoginAction"</p><p>  name="loginFormBean" scope="r

105、equest" input="/forms/login.jsp"></p><p>  <forward name="badl" path="/forms/login.jsp" /></p><p>  <forward name="successl" path="/

106、WEB-INF/results/main.jsp" /></p><p><b>  </action></b></p><p>  </action-mappings></p><p>  <message-resources parameter="control.MessageReso

107、urces"</p><p>  null="false" /> </p><p>  </struts-config></p><p><b>  相關(guān)說(shuō)明:</b></p><p>  ActionMapping (org.apache.struts.action.Ac

108、tionMapping) 描述了框架是如何處理每一個(gè)離散的業(yè)務(wù)操作 (或 action)的。 在Struts中,每個(gè)ActionMapping 通過(guò)其path 屬性和一個(gè)特定的URI 相關(guān)。</p><p>  當(dāng)一個(gè)請(qǐng)求到來(lái), ActionServlet 使用 path 屬性來(lái)選擇對(duì)應(yīng)的ActionMapping。一組ActionMapping 對(duì)象被放在一個(gè)ActionMappings 集合之中(org.ap

109、ache.struts.action.ActionMappings)</p><p>  Path: ActionMapping URI,或者path,對(duì)用戶來(lái)說(shuō)就象web server上的一個(gè)文件。但實(shí)際上它并不代表一個(gè)文件。它是一個(gè)對(duì)ActionMapping的虛擬引用。</p><p>  Forward: 當(dāng)指定了forward 屬性時(shí),servlet將不會(huì)把請(qǐng)求傳遞給Action

110、類,而是調(diào)用RequestDispatcher.forward。因?yàn)椴僮鳑](méi)有使用Action 類, 它也可以被用來(lái)進(jìn)行Struts 和其它資源之間的集成,或者用來(lái)構(gòu)建系統(tǒng)原型。forward, include, 以及 type屬性是互斥的。</p><p>  Include:當(dāng)指定了include 屬性時(shí), servlet將不會(huì)把請(qǐng)求傳遞給Action 類而是調(diào)用RequedtDispatcher.includ

111、e方法。因?yàn)椴僮鳑](méi)有使用Action 類, 它也可以被用來(lái)機(jī)械進(jìn)行Struts 和其它組件之間的集成。forward, include, 以及 type 屬性是互斥的。</p><p>  Type:大部分 mapping都會(huì)指定一個(gè) Action 類類型,而不是一個(gè)forward 或者 include。Action 類可以被多個(gè)mapping使用。</p><p>  Name:如果在S

112、truts 配置文件中配置了相應(yīng)的formbean段的話,這個(gè)屬性指定了form bean的邏輯名稱。</p><p>  Scope: ActionForm bean 可以存儲(chǔ)在當(dāng)前的請(qǐng)求或會(huì)話范圍中(這樣它可以服務(wù)于另外的請(qǐng)求)。雖然大部分開發(fā)人員使用請(qǐng)求范圍來(lái)存儲(chǔ)ActionForm, 框架的缺省設(shè)置卻是會(huì)話范圍。</p><p>  Validate: ActionForm 生命周

113、期內(nèi)的一個(gè)重要步驟是在其數(shù)據(jù)提供給業(yè)務(wù)層之前需要進(jìn)行校驗(yàn)。當(dāng)mapping 的validate 屬性設(shè)置為true時(shí),ActionServlet將調(diào)用ActionForm的 validate方法。如果 validate 返回false,請(qǐng)求將被轉(zhuǎn)發(fā)到input 屬性指定的資源。</p><p>  Input:當(dāng)validate被設(shè)置為true時(shí),重要的是需要提供一個(gè)有效的輸入路徑。這也是當(dāng)ActionFormv

溫馨提示

  • 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ù)僅提供信息存儲(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)論