2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  論文題目 網(wǎng)上拍賣平臺系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  姓 名 </p><p>  學(xué) 院 </p><p>  專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)</p><p><b>  指導(dǎo)教師 </b></p><p><b>

2、  備 注</b></p><p>  2010 年 6 月4日</p><p>  網(wǎng)上拍賣平臺系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  2010年6月</b></p><p>  Design and Implementation of Online Auction Platform Syste

3、m</p><p>  Northeastern University Neusoft Institute of Information</p><p><b>  June 2010</b></p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p>  網(wǎng)上拍賣平臺系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p&

4、gt;<b>  摘 要</b></p><p>  拍賣是購買和銷售中的一種主要的交易方式,隨著Internet的日益普及和電子商務(wù)的發(fā)展,網(wǎng)上拍賣迅速成為一種非常活躍的C2C電子商務(wù)模式。因?yàn)樗浞掷昧嘶ミB網(wǎng)的特性開創(chuàng)了一個(gè)前所未有的巨大市場而被廣泛看好。對商家而言,以拍賣的形式在網(wǎng)上采購、銷售物品,因?yàn)椴皇軙r(shí)間和空間限制、并且可以有效降低運(yùn)營成本并提高效率而具有極大的吸引力。<

5、;/p><p>  本中詳細(xì)介紹了Struts2、Spring、Hibernate三大框架技術(shù),以及它們之間的整合。通過這三個(gè)框架建立整個(gè)系統(tǒng)結(jié)構(gòu),采用JavaEE的三層結(jié)構(gòu),分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問等工作放到中間層處理,客戶端不直接與數(shù)據(jù)庫交互,而是通過控制器與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。</p><p>  三個(gè)框架的整合是通過Sprin

6、g IoC容器的支持,將Struts2的Action、基于Hibernate的DAO組件都納入Spring容器的管理下,從而避免了在Struts2的Action中直接調(diào)用Hibernate API。</p><p>  本文結(jié)合軟件工程的各個(gè)階段,對網(wǎng)上拍賣平臺系統(tǒng)進(jìn)行分析、設(shè)計(jì),然后編碼實(shí)現(xiàn),最終進(jìn)行測試,完成了系統(tǒng)的核心功能。</p><p>  關(guān)鍵詞:拍賣系統(tǒng),框架,三層結(jié)構(gòu)<

7、;/p><p>  Design and Implementation of Online Auction Platform System</p><p><b>  Abstract</b></p><p>  Auction the purchase and sale transactions in a major way, with the

8、increasing popularity of Internet and e-commerce development, online auction quickly became a very active C2C e-commerce model. Because it makes full use of the characteristics of the Internet has created a tremendous an

9、d unprecedented market is widely optimistic. Businessmen are in the form of online auction purchase, sale items, as from time and space constraints, and can reduce operating costs and increase efficiency has grea</p&g

10、t;<p>  The detailed description of the Struts2, Spring, Hibernate three framework technology, and integration between them. Framework through the establishment of the whole system of these three structures, three

11、-tier structure with JavaEE divided into presentation layer, business logic and data layer. Three-tier system will be business rules, data access and so on into the middle layer of processing, the client does not directl

12、y interact with the database, but through the controller and the middle lay</p><p>  Integration of the three frameworks is the support through the Spring IoC container will Struts2 in Action, based on Hiber

13、nate for DAO components into the Spring container management, thus avoiding the Action in Struts2 directly call the Hibernate API.</p><p>  In this paper, all stages of software engineering, on-line auction

14、platform system analysis, design, and coding to achieve the ultimate test and completed the core system.</p><p>  Key words: Auction System, Frame, Three Level Structure</p><p><b>  目 錄&l

15、t;/b></p><p><b>  任務(wù)書I</b></p><p><b>  摘要II</b></p><p>  AbstractIII</p><p><b>  第1章 緒論1</b></p><p>  1.1 論文研究主要

16、內(nèi)容1</p><p>  1.2 國內(nèi)外現(xiàn)狀2</p><p>  第2章 關(guān)鍵技術(shù)介紹3</p><p>  2.1 Java語言簡介3</p><p>  2.2 JSP技術(shù)4</p><p>  2.3 Struts2技術(shù)4</p><p>  2.4 Spring框架5&

17、lt;/p><p>  2.5 Hibernate框架5</p><p>  第3章 系統(tǒng)分析6</p><p>  3.1 構(gòu)架概述6</p><p>  3.1.1 功能構(gòu)架6</p><p>  3.1.2 模塊需求描述6</p><p>  3.2 系統(tǒng)開發(fā)環(huán)境8</p&g

18、t;<p>  3.3 系統(tǒng)任務(wù)的可行性分析8</p><p>  3.3.1 技術(shù)可行性8</p><p>  3.3.2 系統(tǒng)安全性分析8</p><p>  第4章 系統(tǒng)設(shè)計(jì)10</p><p>  4.1 設(shè)計(jì)指導(dǎo)思想和原則10</p><p>  4.1.1 指導(dǎo)思想10</p

19、><p>  4.1.2 軟件設(shè)計(jì)原則11</p><p>  4.2 構(gòu)架概述13</p><p>  4.3 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)14</p><p>  4.4 系統(tǒng)控制流程14</p><p>  4.5系統(tǒng)數(shù)據(jù)設(shè)計(jì)16</p><p>  4.6 系統(tǒng)功能順序圖18</p&

20、gt;<p>  4.6.1 用戶登錄18</p><p>  4.6.2 發(fā)布新商品18</p><p>  4.6.3 參與競價(jià)19</p><p>  4.7 系統(tǒng)界面設(shè)計(jì)19</p><p>  4.7.1 系統(tǒng)首頁設(shè)計(jì)19</p><p>  4.7.2 發(fā)布新商品頁面20</

21、p><p>  4.7.3 管理種類頁面21</p><p>  第5章 系統(tǒng)實(shí)現(xiàn)23</p><p>  5.1 實(shí)現(xiàn)Hibernate PO23</p><p>  5.2 實(shí)現(xiàn)系統(tǒng)的DAO層24</p><p>  5.3 實(shí)現(xiàn)系統(tǒng)Web層24</p><p>  5.4 實(shí)現(xiàn)系統(tǒng)視

22、圖層25</p><p>  第6章 系統(tǒng)測試26</p><p>  6.1 測試目的26</p><p>  6.2測試方案及測試用例26</p><p>  6.2.1 預(yù)期結(jié)果26</p><p>  6.2.2測試方案27</p><p><b>  第7章 結(jié)論

23、29</b></p><p><b>  參考文獻(xiàn)30</b></p><p><b>  致謝31</b></p><p><b>  第1章 緒論</b></p><p>  電子商務(wù)(electronic commerce)是計(jì)算機(jī)網(wǎng)絡(luò)所帶來的又一次革命

24、,它的發(fā)展將形成新的交換體制,產(chǎn)生新的市場規(guī)則,沖破時(shí)間與空間的限制,加快全球市場一體化的進(jìn)程,電子商務(wù)還將有力地推動信息和信息服務(wù)業(yè)的發(fā)展。它不僅涉及電子技術(shù)和商業(yè)交易本身,而且涉及到諸如金融、稅務(wù)、教育等其他社會層面,是一個(gè)與社會大環(huán)境息息相關(guān)并且具有完整結(jié)構(gòu)體系的系統(tǒng)工程。電子商務(wù)的發(fā)展為網(wǎng)上拍賣帶來了勃勃生機(jī),使得網(wǎng)上拍賣迅速成為一種非?;钴S的電子商務(wù)模式。</p><p>  網(wǎng)上拍賣系統(tǒng)是一個(gè)C2C模

