計(jì)算機(jī)專業(yè)本科畢業(yè)論文-- 網(wǎng)上商城系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩46頁(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>  本科畢業(yè)論文(設(shè)計(jì))</p><p>  (09屆本科畢業(yè)生)</p><p>  題  目: 網(wǎng)上商城系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) </p><p>  學(xué)生姓名: </p><p>  學(xué)生學(xué)號(hào): </p><p>

2、  學(xué)院名稱: 科信軟件學(xué)院 </p><p>  專業(yè)名稱: 軟件工程 </p><p>  指導(dǎo)教師: </p><p>  二零一三 年 五 月</p><p>  【摘 要】隨著Internet技術(shù)的發(fā)展,人們的生活已經(jīng)

3、離不開(kāi)網(wǎng)絡(luò)。當(dāng)消費(fèi)者在市場(chǎng)上花了大量時(shí)間卻找不到滿意的商品時(shí),基于網(wǎng)絡(luò)的購(gòu)物的興起就成為了必然。網(wǎng)上商城系統(tǒng)設(shè)計(jì)目的是為了方便消費(fèi)者不出門就能買到自己滿意的商品。本系統(tǒng)利用JAVA語(yǔ)言開(kāi)發(fā)和Oracle數(shù)據(jù)庫(kù),采用SSH三大框架技術(shù),實(shí)現(xiàn)了一個(gè)基于B/S模式的網(wǎng)上商城系統(tǒng)。本文闡述了網(wǎng)上商城系統(tǒng)的現(xiàn)狀及應(yīng)用意義,并重點(diǎn)對(duì)系統(tǒng)的分析、設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程作了詳細(xì)的介紹。網(wǎng)上商城系統(tǒng)能夠?qū)崿F(xiàn)用戶通過(guò)注冊(cè)并登錄后訪問(wèn)商城,通過(guò)查詢選擇喜愛(ài)的物品到

4、購(gòu)物車。管理員登錄后,可查看所售商品的相關(guān)信息,并可對(duì)商品進(jìn)行增刪改查等操作;可查看訂單情況,進(jìn)行操作。</p><p>  【關(guān)鍵詞】Java,網(wǎng)上商城系統(tǒng),SSH,B/S結(jié)構(gòu),Oracle</p><p>  Design and Implementation of </p><p>  Online Shopping Mall System</p>

5、<p>  【Abstract】 With the development of Internet technology, People's Daily life has been inseparable from the network. When consumers spend a lot of time in the market but can’t find satisfactory goods, the

6、 rise of web-based shopping has become a necessity. The design of online shopping mall system is in order to be convenient for consumers who do not have to go out to buy their satisfactory goods. This system use JAVA and

7、 Oracle database,use SSH to develop, and accomplish online shopping mall syst</p><p>  【Keywords】 Java, online shopping mall system, SSH, B/S Structure, Oracle</p><p><b>  目錄</b><

8、/p><p><b>  第一章緒論1</b></p><p>  1.1課題研究目的意義1</p><p>  1.2相關(guān)領(lǐng)域的發(fā)展?fàn)顩r1</p><p>  1.3主要研究?jī)?nèi)容及目標(biāo)2</p><p>  第二章系統(tǒng)可行性分析和需求分析3</p><p>  

9、2.1 系統(tǒng)定義3</p><p>  2.2系統(tǒng)可行性分析3</p><p>  2.3系統(tǒng)需求分析4</p><p>  2.4相關(guān)理論和技術(shù)5</p><p>  第三章 系統(tǒng)總體設(shè)計(jì)8</p><p>  3.1系統(tǒng)設(shè)計(jì)目標(biāo)8</p><p>  3.2系統(tǒng)模塊總體設(shè)計(jì)8

10、</p><p>  3.3 系統(tǒng)流程分析10</p><p>  3.4數(shù)據(jù)庫(kù)設(shè)計(jì)10</p><p>  3.5界面設(shè)計(jì)14</p><p>  第四章系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)16</p><p>  4.1 程序設(shè)計(jì)原則及質(zhì)量要求16</p><p>  4.2重難點(diǎn)實(shí)現(xiàn)16&l

11、t;/p><p>  4.3用戶注冊(cè)界面實(shí)現(xiàn)21</p><p>  4.4后臺(tái)管理主界面實(shí)現(xiàn)24</p><p>  4.5用戶管理界面實(shí)現(xiàn)25</p><p>  4.6 商場(chǎng)主界面實(shí)現(xiàn)25</p><p>  4.7 購(gòu)物車界面實(shí)現(xiàn)26</p><p>  4.8訂單界面實(shí)現(xiàn)27&

12、lt;/p><p>  第五章 系統(tǒng)測(cè)試28</p><p>  5.1 系統(tǒng)測(cè)試的目的28</p><p>  5.2 黑盒測(cè)試與白盒測(cè)試介紹28</p><p>  5.3 測(cè)試計(jì)劃29</p><p>  5.4 測(cè)試過(guò)程29</p><p>  第六章 總結(jié)34</p&g

13、t;<p><b>  后記35</b></p><p><b>  參考文獻(xiàn)36</b></p><p>  附錄一:對(duì)T_USER表增刪查改功能的MVC模式后臺(tái)所有代碼:37</p><p><b>  緒論</b></p><p>  1.1課題研究目

14、的意義</p><p>  近年來(lái),隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開(kāi)始流行起來(lái),越來(lái)越多的商家在網(wǎng)上建起在線商店,向消費(fèi)者展示出一種新穎的購(gòu)物理念。利用Internet的技術(shù)和協(xié)議,建立各種企業(yè)內(nèi)部網(wǎng),企業(yè)外部網(wǎng),通過(guò)廉價(jià)的通訊手段,將買家與賣家、廠商和合作伙伴緊密結(jié)合在了一起,消除時(shí)間與空間帶來(lái)的障礙,從而大大的節(jié)約了交易成本,擴(kuò)大了

15、交易范圍。</p><p>  該系統(tǒng)可以提高經(jīng)營(yíng)決策和計(jì)劃預(yù)見(jiàn)能力通過(guò)電子商務(wù)對(duì)各類客戶的需求可以超前做到全面地了解使企業(yè)有針對(duì)性地提前安排生產(chǎn)經(jīng)營(yíng)計(jì)劃,占得市場(chǎng)先機(jī);促進(jìn)產(chǎn)品銷售根據(jù)電子商務(wù)信息庫(kù)中保存的大量客戶資料,通過(guò)快速的信息溝通,為客戶及時(shí)提供所需的產(chǎn)品和服務(wù);在及時(shí)獲得市場(chǎng)對(duì)新產(chǎn)品需求的同時(shí),電子商務(wù)系統(tǒng)將使企業(yè)小批量多批次和按需生產(chǎn)的靈活生產(chǎn)方式的特色得到更充分更有效的發(fā)揮,增強(qiáng)企業(yè)創(chuàng)新能力;企業(yè)

