

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 論文題目 網上拍賣平臺系統(tǒng)的設計與實現</p><p> 姓 名 </p><p> 學 院 </p><p> 專 業(yè) 計算機科學與技術</p><p><b> 指導教師 </b></p><p><b>
2、 備 注</b></p><p> 2010 年 6 月4日</p><p> 網上拍賣平臺系統(tǒng)的設計與實現</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è)設計(論文)任務書</p><p> 網上拍賣平臺系統(tǒng)的設計與實現</p><p&
4、gt;<b> 摘 要</b></p><p> 拍賣是購買和銷售中的一種主要的交易方式,隨著Internet的日益普及和電子商務的發(fā)展,網上拍賣迅速成為一種非常活躍的C2C電子商務模式。因為它充分利用了互連網的特性開創(chuàng)了一個前所未有的巨大市場而被廣泛看好。對商家而言,以拍賣的形式在網上采購、銷售物品,因為不受時間和空間限制、并且可以有效降低運營成本并提高效率而具有極大的吸引力。<
5、;/p><p> 本中詳細介紹了Struts2、Spring、Hibernate三大框架技術,以及它們之間的整合。通過這三個框架建立整個系統(tǒng)結構,采用JavaEE的三層結構,分為表現層、業(yè)務邏輯層和數據服務層。三層體系將業(yè)務規(guī)則、數據訪問等工作放到中間層處理,客戶端不直接與數據庫交互,而是通過控制器與中間層建立連接,再由中間層與數據庫交互。</p><p> 三個框架的整合是通過Sprin
6、g IoC容器的支持,將Struts2的Action、基于Hibernate的DAO組件都納入Spring容器的管理下,從而避免了在Struts2的Action中直接調用Hibernate API。</p><p> 本文結合軟件工程的各個階段,對網上拍賣平臺系統(tǒng)進行分析、設計,然后編碼實現,最終進行測試,完成了系統(tǒng)的核心功能。</p><p> 關鍵詞:拍賣系統(tǒng),框架,三層結構<
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> 任務書I</b></p><p><b> 摘要II</b></p><p> AbstractIII</p><p><b> 第1章 緒論1</b></p><p> 1.1 論文研究主要
16、內容1</p><p> 1.2 國內外現狀2</p><p> 第2章 關鍵技術介紹3</p><p> 2.1 Java語言簡介3</p><p> 2.2 JSP技術4</p><p> 2.3 Struts2技術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 構架概述6</p><p> 3.1.1 功能構架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)任務的可行性分析8</p><p> 3.3.1 技術可行性8</p><p> 3.3.2 系統(tǒng)安全性分析8</p><p> 第4章 系統(tǒng)設計10</p><p> 4.1 設計指導思想和原則10</p><p> 4.1.1 指導思想10</p
19、><p> 4.1.2 軟件設計原則11</p><p> 4.2 構架概述13</p><p> 4.3 系統(tǒng)的功能結構設計14</p><p> 4.4 系統(tǒng)控制流程14</p><p> 4.5系統(tǒng)數據設計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 參與競價19</p><p> 4.7 系統(tǒng)界面設計19</p><p> 4.7.1 系統(tǒng)首頁設計19</p><p> 4.7.2 發(fā)布新商品頁面20</
21、p><p> 4.7.3 管理種類頁面21</p><p> 第5章 系統(tǒng)實現23</p><p> 5.1 實現Hibernate PO23</p><p> 5.2 實現系統(tǒng)的DAO層24</p><p> 5.3 實現系統(tǒng)Web層24</p><p> 5.4 實現系統(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 預期結果26</p><p> 6.2.2測試方案27</p><p><b> 第7章 結論
23、29</b></p><p><b> 參考文獻30</b></p><p><b> 致謝31</b></p><p><b> 第1章 緒論</b></p><p> 電子商務(electronic commerce)是計算機網絡所帶來的又一次革命
24、,它的發(fā)展將形成新的交換體制,產生新的市場規(guī)則,沖破時間與空間的限制,加快全球市場一體化的進程,電子商務還將有力地推動信息和信息服務業(yè)的發(fā)展。它不僅涉及電子技術和商業(yè)交易本身,而且涉及到諸如金融、稅務、教育等其他社會層面,是一個與社會大環(huán)境息息相關并且具有完整結構體系的系統(tǒng)工程。電子商務的發(fā)展為網上拍賣帶來了勃勃生機,使得網上拍賣迅速成為一種非?;钴S的電子商務模式。</p><p> 網上拍賣系統(tǒng)是一個C2C模
25、式下的電子商務系統(tǒng),提供了一個網上拍賣的市場給買方和賣方,企業(yè)可以以拍賣的方式出售自己的產品。擁有商品展示、拍賣競投、用戶注冊、網上支付、信息反饋和新商品發(fā)布幾項基本功能。使得網上的用戶可以安全、便捷的使用該系統(tǒng)。企業(yè)可以通過該系統(tǒng)觀察到消費者、客戶之間的買賣情況,從中獲取最直接的市場消息,掌握最詳細的市場動態(tài)。它與傳統(tǒng)的拍賣模式相比具有以下五個方面的主要優(yōu)勢。</p><p> (1)降低了采購價格,借助ED
26、I企業(yè)能夠完成自動的例行采購,可減少采購過程中人力、印刷和郵寄的費用。</p><p> ?。?)采用“零庫存”管理方式,可大大縮短資金的周轉周期。</p><p> ?。?)互聯網商務更有利于開拓全球市場。</p><p> ?。?)實現24小時不問斷營業(yè),有利于提高營業(yè)額。</p><p> ?。?)可使用多媒體手段進行促銷活動,可依靠客
27、戶數據庫提供全新個人服務。</p><p> 隨著通信技術和網絡技術的飛速發(fā)展,網上拍賣的開展勢在必行。應該說網上拍賣發(fā)展的前景十分廣闊,作用越來越大。文中論述了構建網上拍賣系統(tǒng)的技術手段及其實現的關鍵方法。</p><p> 1.1 論文研究主要內容</p><p> 本次畢業(yè)設計完成的系統(tǒng)主要實現的功能包括用戶注冊、發(fā)布商品、競拍商品、查看商品的詳細信息以
28、及通過Web方式對系統(tǒng)的數據進行管理。網上拍賣平臺是為用戶與用戶之間的交易競價而搭建的平臺,負責用戶通過這個系統(tǒng)自動的在異地完成交易而毋須人工來操作。以高內聚低耦合的系統(tǒng)結構,靈活處理新增功能服務,主要表現在面向接口編程等軟件架構宗旨。從而使得該系統(tǒng)在實際的應用環(huán)境中有足夠的生存能力。</p><p> 軟件結構的好壞直接影響的軟件的質量,所以運用Struts2、Spring、Hibernate這三個框架來建立
29、軟件的框架,嚴格按照JavaEE的MVC三層體系去實現。</p><p><b> 1.2 國內外現狀</b></p><p> 說起拍賣網站就一定少不了eBay,這家美國網站締造了一個美妙的網絡發(fā)家致富的奇跡。幾年前eBay出現的時候,它還只是個小不點,但嶄新的商業(yè)思想卻使eBay在短時間內成為網絡巨人。它帶動起網絡時代新的行為方式,為買賣雙方在網上提供交易的場
30、所,供應一些別人看不上眼的零碎物品,例如二手電腦,舊書等等。這個點子引出了一顆閃耀的新星,如今的eBay已經成為拍賣網站中首屈一指的名牌。</p><p> 本來市場活躍并非不好,只是目前拍賣網站的涌現還只能為網絡經濟帶來嶄新的概念和廣闊的發(fā)展空間,特別是在國內大陸地區(qū),目前還沒有以拍賣為電子商務中心的網站。除去沒有意義的新聞炒作,大多數網站對網友的影響尚乏善可陳。而現在他們面對的將是“誰會買”和“怎樣賣”兩大
31、難題。</p><p> 對于“網上拍賣”系統(tǒng),要完成的主要是網上的拍賣流程,要求對拍賣信息的發(fā)布、查詢都能在線進行,而且,對于用戶滿意的拍賣品,要求能夠在線出價。因為拍賣是一種公開的投標方式,所以競價人在競價時也應該可以查看歷史的競價記錄。對拍賣商來說,他應該可以隨時掌握拍賣品的拍賣情況,所以也應該為拍賣商提供一個查看競價情況的空間。對某一拍賣品,它的拍賣狀態(tài)應該是可以設置的。</p><
32、p> 第2章 關鍵技術介紹</p><p> 本系統(tǒng)的IoC容器使用Spring框架,Spring容器負責管理本系統(tǒng)中所有組件,是系統(tǒng)最大的工廠。數據的持久化使用Hibernate完成,表現層的MVC框架使用Struts2,這些框架都是目前最流行的輕量級JavaEE框架。</p><p> 2.1 Java語言簡介</p><p> Java是一種語法
33、簡潔、清晰的語言,它的程序運行需要一個解釋器,也就是所謂的“虛擬機”。虛擬機以某種高速算法解釋執(zhí)行Java的面向對象語言代碼。Java是基于WWW開發(fā)的,主要分為客戶端和服務器端兩大類型。Java客戶端軟件包括Applet應用小程序,傳統(tǒng)的客戶端圖形界面程序、各類加點設備的客戶端應用程序。服務器端軟件則包括利用Socket套接字或使用封裝了Socket功能函數的Java高級網絡流類編寫的Server并發(fā)程序、Servlet程序、JSP網
34、頁程序和服務器端的EJB組件等。</p><p> 根據Sun的Java語言白皮書中的歸納和總結,簡單地說,Java語言有如下特點:</p><p> ?。?)簡單(Simple)。程序較小,編寫容易,能夠在小型機器上執(zhí)行,基本的解釋器約為40KB,若加上基本的程序庫,約為215KB。</p><p> ?。?)面向對象(Object-Oriented)。一個對象
35、的狀態(tài)只由對象自己可知的變量定義。Java把這些變量稱為數據域或者成員變量。數據域對對象來說是私有的,除非顯示地使用關鍵字來定義它們的作用域,使它們對其他類可見。一個對象的行為是由它上面的操作定義的。在Java中,這些操作被叫做方法。方法可以改變一個對象的狀態(tài),創(chuàng)建新對象,實現實用的功能等。</p><p> (3)分布式(Distributed)。Java有一個龐大的程序庫,且容易地與HTTP和FTP等TCP
36、/IP通信協(xié)議相配合。</p><p> ?。?)健壯性(Robust)。有Java所編寫的程序,在多數情況下執(zhí)行穩(wěn)定。Java與C/C++最大不同是Java通過一個指針模型來排除內存被覆蓋和毀損數據的可能性。</p><p> (5)安全性(Secure)。Java是被設計用于網絡及分布式的環(huán)境中,Java擁有數個階層的互鎖保護措施,能有效地防止病毒的侵入和破壞行為的發(fā)生。</p
37、><p> ?。?)結構中立(Architecture Neutral)。Java的編譯器產生一種結構中立的目標文件格式,這使得編譯碼得以在很多種處理器中執(zhí)行。</p><p> ?。?)解釋執(zhí)行(Interpreted)。Java解釋器能直接在任何機器上執(zhí)行Java位元碼,這對于縮短程序的開發(fā)過程,有很大的幫助。</p><p> (8)高性能(High Perfo
38、rmance)。Java位元碼可迅速地能被轉換成機器碼,從位元碼轉換到機器碼的性能與C和C++幾乎沒有分別。</p><p> ?。?)多線程的(Multi threaded)。Java語言具有多線程的功能,這對于交互回應能力及即時執(zhí)行行為是有幫助的。</p><p> (10)動態(tài)性(Dynamic)。Java比C或C++語言更具有動態(tài)性,更能適應時刻在變的環(huán)境,Java不會因程序庫的
39、更新而必須重新編譯程序。</p><p><b> 2.2 JSP技術</b></p><p> JSP技術可以以一種簡捷而快速的方法生成Web頁面。使用JSP技術的Web頁面可以很容易地顯示動態(tài)內容。JSP技術的設計目的是使得構造基于Web的應用程序更加容易和快捷,而這些應用程序能夠與各種Web服務器、應用服務器、瀏覽器和開發(fā)工具共同工作。</p>
40、<p> 本系統(tǒng)使用JSP技術作為表現層技術,它負責收集用戶的請求數據,并將用戶請求數據提交到指定的控制器。當系統(tǒng)處理完用戶請求后,JSP頁面還負責將處理結果呈現給用戶。本系統(tǒng)中的JSP頁面禁用可Java腳本,保證JSP頁面只能作為系統(tǒng)表現層使用,避免將業(yè)務邏輯混雜在表現層中。通過使用Struts2的頁面標簽,可以保證JSP頁面中不再出現任何小腳本,從而保證了JSP頁面只有變現邏輯。</p><p>
41、; 2.3 Struts2技術</p><p> 用戶的所有請求都由Struts2的FilterDispatcher過濾,通過這種方式,將系統(tǒng)的所有請求都轉入Struts2系統(tǒng)內,從而保證所有請求都交給Struts2的Action處理。本系統(tǒng)采用了Struts2和Spring的整合策略,當Struts2和Spring整合時,使用了Struts2提供的Spring插件,該插件將Struts2的objectFac
42、tory設置成Spring,這意味著Struts2的Action實例也是由Spring容器負責生成,讓后通過制定Spring的自動裝配策略,從而讓struts2的Action定位Spring容器中的業(yè)務邏輯組件。</p><p> 因為Struts2的objectFactory直接改為了Spring容器,從而讓Struts2的Action直接由容器來產生,進而讓用戶請求進入Spring容器內部,一旦進入了Spr
43、ing IoC容器的內部,Ioc容器就負責管理所有的業(yè)務邏輯組件、DAO組件,從而以這種方式將系統(tǒng)中所有組件串接起來。</p><p> 2.4 Spring框架</p><p> 借助于Spring IoC容器的支持,容器中各組件以松耦合的方式組合在一起,組件與組件之間的依賴通過Spring的依賴注入進行管理。系統(tǒng)中的各組件之間面向接口編程,降低了系統(tǒng)異構的代價。</p>
44、<p> DAO對象的創(chuàng)建實際上是使用了Spring的HibernateDaoSupport作為基類,使得繼承HibernateDaoSupport的DAO對象實現更加簡單,程序開發(fā)人員無需管理Hibernate的SessionFactory、Session等對象。程序開發(fā)者通過Spring提供的HibernateTemplate完成數據庫操作。</p><p> 事務采用Spring的聲明式事
45、務框架。通過聲明事務,無需將事務策略以硬編碼的方式與代碼耦合在一起,而是放在配置文件中聲明。業(yè)務邏輯組件可以更加專注于業(yè)務的實現,從而簡化開發(fā)。同時,聲明事務降低了不同事務策略的切換代價。</p><p> 2.5 Hibernate框架</p><p> Hibernate作為O/R Mapping框架使用,Hibernate提供的O/R Mapping功能簡化了數據庫訪問,Hibe
46、rnate在JDBC層上提供了更好的封裝,以面向對象的方式操作數據庫,更加符合面向對象程序設計的思路。</p><p> 然而Hibernate的內置標識生成器根據數據庫的不同而選用不同的方法,在MySQL中把ID設為auto_increment類型,MS SQL Server把ID設為identity類型,數據庫就會自動為主鍵賦值,但是本程序中使用的是Oracle數據庫,因此在Oracle中是從序列(Sequ
47、ence)中獲取自動增長的標識符。</p><p> Hibernate以優(yōu)雅、靈活的方法操作數據庫,無需開發(fā)者編寫繁瑣的SQL語句,執(zhí)行冗長的多表查詢,而通過對象與對象之間的關聯操作數據庫。Hibernate為底層的DAO對象的實現提供了支持。</p><p><b> 第3章 系統(tǒng)分析</b></p><p><b> 3.
48、1 構架概述</b></p><p> 3.1.1 功能構架</p><p> 根據需求調研結果確定本系統(tǒng)主要包括以下功能模塊,如圖3.1所示。</p><p> 圖3.1 系統(tǒng)體系結構</p><p> 3.1.2 模塊需求描述</p><p><b> (1)用戶管理</b&g
49、t;</p><p> 客戶第一次登錄需要填寫注冊信息,由于拍賣行業(yè)的特殊性故此每位客戶必須填寫真實信息。對于以注冊用戶只需登錄即可進入系統(tǒng)??蛻粼谙到y(tǒng)中有兩個角色。一種是買家,另外一種是賣家。每個客戶可以是其中一種角色,也可以是兩種。如圖3.2所示。</p><p> 用管理分為用戶注冊與用戶登錄,用戶注冊用例起始于用戶想要注冊成為會員,當用戶點擊用戶注冊按鈕時,系統(tǒng)將自動跳轉到用戶
50、注冊頁,用戶按要求填寫完注冊信息點擊提交按鈕,系統(tǒng)則成功響應,完成注冊。</p><p> 用戶登錄用例起始于用戶想要登錄該系統(tǒng),當用戶正確輸入用戶名與密碼后,點擊登錄按鈕,系統(tǒng)響應用戶的請求,將用戶的Session記錄,同時提示成功登錄。</p><p> 圖3.2 用戶管理用例圖</p><p><b> ?。?)發(fā)布新商品</b>&l
51、t;/p><p> 當用戶正常登錄系統(tǒng)后,就可以添加自己的拍賣物品了,添加拍賣物品是本系統(tǒng)中需要處理表單域比較多的場景。而且添加物品時,應該能讓用戶選擇所添加物品所屬的種類,這要求進入添加物品表單頁之前,先使用一個取得所有物品種類。如圖3.3所示。</p><p> 發(fā)布新商品用例起始于,用戶以賣家的身份想要添加拍賣的物品,當用戶按規(guī)定填寫好要發(fā)布商品的信息后,點擊發(fā)布新商品按鈕,系統(tǒng)則成
52、功響應用戶的請求,將其信息正確的添加到后臺數據庫。</p><p> 圖3.3 發(fā)布新商品用例圖</p><p><b> ?。?)用戶競價</b></p><p> 處理用戶競價是系統(tǒng)中比較復雜的一個模塊,涉及到用戶表、物品表,如果用戶需要對指定物品進行競價,必須先進入查看物品詳細信息的頁面,然后由bid.action進行處理,完成對物品
53、表的狀態(tài)、最后競價人等信息的更新。如圖3.4所示。</p><p> 競價管理用例是用戶以買家的身份來實現的一個模塊,該用例起始于用戶想要在某個商品完成對該商品的出價。當用戶填寫高于當前物品競價的最高價格時,點擊競價按鈕,系統(tǒng)正確的響應該用戶的請求,并在數據庫中修改物品類的相應元素。</p><p> 圖3.4 用戶參與競價用例圖</p><p><b&g
54、t; ?。?)其它業(yè)務功能</b></p><p> 其它業(yè)務功能見表3.1。</p><p> 表3.1 其它業(yè)務功能</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)任務的可行性分析</p><p> 3.3.1 技術可行性</p><p> 本系統(tǒng)采用Struts2+Hibernate+Spring三個框架整合,采用Java作為開發(fā)語言,數據庫采用Oracle,前臺的頁面使用JSP。這些軟件和技術都已經非常的成熟,軟件的波動性很小
56、。</p><p> ?。?)典型的J2EE三層結構,分為表現層、中間層(業(yè)務邏輯層)和數據服務層。三層體系將業(yè)務規(guī)則、數據訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數據庫交互,而是通過組件與中間層建立連接,再由中間層與數據庫交互。</p><p> 一個良好的框架可以讓開發(fā)人員減輕重新建立解決復雜問題方案的負擔和精力;它可以被擴展以進行內部的定制化;并且有強大的用戶社區(qū)來支持
57、它。框架通常能很好的解決一個問題。然而,你的應用是分層的,可能每一個層都需要各自的框架,然而這三個框架正是開發(fā)人員所需要的。</p><p> ?。?)表現層是傳統(tǒng)的JSP技術,自1999年問世以來,經過多年的發(fā)展,其廣泛的應用和穩(wěn)定的表現,為其作為表現層技術打下了堅實的基礎。JSP技術可以以一種簡捷而快速的方法生成Web頁面。使用JSP技術的Web頁面可以很容易地顯示動態(tài)內容。JSP技術的設計目的是使得構造基于
58、Web的應用程序更加容易和快捷,而這些應用程序能夠與各種Web服務器、應用服務器、瀏覽器和開發(fā)工具共同工作。</p><p> (3)Oracle的關系數據庫是世界第一個支持SQL語言的數據庫,經歷過20多年的發(fā)展,由于其優(yōu)越的安全性、完整性、穩(wěn)定性和支持多種操作系統(tǒng)、多種硬件平臺等特點,得到了廣泛的應用。加上Hibernate對Oracle的支持,使得該系統(tǒng)的有更足夠的技術支持。</p><
59、;p> 3.3.2 系統(tǒng)安全性分析</p><p> (1)本系統(tǒng)除了瀏覽商品信息外,進行其他的操作必須要經過登錄模塊,從數據庫中驗證是否存在該用戶的信息。用戶每次發(fā)出請求都是經過Struts2的攔截器的過濾,攔截器攔截用戶Session,判斷Session中是否保存了當前用戶ID,如果保存了用戶ID,即該用戶已經登錄,否則沒有登陸。</p><p> ?。?)添加服務器端校驗使
60、得侵入者不容易侵入該系統(tǒng),很多惡意的侵入者,并不是通過瀏覽器來破解某個應用,他會采用更底層的Socket通信進行侵入。然而通過校驗文件可以提高該系統(tǒng)的安全性。校驗文件時一個XML配置文件,該文件指定了Action的屬性必須滿足怎樣的規(guī)則。</p><p><b> 第4章 系統(tǒng)設計</b></p><p> 4.1 設計指導思想和原則</p><
61、;p> 4.1.1 指導思想</p><p> ?。?)系統(tǒng)設計思想決定了一個系統(tǒng)設計的成敗也從某種角度反映了一個系統(tǒng)的生命力。此系統(tǒng)采用了三層架構的設計思想做到了功能的獨立化和模塊化。</p><p> ?。?)JSP是嵌入了Java代碼的HTML,兩種標記混雜在一定程序上使開發(fā)更為方便,但也存在混雜的代碼容易出錯,且出錯時不方便使用開發(fā)工具來設置斷點排查。三層架構設計使用Jav
62、aBean專注開發(fā)邏輯層,JSP頁面專注開發(fā)應用表達層,最大限度地提高了開發(fā)效率。</p><p> 同時系統(tǒng)將涉及復雜操作的不同功能獨立出來,作為一個模塊來設計,在需要用到特定功能的程序中,僅僅做出調用即可。這種做法不僅避免了程序代碼中一些不必要的重復更重要的是使整個系統(tǒng)層次結構更為清晰,方便了以后系統(tǒng)功能的增加,縮減了開發(fā)成本。</p><p> ?。?)此次設計采用“用戶界面-業(yè)務
63、處理層-數據存儲層”的三層架構設計,它的工作原理如圖4.1所示。</p><p> 圖4.1 三層結構系統(tǒng)功能圖</p><p> 采用三層架構以后,用戶界面層通過統(tǒng)一的接口向業(yè)務層發(fā)送請求,業(yè)務層按自己的邏輯規(guī)則將請求處理后進行數據庫操作,然后將數據庫返回的數據封裝成類的形式返回給用戶界面層。這樣用戶界面層甚至可以不知道數據庫的結構,它只要維護與業(yè)務層之間的接口即可。這種方式在一定程
64、序上增加了數據庫的安全性,同時也降低了對用戶界面層開發(fā)人員的要求,因為它根本不需要進行任何數據庫操作。</p><p> 4.1.2 軟件設計原則</p><p> ?。?)目前,最具代表性的電子商務有以下幾種形式:B2B企業(yè)之間的業(yè)務,如采購、分銷、服務等業(yè)務;B2C企業(yè)與消費者之間的交易,如網上售購、網上教育、網上其他服務等;G2C政府與消費者或市民之間的業(yè)務,如個人報稅、養(yǎng)老金、特
65、殊補貼、各種救濟金發(fā)放等;C2C消費者對消費者,如網上交流、網上房屋交易、網上跳蚤市場交易等。</p><p> 本系統(tǒng)研究開發(fā)定位在實現完善在線拍賣交易模式上,主要是實現一個提供在線拍賣交易的平臺,因此既不站在一般的商品供應商,也不站在一般的商品采購商的角度,從某一點來說,是基于第三方的拍賣系統(tǒng)。對系統(tǒng)而言,所有的用戶都是顧客(Customer),所以是一個 C2C 模式的電子商務拍賣交易系統(tǒng)。目前主要面對的
66、顧客是一般的消費者(學生)。因此設計出的系統(tǒng)是基于 C2C 的電子商務模式開展的。</p><p> ?。?)反拍賣形式(在本文中等價于拍賣方式、拍賣的競價方式)主要有三種:①增價拍賣。又稱英國式拍賣。這是最常見的一種拍賣方式。拍賣時,由拍賣人宣布預定的最低價,然后竟買者相繼出價競購。拍賣行可規(guī)定每次加價的金額限度。至某一價格,經拍賣人三次提示而無人加價時,則為最高價,由拍賣人擊槌表示成交。如果貨主與拍賣人事先商
67、定了最低限價,而竟買人的叫價低于該價,拍賣人可終止拍賣。②減價拍賣。又稱荷蘭式拍賣,源于世界上最大的荷蘭花卉拍賣市場,由拍賣人先開出最高價格,然后漸次降低價格,直到有人表示接受,即達成交易。這種拍賣方式買主之間無反復競價的過程,且買主一旦表示接受,不能再行撤銷。由于減價拍賣成交迅速,特別適合于數量大,批次多的鮮活商品。③密封遞價拍賣。又稱招標式拍賣。由買主在規(guī)定的時間內將密封的報價單(也稱標書)遞交拍賣人,由拍賣人選擇買主。這種拍賣方式
68、,和上述兩種方式相比較,有以下兩個特點:一是除價格條件外,還可能有其他交易條件需要考慮:二是可以采取公開開標方式,也可以采取不公開開標方式。拍賣大型設施或數量較大的庫存物資或政府罰沒物資時,可能采用這種方式。本系統(tǒng)選擇的拍賣形式是增價拍賣。</p><p> ?。?)和C/S結構相比,B/S結構受限于網絡帶寬不利于進行大數據量的統(tǒng)計分析,網絡傳輸存在潛在的安全問題,還有用戶界面不及C/S結構友好等等,但隨著網絡帶
69、寬和網絡應用的發(fā)展,加上AJAX技術的流行,使得現在越來越多的MIS系統(tǒng)或基于MIS系統(tǒng)的專業(yè)化應用系統(tǒng)都開始傾向于采用B/S結構進行設計,充分利用B/S結構的優(yōu)點。但是,要充分發(fā)揮Web應用的內在潛力,挖掘應用深度和擴大適應能力,需要采用先進的應用架構和以實用為根本準則,使得系統(tǒng)既能滿足業(yè)務需求,又能適應將來發(fā)展需要。因此,在開發(fā)Web應用系統(tǒng)時需要盡量遵循Web應用系統(tǒng)設計原則。</p><p> 實用性原
70、則:這是所有應用軟件最基本的原則,直接衡量系統(tǒng)的成敗,每一個提交到用戶手中的系統(tǒng)都應該是實用的,能解決用戶的實際問題,否則該設計就是垃圾。</p><p> 適應性和可擴展性原則:系統(tǒng)需要具備一定的適應能力,特別是Web應用要能適應于多種運行環(huán)境,來應對未來變化的環(huán)境和需求??蓴U展性主要體現在系統(tǒng)易于擴展,例如可以采用分布式設計、系統(tǒng)結構模塊化設計,系統(tǒng)架構可以根據網絡環(huán)境和用戶的訪問量而適時調整,從某種程度上
71、說,這也是系統(tǒng)的適應性。</p><p> 可靠性原則:系統(tǒng)應該是可靠的,在出現異常的時候應該有人性化的異常信息方便用戶理解原因,或采取適當的應對方案,在設計業(yè)務量比較大的時候可采用先進的嵌入式技術來保證業(yè)務的流暢運行。</p><p> 可維護性和可管理性原則:Web系統(tǒng)應該有一個完善的管理機制,而可維護性和可管理性是重要的兩個指標。</p><p> 安全
72、性原則:現在的計算機病毒幾乎都來自于網絡,Web應用應盡量采用五層安全體系,即網絡層安全、系統(tǒng)安全、用戶安全、用戶程序的安全和數據安全。系統(tǒng)必須具備高可靠性,對使用信息進行嚴格的權限管理。</p><p> 總體規(guī)劃、分層實施原則:在開始設計之前應該對Web系統(tǒng)進行總體設計,然后在總體設計指導下分步開發(fā)?;贘2EE技術的應用系統(tǒng)是一個融合了多元信息的集成系統(tǒng),現在一般都采用分層開發(fā):表現層、控制層、業(yè)務邏輯層
73、、模型層、數據訪問層等,在適應系統(tǒng)需求的準則下,設計低耦合的分層結構,利于團隊成員的分工協(xié)作,提高開發(fā)效率,降低項目風險,實現各個模塊的功能設計,完成整個系統(tǒng)的開發(fā)。</p><p> ?。?)軟件設計的工作是創(chuàng)造性的技能,對于高效的軟件工程,良好的設計是關鍵,一個設計得好的軟件系統(tǒng)應該是可直接實現和易于維護、易懂和可靠的。設計得不好的系統(tǒng),盡管可以工作,但很可能維護起來費用昂貴、測試困難和不可靠,因此,設計階段
74、是軟件開發(fā)過程中最重要的階段。在將軟件的需求規(guī)約轉換為軟件設計的過程中,軟件的設計人員通常采用抽象與逐步求精、分而治之、模塊化、封裝和信息隱藏、高內聚和低耦合、關注點分離、策略和實現的分離、接口和實現分離與模塊獨立原則。</p><p><b> 4.2 構架概述</b></p><p> 本系統(tǒng)嚴格采用JavaEE的三層結構,分為表現出、業(yè)務邏輯層和數據服務層。
75、三層體系將業(yè)務規(guī)則、數據訪問等工作放到中間層處理,客戶端不直接與數據庫交互,而是通過控制器與中間層建立連接,再由中間層與數據庫交互。</p><p> 表現層禁止JSP內嵌Java腳本,因而比較簡單,JSP頁面使用Struts2標簽來顯示數據,生成頁面顯示效果。</p><p> 中間層采用Struts2+Spring+Hibernate,為了分離控制層與業(yè)務邏輯層,又可細分為:(1)
76、Web層,就是MVC模式里面的“C”(Controller),負責表現層與業(yè)務邏輯層的交互,調用業(yè)務邏輯層,并將業(yè)務數據返回給表現層來顯示。MVC框架采用流行的Struts2。</p><p> ?。?)Service層(業(yè)務邏輯層),負責實現業(yè)務邏輯,多DAO對象進行正面模式的封裝。</p><p> ?。?)DAO層(數據訪問對象層),負責與持久化對象交互,封裝了數據的增、刪、改、查原
77、子操作。</p><p> ?。?)PO層(持久化對象層),通過實體/關系映射工具將關系型數據庫的數據映射成對象,負責攔截,然后通過Spring提供的自動裝配功能,定位Spring容器中的業(yè)務邏輯組件,調用業(yè)務邏輯組件方法來處理用戶請求。</p><p> 數據服務層使用Oracle數據庫存放數據。</p><p> 系統(tǒng)的總體架構如圖4.2所示。</p&
78、gt;<p><b> 圖4.2系統(tǒng)架構圖</b></p><p> 隨著網絡應用技術的成熟,針對這一系列的問題,基于多層框架(三層或以上)的B/S(Browser/Server)結構應運而生。典型情況下,由表示層、業(yè)務邏輯層和數據層各自獨立組成所謂的“三層架構”。其中,數據層又叫企業(yè)信息系統(tǒng)層、集成層或者持久化層。本系統(tǒng)所運用的正是B/S的結構。</p>&
79、lt;p> 4.3 系統(tǒng)的功能結構設計</p><p> 每個身份都必須經過登錄系統(tǒng)才可以得到一定的權限許可進入客戶界面后,用戶可以有信息設置,競拍,拍賣等服務可供選擇。貨主也可以添加一些新的貨物到自己的拍賣品中,同時設置他們的屬性??蛻粼诓檎业阶约核璧呢浳飼r可以進行拍賣。同時為了維護客戶的個人隱私和可能更替的個人信息,系統(tǒng)提供給客戶相關的設置功能,方便用戶修改信息。具體模塊圖如4.3所示。</
80、p><p><b> 圖4.3用戶模塊圖</b></p><p> 4.4 系統(tǒng)控制流程</p><p> 系統(tǒng)中用戶可以是買家也可以是賣家,買家最核心的功能是參與競拍,賣家最核心的功能是發(fā)布新商品。</p><p> ?。?)參與競拍:客戶查找到自己想要的貨物時,可以對其進行競拍。進入貨物競拍模塊時,系統(tǒng)將提供給客戶
81、該貨物的詳細信息,包括貨物來源,低價,開始競拍日期,競拍截至日期,以及之前其他客戶所給出的拍賣價格。為了防止有客戶惡意拍賣,如每次競價都只在原來基礎上加很小的金額或者惡意起哄等等。所以系統(tǒng)對不同價格段的貨物限定不同的最少添加額,以及用戶對同一貨物競拍次數的限制性。該限制性與客戶信譽度,客戶總交易次數以及總交易額相關。對有惡意行為的客戶將減少其對同一貨物的競拍次數,而對于記錄良好的客戶則適當添加其對同一貨物的競拍次數,直到一特定值??蛻粢?/p>
82、可以在該模塊中等到自己正在拍賣的其他貨物信息以及自己已經拍買到的貨物及相關信息。</p><p> (2)發(fā)布新商品:客戶有想要拍買掉的東西時,可以放到該模塊中進行拍賣。必須填寫貨物名稱,起拍價等相關信息。具體流程圖如圖4.4所示。</p><p><b> 圖4.4系統(tǒng)流程圖</b></p><p><b> 4.5系統(tǒng)數據設
83、計</b></p><p> ?。?)用戶表:系統(tǒng)中的用戶實體、競價實體都是存在一對多的關聯關系,甚至和物品之間存在兩種一對多的關聯關系(一種是所屬,一種是贏?。?,但因為用戶都是一的那段,所以無需保存外鍵,只需要保存用戶自身屬性即可。如表4.1所示為用戶信息表。</p><p><b> 表4.1用戶信息表</b></p><p>
84、; (2)狀態(tài)表:對于系統(tǒng)中的物品狀態(tài)而言,它僅和物品存在一對多關聯關系,這種一對多的關聯關系,可以通過外鍵來實現,而外鍵是保存在多的一端的數據表里的。故物品狀態(tài)的數據非常簡單,僅需要兩個字段:狀態(tài)ID和狀態(tài)名。如表4.2所示為物品狀態(tài)表。</p><p><b> 表4.2物品狀態(tài)表</b></p><p> ?。?)種類表:與物品狀態(tài)實體相似的是,系統(tǒng)中的物品
85、種類也只和物品存在一對多的關聯關系,這種關聯關系也是通過在物品中保存外鍵來進行約束的。而物品種類表只需保存物品種類名、種類描述兩個字段。如表4.3所示為種類表。</p><p><b> 表4.3種類表</b></p><p> ?。?)物品表:系統(tǒng)的核心就是拍賣物品,拍賣物品和用戶之間存在兩種多對一得關聯關系,這兩種多對一的關聯關系都需要在物品表中保存外鍵。除此之
86、外,拍賣物品還和競價記錄之間存在一對多的關聯關系,但這種關聯關系通過在競價記錄表中保留外鍵實現,故拍賣物品表里只需保存物品屬性,以及兩個與拍賣用戶關聯的外鍵。拍賣物品還和物品種類實體、物品狀態(tài)之間存在多對一的關聯關系,這種關聯關系都是通過在物品表中增加外鍵來實現的。如表4.4所示為物品表。</p><p><b> 表4.4物品表</b></p><p> (5)
87、競價記錄表:系統(tǒng)的競價記錄實體則和拍賣物品、系統(tǒng)用戶存在多對一的關聯關系,故需要在競價記錄表中增加兩列外鍵。如表4.5所示為競價表。</p><p><b> 表4.5競價表</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ā)布商品成功后,還會跳轉到商品顯示的頁面所以其順序圖如圖4.6所示。</p><p> 圖4.6 發(fā)布新商品順序圖</p><p> 4.6.3 參與競價</p><p&
89、gt; 用戶瀏覽到自己想要競價的商品時,可以對該商品進行競價,其順序圖如圖4.7所示。</p><p> 圖4.7 參與競價順序圖</p><p> 4.7 系統(tǒng)界面設計</p><p> 4.7.1 系統(tǒng)首頁設計</p><p> 首頁是一個系統(tǒng)的靈魂,通過對首頁的第一印象就能了解到整個網站。此拍賣的首頁由上中下三部分組成,頁面的
90、頭部由top.jsp生成,尾部由copyright.jsp生成。這樣做的好處是能夠減少數據庫的訪問次數,在大型高并發(fā)高負載的系統(tǒng)架構中能大大提高系統(tǒng)性能,在小系統(tǒng)也能為系統(tǒng)節(jié)約不少的系統(tǒng)開銷。</p><p> 當需要訪問那三個表中的內容時,只需要在頁面中用<%@ include file="include/common.inc"%>把對應的文件包含進來就能達到同樣的效果。在加快
91、首頁顯示速度的同時降低了開發(fā)的復雜程度。如圖4.8所示。</p><p><b> 圖4.8系統(tǒng)首頁</b></p><p> 4.7.2 發(fā)布新商品頁面</p><p> 用戶可以訪問此模塊,但是必須先通過登錄。新發(fā)布的商品有兩種拍賣方式:拍賣和一口價。對于拍賣方式的商品有一個開始出價的起點,每次出價的長幅,和成交價格。對于一口價方式的
92、商品只有當用戶直接出指定的價時才會交易成功。因此在用戶發(fā)布之前我們先提供一個頁面(item_view.jsp)供用戶選擇拍賣的模式,在這個頁面中通過model的值來生成對應的發(fā)布商品的頁面。</p><p> 在發(fā)布商品是需要用戶填寫商品的名稱、商品的簡介、出售天數、限制的用戶等級等,同時還提供了上傳商品圖片的功能。通過此分析,我樣可以用Dreamware設計了一個供用戶填寫資料和向服務器提交的表單,數據最后提
93、交到“item_view.jsp”中。頁面的功能是保存用戶發(fā)布的商品信息,它通過設置request.setCharacterEncoding(utf-8)響應的字符集了utf-8防止中文亂碼的出現,如果用戶發(fā)布商品成功將自動返回到用戶操作的首頁,否則出現“商品沒有添加成功!請返回?!钡奶崾?。如圖4.9所示。</p><p> 圖4.9發(fā)布商品界面</p><p> 4.7.3 管理種類
94、頁面</p><p> 用戶訪問此模塊也是必須先通過登錄,新添加物品的種類是在所有顯示種類的頁面中來實現添加的,由于種類本表身沒有外鍵與其他的數據庫表的關系,所以種類表中只有種類名稱與種類描述二個要添加的。如圖4.10所示。</p><p> 圖4.10添加種類界面</p><p><b> 第5章 系統(tǒng)實現</b></p>
95、<p> 本系統(tǒng)采用的Struts2+Spring+Hibernate三個框架整合搭建的。在開發(fā)過程中利用了Struts2來實現Web層,這里遵循了經典的MVC模式;使用Hibernate來實現數據訪問和持久化層;使用Spring來實現業(yè)務層和整合工作。其后就由登錄模塊來舉例,列出各個框架的實際實現。</p><p> 5.1 實現Hibernate PO</p><p>
96、 Hibernate PO由兩個部分組成:持久化類和映射文件,其中映射文件負責把持久化類映射到數據表,并把持久化類的屬性映射到數據列。通過這種映射,允許程序以面向對象的方式操作Hibernate的PO,而Hibernate則負責把這種操作轉化成底層的JDBC數據訪問。</p><p> 對于Hibernate PO而言,通常一個持久化類被映射到一個數據表,而持久化類的屬性則對應到數據表的數據列,因此系統(tǒng)實體表
97、里包含了多少列,就意味著該實體對應持久化類應包含多少個屬性。</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> //無參數的構造器</b></p><p> public AuctionUser()</p>&l
100、t;p><b> {</b></p><p><b> }</b></p><p> //初始化全部基本屬性的構造器</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> 該PO對應的映射文件部分代碼如下:</p><p> <hibernate-mapping package="model"></p>
103、<p> <class name="AuctionUser" table="auction_user"></p><p> <!-- 映射標識屬性 --></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 實現
106、系統(tǒng)的DAO層</p><p> JavaEE一向以良好的可擴展性吸引了眾多行業(yè)的青睞,而這種良好的可擴展性就是建立在嚴格的分層結構之上的。JavaEE系統(tǒng)將系統(tǒng)的所有持久化層訪問都封裝在系統(tǒng)的DAO層,所有的持久化訪問都通過系統(tǒng)的DAO組件來實現,避免了業(yè)務邏輯組件與持久化訪問的耦合。DAO模式的實現應用到DAO工廠類、DAO接口、Dao接口的實現類。</p><p> 5.3 實現
107、系統(tǒng)Web層</p><p> Web層通常就是對應系統(tǒng)的MVC結構的控制層,本系統(tǒng)使用Struts2作為MVC框架,則控制器層都是由Struts2的Action充當,這些Action通過調用系統(tǒng)的業(yè)務邏輯方法來處理用戶請求,并將結果放入ValueStack中,在JSP頁面中通過Struts2的標簽庫來輸出這些處理結果。</p><p> 系統(tǒng)登錄是本系統(tǒng)的基本功能,當用戶需要使用本系
108、統(tǒng)的功能之前,必須先登錄系統(tǒng)才可以使用本系統(tǒng)的功能。系統(tǒng)的登錄頁面也就是系統(tǒng)的主頁homepage.jsp頁面,當用戶在該頁面提交請求時,請求被發(fā)送到Login.action,該Action負責處理用戶請求。如果登錄成功,則跳轉到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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——網上拍賣系統(tǒng)
- 畢業(yè)論文——網上拍賣系統(tǒng)
- 畢業(yè)論文范文——jsp網上拍賣平臺系統(tǒng)
- 畢業(yè)論文范文——jsp網上拍賣平臺系統(tǒng)
- 網上學習平臺的設計與實現畢業(yè)論文
- 大學生網上拍賣系統(tǒng)的分析與設計[畢業(yè)論文]
- 網上二手拍賣系統(tǒng)的設計范文畢業(yè)論文
- 畢業(yè)論文---網上社區(qū)系統(tǒng)的設計與實現
- 畢業(yè)論文---網上投票系統(tǒng)的設計與實現
- 網上購物系統(tǒng)的設計與實現畢業(yè)論文
- 畢業(yè)論文-----網上訂餐系統(tǒng)的設計與實現
- 網上訂餐系統(tǒng)的設計與實現畢業(yè)論文
- 畢業(yè)論文——網上購物系統(tǒng)的設計與實現
- 網上購物系統(tǒng)的設計與實現 畢業(yè)論文
- 網上購物系統(tǒng)的設計與實現設計-畢業(yè)論文
- 網上購物系統(tǒng)的設計與實現畢業(yè)論文
- 畢業(yè)論文——網上購物系統(tǒng)的設計與實現
- 網上購物系統(tǒng)的設計與實現畢業(yè)論文
- 網上購物系統(tǒng)的設計與實現畢業(yè)論文
- 畢業(yè)論文——網上數碼商店系統(tǒng)設計與實現
評論
0/150
提交評論