25、式下的電子商務(wù)系統(tǒng),提供了一個(gè)網(wǎng)上拍賣的市場給買方和賣方,企業(yè)可以以拍賣的方式出售自己的產(chǎn)品。擁有商品展示、拍賣競投、用戶注冊、網(wǎng)上支付、信息反饋和新商品發(fā)布幾項(xiàng)基本功能。使得網(wǎng)上的用戶可以安全、便捷的使用該系統(tǒng)。企業(yè)可以通過該系統(tǒng)觀察到消費(fèi)者、客戶之間的買賣情況,從中獲取最直接的市場消息,掌握最詳細(xì)的市場動態(tài)。它與傳統(tǒng)的拍賣模式相比具有以下五個(gè)方面的主要優(yōu)勢。</p><p> ?。?)降低了采購價(jià)格,借助ED

26、I企業(yè)能夠完成自動的例行采購,可減少采購過程中人力、印刷和郵寄的費(fèi)用。</p><p> ?。?)采用“零庫存”管理方式,可大大縮短資金的周轉(zhuǎn)周期。</p><p> ?。?)互聯(lián)網(wǎng)商務(wù)更有利于開拓全球市場。</p><p>  (4)實(shí)現(xiàn)24小時(shí)不問斷營業(yè),有利于提高營業(yè)額。</p><p> ?。?)可使用多媒體手段進(jìn)行促銷活動,可依靠客

27、戶數(shù)據(jù)庫提供全新個(gè)人服務(wù)。</p><p>  隨著通信技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)上拍賣的開展勢在必行。應(yīng)該說網(wǎng)上拍賣發(fā)展的前景十分廣闊,作用越來越大。文中論述了構(gòu)建網(wǎng)上拍賣系統(tǒng)的技術(shù)手段及其實(shí)現(xiàn)的關(guān)鍵方法。</p><p>  1.1 論文研究主要內(nèi)容</p><p>  本次畢業(yè)設(shè)計(jì)完成的系統(tǒng)主要實(shí)現(xiàn)的功能包括用戶注冊、發(fā)布商品、競拍商品、查看商品的詳細(xì)信息以

28、及通過Web方式對系統(tǒng)的數(shù)據(jù)進(jìn)行管理。網(wǎng)上拍賣平臺是為用戶與用戶之間的交易競價(jià)而搭建的平臺,負(fù)責(zé)用戶通過這個(gè)系統(tǒng)自動的在異地完成交易而毋須人工來操作。以高內(nèi)聚低耦合的系統(tǒng)結(jié)構(gòu),靈活處理新增功能服務(wù),主要表現(xiàn)在面向接口編程等軟件架構(gòu)宗旨。從而使得該系統(tǒng)在實(shí)際的應(yīng)用環(huán)境中有足夠的生存能力。</p><p>  軟件結(jié)構(gòu)的好壞直接影響的軟件的質(zhì)量,所以運(yùn)用Struts2、Spring、Hibernate這三個(gè)框架來建立

29、軟件的框架,嚴(yán)格按照J(rèn)avaEE的MVC三層體系去實(shí)現(xiàn)。</p><p><b>  1.2 國內(nèi)外現(xiàn)狀</b></p><p>  說起拍賣網(wǎng)站就一定少不了eBay,這家美國網(wǎng)站締造了一個(gè)美妙的網(wǎng)絡(luò)發(fā)家致富的奇跡。幾年前eBay出現(xiàn)的時(shí)候,它還只是個(gè)小不點(diǎn),但嶄新的商業(yè)思想?yún)s使eBay在短時(shí)間內(nèi)成為網(wǎng)絡(luò)巨人。它帶動起網(wǎng)絡(luò)時(shí)代新的行為方式,為買賣雙方在網(wǎng)上提供交易的場

30、所,供應(yīng)一些別人看不上眼的零碎物品,例如二手電腦,舊書等等。這個(gè)點(diǎn)子引出了一顆閃耀的新星,如今的eBay已經(jīng)成為拍賣網(wǎng)站中首屈一指的名牌。</p><p>  本來市場活躍并非不好,只是目前拍賣網(wǎng)站的涌現(xiàn)還只能為網(wǎng)絡(luò)經(jīng)濟(jì)帶來嶄新的概念和廣闊的發(fā)展空間,特別是在國內(nèi)大陸地區(qū),目前還沒有以拍賣為電子商務(wù)中心的網(wǎng)站。除去沒有意義的新聞炒作,大多數(shù)網(wǎng)站對網(wǎng)友的影響尚乏善可陳。而現(xiàn)在他們面對的將是“誰會買”和“怎樣賣”兩大

31、難題。</p><p>  對于“網(wǎng)上拍賣”系統(tǒng),要完成的主要是網(wǎng)上的拍賣流程,要求對拍賣信息的發(fā)布、查詢都能在線進(jìn)行,而且,對于用戶滿意的拍賣品,要求能夠在線出價(jià)。因?yàn)榕馁u是一種公開的投標(biāo)方式,所以競價(jià)人在競價(jià)時(shí)也應(yīng)該可以查看歷史的競價(jià)記錄。對拍賣商來說,他應(yīng)該可以隨時(shí)掌握拍賣品的拍賣情況,所以也應(yīng)該為拍賣商提供一個(gè)查看競價(jià)情況的空間。對某一拍賣品,它的拍賣狀態(tài)應(yīng)該是可以設(shè)置的。</p><

32、p>  第2章 關(guān)鍵技術(shù)介紹</p><p>  本系統(tǒng)的IoC容器使用Spring框架,Spring容器負(fù)責(zé)管理本系統(tǒng)中所有組件,是系統(tǒng)最大的工廠。數(shù)據(jù)的持久化使用Hibernate完成,表現(xiàn)層的MVC框架使用Struts2,這些框架都是目前最流行的輕量級JavaEE框架。</p><p>  2.1 Java語言簡介</p><p>  Java是一種語法

33、簡潔、清晰的語言,它的程序運(yùn)行需要一個(gè)解釋器,也就是所謂的“虛擬機(jī)”。虛擬機(jī)以某種高速算法解釋執(zhí)行Java的面向?qū)ο笳Z言代碼。Java是基于WWW開發(fā)的,主要分為客戶端和服務(wù)器端兩大類型。Java客戶端軟件包括Applet應(yīng)用小程序,傳統(tǒng)的客戶端圖形界面程序、各類加點(diǎn)設(shè)備的客戶端應(yīng)用程序。服務(wù)器端軟件則包括利用Socket套接字或使用封裝了Socket功能函數(shù)的Java高級網(wǎng)絡(luò)流類編寫的Server并發(fā)程序、Servlet程序、JSP網(wǎng)

34、頁程序和服務(wù)器端的EJB組件等。</p><p>  根據(jù)Sun的Java語言白皮書中的歸納和總結(jié),簡單地說,Java語言有如下特點(diǎn):</p><p> ?。?)簡單(Simple)。程序較小,編寫容易,能夠在小型機(jī)器上執(zhí)行,基本的解釋器約為40KB,若加上基本的程序庫,約為215KB。</p><p>  (2)面向?qū)ο螅∣bject-Oriented)。一個(gè)對象