16、的電子商務(wù)化完全可以提供和傳統(tǒng)大型生產(chǎn)企業(yè)同等的與批發(fā)供應(yīng)商建立良好信譽(yù)關(guān)系和交易的機(jī)會(huì);電子商務(wù)是企業(yè)能直接面向最終客戶,從而降低交易成本和客戶售后咨詢等服務(wù)費(fèi)用,尤其是對(duì)無(wú)形產(chǎn)品的服務(wù),現(xiàn)階段企業(yè)開(kāi)展電子商務(wù)以加強(qiáng)與客戶的溝通和促進(jìn)產(chǎn)品銷售。因此開(kāi)發(fā)一個(gè)網(wǎng)上購(gòu)物商城系統(tǒng)可以使中小型企業(yè)擁有投資少、回收快,不受時(shí)間、店面空間地理位置限制的店面。也便于消費(fèi)者不出門便可購(gòu)買自己中意的商品。 </p><p>  1

17、.2相關(guān)領(lǐng)域的發(fā)展?fàn)顩r</p><p>  互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并進(jìn)入傳統(tǒng)的流通領(lǐng)域,電子商務(wù)開(kāi)始發(fā)展起來(lái),一種全新的購(gòu)物理念開(kāi)始形成,并以其高效、快捷、方便的優(yōu)勢(shì),成為經(jīng)濟(jì)全球化和全球信息化的一個(gè)重要應(yīng)用領(lǐng)域。近年來(lái)我國(guó)的互聯(lián)網(wǎng)發(fā)展尤為迅速,但是我國(guó)網(wǎng)上購(gòu)物的比例與網(wǎng)上購(gòu)物發(fā)達(dá)的美國(guó)相比相差甚遠(yuǎn),網(wǎng)上購(gòu)物人數(shù)發(fā)展?jié)摿薮?市場(chǎng)空間很大,只要中小企業(yè)開(kāi)展網(wǎng)上交易,就一定會(huì)有收獲。 </p&

18、gt;<p>  我國(guó)現(xiàn)在的網(wǎng)上商城目前主要分為3大類。一類是大的門戶網(wǎng)站建立的商城。諸如搜狐、新浪、網(wǎng)易、卓越等。第二類是各家公司及個(gè)體自己建立的銷售網(wǎng)站。信用不一、價(jià)格也不一。第三類是交易平臺(tái)類,比較大的有:易趣、淘寶、一拍。所謂交易平臺(tái)即網(wǎng)站本身不經(jīng)營(yíng)任何商品,只是建立一個(gè)平臺(tái)供注冊(cè)用戶買賣商品使用。在美、日等信息化程度較高的國(guó)家和地區(qū),網(wǎng)絡(luò)商店發(fā)展速度迅猛,美國(guó)的世界級(jí)超一流的零售商,如沃爾瑪、凱瑪特、家庭倉(cāng)儲(chǔ)、科

19、羅格、J.C培尼等紛紛躋身于網(wǎng)絡(luò)經(jīng)商的行列。調(diào)查表明:美國(guó)的家庭己越來(lái)越習(xí)慣于在家中從網(wǎng)上購(gòu)物。所以網(wǎng)上購(gòu)物已成為人們生活中必不可少的部分。</p><p>  1.3主要研究?jī)?nèi)容及目標(biāo)</p><p>  本論文主要研究和解決網(wǎng)上購(gòu)物商城系統(tǒng)的可行性和需求、數(shù)據(jù)庫(kù)設(shè)計(jì)、主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)、開(kāi)發(fā)過(guò)程中重難點(diǎn)的解決情況。本系統(tǒng)利用現(xiàn)在比較廣泛的JavaEE技術(shù)和Oracle數(shù)據(jù)庫(kù)的架構(gòu)實(shí)

20、現(xiàn)的,進(jìn)行系統(tǒng)的分析,從消費(fèi)者的角度去思考,怎么實(shí)現(xiàn)足不出戶就可以買到所有的商品。從而實(shí)現(xiàn)信息化,規(guī)范化,系統(tǒng)化,網(wǎng)絡(luò)化的平臺(tái),具有較好的適應(yīng)性和推廣性。此系統(tǒng)分為前臺(tái)管理和后臺(tái)管理兩個(gè)部分。前臺(tái)管理是友好的操作界面,供用戶瀏覽、查詢使用。大概包括:瀏覽商品、查詢商品、購(gòu)物車、用戶維護(hù)等功能;后臺(tái)管理是提供給管理員的,其中包括:商品管理、用戶管理、訂單管理等。使管理員從繁瑣的手工操作中解脫出來(lái),并提高了辦公效率。</p>

21、<p>  第二章系統(tǒng)可行性分析和需求分析</p><p><b>  2.1 系統(tǒng)定義</b></p><p>  網(wǎng)上商城系統(tǒng)通過(guò)建立一個(gè)網(wǎng)上購(gòu)物系統(tǒng)以實(shí)現(xiàn)對(duì)商務(wù)零售企業(yè)提供信息化管理;解決了傳統(tǒng)企業(yè)的商業(yè)運(yùn)作中與供應(yīng)商、代理商、分銷商之間的溝通與數(shù)據(jù)交互問(wèn)題。那么本網(wǎng)站能夠?yàn)榭蛻籼峁┰诰€銷售管理平臺(tái)和周到便利的服務(wù)。 </p>&l

22、t;p>  2.2系統(tǒng)可行性分析</p><p>  2.2.1 技術(shù)的可行性</p><p>  本系統(tǒng)采用MVC設(shè)計(jì)模式,使用當(dāng)前最流行的開(kāi)源的SSH框架即:Struts2、Spring、Hibernate的開(kāi)發(fā)和管理用戶界面,目前J2EE技術(shù)已經(jīng)非常成熟,結(jié)合JSP,Servlet及利用輕巧的JavaScript使開(kāi)發(fā)更加高效,提示信息更加完善,界面更加友好。后臺(tái)采用Oracl

23、e數(shù)據(jù)庫(kù)完全能夠?qū)崿F(xiàn)并達(dá)到上述功能目標(biāo)。本系統(tǒng)采用開(kāi)源的Java開(kāi)發(fā)工具Eclipse和Tomcat服務(wù)器進(jìn)行程序的開(kāi)發(fā)和發(fā)布。就目前的技術(shù)來(lái)說(shuō),在規(guī)定時(shí)間內(nèi)是可以定期完成的,所以在技術(shù)上是可行的。</p><p>  2.2.2 經(jīng)濟(jì)的可行性</p><p>  系統(tǒng)中應(yīng)用的開(kāi)發(fā)工具及技術(shù)框架都是免費(fèi)的,這無(wú)疑壓縮了開(kāi)發(fā)網(wǎng)站的成本,從成本可行性分析來(lái)看,該系統(tǒng)充分體現(xiàn)了將產(chǎn)品利益最大化的