35、的狀態(tài)只由對象自己可知的變量定義。Java把這些變量稱為數(shù)據(jù)域或者成員變量。數(shù)據(jù)域?qū)ο髞碚f是私有的,除非顯示地使用關(guān)鍵字來定義它們的作用域,使它們對其他類可見。一個(gè)對象的行為是由它上面的操作定義的。在Java中,這些操作被叫做方法。方法可以改變一個(gè)對象的狀態(tài),創(chuàng)建新對象,實(shí)現(xiàn)實(shí)用的功能等。</p><p> ?。?)分布式(Distributed)。Java有一個(gè)龐大的程序庫,且容易地與HTTP和FTP等TCP

36、/IP通信協(xié)議相配合。</p><p> ?。?)健壯性(Robust)。有Java所編寫的程序,在多數(shù)情況下執(zhí)行穩(wěn)定。Java與C/C++最大不同是Java通過一個(gè)指針模型來排除內(nèi)存被覆蓋和毀損數(shù)據(jù)的可能性。</p><p>  (5)安全性(Secure)。Java是被設(shè)計(jì)用于網(wǎng)絡(luò)及分布式的環(huán)境中,Java擁有數(shù)個(gè)階層的互鎖保護(hù)措施,能有效地防止病毒的侵入和破壞行為的發(fā)生。</p

37、><p> ?。?)結(jié)構(gòu)中立(Architecture Neutral)。Java的編譯器產(chǎn)生一種結(jié)構(gòu)中立的目標(biāo)文件格式,這使得編譯碼得以在很多種處理器中執(zhí)行。</p><p>  (7)解釋執(zhí)行(Interpreted)。Java解釋器能直接在任何機(jī)器上執(zhí)行Java位元碼,這對于縮短程序的開發(fā)過程,有很大的幫助。</p><p> ?。?)高性能(High Perfo

38、rmance)。Java位元碼可迅速地能被轉(zhuǎn)換成機(jī)器碼,從位元碼轉(zhuǎn)換到機(jī)器碼的性能與C和C++幾乎沒有分別。</p><p> ?。?)多線程的(Multi threaded)。Java語言具有多線程的功能,這對于交互回應(yīng)能力及即時(shí)執(zhí)行行為是有幫助的。</p><p> ?。?0)動態(tài)性(Dynamic)。Java比C或C++語言更具有動態(tài)性,更能適應(yīng)時(shí)刻在變的環(huán)境,Java不會因程序庫的

39、更新而必須重新編譯程序。</p><p><b>  2.2 JSP技術(shù)</b></p><p>  JSP技術(shù)可以以一種簡捷而快速的方法生成Web頁面。使用JSP技術(shù)的Web頁面可以很容易地顯示動態(tài)內(nèi)容。JSP技術(shù)的設(shè)計(jì)目的是使得構(gòu)造基于Web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種Web服務(wù)器、應(yīng)用服務(wù)器、瀏覽器和開發(fā)工具共同工作。</p>

40、<p>  本系統(tǒng)使用JSP技術(shù)作為表現(xiàn)層技術(shù),它負(fù)責(zé)收集用戶的請求數(shù)據(jù),并將用戶請求數(shù)據(jù)提交到指定的控制器。當(dāng)系統(tǒng)處理完用戶請求后,JSP頁面還負(fù)責(zé)將處理結(jié)果呈現(xiàn)給用戶。本系統(tǒng)中的JSP頁面禁用可Java腳本,保證JSP頁面只能作為系統(tǒng)表現(xiàn)層使用,避免將業(yè)務(wù)邏輯混雜在表現(xiàn)層中。通過使用Struts2的頁面標(biāo)簽,可以保證JSP頁面中不再出現(xiàn)任何小腳本,從而保證了JSP頁面只有變現(xiàn)邏輯。</p><p>

41、;  2.3 Struts2技術(shù)</p><p>  用戶的所有請求都由Struts2的FilterDispatcher過濾,通過這種方式,將系統(tǒng)的所有請求都轉(zhuǎn)入Struts2系統(tǒng)內(nèi),從而保證所有請求都交給Struts2的Action處理。本系統(tǒng)采用了Struts2和Spring的整合策略,當(dāng)Struts2和Spring整合時(shí),使用了Struts2提供的Spring插件,該插件將Struts2的objectFac

42、tory設(shè)置成Spring,這意味著Struts2的Action實(shí)例也是由Spring容器負(fù)責(zé)生成,讓后通過制定Spring的自動裝配策略,從而讓struts2的Action定位Spring容器中的業(yè)務(wù)邏輯組件。</p><p>  因?yàn)镾truts2的objectFactory直接改為了Spring容器,從而讓Struts2的Action直接由容器來產(chǎn)生,進(jìn)而讓用戶請求進(jìn)入Spring容器內(nèi)部,一旦進(jìn)入了Spr

43、ing IoC容器的內(nèi)部,Ioc容器就負(fù)責(zé)管理所有的業(yè)務(wù)邏輯組件、DAO組件,從而以這種方式將系統(tǒng)中所有組件串接起來。</p><p>  2.4 Spring框架</p><p>  借助于Spring IoC容器的支持,容器中各組件以松耦合的方式組合在一起,組件與組件之間的依賴通過Spring的依賴注入進(jìn)行管理。系統(tǒng)中的各組件之間面向接口編程,降低了系統(tǒng)異構(gòu)的代價(jià)。</p>

44、<p>  DAO對象的創(chuàng)建實(shí)際上是使用了Spring的HibernateDaoSupport作為基類,使得繼承HibernateDaoSupport的DAO對象實(shí)現(xiàn)更加簡單,程序開發(fā)人員無需管理Hibernate的SessionFactory、Session等對象。程序開發(fā)者通過Spring提供的HibernateTemplate完成數(shù)據(jù)庫操作。</p><p>  事務(wù)采用Spring的聲明式事

45、務(wù)框架。通過聲明事務(wù),無需將事務(wù)策略以硬編碼的方式與代碼耦合在一起,而是放在配置文件中聲明。業(yè)務(wù)邏輯組件可以更加專注于業(yè)務(wù)的實(shí)現(xiàn),從而簡化開發(fā)。同時(shí),聲明事務(wù)降低了不同事務(wù)策略的切換代價(jià)。</p><p>  2.5 Hibernate框架</p><p>  Hibernate作為O/R Mapping框架使用,Hibernate提供的O/R Mapping功能簡化了數(shù)據(jù)庫訪問,Hibe

46、rnate在JDBC層上提供了更好的封裝,以面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫,更加符合面向?qū)ο蟪绦蛟O(shè)計(jì)的思路。</p><p>  然而Hibernate的內(nèi)置標(biāo)識生成器根據(jù)數(shù)據(jù)庫的不同而選用不同的方法,在MySQL中把ID設(shè)為auto_increment類型,MS SQL Server把ID設(shè)為identity類型,數(shù)據(jù)庫就會自動為主鍵賦值,但是本程序中使用的是Oracle數(shù)據(jù)庫,因此在Oracle中是從序列(Sequ

47、ence)中獲取自動增長的標(biāo)識符。</p><p>  Hibernate以優(yōu)雅、靈活的方法操作數(shù)據(jù)庫,無需開發(fā)者編寫繁瑣的SQL語句,執(zhí)行冗長的多表查詢,而通過對象與對象之間的關(guān)聯(lián)操作數(shù)據(jù)庫。Hibernate為底層的DAO對象的實(shí)現(xiàn)提供了支持。</p><p><b>  第3章 系統(tǒng)分析</b></p><p><b>  3.

48、1 構(gòu)架概述</b></p><p>  3.1.1 功能構(gòu)架</p><p>  根據(jù)需求調(diào)研結(jié)果確定本系統(tǒng)主要包括以下功能模塊,如圖3.1所示。</p><p>  圖3.1 系統(tǒng)體系結(jié)構(gòu)</p><p>  3.1.2 模塊需求描述</p><p><b> ?。?)用戶管理</b&g

49、t;</p><p>  客戶第一次登錄需要填寫注冊信息,由于拍賣行業(yè)的特殊性故此每位客戶必須填寫真實(shí)信息。對于以注冊用戶只需登錄即可進(jìn)入系統(tǒng)??蛻粼谙到y(tǒng)中有兩個(gè)角色。一種是買家,另外一種是賣家。每個(gè)客戶可以是其中一種角色,也可以是兩種。如圖3.2所示。</p><p>  用管理分為用戶注冊與用戶登錄,用戶注冊用例起始于用戶想要注冊成為會員,當(dāng)用戶點(diǎn)擊用戶注冊按鈕時(shí),系統(tǒng)將自動跳轉(zhuǎn)到用戶

50、注冊頁,用戶按要求填寫完注冊信息點(diǎn)擊提交按鈕,系統(tǒng)則成功響應(yīng),完成注冊。</p><p>  用戶登錄用例起始于用戶想要登錄該系統(tǒng),當(dāng)用戶正確輸入用戶名與密碼后,點(diǎn)擊登錄按鈕,系統(tǒng)響應(yīng)用戶的請求,將用戶的Session記錄,同時(shí)提示成功登錄。</p><p>  圖3.2 用戶管理用例圖</p><p><b> ?。?)發(fā)布新商品</b>&l

51、t;/p><p>  當(dāng)用戶正常登錄系統(tǒng)后,就可以添加自己的拍賣物品了,添加拍賣物品是本系統(tǒng)中需要處理表單域比較多的場景。而且添加物品時(shí),應(yīng)該能讓用戶選擇所添加物品所屬的種類,這要求進(jìn)入添加物品表單頁之前,先使用一個(gè)取得所有物品種類。如圖3.3所示。</p><p>  發(fā)布新商品用例起始于,用戶以賣家的身份想要添加拍賣的物品,當(dāng)用戶按規(guī)定填寫好要發(fā)布商品的信息后,點(diǎn)擊發(fā)布新商品按鈕,系統(tǒng)則成

52、功響應(yīng)用戶的請求,將其信息正確的添加到后臺數(shù)據(jù)庫。</p><p>  圖3.3 發(fā)布新商品用例圖</p><p><b>  (3)用戶競價(jià)</b></p><p>  處理用戶競價(jià)是系統(tǒng)中比較復(fù)雜的一個(gè)模塊,涉及到用戶表、物品表,如果用戶需要對指定物品進(jìn)行競價(jià),必須先進(jìn)入查看物品詳細(xì)信息的頁面,然后由bid.action進(jìn)行處理,完成對物品

53、表的狀態(tài)、最后競價(jià)人等信息的更新。如圖3.4所示。</p><p>  競價(jià)管理用例是用戶以買家的身份來實(shí)現(xiàn)的一個(gè)模塊,該用例起始于用戶想要在某個(gè)商品完成對該商品的出價(jià)。當(dāng)用戶填寫高于當(dāng)前物品競價(jià)的最高價(jià)格時(shí),點(diǎn)擊競價(jià)按鈕,系統(tǒng)正確的響應(yīng)該用戶的請求,并在數(shù)據(jù)庫中修改物品類的相應(yīng)元素。</p><p>  圖3.4 用戶參與競價(jià)用例圖</p><p><b&g

54、t; ?。?)其它業(yè)務(wù)功能</b></p><p>  其它業(yè)務(wù)功能見表3.1。</p><p>  表3.1 其它業(yè)務(wù)功能</p><p>  3.2 系統(tǒng)開發(fā)環(huán)境 </p><p>  硬件環(huán)境:450*2MHZ/40G/1024MB/40G/</p><p>  軟件環(huán)境:Windows XP/MyE

55、clipse6.0/tomcat6.0/ORACLE 9I/</p><p>  3.3 系統(tǒng)任務(wù)的可行性分析</p><p>  3.3.1 技術(shù)可行性</p><p>  本系統(tǒng)采用Struts2+Hibernate+Spring三個(gè)框架整合,采用Java作為開發(fā)語言,數(shù)據(jù)庫采用Oracle,前臺的頁面使用JSP。這些軟件和技術(shù)都已經(jīng)非常的成熟,軟件的波動性很小

56、。</p><p> ?。?)典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。</p><p>  一個(gè)良好的框架可以讓開發(fā)人員減輕重新建立解決復(fù)雜問題方案的負(fù)擔(dān)和精力;它可以被擴(kuò)展以進(jìn)行內(nèi)部的定制化;并且有強(qiáng)大的用戶社區(qū)來支持

57、它??蚣芡ǔD芎芎玫慕鉀Q一個(gè)問題。然而,你的應(yīng)用是分層的,可能每一個(gè)層都需要各自的框架,然而這三個(gè)框架正是開發(fā)人員所需要的。</p><p> ?。?)表現(xiàn)層是傳統(tǒng)的JSP技術(shù),自1999年問世以來,經(jīng)過多年的發(fā)展,其廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。JSP技術(shù)可以以一種簡捷而快速的方法生成Web頁面。使用JSP技術(shù)的Web頁面可以很容易地顯示動態(tài)內(nèi)容。JSP技術(shù)的設(shè)計(jì)目的是使得構(gòu)造基于

58、Web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種Web服務(wù)器、應(yīng)用服務(wù)器、瀏覽器和開發(fā)工具共同工作。</p><p> ?。?)Oracle的關(guān)系數(shù)據(jù)庫是世界第一個(gè)支持SQL語言的數(shù)據(jù)庫,經(jīng)歷過20多年的發(fā)展,由于其優(yōu)越的安全性、完整性、穩(wěn)定性和支持多種操作系統(tǒng)、多種硬件平臺等特點(diǎn),得到了廣泛的應(yīng)用。加上Hibernate對Oracle的支持,使得該系統(tǒng)的有更足夠的技術(shù)支持。</p><

59、;p>  3.3.2 系統(tǒng)安全性分析</p><p>  (1)本系統(tǒng)除了瀏覽商品信息外,進(jìn)行其他的操作必須要經(jīng)過登錄模塊,從數(shù)據(jù)庫中驗(yàn)證是否存在該用戶的信息。用戶每次發(fā)出請求都是經(jīng)過Struts2的攔截器的過濾,攔截器攔截用戶Session,判斷Session中是否保存了當(dāng)前用戶ID,如果保存了用戶ID,即該用戶已經(jīng)登錄,否則沒有登陸。</p><p> ?。?)添加服務(wù)器端校驗(yàn)使

60、得侵入者不容易侵入該系統(tǒng),很多惡意的侵入者,并不是通過瀏覽器來破解某個(gè)應(yīng)用,他會采用更底層的Socket通信進(jìn)行侵入。然而通過校驗(yàn)文件可以提高該系統(tǒng)的安全性。校驗(yàn)文件時(shí)一個(gè)XML配置文件,該文件指定了Action的屬性必須滿足怎樣的規(guī)則。</p><p><b>  第4章 系統(tǒng)設(shè)計(jì)</b></p><p>  4.1 設(shè)計(jì)指導(dǎo)思想和原則</p><