24、企業(yè)原則。</p><p>  2.2.3 操作的可行性</p><p>  本系統(tǒng)主要面向的是喜歡網(wǎng)購(gòu)的網(wǎng)友,只要本系統(tǒng)的用戶會(huì)一些簡(jiǎn)單的計(jì)算機(jī)操作,就可以網(wǎng)上購(gòu)物,不需要用戶具有較高的計(jì)算機(jī)專業(yè)知識(shí),而且對(duì)于網(wǎng)站基本信息的維護(hù)也是十分簡(jiǎn)單,管理員可以在任何一臺(tái)并入網(wǎng)絡(luò)的計(jì)算機(jī)上對(duì)網(wǎng)站進(jìn)行維護(hù)。在實(shí)體店鋪的業(yè)務(wù)方面,由于日常信息處理量大,耗費(fèi)時(shí)間長(zhǎng),出錯(cuò)效率高,在系統(tǒng)投入運(yùn)行后,可以實(shí)現(xiàn)

25、業(yè)務(wù)中的信息集中處理、分析利用信息息和信息的交流輔助市場(chǎng)的業(yè)務(wù)監(jiān)管和重大決定。并且可以實(shí)現(xiàn)實(shí)體店鋪進(jìn)一步向網(wǎng)絡(luò)服務(wù)發(fā)展,為信息工作打下良好的基礎(chǔ)。網(wǎng)站的簡(jiǎn)單易用性充分說(shuō)明了本系統(tǒng)的操作可行性。</p><p><b>  2.3系統(tǒng)需求分析</b></p><p>  2.3.1 用戶需求</p><p>  本系統(tǒng)需要實(shí)現(xiàn)的用戶需求分為三類:

26、</p><p>  (1) 游客:沒(méi)有登錄權(quán)限。此類用戶只能進(jìn)行瀏覽商品、查看商品的基本信息、進(jìn)行用戶注冊(cè)。</p><p>  (2) 用戶:已在系統(tǒng)中注冊(cè)。此類用戶必須在登錄頁(yè)輸入用戶名和密碼,輸入正確后才可以進(jìn)入操作界面使用各項(xiàng)功能。如果輸入錯(cuò)誤,則系統(tǒng)會(huì)顯示登錄錯(cuò)誤的提示信息。此類用戶除了包含游客所有權(quán)限外還可以將商品加入購(gòu)物車,可以對(duì)購(gòu)物車中的商品進(jìn)行數(shù)量選擇,或者是刪除不想要

27、的商品,可以修改個(gè)人信息,可以根據(jù)購(gòu)物車生成訂單,查看訂單。</p><p>  (3) 管理員:系統(tǒng)管理員主要是管理后臺(tái)信息。主要有商品管理,訂單管理,用戶管理。商品管理主要有添加商品、刪除商品、修改商品。用戶管理主要有查詢用戶、刪除用戶,查看用戶個(gè)人信息。</p><p>  2.3.2 系統(tǒng)功能需求</p><p>  本系統(tǒng)主要具有如下功能:</p&g

28、t;<p>  (1) 瀏覽功能:列出所有記錄進(jìn)行瀏覽或者選定一項(xiàng)記錄進(jìn)行瀏覽商品、瀏覽用戶、瀏覽訂單。</p><p>  (2) 查詢功能:使用名字或者屬性匹配查詢商品、用戶、訂單。</p><p>  (3) 刪除功能:刪除用戶、商品、訂單。</p><p>  (4) 修改功能:修改商品信息、用戶信息、購(gòu)物車信息、訂單信息。</p>

29、<p>  (5) 增加功能:增加商品、用戶、訂單,添加商品到購(gòu)物車。</p><p>  (6) 驗(yàn)證功能:輸入信息與數(shù)據(jù)庫(kù)信息進(jìn)行匹配,輸入是否符合規(guī)范,例如:用戶賬號(hào)不能包含特殊字符。</p><p><b>  2.3.3界面需求</b></p><p>  本系統(tǒng)界面要求如下:</p><p> 

30、 (1) 界面中的文字標(biāo)識(shí),含義準(zhǔn)確、清楚、用通用詞匯。</p><p>  (2) 界面中基本信息部分盡量都采用下拉框選擇方式或者單選按鈕。降低人為誤操作錯(cuò)誤;減少手工輸入工作量;規(guī)范基本信息的一致性。</p><p>  (3) 對(duì)于數(shù)值類型數(shù)據(jù)輸入部分,采用可編輯的輸入框,并對(duì)輸入的內(nèi)容進(jìn)行校驗(yàn),避免輸入非數(shù)值數(shù)據(jù)。</p><p>  (4) 對(duì)于有關(guān)聯(lián)的內(nèi)

31、容,要有數(shù)據(jù)過(guò)濾。</p><p>  (5) 數(shù)據(jù)量大時(shí),采用分頁(yè)瀏覽的形式。</p><p>  2.4相關(guān)理論和技術(shù)</p><p>  2.4.1 Java語(yǔ)言簡(jiǎn)介</p><p>  Java是一種可以撰寫(xiě)跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語(yǔ)言和Ja

32、va平臺(tái)(即JavaSE,JavaEE,JavaME)的總稱。Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算。從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展.。</p><p>  Java由四方面組成:Java編程語(yǔ)言、Java類文件格式、Java虛擬機(jī)和Java應(yīng)用程

33、序接口(Java API)。</p><p>  Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine,簡(jiǎn)稱JVM)和Java 應(yīng)用編程接口(Application Programming Interface,簡(jiǎn)稱API)構(gòu)成。Java應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行。

34、Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。</p><p>  Java分為三個(gè)體系J2SE(Java2 Platform Standard Edition,java平臺(tái)標(biāo)準(zhǔn)版),J2EE(Java 2 Platform,Enterprise Edition,java平臺(tái)企業(yè)版),J2ME(Java 2 Platform Micro Edition,java

35、平臺(tái)微型版)。</p><p>  Sun 公司對(duì) Java 編程語(yǔ)言的解釋是:Java 編程語(yǔ)言是個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無(wú)關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語(yǔ)言。</p><p>  2.4.2 SSH簡(jiǎn)介</p><p>  SSH在J2EE項(xiàng)目中表示了3種框架,即Spring + Struts2 +Hibernate。Struts2

36、對(duì)Model、View和Controller都提供了對(duì)應(yīng)的組件。Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IOC)和面向切面(AOP)的容器框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,可以應(yīng)用在任何使用JDBC的場(chǎng)合,可以在Servlet/J

37、SP的Web應(yīng)用中使用,也可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。</p><p>  2.4.3 MVC簡(jiǎn)介</p><p>  MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫(xiě),一種軟件設(shè)計(jì)典范,用于組織代碼用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法,這個(gè)方法的假設(shè)前提是如果業(yè)務(wù)邏輯被