61、;p>  4.1.1 指導(dǎo)思想</p><p> ?。?)系統(tǒng)設(shè)計(jì)思想決定了一個(gè)系統(tǒng)設(shè)計(jì)的成敗也從某種角度反映了一個(gè)系統(tǒng)的生命力。此系統(tǒng)采用了三層架構(gòu)的設(shè)計(jì)思想做到了功能的獨(dú)立化和模塊化。</p><p> ?。?)JSP是嵌入了Java代碼的HTML,兩種標(biāo)記混雜在一定程序上使開發(fā)更為方便,但也存在混雜的代碼容易出錯(cuò),且出錯(cuò)時(shí)不方便使用開發(fā)工具來設(shè)置斷點(diǎn)排查。三層架構(gòu)設(shè)計(jì)使用Jav

62、aBean專注開發(fā)邏輯層,JSP頁面專注開發(fā)應(yīng)用表達(dá)層,最大限度地提高了開發(fā)效率。</p><p>  同時(shí)系統(tǒng)將涉及復(fù)雜操作的不同功能獨(dú)立出來,作為一個(gè)模塊來設(shè)計(jì),在需要用到特定功能的程序中,僅僅做出調(diào)用即可。這種做法不僅避免了程序代碼中一些不必要的重復(fù)更重要的是使整個(gè)系統(tǒng)層次結(jié)構(gòu)更為清晰,方便了以后系統(tǒng)功能的增加,縮減了開發(fā)成本。</p><p>  (3)此次設(shè)計(jì)采用“用戶界面-業(yè)務(wù)

63、處理層-數(shù)據(jù)存儲層”的三層架構(gòu)設(shè)計(jì),它的工作原理如圖4.1所示。</p><p>  圖4.1 三層結(jié)構(gòu)系統(tǒng)功能圖</p><p>  采用三層架構(gòu)以后,用戶界面層通過統(tǒng)一的接口向業(yè)務(wù)層發(fā)送請求,業(yè)務(wù)層按自己的邏輯規(guī)則將請求處理后進(jìn)行數(shù)據(jù)庫操作,然后將數(shù)據(jù)庫返回的數(shù)據(jù)封裝成類的形式返回給用戶界面層。這樣用戶界面層甚至可以不知道數(shù)據(jù)庫的結(jié)構(gòu),它只要維護(hù)與業(yè)務(wù)層之間的接口即可。這種方式在一定程

64、序上增加了數(shù)據(jù)庫的安全性,同時(shí)也降低了對用戶界面層開發(fā)人員的要求,因?yàn)樗静恍枰M(jìn)行任何數(shù)據(jù)庫操作。</p><p>  4.1.2 軟件設(shè)計(jì)原則</p><p> ?。?)目前,最具代表性的電子商務(wù)有以下幾種形式:B2B企業(yè)之間的業(yè)務(wù),如采購、分銷、服務(wù)等業(yè)務(wù);B2C企業(yè)與消費(fèi)者之間的交易,如網(wǎng)上售購、網(wǎng)上教育、網(wǎng)上其他服務(wù)等;G2C政府與消費(fèi)者或市民之間的業(yè)務(wù),如個(gè)人報(bào)稅、養(yǎng)老金、特

65、殊補(bǔ)貼、各種救濟(jì)金發(fā)放等;C2C消費(fèi)者對消費(fèi)者,如網(wǎng)上交流、網(wǎng)上房屋交易、網(wǎng)上跳蚤市場交易等。</p><p>  本系統(tǒng)研究開發(fā)定位在實(shí)現(xiàn)完善在線拍賣交易模式上,主要是實(shí)現(xiàn)一個(gè)提供在線拍賣交易的平臺,因此既不站在一般的商品供應(yīng)商,也不站在一般的商品采購商的角度,從某一點(diǎn)來說,是基于第三方的拍賣系統(tǒng)。對系統(tǒng)而言,所有的用戶都是顧客(Customer),所以是一個(gè) C2C 模式的電子商務(wù)拍賣交易系統(tǒng)。目前主要面對的

66、顧客是一般的消費(fèi)者(學(xué)生)。因此設(shè)計(jì)出的系統(tǒng)是基于 C2C 的電子商務(wù)模式開展的。</p><p>  (2)反拍賣形式(在本文中等價(jià)于拍賣方式、拍賣的競價(jià)方式)主要有三種:①增價(jià)拍賣。又稱英國式拍賣。這是最常見的一種拍賣方式。拍賣時(shí),由拍賣人宣布預(yù)定的最低價(jià),然后竟買者相繼出價(jià)競購。拍賣行可規(guī)定每次加價(jià)的金額限度。至某一價(jià)格,經(jīng)拍賣人三次提示而無人加價(jià)時(shí),則為最高價(jià),由拍賣人擊槌表示成交。如果貨主與拍賣人事先商

67、定了最低限價(jià),而竟買人的叫價(jià)低于該價(jià),拍賣人可終止拍賣。②減價(jià)拍賣。又稱荷蘭式拍賣,源于世界上最大的荷蘭花卉拍賣市場,由拍賣人先開出最高價(jià)格,然后漸次降低價(jià)格,直到有人表示接受,即達(dá)成交易。這種拍賣方式買主之間無反復(fù)競價(jià)的過程,且買主一旦表示接受,不能再行撤銷。由于減價(jià)拍賣成交迅速,特別適合于數(shù)量大,批次多的鮮活商品。③密封遞價(jià)拍賣。又稱招標(biāo)式拍賣。由買主在規(guī)定的時(shí)間內(nèi)將密封的報(bào)價(jià)單(也稱標(biāo)書)遞交拍賣人,由拍賣人選擇買主。這種拍賣方式

68、,和上述兩種方式相比較,有以下兩個(gè)特點(diǎn):一是除價(jià)格條件外,還可能有其他交易條件需要考慮:二是可以采取公開開標(biāo)方式,也可以采取不公開開標(biāo)方式。拍賣大型設(shè)施或數(shù)量較大的庫存物資或政府罰沒物資時(shí),可能采用這種方式。本系統(tǒng)選擇的拍賣形式是增價(jià)拍賣。</p><p> ?。?)和C/S結(jié)構(gòu)相比,B/S結(jié)構(gòu)受限于網(wǎng)絡(luò)帶寬不利于進(jìn)行大數(shù)據(jù)量的統(tǒng)計(jì)分析,網(wǎng)絡(luò)傳輸存在潛在的安全問題,還有用戶界面不及C/S結(jié)構(gòu)友好等等,但隨著網(wǎng)絡(luò)帶

69、寬和網(wǎng)絡(luò)應(yīng)用的發(fā)展,加上AJAX技術(shù)的流行,使得現(xiàn)在越來越多的MIS系統(tǒng)或基于MIS系統(tǒng)的專業(yè)化應(yīng)用系統(tǒng)都開始傾向于采用B/S結(jié)構(gòu)進(jìn)行設(shè)計(jì),充分利用B/S結(jié)構(gòu)的優(yōu)點(diǎn)。但是,要充分發(fā)揮Web應(yīng)用的內(nèi)在潛力,挖掘應(yīng)用深度和擴(kuò)大適應(yīng)能力,需要采用先進(jìn)的應(yīng)用架構(gòu)和以實(shí)用為根本準(zhǔn)則,使得系統(tǒng)既能滿足業(yè)務(wù)需求,又能適應(yīng)將來發(fā)展需要。因此,在開發(fā)Web應(yīng)用系統(tǒng)時(shí)需要盡量遵循Web應(yīng)用系統(tǒng)設(shè)計(jì)原則。</p><p>  實(shí)用性原

70、則:這是所有應(yīng)用軟件最基本的原則,直接衡量系統(tǒng)的成敗,每一個(gè)提交到用戶手中的系統(tǒng)都應(yīng)該是實(shí)用的,能解決用戶的實(shí)際問題,否則該設(shè)計(jì)就是垃圾。</p><p>  適應(yīng)性和可擴(kuò)展性原則:系統(tǒng)需要具備一定的適應(yīng)能力,特別是Web應(yīng)用要能適應(yīng)于多種運(yùn)行環(huán)境,來應(yīng)對未來變化的環(huán)境和需求。可擴(kuò)展性主要體現(xiàn)在系統(tǒng)易于擴(kuò)展,例如可以采用分布式設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)模塊化設(shè)計(jì),系統(tǒng)架構(gòu)可以根據(jù)網(wǎng)絡(luò)環(huán)境和用戶的訪問量而適時(shí)調(diào)整,從某種程度上

71、說,這也是系統(tǒng)的適應(yīng)性。</p><p>  可靠性原則:系統(tǒng)應(yīng)該是可靠的,在出現(xiàn)異常的時(shí)候應(yīng)該有人性化的異常信息方便用戶理解原因,或采取適當(dāng)?shù)膽?yīng)對方案,在設(shè)計(jì)業(yè)務(wù)量比較大的時(shí)候可采用先進(jìn)的嵌入式技術(shù)來保證業(yè)務(wù)的流暢運(yùn)行。</p><p>  可維護(hù)性和可管理性原則:Web系統(tǒng)應(yīng)該有一個(gè)完善的管理機(jī)制,而可維護(hù)性和可管理性是重要的兩個(gè)指標(biāo)。</p><p>  安全

72、性原則:現(xiàn)在的計(jì)算機(jī)病毒幾乎都來自于網(wǎng)絡(luò),Web應(yīng)用應(yīng)盡量采用五層安全體系,即網(wǎng)絡(luò)層安全、系統(tǒng)安全、用戶安全、用戶程序的安全和數(shù)據(jù)安全。系統(tǒng)必須具備高可靠性,對使用信息進(jìn)行嚴(yán)格的權(quán)限管理。</p><p>  總體規(guī)劃、分層實(shí)施原則:在開始設(shè)計(jì)之前應(yīng)該對Web系統(tǒng)進(jìn)行總體設(shè)計(jì),然后在總體設(shè)計(jì)指導(dǎo)下分步開發(fā)?;贘2EE技術(shù)的應(yīng)用系統(tǒng)是一個(gè)融合了多元信息的集成系統(tǒng),現(xiàn)在一般都采用分層開發(fā):表現(xiàn)層、控制層、業(yè)務(wù)邏輯層

73、、模型層、數(shù)據(jù)訪問層等,在適應(yīng)系統(tǒng)需求的準(zhǔn)則下,設(shè)計(jì)低耦合的分層結(jié)構(gòu),利于團(tuán)隊(duì)成員的分工協(xié)作,提高開發(fā)效率,降低項(xiàng)目風(fēng)險(xiǎn),實(shí)現(xiàn)各個(gè)模塊的功能設(shè)計(jì),完成整個(gè)系統(tǒng)的開發(fā)。</p><p>  (4)軟件設(shè)計(jì)的工作是創(chuàng)造性的技能,對于高效的軟件工程,良好的設(shè)計(jì)是關(guān)鍵,一個(gè)設(shè)計(jì)得好的軟件系統(tǒng)應(yīng)該是可直接實(shí)現(xiàn)和易于維護(hù)、易懂和可靠的。設(shè)計(jì)得不好的系統(tǒng),盡管可以工作,但很可能維護(hù)起來費(fèi)用昂貴、測試?yán)щy和不可靠,因此,設(shè)計(jì)階段

74、是軟件開發(fā)過程中最重要的階段。在將軟件的需求規(guī)約轉(zhuǎn)換為軟件設(shè)計(jì)的過程中,軟件的設(shè)計(jì)人員通常采用抽象與逐步求精、分而治之、模塊化、封裝和信息隱藏、高內(nèi)聚和低耦合、關(guān)注點(diǎn)分離、策略和實(shí)現(xiàn)的分離、接口和實(shí)現(xiàn)分離與模塊獨(dú)立原則。</p><p><b>  4.2 構(gòu)架概述</b></p><p>  本系統(tǒng)嚴(yán)格采用JavaEE的三層結(jié)構(gòu),分為表現(xiàn)出、業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層。

75、三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問等工作放到中間層處理,客戶端不直接與數(shù)據(jù)庫交互,而是通過控制器與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。</p><p>  表現(xiàn)層禁止JSP內(nèi)嵌Java腳本,因而比較簡單,JSP頁面使用Struts2標(biāo)簽來顯示數(shù)據(jù),生成頁面顯示效果。</p><p>  中間層采用Struts2+Spring+Hibernate,為了分離控制層與業(yè)務(wù)邏輯層,又可細(xì)分為:(1)

76、Web層,就是MVC模式里面的“C”(Controller),負(fù)責(zé)表現(xiàn)層與業(yè)務(wù)邏輯層的交互,調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層來顯示。MVC框架采用流行的Struts2。</p><p> ?。?)Service層(業(yè)務(wù)邏輯層),負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯,多DAO對象進(jìn)行正面模式的封裝。</p><p> ?。?)DAO層(數(shù)據(jù)訪問對象層),負(fù)責(zé)與持久化對象交互,封裝了數(shù)據(jù)的增、刪、改、查原

77、子操作。</p><p> ?。?)PO層(持久化對象層),通過實(shí)體/關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,負(fù)責(zé)攔截,然后通過Spring提供的自動裝配功能,定位Spring容器中的業(yè)務(wù)邏輯組件,調(diào)用業(yè)務(wù)邏輯組件方法來處理用戶請求。</p><p>  數(shù)據(jù)服務(wù)層使用Oracle數(shù)據(jù)庫存放數(shù)據(jù)。</p><p>  系統(tǒng)的總體架構(gòu)如圖4.2所示。</p&

78、gt;<p><b>  圖4.2系統(tǒng)架構(gòu)圖</b></p><p>  隨著網(wǎng)絡(luò)應(yīng)用技術(shù)的成熟,針對這一系列的問題,基于多層框架(三層或以上)的B/S(Browser/Server)結(jié)構(gòu)應(yīng)運(yùn)而生。典型情況下,由表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)層各自獨(dú)立組成所謂的“三層架構(gòu)”。其中,數(shù)據(jù)層又叫企業(yè)信息系統(tǒng)層、集成層或者持久化層。本系統(tǒng)所運(yùn)用的正是B/S的結(jié)構(gòu)。</p>&

79、lt;p>  4.3 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)</p><p>  每個(gè)身份都必須經(jīng)過登錄系統(tǒng)才可以得到一定的權(quán)限許可進(jìn)入客戶界面后,用戶可以有信息設(shè)置,競拍,拍賣等服務(wù)可供選擇。貨主也可以添加一些新的貨物到自己的拍賣品中,同時(shí)設(shè)置他們的屬性??蛻粼诓檎业阶约核璧呢浳飼r(shí)可以進(jìn)行拍賣。同時(shí)為了維護(hù)客戶的個(gè)人隱私和可能更替的個(gè)人信息,系統(tǒng)提供給客戶相關(guān)的設(shè)置功能,方便用戶修改信息。具體模塊圖如4.3所示。</