38、聚集到一個(gè)部件里面,而且界面和用戶圍繞數(shù)據(jù)的交互能被改進(jìn)和個(gè)性化定制而不需要重新編寫(xiě)業(yè)務(wù)邏輯MVC被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。</p><p>  視圖是用戶看到并與之交互的界面,作用包括向用戶顯示相關(guān)的數(shù)據(jù)、接受用戶的輸入、向模型查詢業(yè)務(wù)狀態(tài)、接受模型發(fā)出的數(shù)據(jù)更新事件,從而對(duì)用戶界面進(jìn)行同步更新。</p><p>  模型表示業(yè)

39、務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯,是應(yīng)用程序的主體部分。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù),因此提高了代碼的可重用性。</p><p>  控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。當(dāng)Web用戶單擊Web頁(yè)面中的遞交按鈕來(lái)發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理??刂破鹘邮照?qǐng)求并決定調(diào)用哪個(gè)模型組件去處理請(qǐng)求,然后決定調(diào)用哪個(gè)視圖來(lái)顯示模型處理返回的數(shù)據(jù)。</p><p>  2.4

40、.4 SQL語(yǔ)言</p><p>  SQL Structure Query Language(結(jié)構(gòu)化查詢語(yǔ)言)是高級(jí)的非過(guò)程化編程語(yǔ)言,是溝通數(shù)據(jù)庫(kù)服務(wù)器和客戶端的重要工具,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以,具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng),可以使用相同的SQL語(yǔ)言作為數(shù)據(jù)輸入與管理的接口。它以記錄集合作為操作對(duì)象,所有SQL語(yǔ)句接受集

41、合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語(yǔ)句的輸出作為另一條SQL語(yǔ)句的輸入,所以SQL語(yǔ)句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能,在多數(shù)情況下,在其他語(yǔ)言中需要一大段程序?qū)崿F(xiàn)的功能只需要一個(gè)SQL語(yǔ)句就可以達(dá)到目的,這也意味著用SQL語(yǔ)言可以寫(xiě)出非常復(fù)雜的語(yǔ)句。</p><p>  SQL語(yǔ)言包含3個(gè)部分:</p><p>  數(shù)據(jù)定義語(yǔ)言Data Definiti

42、on Language(DDL),用來(lái)建立數(shù)據(jù)庫(kù)、數(shù)據(jù)對(duì)象和定義其列。定義:definition/ 例如:CREATE、DROP、ALTER等語(yǔ)句。</p><p>  數(shù)據(jù)操作語(yǔ)言Data Manipulation Language(DML),用來(lái)插入、修改、刪除、查詢,可以修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。操作:make/ 例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語(yǔ)句、SELECT(查詢)&l

43、t;/p><p>  數(shù)據(jù)控制語(yǔ)言Data Controlling Language(DCL),用來(lái)控制數(shù)據(jù)庫(kù)組件的存取允許、存取權(quán)限等。控制:control/ 例如:GRANT、REVOKE、COMMIT、ROLLBACK等語(yǔ)句。</p><p>  SQL 是一門 ANSI 的標(biāo)準(zhǔn)計(jì)算機(jī)語(yǔ)言,用來(lái)訪問(wèn)和操作數(shù)據(jù)庫(kù)系統(tǒng)。SQL 語(yǔ)句用于取回和更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)。SQL 可與數(shù)據(jù)庫(kù)程序協(xié)同工作

44、,比如MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase以及其他數(shù)據(jù)庫(kù)系統(tǒng)。</p><p>  第三章 系統(tǒng)總體設(shè)計(jì)</p><p><b>  3.1系統(tǒng)設(shè)計(jì)目標(biāo)</b></p><p>  本系統(tǒng)主要構(gòu)建一個(gè)能夠提供用戶網(wǎng)上購(gòu)物服務(wù)的商品購(gòu)物網(wǎng)站系統(tǒng),實(shí)現(xiàn)對(duì)用戶和商品各方面信息的管理。網(wǎng)

45、上購(gòu)物具有很多傳統(tǒng)購(gòu)物方式不可比擬的優(yōu)點(diǎn),可以幫助企業(yè)節(jié)約成本、提高工作效率,突破了商業(yè)往來(lái)上時(shí)間和空間的限制,方便快捷,對(duì)企業(yè)和消費(fèi)者來(lái)說(shuō)都有益處。具體實(shí)現(xiàn)目標(biāo)如下:</p><p>  1. 實(shí)現(xiàn)對(duì)用戶信息的管理。</p><p>  2.實(shí)現(xiàn)對(duì)商品信息的管理</p><p>  3. 實(shí)現(xiàn)對(duì)用戶購(gòu)物車信息的管理</p><p>  4.

46、 實(shí)現(xiàn)對(duì)用戶訂單信息的管理</p><p>  5.系統(tǒng)易維護(hù)和易操作。</p><p>  6.系統(tǒng)運(yùn)行穩(wěn)定、可靠。</p><p>  7.系統(tǒng)的擴(kuò)張性、信息的安全性高。</p><p><b>  開(kāi)發(fā)環(huán)境:</b></p><p>  1.操作系統(tǒng):WINDOWS XP;</p>

47、;<p>  2.運(yùn)行工具:IE 6.0</p><p>  3.開(kāi)發(fā)工具:MyEclipse 8.5</p><p>  4.數(shù)據(jù)庫(kù): Orcle</p><p>  5.服務(wù)器: Tomcat 6.0</p><p>  3.2系統(tǒng)模塊總體設(shè)計(jì)</p><p>  網(wǎng)上商城系統(tǒng)所需要實(shí)現(xiàn)的功能可以細(xì)

48、分為以下幾個(gè)模塊:前臺(tái)展示、后臺(tái)管理,這兩個(gè)模塊下還有具體的幾個(gè)子模塊。系統(tǒng)的總體結(jié)構(gòu)圖如圖3-1:</p><p><b>  3-1系統(tǒng)總體結(jié)構(gòu)</b></p><p>  由圖可以看出本系統(tǒng)主要功能模塊,其中本系統(tǒng)前臺(tái)展示主要分為5個(gè)模塊,詳細(xì)描述如下:</p><p>  (1) 注冊(cè)模塊:該模塊負(fù)責(zé)游客填寫(xiě)用戶基本資料,注冊(cè)登錄賬戶和

49、密碼。</p><p>  (2) 登錄模塊:該模塊負(fù)責(zé)游客注冊(cè)成為用戶后登錄系統(tǒng)。</p><p>  (3) 商品瀏覽模塊:該模塊負(fù)責(zé)供游客和用戶查找商品使用,同時(shí)游客和用戶也可以瀏覽商品基本信息。</p><p>  (4) 購(gòu)物車模塊:該模塊負(fù)責(zé)用戶在登錄系統(tǒng)后瀏覽喜歡的商品,選擇想要的商品加入購(gòu)物車。用戶可以對(duì)購(gòu)物車中的商品進(jìn)行數(shù)量選擇,或者是刪除不想要的