80、p><p><b>  圖4.3用戶模塊圖</b></p><p>  4.4 系統(tǒng)控制流程</p><p>  系統(tǒng)中用戶可以是買家也可以是賣家,買家最核心的功能是參與競拍,賣家最核心的功能是發(fā)布新商品。</p><p> ?。?)參與競拍:客戶查找到自己想要的貨物時(shí),可以對其進(jìn)行競拍。進(jìn)入貨物競拍模塊時(shí),系統(tǒng)將提供給客戶

81、該貨物的詳細(xì)信息,包括貨物來源,低價(jià),開始競拍日期,競拍截至日期,以及之前其他客戶所給出的拍賣價(jià)格。為了防止有客戶惡意拍賣,如每次競價(jià)都只在原來基礎(chǔ)上加很小的金額或者惡意起哄等等。所以系統(tǒng)對不同價(jià)格段的貨物限定不同的最少添加額,以及用戶對同一貨物競拍次數(shù)的限制性。該限制性與客戶信譽(yù)度,客戶總交易次數(shù)以及總交易額相關(guān)。對有惡意行為的客戶將減少其對同一貨物的競拍次數(shù),而對于記錄良好的客戶則適當(dāng)添加其對同一貨物的競拍次數(shù),直到一特定值??蛻粢?/p>

82、可以在該模塊中等到自己正在拍賣的其他貨物信息以及自己已經(jīng)拍買到的貨物及相關(guān)信息。</p><p> ?。?)發(fā)布新商品:客戶有想要拍買掉的東西時(shí),可以放到該模塊中進(jìn)行拍賣。必須填寫貨物名稱,起拍價(jià)等相關(guān)信息。具體流程圖如圖4.4所示。</p><p><b>  圖4.4系統(tǒng)流程圖</b></p><p><b>  4.5系統(tǒng)數(shù)據(jù)設(shè)

83、計(jì)</b></p><p>  (1)用戶表:系統(tǒng)中的用戶實(shí)體、競價(jià)實(shí)體都是存在一對多的關(guān)聯(lián)關(guān)系,甚至和物品之間存在兩種一對多的關(guān)聯(lián)關(guān)系(一種是所屬,一種是贏?。?,但因?yàn)橛脩舳际且坏哪嵌?,所以無需保存外鍵,只需要保存用戶自身屬性即可。如表4.1所示為用戶信息表。</p><p><b>  表4.1用戶信息表</b></p><p>

84、; ?。?)狀態(tài)表:對于系統(tǒng)中的物品狀態(tài)而言,它僅和物品存在一對多關(guān)聯(lián)關(guān)系,這種一對多的關(guān)聯(lián)關(guān)系,可以通過外鍵來實(shí)現(xiàn),而外鍵是保存在多的一端的數(shù)據(jù)表里的。故物品狀態(tài)的數(shù)據(jù)非常簡單,僅需要兩個(gè)字段:狀態(tài)ID和狀態(tài)名。如表4.2所示為物品狀態(tài)表。</p><p><b>  表4.2物品狀態(tài)表</b></p><p> ?。?)種類表:與物品狀態(tài)實(shí)體相似的是,系統(tǒng)中的物品

85、種類也只和物品存在一對多的關(guān)聯(lián)關(guān)系,這種關(guān)聯(lián)關(guān)系也是通過在物品中保存外鍵來進(jìn)行約束的。而物品種類表只需保存物品種類名、種類描述兩個(gè)字段。如表4.3所示為種類表。</p><p><b>  表4.3種類表</b></p><p>  (4)物品表:系統(tǒng)的核心就是拍賣物品,拍賣物品和用戶之間存在兩種多對一得關(guān)聯(lián)關(guān)系,這兩種多對一的關(guān)聯(lián)關(guān)系都需要在物品表中保存外鍵。除此之

86、外,拍賣物品還和競價(jià)記錄之間存在一對多的關(guān)聯(lián)關(guān)系,但這種關(guān)聯(lián)關(guān)系通過在競價(jià)記錄表中保留外鍵實(shí)現(xiàn),故拍賣物品表里只需保存物品屬性,以及兩個(gè)與拍賣用戶關(guān)聯(lián)的外鍵。拍賣物品還和物品種類實(shí)體、物品狀態(tài)之間存在多對一的關(guān)聯(lián)關(guān)系,這種關(guān)聯(lián)關(guān)系都是通過在物品表中增加外鍵來實(shí)現(xiàn)的。如表4.4所示為物品表。</p><p><b>  表4.4物品表</b></p><p> ?。?)

87、競價(jià)記錄表:系統(tǒng)的競價(jià)記錄實(shí)體則和拍賣物品、系統(tǒng)用戶存在多對一的關(guān)聯(lián)關(guān)系,故需要在競價(jià)記錄表中增加兩列外鍵。如表4.5所示為競價(jià)表。</p><p><b>  表4.5競價(jià)表</b></p><p>  4.6 系統(tǒng)功能順序圖</p><p>  4.6.1 用戶登錄</p><p>  用戶是該系統(tǒng)的基本模塊其順序圖

88、如圖4.5所示。</p><p>  圖4.5用戶登錄順序圖</p><p>  4.6.2 發(fā)布新商品</p><p>  發(fā)布商品成功后,還會跳轉(zhuǎn)到商品顯示的頁面所以其順序圖如圖4.6所示。</p><p>  圖4.6 發(fā)布新商品順序圖</p><p>  4.6.3 參與競價(jià)</p><p&

89、gt;  用戶瀏覽到自己想要競價(jià)的商品時(shí),可以對該商品進(jìn)行競價(jià),其順序圖如圖4.7所示。</p><p>  圖4.7 參與競價(jià)順序圖</p><p>  4.7 系統(tǒng)界面設(shè)計(jì)</p><p>  4.7.1 系統(tǒng)首頁設(shè)計(jì)</p><p>  首頁是一個(gè)系統(tǒng)的靈魂,通過對首頁的第一印象就能了解到整個(gè)網(wǎng)站。此拍賣的首頁由上中下三部分組成,頁面的

90、頭部由top.jsp生成,尾部由copyright.jsp生成。這樣做的好處是能夠減少數(shù)據(jù)庫的訪問次數(shù),在大型高并發(fā)高負(fù)載的系統(tǒng)架構(gòu)中能大大提高系統(tǒng)性能,在小系統(tǒng)也能為系統(tǒng)節(jié)約不少的系統(tǒng)開銷。</p><p>  當(dāng)需要訪問那三個(gè)表中的內(nèi)容時(shí),只需要在頁面中用<%@ include file="include/common.inc"%>把對應(yīng)的文件包含進(jìn)來就能達(dá)到同樣的效果。在加快

91、首頁顯示速度的同時(shí)降低了開發(fā)的復(fù)雜程度。如圖4.8所示。</p><p><b>  圖4.8系統(tǒng)首頁</b></p><p>  4.7.2 發(fā)布新商品頁面</p><p>  用戶可以訪問此模塊,但是必須先通過登錄。新發(fā)布的商品有兩種拍賣方式:拍賣和一口價(jià)。對于拍賣方式的商品有一個(gè)開始出價(jià)的起點(diǎn),每次出價(jià)的長幅,和成交價(jià)格。對于一口價(jià)方式的