50、商品,即時(shí)計(jì)算采購(gòu)金額。</p><p>  (5)訂單模塊:該模塊負(fù)責(zé)用戶根據(jù)購(gòu)物車生成訂單,查看訂單。在購(gòu)物車中確認(rèn)所購(gòu)商品信息后,點(diǎn)擊確認(rèn)訂單,完成填寫(xiě)訂單內(nèi)送貨方式,郵寄地址等信息,確認(rèn)后生成訂單。用戶可以隨時(shí)查看訂單當(dāng)前的處理情況。</p><p>  本系統(tǒng)后臺(tái)管理主要分為3個(gè)模塊,詳細(xì)描述如下:</p><p>  (1) 用戶管理模塊:該模塊負(fù)責(zé)管理

51、注冊(cè)成為系統(tǒng)用戶的信息,可以進(jìn)行查詢用戶,查看用戶信息,刪除用戶操作。</p><p>  (2) 商品管理模塊:該模塊負(fù)責(zé)管理員進(jìn)行添加商品,查看商品信息,修改商品信息,查詢商品操作。其中添加商品與修改商品要實(shí)現(xiàn)圖片的上傳。通過(guò)該模塊實(shí)現(xiàn)了系統(tǒng)中商品的更新與添加。</p><p>  訂單管理模塊:該模塊負(fù)責(zé)管理員進(jìn)行查詢訂單操作,并對(duì)訂單進(jìn)行處理,標(biāo)記該訂單的處理狀態(tài)。通過(guò)該模塊處理用

52、戶提交的訂單,從而是用戶順利地完成購(gòu)物。</p><p>  3.3 系統(tǒng)流程分析</p><p>  系統(tǒng)功能流程圖主要體現(xiàn)用戶和管理員操作系統(tǒng)功能的一個(gè)流程,展示出用戶和管理員 可以進(jìn)行怎樣的操作。本系統(tǒng)的功能流程圖如下圖3-2所示:</p><p>  圖3-2系統(tǒng)功能流程圖</p><p>  圖3-1為系統(tǒng)功能流程圖,從圖中可以看出

53、登錄系統(tǒng)后分為普通用戶和管理員。普通用戶可以直接進(jìn)入商城主頁(yè)瀏覽商品,查看商品信息,購(gòu)買商品。管理員進(jìn)入系統(tǒng)可以進(jìn)行商品管理,訂單管理,用戶管理。</p><p><b>  3.4數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)應(yīng)考慮以下因素:</p><p>  (1) 確定數(shù)據(jù)對(duì)象的命名規(guī)范</p><p&g

54、t;  一定要定義數(shù)據(jù)庫(kù)對(duì)象的命名規(guī)范,可以考慮用約定好的前綴或后綴:對(duì)表來(lái)說(shuō),表名可以加上前綴T_,對(duì)表內(nèi)的列[字段]來(lái)說(shuō),采用全大寫(xiě)字母。對(duì)于String類型的數(shù)據(jù),在數(shù)據(jù)庫(kù)中都使用VARCHAR2數(shù)據(jù)類型。</p><p>  (2) 仔細(xì)選擇數(shù)據(jù)類型</p><p>  在命名字段并為其指定數(shù)據(jù)類型的時(shí)候一定要保證一致性。</p><p>  (3) 給文本

55、字段留足余量</p><p>  ID等類型的文本字段,應(yīng)該設(shè)置得比一般想象更大。</p><p>  (4) 使用系統(tǒng)生成的主鍵</p><p>  假如在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候采用系統(tǒng)生成的鍵作為主鍵,那么就實(shí)際控制了數(shù)據(jù)庫(kù)的索引完整性。這樣,數(shù)據(jù)庫(kù)和非人工機(jī)制就有效地控制了對(duì)存儲(chǔ)數(shù)據(jù)中每一行的訪問(wèn)。采用系統(tǒng)生成鍵作為主鍵還有一個(gè)優(yōu)點(diǎn):當(dāng)擁有一致的鍵結(jié)構(gòu)時(shí),很容易找到

56、邏輯缺陷。</p><p>  (5) 對(duì)每張表添加備用字段</p><p>  在設(shè)計(jì)表字段時(shí),為每張表預(yù)備兩個(gè)備用字段,防止在數(shù)據(jù)庫(kù)建好后,編寫(xiě)代碼中發(fā)現(xiàn)表中缺少字段時(shí),去重新生成數(shù)據(jù)庫(kù)。這樣就減少工作量,為系統(tǒng)實(shí)現(xiàn)縮短時(shí)間。</p><p>  3.4.1 數(shù)據(jù)庫(kù)的選擇</p><p>  幾乎所有的應(yīng)用程序都需要存放大量的數(shù)據(jù),并將其

57、組織成易于讀取的格式,這種要求通??梢酝ㄟ^(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)來(lái)實(shí)現(xiàn)。簡(jiǎn)單的說(shuō),數(shù)據(jù)庫(kù)就是一組排列成易于處理和讀取的相關(guān)信息的集合,因此,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞直接對(duì)應(yīng)系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生的影響。合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和一致。</p><p>  本系統(tǒng)采用了Oracle作為數(shù)據(jù)庫(kù)。Oracle Database,又名Oracle RDBMS,或簡(jiǎn)稱Oracle。是

58、甲骨文公司的一款關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。Oracle數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。它擁有可用性強(qiáng)、可擴(kuò)展性強(qiáng)、數(shù)據(jù)安全性強(qiáng)、穩(wěn)定性強(qiáng)的優(yōu)點(diǎn),而且處理速度快,非??臁踩?jí)別高,支持快閃以及完美的恢復(fù),即使硬件壞了,也可以恢復(fù)到故障發(fā)前的1s、幾臺(tái)數(shù)據(jù)庫(kù)做負(fù)載數(shù)據(jù)庫(kù),可以做到30s以內(nèi)故障轉(zhuǎn)

59、移,網(wǎng)格控制,以及數(shù)據(jù)倉(cāng)庫(kù)方面也非常強(qiáng)大,所以選擇Oracle作為本系統(tǒng)的數(shù)據(jù)庫(kù)。</p><p>  3.4.2 數(shù)據(jù)庫(kù)表的描述</p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程中最重要的一個(gè)環(huán)節(jié),它具體分為兩個(gè)部分:一是概念設(shè)計(jì),即E-R圖的設(shè)計(jì);二是邏輯結(jié)構(gòu)設(shè)計(jì),即表、字段的設(shè)計(jì)。 </p><p>  本網(wǎng)站表示實(shí)體及其聯(lián)系的E-R圖,見(jiàn)圖3—3。

60、</p><p>  圖3—3系統(tǒng)實(shí)體E—R圖</p><p><b>  1用戶表:</b></p><p>  T_USER表用來(lái)記錄所有人員的基本信息,表中USERID即用戶標(biāo)識(shí)為該表的主鍵,為數(shù)據(jù)庫(kù)自動(dòng)生成。該表記錄了用戶的登錄賬號(hào)(USERACCOUNT)、密碼(USERPASSWORD)以及用戶昵稱(USERNAME)、性別(USE

61、RSEX)等用戶的基本信息,其中用戶標(biāo)識(shí)是不能為空的,用戶備注1與用戶備注2是作為備用字段,而備用戶注1已用作為假刪除標(biāo)記字段。該表的表結(jié)構(gòu)如下表3-1所示:</p><p><b>  表 3-1 用戶表</b></p><p><b>  2商品表:</b></p><p>  T_GOODS表記錄商品信息,表中GOO

62、DSID即商品標(biāo)識(shí)為主鍵,ORDERID即訂單標(biāo)識(shí)為外鍵。該表記錄了商品名稱(GOODSNAME)和商品品牌(BRAND)、生產(chǎn)商(PRODUCER)等信息,其中商品標(biāo)識(shí)不能為空,商品備注1與商品備注2為備用字段,而商品備注1已用作為假刪除標(biāo)記字段,商品原價(jià)與商品優(yōu)惠價(jià)可保留兩位小數(shù)點(diǎn)。該表的表結(jié)構(gòu)如下表3-2商品表所示:</p><p><b>  表 3-2商品表</b></p&g

63、t;<p><b>  3訂單表:</b></p><p>  T_ORDER表記錄訂單信息,表中ORDERID即訂單標(biāo)識(shí)為主鍵,不能為空,USERID即用戶標(biāo)識(shí)與GOODSID即商品標(biāo)識(shí)為外鍵。該表記錄了郵寄方式(DELIVERWAY)、郵寄地址(DELIVERPLACE)、付款方式(PAYWAY)等信息。訂單備注1與訂單備注2為備用字段,而訂單備注1已用作為假刪除標(biāo)記字段,

64、訂單備注2已用作為訂單處理狀態(tài)字段。該表的表結(jié)構(gòu)如下表3-3訂單表所示:</p><p><b>  表 3-3訂單表</b></p><p><b>  4 購(gòu)物車表:</b></p><p>  T_SHOPPINGBANG表記錄購(gòu)物車信息,表中的SHOPBAGID即購(gòu)物車標(biāo)識(shí)為主鍵,不能為空,USERID即用戶標(biāo)識(shí)作

65、為購(gòu)物車表的外鍵。購(gòu)物車備注1與購(gòu)物車備注2為備用字段,而購(gòu)物車備注1已用作為假刪除標(biāo)記字段。該表的表結(jié)構(gòu)如下表3-4購(gòu)物車表所示:</p><p><b>  表 3-4購(gòu)物車表</b></p><p><b>  5 購(gòu)買商品表:</b></p><p>  T_MYGOODS表記錄用戶購(gòu)買商品的信息,表中的MYGOO

66、DSID即購(gòu)買商品標(biāo)識(shí)為主鍵,SHOPBAGID即購(gòu)物車與GOODSID即商品標(biāo)識(shí)為外鍵,都不能為空。該表還記錄了購(gòu)買商品的數(shù)量。購(gòu)買商品備注1與購(gòu)買商品備注2為備用字段,而購(gòu)買商品備注1已用作為假刪除標(biāo)記字段。該表的表結(jié)構(gòu)如下表3-5購(gòu)買商品表所示:</p><p>  表 3-5購(gòu)買商品表</p><p>  3.4.3數(shù)據(jù)庫(kù)表關(guān)系</p><p>  用戶表與

67、訂單表是一對(duì)多的關(guān)系,商品表與訂單表是一對(duì)一的關(guān)系,購(gòu)物車表與購(gòu)買商品表是一對(duì)多的關(guān)系,商品表與購(gòu)買商品表是一對(duì)多的關(guān)系,用戶表與購(gòu)物車表是一對(duì)多的關(guān)系。各個(gè)表之間關(guān)系都是使用各表標(biāo)識(shí)字段進(jìn)行關(guān)聯(lián),各表標(biāo)識(shí)字段在實(shí)際中沒(méi)有太多含義,只是作為表主外鍵關(guān)系存在。</p><p><b>  3.5界面設(shè)計(jì)</b></p><p>  界面是交互的接口,也是評(píng)價(jià)系統(tǒng)好壞的重

68、要指標(biāo),在設(shè)計(jì)界面時(shí)要注意以下設(shè)計(jì)原則:</p><p>  1.簡(jiǎn)單明了:用戶的操作要盡可能以最直接最形象且易于理解的方式呈現(xiàn)在用戶面前。對(duì)操作接口,直接點(diǎn)擊高于右鍵操作,文字表示要高于圖標(biāo)示意,盡可能的符合用戶對(duì)類似系統(tǒng)的識(shí)別習(xí)慣。</p><p>  2.方便使用:符合用戶習(xí)慣是方便使用的第一原則。其它還包括,實(shí)現(xiàn)目標(biāo)功能的最少操作數(shù)原則,鼠標(biāo)移動(dòng)距離最短原則等。</p>

69、<p>  3. 用戶導(dǎo)向:為了方便用戶盡快熟悉系統(tǒng),簡(jiǎn)化操作,應(yīng)該盡可能的提供向?qū)再|(zhì)的操作流程。</p><p>  4. 實(shí)時(shí)幫助:用戶需要能隨時(shí)響應(yīng)問(wèn)題的用戶幫助。</p><p>  5. 提供高級(jí)自定義功能:為熟悉計(jì)算機(jī)及軟件系統(tǒng)的高級(jí)用戶設(shè)置自定義功能,可以對(duì)已經(jīng)確定的常規(guī)操作以及系統(tǒng)的方方面面進(jìn)行符合自身習(xí)慣的自定義設(shè)置。包括常規(guī)操作、界面排版、界面樣式等種種

70、自定義。</p><p>  6. 界面要求:計(jì)算機(jī)屏幕的發(fā)光成像和普通視覺(jué)成像有很大的不同,應(yīng)該注意這種差別做出恰當(dāng)?shù)纳蚀钆?。?duì)于需用戶長(zhǎng)時(shí)間使用的系統(tǒng),應(yīng)當(dāng)使用戶在較長(zhǎng)時(shí)間使用后不至于過(guò)于感到視覺(jué)疲勞為宜。例如輕松的淡彩為主配色,灰色系為主配色等等。切忌色彩過(guò)多,花哨艷麗,嚴(yán)重妨礙用戶視覺(jué)交互。系統(tǒng)樣式排版整齊劃一,盡可能劃分不同的功能區(qū)域于固定位置,方便用戶導(dǎo)航使用;排版不宜過(guò)于密集,避免產(chǎn)生疲勞感。&l

71、t;/p><p>  經(jīng)過(guò)需求階段對(duì)用戶需求和系統(tǒng)業(yè)務(wù)的潛在需求的分析與確定,最終確定系統(tǒng)界面樣式風(fēng)格,具體顯示樣式如下:</p><p><b>  圖3-4商城主界面</b></p><p>  第四章系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</p><p>  4.1 程序設(shè)計(jì)原則及質(zhì)量要求</p><p>  