92、商品只有當(dāng)用戶直接出指定的價(jià)時(shí)才會交易成功。因此在用戶發(fā)布之前我們先提供一個(gè)頁面(item_view.jsp)供用戶選擇拍賣的模式,在這個(gè)頁面中通過model的值來生成對應(yīng)的發(fā)布商品的頁面。</p><p>  在發(fā)布商品是需要用戶填寫商品的名稱、商品的簡介、出售天數(shù)、限制的用戶等級等,同時(shí)還提供了上傳商品圖片的功能。通過此分析,我樣可以用Dreamware設(shè)計(jì)了一個(gè)供用戶填寫資料和向服務(wù)器提交的表單,數(shù)據(jù)最后提

93、交到“item_view.jsp”中。頁面的功能是保存用戶發(fā)布的商品信息,它通過設(shè)置request.setCharacterEncoding(utf-8)響應(yīng)的字符集了utf-8防止中文亂碼的出現(xiàn),如果用戶發(fā)布商品成功將自動返回到用戶操作的首頁,否則出現(xiàn)“商品沒有添加成功!請返回?!钡奶崾?。如圖4.9所示。</p><p>  圖4.9發(fā)布商品界面</p><p>  4.7.3 管理種類

94、頁面</p><p>  用戶訪問此模塊也是必須先通過登錄,新添加物品的種類是在所有顯示種類的頁面中來實(shí)現(xiàn)添加的,由于種類本表身沒有外鍵與其他的數(shù)據(jù)庫表的關(guān)系,所以種類表中只有種類名稱與種類描述二個(gè)要添加的。如圖4.10所示。</p><p>  圖4.10添加種類界面</p><p><b>  第5章 系統(tǒng)實(shí)現(xiàn)</b></p>

95、<p>  本系統(tǒng)采用的Struts2+Spring+Hibernate三個(gè)框架整合搭建的。在開發(fā)過程中利用了Struts2來實(shí)現(xiàn)Web層,這里遵循了經(jīng)典的MVC模式;使用Hibernate來實(shí)現(xiàn)數(shù)據(jù)訪問和持久化層;使用Spring來實(shí)現(xiàn)業(yè)務(wù)層和整合工作。其后就由登錄模塊來舉例,列出各個(gè)框架的實(shí)際實(shí)現(xiàn)。</p><p>  5.1 實(shí)現(xiàn)Hibernate PO</p><p>

96、  Hibernate PO由兩個(gè)部分組成:持久化類和映射文件,其中映射文件負(fù)責(zé)把持久化類映射到數(shù)據(jù)表,并把持久化類的屬性映射到數(shù)據(jù)列。通過這種映射,允許程序以面向?qū)ο蟮姆绞讲僮鱄ibernate的PO,而Hibernate則負(fù)責(zé)把這種操作轉(zhuǎn)化成底層的JDBC數(shù)據(jù)訪問。</p><p>  對于Hibernate PO而言,通常一個(gè)持久化類被映射到一個(gè)數(shù)據(jù)表,而持久化類的屬性則對應(yīng)到數(shù)據(jù)表的數(shù)據(jù)列,因此系統(tǒng)實(shí)體表

97、里包含了多少列,就意味著該實(shí)體對應(yīng)持久化類應(yīng)包含多少個(gè)屬性。</p><p>  下面是系統(tǒng)中物品狀態(tài)PO類的部分代碼:</p><p>  public class AuctionUser</p><p><b>  {</b></p><p>  private Integer id;</p><

98、p>  private String username;</p><p>  private String userpass;</p><p>  private Set<Item> itemsByOwner = new HashSet<Item>();</p><p>  private Set<Item> itemsBy

99、Winer = new HashSet<Item>();</p><p>  private Set<Bid> bids = new HashSet<Bid>();</p><p><b>  //無參數(shù)的構(gòu)造器</b></p><p>  public AuctionUser()</p>&l

100、t;p><b>  {</b></p><p><b>  }</b></p><p>  //初始化全部基本屬性的構(gòu)造器</p><p>  public AuctionUser(Integer id , String username ,</p><p>  String userpass

101、 , String email)</p><p><b>  {</b></p><p>  this.id = id;</p><p>  this.username = username;</p><p>  this.userpass = userpass;</p><p><b>

102、;  }</b></p><p>  省略了屬性的get和set方法</p><p><b>  }</b></p><p>  該P(yáng)O對應(yīng)的映射文件部分代碼如下:</p><p>  <hibernate-mapping package="model"></p>

103、<p>  <class name="AuctionUser" table="auction_user"></p><p>  <!-- 映射標(biāo)識屬性 --></p><p>  <idname="id" type="int" column="user_id

104、"></p><p>  <!-- 指定主鍵生成策略 --></p><p>  <generator class="sequence"></p><p>  <param name="sequence">user_sequence</param></p&g

105、t;<p>  </generator></p><p><b>  </id></b></p><p><b>  </class></b></p><p>  </hibernate-mapping></p><p>  5.2 實(shí)現(xiàn)

106、系統(tǒng)的DAO層</p><p>  JavaEE一向以良好的可擴(kuò)展性吸引了眾多行業(yè)的青睞,而這種良好的可擴(kuò)展性就是建立在嚴(yán)格的分層結(jié)構(gòu)之上的。JavaEE系統(tǒng)將系統(tǒng)的所有持久化層訪問都封裝在系統(tǒng)的DAO層,所有的持久化訪問都通過系統(tǒng)的DAO組件來實(shí)現(xiàn),避免了業(yè)務(wù)邏輯組件與持久化訪問的耦合。DAO模式的實(shí)現(xiàn)應(yīng)用到DAO工廠類、DAO接口、Dao接口的實(shí)現(xiàn)類。</p><p>  5.3 實(shí)現(xiàn)

107、系統(tǒng)Web層</p><p>  Web層通常就是對應(yīng)系統(tǒng)的MVC結(jié)構(gòu)的控制層,本系統(tǒng)使用Struts2作為MVC框架,則控制器層都是由Struts2的Action充當(dāng),這些Action通過調(diào)用系統(tǒng)的業(yè)務(wù)邏輯方法來處理用戶請求,并將結(jié)果放入ValueStack中,在JSP頁面中通過Struts2的標(biāo)簽庫來輸出這些處理結(jié)果。</p><p>  系統(tǒng)登錄是本系統(tǒng)的基本功能,當(dāng)用戶需要使用本系

108、統(tǒng)的功能之前,必須先登錄系統(tǒng)才可以使用本系統(tǒng)的功能。系統(tǒng)的登錄頁面也就是系統(tǒng)的主頁homepage.jsp頁面,當(dāng)用戶在該頁面提交請求時(shí),請求被發(fā)送到Login.action,該Action負(fù)責(zé)處理用戶請求。如果登錄成功,則跳轉(zhuǎn)到member_login.jsp;否則返回loginpage.jsp,讓用戶再次登錄。</p><p>  下面是Action登錄部分的部分代碼:</p><p>

109、;  public class UserAction extends BaseAction{</p><p>  private Integer id;</p><p>  private String username;</p><p>  private String userpass;</p><p>  public void set

110、Username(String username) {</p><p>  this.username = username;</p><p><b>  }</b></p><p>  public void setUserpass(String userpass) {</p><p>  this.userpass

111、= userpass;</p><p><b>  }</b></p><p>  public Integer getId() {</p><p>  return id;</p><p><b>  }</b></p><p>  public void setId(In

112、teger id) {</p><p>  this.id = id;</p><p><b>  }</b></p><p>  public String login()throws Exception{</p><p>  id = mgr.validLogin(username,userpass);</p&

113、gt;<p>  if(id > 0){</p><p>  ActionContext.getContext().getSession().put("id", id);</p><p>  ActionContext.getContext().getSession().put("username", username);<

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論