72、在系統(tǒng)設(shè)計(jì)中綜合考慮如下因素:</p><p>  (1) 技術(shù)的先進(jìn)性,符合網(wǎng)絡(luò)發(fā)展的趨勢(shì)。</p><p>  (2) 滿足人們的需要,節(jié)省時(shí)間。</p><p>  (3) 提高工作效率,滿足網(wǎng)絡(luò)現(xiàn)在和將來(lái)的數(shù)據(jù)傳輸需求。</p><p>  (4) 實(shí)用性、靈活性、模塊化、擴(kuò)充性、經(jīng)濟(jì)性、安全性。</p><p&g

73、t;  在設(shè)計(jì)階段,我們將集中研究系統(tǒng)的軟件實(shí)現(xiàn)問(wèn)題,即在分析模型的基礎(chǔ)上形成實(shí)現(xiàn)環(huán)境下的設(shè)計(jì)模型。</p><p>  (5)對(duì)于質(zhì)量要求,要求系統(tǒng)能達(dá)到文檔設(shè)計(jì)要求,在運(yùn)行時(shí)正常,無(wú)較大的差錯(cuò)。</p><p><b>  4.2重難點(diǎn)實(shí)現(xiàn)</b></p><p>  4.2.1 MVC的實(shí)現(xiàn)</p><p>  M

74、VC即controller、model、view,其中頁(yè)面為view。將后臺(tái)代碼分為三層即dao層、service層、action層后,action層為controller,dao層與service層為model。dao層主要是對(duì)數(shù)據(jù)庫(kù)的增刪查改工作,service層主要進(jìn)行業(yè)務(wù)邏輯,在這兩層中都進(jìn)行了接口設(shè)計(jì),這樣設(shè)計(jì)顯得機(jī)構(gòu)非常清晰,程序顯得非常簡(jiǎn)潔,action層主要負(fù)責(zé)接收頁(yè)面數(shù)據(jù)在傳遞到service層,從service得到數(shù)

75、據(jù)選擇哪個(gè)頁(yè)面進(jìn)行顯示。</p><p>  4.2.2圖片上傳實(shí)現(xiàn)</p><p>  在增加頁(yè)面中需要實(shí)現(xiàn)商品圖片的上傳,那么就需要在form標(biāo)簽中enctype的值要等于multipart/form-date,在form表單中文件上傳代碼為:</p><p>  <input type="file" name="upload

76、" id="file1" /></p><p>  在對(duì)應(yīng)的后臺(tái)action設(shè)置接收上傳的內(nèi)容與名字的屬性,分別為File類型屬性u(píng)pload,String類型的屬性u(píng)ploadFileName,再分別寫(xiě)上get/set方法就能獲取頁(yè)面?zhèn)鬟f的圖片內(nèi)容與圖片名字。對(duì)圖片進(jìn)行處理的代碼為:</p><p>  String saveFilePath = &

77、quot;G:/work/MyShop/WebRoot/images/";</p><p>  InputStream is = null;</p><p><b>  try {</b></p><p>  is = new FileInputStream(upload);</p><p>  goods.s

78、etGoodsimage("images/"+uploadFileName);</p><p>  OutputStream os = new FileOutputStream(saveFilePath+uploadFileName);</p><p>  byte[] b = new byte[2048];</p><p>  while (i

79、s.read()==-1 ) {</p><p>  os.write(b);</p><p><b>  }</b></p><p>  is.close();</p><p>  os.close();</p><p>  } catch (FileNotFoundException e) {

80、</p><p>  e.printStackTrace();</p><p>  } catch (IOException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  將圖片保存在指定的物理地址中,在數(shù)據(jù)庫(kù)中

81、保存的是圖片的相對(duì)路徑。</p><p>  4.2.3 SSH框架的整合</p><p>  1 web.xml的配置</p><p>  對(duì)Struts2、Spring、Hibernate的整合,首先得把三個(gè)框架的jar包導(dǎo)入,其次在web.xml文件配置Struts2過(guò)濾器,Hibernate過(guò)濾器,Spring監(jiān)聽(tīng)器。Struts2過(guò)濾器配置如下:</

82、p><p><b>  <filter></b></p><p>  <filter-name>struts2</filter-name></p><p>  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAnd&

83、lt;/p><p>  ExecuteFilter</filter-class></p><p><b>  </filter></b></p><p>  <filter-mapping></p><p>  <filter-name>struts2</filter-n

84、ame></p><p>  <url-pattern>/*</url-pattern></p><p>  </filter-mapping></p><p>  配置了后請(qǐng)求都會(huì)通過(guò)這個(gè)過(guò)濾器轉(zhuǎn)給Strust2來(lái)處理,Struts2再應(yīng)用自己的攔截器來(lái)交給Action處理。Hibernate過(guò)濾器的配置如下:</p

85、><p><b>  <filter></b></p><p>  <filter-name>hibernateFilter</filter-name></p><p>  <filter-class>org.springframework.orm.hibernate3.support.OpenSes

86、sionInViewFilter</p><p>  </filter-class></p><p><b>  </filter></b></p><p>  <filter-mapping></p><p>  <filter-name>hibernateFilter&

87、lt;/filter-name></p><p>  <url-pattern>/*</url-pattern></p><p>  </filter-mapping></p><p>  該過(guò)濾器是有Spring提供的,配置了后表明它允許在事物提交之后延遲加載顯示所需要的對(duì)象,OpenSessionInViewFilter

88、 過(guò)濾器將Hibernate Session 綁定到請(qǐng)求線程中,它將自動(dòng)被 Spring 的事務(wù)管理器探測(cè)到。Spring監(jiān)聽(tīng)器配置如下:</p><p>  <context-param></p><p>  <param-name>contextConfigLocation</param-name></p><p>  <

89、;param-value>classpath*:applicationContext-*.xml,/WEB-INF/</p><p>  applicationContext-*.xml</p><p>  </param-value></p><p>  </context-param></p><p>  &

90、lt;listener></p><p>  <listener-class>org.springframework.web.context.ContextLoaderListener</p><p>  </listener-class></p><p>  </listener></p><p>

91、;  ContextLoaderListener的作用就是啟動(dòng)Web容器時(shí),自動(dòng)裝配ApplicationContext的配置信息,而配置信息就從context-param中配置的去找。</p><p>  2 Spring配置文件的配置</p><p>  由于Spring配置的信息比較多,所以將使用多個(gè)Spring配置文件,action,service,dao的依賴注入配置各使用一個(gè)配

92、置文件,以免放在一個(gè)文件中造成臃腫、混亂。一個(gè)作為Spring的主配置文件,主要配置數(shù)據(jù)源,session工廠等。Spring的主配置文件中數(shù)據(jù)源的配置如下:</p><p>  <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"</p><p>  d

93、estroy-method="close"></p><p>  <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property></p><p>  <property name="jdb

94、cUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"></p><p>  </property></p><p>  <property name="user" value="cx"></property></p>

95、<p>  <property name="password" value="cx123"></property></p><p>  <property name="maxPoolSize" value="100"></property></p><p&

96、gt;  <property name="minPoolSize" value="1"></property></p><p><b>  </bean></b></p><p>  在數(shù)據(jù)源配置中,配置了數(shù)據(jù)庫(kù)驅(qū)動(dòng)、JDBC連接的URL、登錄數(shù)據(jù)庫(kù)的用戶名與密碼以及最大連接數(shù)和最小連接數(shù)。s

97、ession工廠的配置如下:</p><p>  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.</p><p>  LocalSessionFactoryBean"></p><p>  <property name=

98、"dataSource" ref="dataSource"></property></p><p>  <property name="hibernateProperties"></p><p><b>  <props></b></p><p&g

99、t;  <prop key="hibernate.dialect"></p><p>  org.hibernate.dialect.OracleDialect</prop></p><p>  <prop key="hibernate.show_sql">true</prop></p>

100、<p>  <prop key="hibernate.format_sql">true</prop></p><p><b>  </props></b></p><p>  </property></p><p>  <property name="

101、mappingResources"></p><p><b>  <list></b></p><p>  <value>com/cx/bean/TGoods.hbm.xml</value></p><p>  <value>com/cx/bean/TMygoods.hbm.xml

102、</value></p><p><b>  …… ……</b></p><p><b>  </list></b></p><p>  </property></p><p><b>  </bean></b></p>

103、;<p>  這個(gè)sessionFactory依賴于之前配置的數(shù)據(jù)源,配置了Hibernate會(huì)話、配置了是否需要在控制臺(tái)規(guī)范的打印SQL語(yǔ)句,在把數(shù)據(jù)庫(kù)映射文件配置進(jìn)來(lái)。有關(guān)于事物的配置如下,首先先配置事物管理器:</p><p>  <bean id="txManager" class="org.springframework.orm.hibernate3.&

104、lt;/p><p>  HibernateTransactionManager"></p><p>  <property name="sessionFactory"><ref bean="sessionFactory"/></p><p>  </property></p

105、><p><b>  </bean></b></p><p>  事物是依賴于之前配置的session工廠。再次是配置事物的傳播特性:</p><p>  <tx:advice id="txAdvice" transaction-manager="txManager"></p&g

106、t;<p>  <tx:attributes></p><p>  <tx:method name="*" propagation="REQUIRED"/></p><p>  </tx:attributes></p><p>  </tx:advice></

107、p><p>  配置propagation等于REQUIRED表示如果存在一個(gè)事務(wù),則使用當(dāng)前事務(wù),如果沒(méi)有,則開(kāi)啟一個(gè)新的事務(wù)。最后是配置那些類的那些方法參與事物:</p><p>  <aop:config></p><p>  <aop:pointcut id="allManagetMethod"expression=&quo

108、t;execution</p><p>  (*com.cx.service.*.*(..)) || execution(*com.cx.Service.*.*.*(..)) " /></p><p>  <aop:advisor pointcut-ref="allManagetMethod" advice-ref="txAdvice&q

109、uot; /></p><p>  </aop:config></p><p>  也就是Spring AOP的配置。以上的配置是Spring對(duì)對(duì)hibernate的聲明式事務(wù)支持,在dao需要對(duì)象繼承HibernateDaoSupport,調(diào)用getHibernateTemplate。</p><p>  3 struts.xml的配置</

110、p><p>  在struts.xml的配置中配置了動(dòng)態(tài)方法調(diào)用如下所示:</p><p>  <constant name="struts.enable.DynamicMethodInvocation" value="true" /></p><p>  配置后表示可以在頁(yè)面上指定調(diào)用action的某個(gè)方法。配置了開(kāi)

111、發(fā)模式如下:</p><p>  <constant name="struts.devMode" value="true" /></p><p>  是為了方便系統(tǒng)開(kāi)發(fā)時(shí)進(jìn)行調(diào)試。配置了對(duì)象池如下:</p><p>  <constant name="struts.objectFactory&quo

112、t; value="spring"></constant></p><p>  表示將action的創(chuàng)建交給Spring去管理。對(duì)于action的配置是獨(dú)立出來(lái)配置在引進(jìn)到struts.xml文件,其引進(jìn)配置如下:</p><p>  <include file="com/cx/struts/TGoods-struts.xml"

113、;></include></p><p>  需要注意action的配置中action標(biāo)簽的class屬性的值與applicationContext*.xml配置bean標(biāo)簽的id值一樣。</p><p>  4.3用戶注冊(cè)界面實(shí)現(xiàn)</p><p><b>  4.3.1功能描述</b></p><p&g

114、t;  用戶注冊(cè)界面如下圖4-1所示,主要是用于提供給需要進(jìn)行購(gòu)物但沒(méi)有賬號(hào)的用戶,用戶需要填完這些,完成注冊(cè)后才能登陸。圖中帶星號(hào)都為必填項(xiàng),都是需要使用JavaScript寫(xiě)驗(yàn)證,驗(yàn)證賬號(hào)、密碼、電話號(hào)碼、身份證、昵稱長(zhǎng)度,賬號(hào)、密碼、昵稱不能包含特殊字符,電話號(hào)碼與身份證只能為數(shù)字,Email格式是否正確。</p><p><b>  4.3.2界面風(fēng)格</b></p>

115、<p>  圖 4-1用戶注冊(cè)界面</p><p><b>  4.3.3具體實(shí)現(xiàn)</b></p><p>  功能的具體實(shí)現(xiàn)是指從Jsp頁(yè)面編寫(xiě)到后臺(tái)代碼是怎樣去實(shí)現(xiàn)這個(gè)功能的工作流程。在這里以用戶注冊(cè)即對(duì)用戶表進(jìn)行增加一條數(shù)據(jù)的功能為例。</p><p>  在用戶注冊(cè)頁(yè)面regist.jsp中編寫(xiě)form表單,form標(biāo)簽中ac

116、tion屬性的值為該form表單中所有數(shù)據(jù)所需要提交到的action,而method的值為數(shù)據(jù)提交到后臺(tái)的方式,只有post與get兩種,需要注意的是在form表單中的輸入框中的name屬性值一定得是user.用戶屬性名,否則后臺(tái)將不能接收到數(shù)據(jù)。代碼示例如下:</p><p>  <form action="registAction.action" method="post&

117、quot;></form></p><p>  而action的值中還可以在.action后加感嘆號(hào)再加方法名,表示調(diào)用提交到action中的某個(gè)方法。當(dāng)用戶正確填寫(xiě)資料后點(diǎn)擊注冊(cè)系統(tǒng)會(huì)根據(jù)form標(biāo)簽中的action從TUSER-struts.xml中查找對(duì)應(yīng)的action。找到的action代碼如下:</p><p>  <action name="r

118、egistAction" class="UserAction" method="registUser"></p><p>  <result name="success"></p><p>  /page/frontJsp/login.jsp</p><p><b> 

119、 </result></b></p><p>  <result name="fail"></p><p>  /page/frontJsp/regist.jsp</p><p><b>  </result></b></p><p><b>

溫馨提示

  • 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)論