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

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p> 題 目:基于Struts + Spring + Hibernate</p><p> 的購物網(wǎng)站設(shè)計與實現(xiàn)</p><p><b>  摘 要</b></p><p>  本設(shè)計運用當(dāng)前主流的Java技術(shù),采用MVC開發(fā)模

2、型,以Struts、Spring和Hibernate框架為基礎(chǔ)開發(fā)了一個輕量級的網(wǎng)上購物系統(tǒng)。Struts用作控制器,Spring作為業(yè)務(wù)層,Hibernate作為數(shù)據(jù)持久層,開發(fā)中同時使用JSTL標(biāo)簽庫。這些技術(shù)的整合,使得系統(tǒng)在各方面都能達(dá)到要求,并有利于系統(tǒng)的維護(hù)和升級。</p><p>  系統(tǒng)分為前臺部分和后臺部分,前臺部分主要實現(xiàn)的功能有顧客的注冊和登錄功能、查看商品信息功能、搜索商品的功能、購物車、

3、收藏夾功能、個人信息維護(hù)管理功能;后臺部分主要實現(xiàn)管理員管理商品信息、訂單信息、目錄信息和用戶信息。其中購物車可以在用戶未登錄的情況下操作,并且原有的商品與現(xiàn)有的商品可以相互疊加。</p><p>  關(guān)鍵詞:網(wǎng)上購物系統(tǒng);Struts;Spring;Hibernate;JSTL;MVC模式</p><p><b>  ABSTRACT</b></p>

4、<p>  This design uses the mainstream Java technology to develop a lightweight online shopping application. MVC software developing model is adopted, based on the popular framework consisting of Struts, Spring and H

5、ibernate, where Struts behaves as the controller layer, Spring as the service layer, and Hibernate as the data persistence layer. JSTL library is also used. With all these technologies together, the application achieves

6、all the design purposes, and is flexible for update and maintenance.</p><p>  The application consists of two main subsystems, the front end subsystem and the central management subsystem. For the front end

7、subsystem, the features involve customer registration, login, information retrieval on merchandises, product search, shopping cart, preference folder, customer profile update. Product information update, orders process,

8、category and user information management are the functions of the central management subsystem. In the mean time, the shopping cart can be used without</p><p>  Key Words:Online shopping system;Struts; Hiber

9、nate;JSTL;The Model of MVC </p><p><b>  目 錄</b></p><p><b>  1引 言1</b></p><p>  2相關(guān)知識和技術(shù)背景2</p><p>  2.1J2EE概述2</p><p>  2.2

10、MVC設(shè)計模式3</p><p>  2.3Struts MVC設(shè)計模式3</p><p>  2.4Spring框架4</p><p>  2.5Hibernate框架5</p><p>  2.6Struts、Spring、Hibernate的整合6</p><p>  2.7JSTL標(biāo)簽庫

11、7</p><p>  3系統(tǒng)需求分析8</p><p>  3.1B2C系統(tǒng)模塊介紹8</p><p>  3.2確定用戶需求9</p><p>  3.3需求規(guī)定10</p><p>  3.3.1對性能的規(guī)定10</p><p>  3.3.2輸入輸出要求10<

12、;/p><p>  3.3.3數(shù)據(jù)管理能力要求10</p><p>  3.3.4故障處理要求10</p><p>  3.3.5運行環(huán)境需求10</p><p>  4系統(tǒng)概要設(shè)計11</p><p>  4.1總體設(shè)計11</p><p>  4.1.1環(huán)境配置11<

13、;/p><p>  4.1.2系統(tǒng)結(jié)構(gòu)11</p><p>  4.1.3總體模塊11</p><p>  4.2功能模塊12</p><p>  4.2.1用戶顧客注冊、登錄模塊12</p><p>  4.2.2商品檢索、瀏覽模塊13</p><p>  4.2.3個人信息

14、管理模塊13</p><p>  4.2.4購物車/收藏夾模塊13</p><p>  4.2.5后臺登錄模塊14</p><p>  4.2.6商品管理模塊15</p><p>  4.2.7商品目錄管理模塊15</p><p>  4.2.8訂單管理模塊16</p><p&

15、gt;  4.2.9會員管理模塊16</p><p>  5系統(tǒng)詳細(xì)設(shè)計18</p><p>  5.1數(shù)據(jù)庫設(shè)計18</p><p>  5.1.1ER圖設(shè)計18</p><p>  5.1.2數(shù)據(jù)表設(shè)計19</p><p>  5.2架構(gòu)設(shè)計21</p><p>  

16、5.2.1帶日志功能的設(shè)計21</p><p>  5.2.2Web.xml配置文件22</p><p>  5.2.3Struts配置文件22</p><p>  5.2.4Spring配置文件24</p><p>  5.2.5Hibernate自動生成的文件25</p><p>  5.2.6

17、工程包層次結(jié)構(gòu)26</p><p>  5.3詳細(xì)模塊設(shè)計26</p><p>  5.3.1顧客注冊、登錄模塊26</p><p>  5.3.2商品檢索、瀏覽模塊27</p><p>  5.3.3個人信息管理模塊27</p><p>  5.3.4購物車/收藏夾模塊28</p>

18、<p>  5.3.5后臺登錄模塊28</p><p>  5.3.6后臺商品管理模塊29</p><p>  5.3.7后臺商品目錄管理模塊29</p><p>  5.3.8后臺訂單管理模塊30</p><p>  5.3.9后臺會員管理模塊30</p><p><b>

19、  6系統(tǒng)實現(xiàn)31</b></p><p>  6.1環(huán)境配置31</p><p>  6.2主要界面及代碼32</p><p>  6.2.1前臺界面顯示及代碼32</p><p>  6.2.2后臺界面顯示及代碼52</p><p><b>  結(jié)論56</b>

20、;</p><p><b>  致謝57</b></p><p><b>  參考文獻(xiàn)58</b></p><p><b>  引 言</b></p><p>  隨著Internet的蓬勃發(fā)展,電子商務(wù)慢慢融入了我們的生活。如今,在發(fā)達(dá)國家通過Internet進(jìn)行交易已

21、成為潮流。由于網(wǎng)上電子商務(wù)的穩(wěn)定性需求比較高,商城系統(tǒng)面臨著嚴(yán)格的考驗。不少商家、公司只制作一個或者幾個產(chǎn)品介紹的界面,顯然無法滿足客戶的需求??蛻舨荒茉谠诰€訂單,導(dǎo)致了他需要通過多種步驟來與商家取得聯(lián)系。其弊端顯而易見,首先是低效率、數(shù)據(jù)的嚴(yán)重冗余,其次是維護(hù)困難;顯然這些簡單鏈接構(gòu)成的網(wǎng)站在數(shù)據(jù)的共享性、人機(jī)的交互性以及網(wǎng)站維護(hù)性上都有很大的問題。因此,開發(fā)一個基于web的動態(tài)網(wǎng)上購物系統(tǒng)是極其迫切的。</p><

22、;p>  因此,PHP,ASP,JSP應(yīng)運而生。</p><p>  PHP語法簡單,非常易學(xué)易用,很利于快速開發(fā)各種功能不同的定制網(wǎng)站。但是它沒有一個大的公司去支援它,使的后續(xù)能力比較差。ASP簡單且易于維護(hù),很適合小型網(wǎng)站應(yīng)用,通過DCOM和MTS技術(shù),ASP甚至還可以完成小規(guī)模的企業(yè)應(yīng)用,但ASP的致命缺點就是不支持跨平臺的系統(tǒng),在大型項目開發(fā)和維護(hù)上非常困難。JSP對于網(wǎng)站開發(fā)來講不像PHP和ASP

23、那樣易學(xué)易用,支持JAVA的主機(jī)也少于支持PHP的主機(jī),這從一定程度上限制了JAVA技術(shù)在網(wǎng)站上的發(fā)展,不過在企業(yè)軟件應(yīng)用上來講,MVC還是擁有相當(dāng)大的優(yōu)勢的,雖然其配置和部署相對其他腳本語言來說要復(fù)雜一些,但對于跨平臺的中大型企業(yè)應(yīng)用系統(tǒng)來講,基于JAVA技術(shù)的MVC架構(gòu)幾乎成為唯一的選擇。</p><p>  電子商務(wù)從1995年以來得到了迅速發(fā)展,顯現(xiàn)了巨大的現(xiàn)代商業(yè)價值。</p><p

24、>  在美、日等信息化程度較高的國家和地區(qū),網(wǎng)絡(luò)商店發(fā)展速度迅猛。尤其是美國,各類送貨系統(tǒng)、快遞運輸公司、支付公司、安全、廣告、商務(wù)軟件、信息服務(wù)等新型物流和中介機(jī)構(gòu)發(fā)展呈加速態(tài)勢,并且有很大的發(fā)展空間。</p><p>  在我國,網(wǎng)上購物從無到有也不過短短幾年時間。根據(jù)中國網(wǎng)絡(luò)經(jīng)濟(jì)研究報告,截止2009年中國互聯(lián)網(wǎng)用戶數(shù)量已達(dá)到3.22億,有過網(wǎng)上購物經(jīng)歷的用戶已經(jīng)超過7400萬人,并且這一數(shù)字還在以6

25、0%左右的速度增長。這說明在中國發(fā)展網(wǎng)上購物具有良好的群眾基礎(chǔ),網(wǎng)上購物方式慢慢被大家所接受。</p><p>  在技術(shù)方面,由于我國基本都使用windows操作系統(tǒng),所以用VS平臺開發(fā)比較多。但在發(fā)達(dá)國家不一樣,比如美國,它有MAC操作系統(tǒng),那里ASP將不再適用,它并不是很好的支持跨平臺。</p><p>  21世紀(jì)將進(jìn)入電子商務(wù)時代,是社會發(fā)展的必然,我們將別無選擇地生活在電子商務(wù)

26、時代。如何面對電子商務(wù)方式、如何適應(yīng)數(shù)字化生存并積極參與電子商務(wù)</p><p>  時代的國際競爭,是涉及到每個人、每個企業(yè)、部門及國家發(fā)展與生存的重大問題,也是國家管理部門現(xiàn)在應(yīng)該規(guī)劃、并促進(jìn)其發(fā)展的戰(zhàn)略問題。</p><p><b>  相關(guān)知識和技術(shù)背景</b></p><p><b>  J2EE概述</b>&l

27、t;/p><p>  J2EE(Java 2 Platform, Enterprise Edition)是美國Sun公司推出的一種全新概念的模型,與傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型相比有著不可比擬的優(yōu)勢。</p><p>  典型的說,提供這些服務(wù)的應(yīng)用軟件必須同企業(yè)信息系統(tǒng)(EIS)相結(jié)合,并提供新的能向更為廣闊的用戶提供的服務(wù)。這些服務(wù)要具備以下的特點:</p><p> 

28、 a. 高可用性:來滿足現(xiàn)在的全球商業(yè)環(huán)境 </p><p>  b. 安全性:保護(hù)用戶的隱私和企業(yè)數(shù)據(jù)的安全 </p><p>  c. 可依賴性和可擴(kuò)展性:保證商業(yè)交易的正確和迅捷 </p><p>  通常這些服務(wù)是由分布的應(yīng)用程序組成的,包括前端數(shù)據(jù)端和后端數(shù)據(jù)源以及它們之間的一層或幾層,這些中間層提供了把商業(yè)功能和數(shù)據(jù)與EIS相結(jié)合的功能。這些中間層把客戶

29、端從復(fù)雜的商業(yè)邏輯中分離出來,利用成熟的INTERNET技術(shù)使用戶在管理上所花費的時間最小化。</p><p>  J2EE正式降低了開發(fā)這種中間層服務(wù)的成本和復(fù)雜程度,因而使得服務(wù)可以被快速的展開,并能夠更輕松的面對競爭中的壓力。J2EE 架構(gòu)圖見圖2-1</p><p><b>  MVC設(shè)計模式</b></p><p>  MVC框架把業(yè)

30、務(wù)邏輯、頁面流程控制和用戶界面分開,便于開發(fā)人員進(jìn)行角色分工,實現(xiàn)分層及并行開發(fā),有利于軟件復(fù)用和重構(gòu),以及系統(tǒng)的維護(hù)和擴(kuò)展。其中,“Model”代表的是應(yīng)用的業(yè)務(wù)邏輯(通過Java Bean,EJB組件實現(xiàn)),“view”是應(yīng)用的表示層(一般是JSP或JSF頁面),“Controller"是提供應(yīng)用的處理過程控制,這種設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn),降低了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,同時提高了

31、代碼的重用性。MVC工作原理見圖2-2。</p><p>  圖2-1 MVC工作原理</p><p>  Struts MVC設(shè)計模式</p><p>  Struts提供了Controller組件并且整合了其它技術(shù)來實現(xiàn)Model和View。對于Model,Struts可以使用標(biāo)準(zhǔn)數(shù)據(jù)訪問技術(shù),如JDBC和EJB。也可以使用第三方工具,如Hibernate。至

32、于View,Struts支持JSP技術(shù)、JSTL和JSF,也可以使用Velocity模板,XSLT及其它表示系統(tǒng)。此外Struts提供了自定義的標(biāo)記庫,可以輔助JSP進(jìn)行表示層的設(shè)計,通過這些自定義標(biāo)記可以和系統(tǒng)的Model部分進(jìn)行交互。Struts的核心組件有ActionServlet,Action,ActionForm,ActionMapping,ActionForword,TagLib以及配置文件等。我們用JSP技術(shù)結(jié)合Strut

33、s強(qiáng)大的TagLib來實現(xiàn)我們的表示層。</p><p>  圖2-2 struts 1 架構(gòu)圖</p><p><b>  Spring框架</b></p><p>  Spring是一個以依賴注入(inversion of control IOC)原則和面向方面編程思想(aspect-oriented programming,AOP)為基

34、礎(chǔ)的輕量級框架。Spring既是一個AOP框架,也是一個IOC容器。運用AOP可以創(chuàng)建“橫切關(guān)注點”(Crosscutting Concerns),在應(yīng)用時將它們插入代碼中,使得代碼有良好的可重用性。IOC容器允許在需要生成對象的地方創(chuàng)建一個應(yīng)用上下文,然后將這些對象傳遞給它們的合作對象。它可以很容易地替換業(yè)務(wù)對象,只要用Java Bean屬性和配置文件加入依賴性,然后就可以很容易地在需要時替換具有類似接口的協(xié)作對象。Spring還提供

35、了可以和總體的IOC容器集成的強(qiáng)大而靈活的MVC Web框。Spring是一個輕型容器,其核心是Bean工廠,用以構(gòu)造我們所需要的Model。在此基礎(chǔ)之上,Spring提供了AOP的實現(xiàn),用它來提供非管理環(huán)境下申明方式的事務(wù)、安全等服務(wù);對Bean工廠的擴(kuò)展Application Context更加方便我們實現(xiàn)J2EE的應(yīng)用;DAO/ORM的實現(xiàn)也更方便我們進(jìn)行數(shù)據(jù)庫的開發(fā):Web M</p><p>  從設(shè)計

36、理念可以看到Spring幫助你實現(xiàn)了真正的邏輯層和Web層的分離。Spring模塊是構(gòu)建在核心容器之上的,核心容器又定義了創(chuàng)建、配置和管理Bean的方式。Spring使用基本的Java Bean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā),從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。</p><p>  圖2-3 spring 架構(gòu)圖&

37、lt;/p><p>  Hibernate框架</p><p>  Hibernate是一個實現(xiàn)對象和關(guān)系之間映射(object relation mapping,0RM)的開源框架。它對JDBC進(jìn)行了輕量級的對象封裝,使得JAVA程序員可以使用面向?qū)ο蟮木幊趟季S來操作關(guān)系數(shù)據(jù)庫。如果在軟件開發(fā)中采用面向?qū)ο蟮姆绞竭M(jìn)行設(shè)計,而使用的是關(guān)系數(shù)據(jù)庫,就可以選用Hibernate這種框架來實現(xiàn)對象和

38、關(guān)系之間的映射和數(shù)據(jù)的持久化。Hibernate擁有一種功能非常強(qiáng)大的查詢語言HQL,這種語言與SQL相似,而且完全是面向?qū)ο蟮?。它查詢的是持久化對象,而不是?shù)據(jù)庫的記錄,而且它可以支持多態(tài)、繼承、關(guān)聯(lián)等關(guān)系。</p><p>  Hibernate利用數(shù)據(jù)庫配文件:hibernate.properties、XML Mapping等為應(yīng)用程序提供數(shù)據(jù)持久服務(wù)的,又通過讀取配置文件(hibernate.Cfg.xm

39、l)和類的映射文件(XML Mapping)中的內(nèi)容,生成SessionFactory實例,并由它的openSession0方法負(fù)責(zé)每次所需的Session對象的創(chuàng)建,在Session對象的方法中借助持久化對象來完成對數(shù)據(jù)庫的操作,而不需使用JDBC和SQL進(jìn)行數(shù)據(jù)的操作。這樣就避免手工編寫訪問數(shù)據(jù)持久層的方法,可以大幅度減少開發(fā)時人工使用SQL和JDBC處理數(shù)據(jù)的時間,降低了開發(fā)的難度。</p><p>  圖

40、2-4 hibernate 架構(gòu)圖</p><p>  Struts、Spring、Hibernate的整合</p><p>  綜上所述,表現(xiàn)層采用Struts框架,業(yè)務(wù)邏輯層采用Spring框架取代EJB容器,數(shù)據(jù)持久層以Hibernate取代實體Bean,提供具體的數(shù)據(jù)庫數(shù)據(jù)處理操作,三者進(jìn)行有機(jī)整合,構(gòu)成輕量級J2EE應(yīng)用框架。</p><p>  整個輕

41、量級框架業(yè)務(wù)流程為:用戶接口層利用JSP+HTML頁面實現(xiàn)交互界面,負(fù)責(zé)傳送頁面請求和接收響應(yīng),表示層Struts收到請求,調(diào)用相應(yīng)的Action,處于業(yè)務(wù)層的Spring IOC容器負(fù)責(zé)向Action提供業(yè)務(wù)服務(wù)組件(Service)和相應(yīng)的數(shù)據(jù)訪問處理組件(DAO),并提供事務(wù)處理、日志管理等一系列系統(tǒng)服務(wù),處于持久層的Hibernate負(fù)責(zé)對象化映射與數(shù)據(jù)庫交互,具體處理DAO組件請求,并返回結(jié)果。</p><

42、p>  我們把整合后的框架分成四層,這四層分別是:實體層、DAO層、服務(wù)層、Web層。每個層在處理應(yīng)用程序上都應(yīng)該有一項明確的責(zé)任,而不應(yīng)該在功能上與其它層混合,并且每個層要與其它層分開的,但要給他們之間放一個通信接口。</p><p>  圖2-5 SSH 架構(gòu)圖</p><p><b>  JSTL標(biāo)簽庫</b></p><p> 

43、 JSTL是一個不斷完善的開放源代碼的JSP標(biāo)簽庫,是由apache的jakarta小組來維護(hù)的。JSTL只能運行在支持JSP1.2和Servlet2.3規(guī)范的容器上,如tomcat 4.x。但是在即將推出的JSP 2.0中是作為標(biāo)準(zhǔn)支持的。</p><p>  JSTL包含兩個部分:標(biāo)簽庫和EL(Expression Language表達(dá)式語言)語言。</p><p>  JSP標(biāo)準(zhǔn)標(biāo)記

44、庫(JSP Standard Tag Library JSTL)是一個實現(xiàn)Web應(yīng)用程序中常見的通用功能的定制標(biāo)記庫集,這些功能包括迭代和條件判斷、數(shù)據(jù)管理格式化、XML操作以及數(shù)據(jù)庫訪問。</p><p>  JSTL 1.0 有四個定制標(biāo)記庫:core、format、xml 和 sql.</p><p>  1.core 標(biāo)記庫提供了定制操作,通過限制了作用域的變量管理數(shù)據(jù),以及執(zhí)行頁

45、面內(nèi)容的迭代和條件操作。</p><p>  2.format 標(biāo)記庫定義了用來格式化數(shù)據(jù)(尤其是數(shù)字和日期)的操作。它還支持使用本地化資源束進(jìn)行 JSP 頁面的國際化。</p><p>  3.xml 庫包含一些標(biāo)記,這些標(biāo)記用來操作通過 XML 表示的數(shù)據(jù)。</p><p>  4.sql 庫定義了用來查詢關(guān)系數(shù)據(jù)庫的操作。</p><p&g

46、t;<b>  系統(tǒng)需求分析</b></p><p><b>  B2C系統(tǒng)模塊介紹</b></p><p>  B2C即企業(yè)通過互聯(lián)網(wǎng)為消費者提供一個新型的購物環(huán)境——網(wǎng)上商店,消費者可以通過網(wǎng)絡(luò)在網(wǎng)上購物、亦可在網(wǎng)上支付。本系統(tǒng)主要分為前臺部分和后臺部分,前臺部分主要實現(xiàn)的功能針對顧客使用,有顧客的注冊和登錄功能、個人信息維護(hù)功能、查看商品信

47、息功能、搜索商品的功能、購物車功能、收藏夾功能;后臺部分主要由商城的管理員使用,有管理商品信息功能、管理商品目錄功能、管理訂單信息功能、管理注冊會員功能。這里的模塊主要按照使用者不同進(jìn)行分配。</p><p>  圖3-1 本系統(tǒng)的前臺部分和后臺部分模塊</p><p>  它們各自的功能如圖3-1所示:</p><p><b>  前臺部分</b

48、></p><p>  首先顧客可以方便地注冊與登錄。未注冊的顧客可進(jìn)行商品的查看,也可把商品放入購物車;未注冊的顧客可進(jìn)入注冊頁面進(jìn)行注冊,但是若其顧客惡意破環(huán),后臺的管理員可以對其會員進(jìn)行刪除。</p><p>  顧客可以靈活地檢索所需的商品信息。可采用關(guān)鍵字搜索。</p><p>  顧客可以方便地查看詳細(xì)的商品資料。</p><p

49、>  顧客可管理自己的購物車(包括添加或刪除選購商品、修改商品購買數(shù)量、放入收藏夾及在線下訂單等操作)。</p><p>  顧客可管理自己的收藏夾(包括添加或刪除選購商品、放入購物車等操作)。</p><p><b>  后臺部分</b></p><p>  管理員可以方便地管理商品(新增、刪除、修改商品信息)。</p>

50、<p>  管理員可以查看訂單、審核、發(fā)貨、取消處理。</p><p>  管理員可以刪除顧客的信息。</p><p>  管理員可以對商品目錄進(jìn)行管理(新增、刪除、修改商品目錄信息)。</p><p><b>  確定用戶需求</b></p><p>  要求不同類型的用戶擁有不同的功能,具體用戶類型包括:后

51、臺管理員,顧客(未注冊或未登錄用戶,登錄用戶)。用例圖如下(圖3-2,圖3-3):</p><p>  圖3-2 后臺管理員用例圖</p><p>  圖3-3 前臺顧客用例圖</p><p><b>  需求規(guī)定</b></p><p><b>  對性能的規(guī)定</b></p>

52、<p>  要按照嚴(yán)格的格式輸入,否則數(shù)據(jù)庫不給予響應(yīng)進(jìn)行處理;</p><p>  查詢時要保證所有包含查詢關(guān)鍵字的記錄都能查到;</p><p>  盡量減少服務(wù)器的壓力;</p><p><b>  輸入輸出要求</b></p><p>  盡量減少輸入數(shù)據(jù)量;</p><p>&

53、lt;b>  輸入數(shù)據(jù)格式;</b></p><p><b>  引導(dǎo)操作的提示;</b></p><p><b>  數(shù)據(jù)管理能力要求</b></p><p>  長久保存的數(shù)據(jù)存入數(shù)據(jù)庫;</p><p>  購物車給于15天保存期;</p><p>&

54、lt;b>  故障處理要求</b></p><p>  盡可能的保證數(shù)據(jù)庫完好無損;</p><p><b>  時常備份數(shù)據(jù)庫;</b></p><p><b>  運行環(huán)境需求</b></p><p><b>  設(shè)備</b></p><

55、;p>  一臺具備Microsoft Windows XP/VISTA系統(tǒng)計算機(jī);</p><p><b>  支持軟件</b></p><p> ?。?)用戶基礎(chǔ)軟件配置</p><p>  操作系統(tǒng):Windows XP;</p><p>  相關(guān)軟件工具: MyEclipse 6.6;</p>

56、<p><b> ?。?)開發(fā)工具</b></p><p>  平臺:Windows XP;</p><p>  服務(wù)器:Tomcat 6.0;</p><p>  數(shù)據(jù)庫:MySQL 5.0;</p><p>  相關(guān)類庫:Struts、Spring、Hibernate、JSTL等;</p>&

57、lt;p><b> ?。?)測試環(huán)境</b></p><p>  Windows XP + IE8。</p><p><b>  系統(tǒng)概要設(shè)計</b></p><p><b>  總體設(shè)計</b></p><p><b>  環(huán)境配置</b><

58、/p><p>  B2C系統(tǒng)都基于JDK1.6開發(fā)并測試,采用Tomcat 6.0做Web服務(wù)器,并在基于MyEclipse 6.6的平臺上開發(fā)并測試運行,數(shù)據(jù)庫采用關(guān)系數(shù)據(jù)庫MySQL 5.0。如此搭建出一個穩(wěn)定的適于系統(tǒng)的應(yīng)用開發(fā)運行環(huán)境。</p><p>  Java開發(fā)包J2SDK(Java 2 Software Development Kit)是基于Java軟件開發(fā)的前提。J2SDK

59、簡稱JDK,JDK1.6仍是目前的主打。</p><p>  Tomcat是一個免費的開源的Serlvet容器,它是Apache基金會的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。曾被JavaWorld雜志評為最具創(chuàng)新的Java產(chǎn)品(Most Inovative Java Product),同時它又是Sun公司官方推薦的Servlet和JSP容器。</p>

60、;<p>  Eclipse是一個開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。MyEclipse是Eclipse的插件,集成了對Spring、Struts、Hibernate等主流Java EE組件開發(fā)插件的支持,大大簡化了Java EEj應(yīng)用的開發(fā)。</p><p>  MySQL是由MySQL AB公司開發(fā)、發(fā)布并支持的全世界最流行的開源SQL數(shù)據(jù)庫管理系統(tǒng),目前最新版本為MySQL5.0,對存

61、儲過程、觸發(fā)器和視圖有了很好的支持,成為開源數(shù)據(jù)庫之首選。</p><p><b>  系統(tǒng)結(jié)構(gòu)</b></p><p>  整個系統(tǒng)的架構(gòu)設(shè)計遵循MVC模式,將展示層、控制層、模型層(業(yè)務(wù)邏輯層)及持久層進(jìn)行合理分離。表現(xiàn)層采用Struts框架,業(yè)務(wù)邏輯層采用Spring框架取代EJB容器,數(shù)據(jù)持久層以Hibernate取代實體Bean,提供具體的數(shù)據(jù)庫數(shù)據(jù)處理操作

62、,三者進(jìn)行有機(jī)整合,構(gòu)成輕量級J2EE應(yīng)用框架。</p><p>  整個輕量級框架業(yè)務(wù)流程為:用戶接口層利用JSP+HTML頁面實現(xiàn)交互界面,負(fù)責(zé)傳送頁面請求和接收響應(yīng),表示層Struts收到請求,調(diào)用相應(yīng)的Action,處于業(yè)務(wù)層的Spring IOC容器負(fù)責(zé)向Action提供業(yè)務(wù)服務(wù)組件(Service)和相應(yīng)的數(shù)據(jù)訪問處理組件(DAO),并提供事務(wù)處理、日志管理等一系列系統(tǒng)服務(wù),處于持久層的Hiberna

63、te負(fù)責(zé)對象化映射與數(shù)據(jù)庫交互,具體處理DAO組件請求,并返回結(jié)果。</p><p><b>  總體模塊</b></p><p>  總體設(shè)計是把總體任務(wù)分解為許多基本的、具體的任務(wù)。這些具體任務(wù)合理地組織起來構(gòu)成總體任務(wù)。其基本任務(wù)是將系統(tǒng)劃分成模塊,決定每個模塊的功能,決定模塊的調(diào)用關(guān)系,決定模塊的界面及模塊間信息的傳遞。</p><p>

64、;  總體設(shè)計過程首先尋找實現(xiàn)目標(biāo)系統(tǒng)的各種不同的方案。通常,設(shè)計出初步的軟件結(jié)構(gòu)后還要多方改進(jìn),從而得到更合理的結(jié)構(gòu),進(jìn)行必要的數(shù)據(jù)庫設(shè)計。</p><p>  圖4-1 B2C系統(tǒng)總體模塊圖</p><p><b>  功能模塊</b></p><p>  B2C系統(tǒng)大致可以劃分為9個功能模塊:</p><p> 

65、 用戶顧客注冊、登錄模塊</p><p>  用戶可以通過填寫注冊信息注冊成為會員,會員登陸后可以進(jìn)行個人信息管理和購物車等重要操作,未登錄或未注冊的顧客只能檢索瀏覽商品信息和購物車處理。在注冊信息時,系統(tǒng)會對注冊信息進(jìn)行有效性的驗證,有效才會注冊成功。</p><p>  圖4-2 用戶注冊、登錄模塊活動圖</p><p><b>  商品檢索、瀏覽模

66、塊</b></p><p>  用戶可以直接查看商品的全部信息(如商品名稱、商品圖片、商品價格、商品折扣、商品介紹等),也可以根據(jù)不同的商品種類瀏覽商品信息,也可以透過輸入關(guān)鍵字對商品進(jìn)行檢索,查看其信息。</p><p>  圖4-3 商品檢索、瀏覽模塊活動圖</p><p><b>  個人信息管理模塊</b></p&g

67、t;<p>  該模塊可修改用戶的一系列信息,包括修改用戶名/昵稱、密碼;查看一個月內(nèi)訂單、已取消訂單、全部訂單;申請取消訂單;管理地址簿(添加/修改/刪除/是否為首要配送地址)。</p><p>  圖4-4 個人信息管理模塊活動圖</p><p><b>  購物車/收藏夾模塊</b></p><p>  顧客未登錄時,選中

68、商品可添加購物車;可對選中的商品進(jìn)行修改購買數(shù)量、刪除;清空購物車等操作。</p><p>  當(dāng)顧客登陸后,可對選中商品進(jìn)行放入收藏夾操作;放入的商品可進(jìn)行刪除操作;當(dāng)顧客要結(jié)賬時,有配送地址選擇。</p><p>  圖4-5 購物車/收藏夾模塊活動圖</p><p><b>  后臺登錄模塊</b></p><p&g

69、t;  后臺管理員輸入賬號密碼可以在后臺登錄,登錄驗證模塊根據(jù)輸入的賬號密碼識別不同角色的管理員,然后進(jìn)入不同的后臺管理模塊,賬號密碼輸入錯誤后給出錯誤提示并要求重新輸入。</p><p>  圖4-6 后臺登錄模塊活動圖</p><p><b>  商品管理模塊</b></p><p>  管理員可以查看商品種類和信息,并且可以進(jìn)行新增、修

70、改、刪除商品等操作。</p><p>  圖4-7 商品管理模塊活動圖</p><p><b>  商品目錄管理模塊</b></p><p>  管理員可以查看商品父目錄和子目錄,并且可以進(jìn)行新增、修改、刪除商品父/子目錄等操作。</p><p>  圖4-8 商品管理目錄模塊活動圖</p><p

71、><b>  訂單管理模塊</b></p><p>  訂單管理員登錄后,可以根據(jù)日期范圍、訂單完成狀態(tài)、訂單編號等取得訂單列表與查看某訂單的詳情,也可以修改訂單的完成狀態(tài)及訂單中的商品或數(shù)量,還可以刪除訂單本身及訂單中的商品。</p><p>  圖4-9 訂單管理模塊活動圖</p><p><b>  會員管理模塊<

72、/b></p><p>  管理員登錄后,可以取得會員列表,可以對某個會員執(zhí)行刪除操作。</p><p>  圖4-10 會員管理模塊活動圖</p><p><b>  系統(tǒng)詳細(xì)設(shè)計</b></p><p><b>  數(shù)據(jù)庫設(shè)計</b></p><p><b&

73、gt;  ER圖設(shè)計</b></p><p>  圖5-1 B2C系統(tǒng)ER圖</p><p>  從圖5-1可看出各數(shù)據(jù)表之間的各種關(guān)聯(lián)關(guān)系,各關(guān)聯(lián)關(guān)系將會在Hibernate的映射文件中體現(xiàn)出來。</p><p>  注冊用戶與地址欄為一對多關(guān)聯(lián):一個用戶可以有多個地址,而每個地址只能屬于一個用戶。</p><p>  注冊用

74、戶與訂單為一對多關(guān)聯(lián):一個用戶可以有多個訂單,而每個訂單只能屬于一個用戶。</p><p>  訂單與訂單項為一對多關(guān)聯(lián):一個訂單可以有多個訂單項,而每個訂單項只能屬于一個訂單。</p><p>  注冊用戶與收藏夾里的商品為一對多關(guān)聯(lián):一個用戶可以有多個收藏夾商品,而每個收藏夾里的商品只能屬于一個用戶。</p><p>  商品目錄與商品為一對多關(guān)聯(lián):一個商品目錄

75、可以有多個商品,而每個商品只能屬于一個商品目錄。</p><p>  購物車與商品為一對多關(guān)聯(lián):一個購物車可以有多個商品,而每個商品只能屬于一個購物車。</p><p><b>  數(shù)據(jù)表設(shè)計</b></p><p>  表5-1 注冊會員表(users)</p><p>  表5-2 地址欄表(address)<

76、/p><p>  表5-3 商品表(product)</p><p>  表5-4 購物車表(shoppingcars)</p><p>  表5-5 收藏夾表(wishlist)</p><p>  表5-6 訂單表(Orders)</p><p>  表5-7 訂單項表(orderitems)</p>&

77、lt;p>  表5-8 目錄表(category)</p><p><b>  架構(gòu)設(shè)計</b></p><p><b>  帶日志功能的設(shè)計</b></p><p>  在SSH整合時很容易出錯,使用log4j日志,能夠詳細(xì)的知道錯誤的原因;不用log4j有些問題很難發(fā)現(xiàn)。</p><p>

78、  Web.xml配置文件</p><p>  在web.xml中配置中文過濾器、Struts標(biāo)簽庫、Struts中央控制器ActionServlet及默認(rèn)的歡迎文件列表等。下圖為過濾器配置文件。</p><p><b>  <filter></b></p><p>  <filter-name>cc</filte

79、r-name></p><p>  <filter-class>com.cc.method.FilterImpl</filter-class></p><p><b>  </filter></b></p><p>  <filter-mapping></p><p>

80、;  <filter-name>cc</filter-name></p><p>  <url-pattern>/*</url-pattern></p><p>  </filter-mapping></p><p>  Struts配置文件</p><p>  在Struts配置文

81、件struts-config.xml中主要配置:</p><p>  配置ActionForm Bean</p><p>  配置Struts-Spring插件</p><p>  配置Validator插件</p><p>  圖5-2 struts-config.xml配置文件圖</p><p>  Spring配

82、置文件</p><p>  Spring連接MYSQL</p><p>  Spring自動生成的方法聯(lián)結(jié)</p><p>  Hibernate自動生成的文件 </p><p>  其中Abstract-前綴的為基類,DAO為方法。</p><p><b>  工程包層次結(jié)構(gòu)</b></p

83、><p>  圖5-3工程包層次結(jié)構(gòu)圖</p><p><b>  說明:</b></p><p>  src存放JAVA源代碼</p><p>  bean存放一些FORM用到的JAVA集合</p><p>  hib存放所有與數(shù)據(jù)庫操作相關(guān)的DAO類</p><p>  s

84、truts存放所有Struts的FormBean、Action類及消息資源文件</p><p>  b存放所有后臺管理所用到的JSP頁面</p><p>  CSS存放CSS樣式表文件</p><p>  image存放應(yīng)用中所有的圖片素材文件</p><p>  JS存放應(yīng)用中所有的JavaScript腳本文件</p><

85、;p>  upload存放應(yīng)用中所有上傳的圖片文件</p><p><b>  詳細(xì)模塊設(shè)計</b></p><p><b>  顧客注冊、登錄模塊</b></p><p>  顧客只有通過注冊才能成為會員,會員只有登錄后才能進(jìn)行管理自己的收藏夾、訂單等操作。</p><p>  圖5-4顧客

86、注冊、登錄模塊圖</p><p>  控制層Struts的實現(xiàn):顧客將注冊的表單提交之后,register.jsp表單的內(nèi)容由Struts自動封裝到UsersRegisterForm對象中,并送交Validator進(jìn)行表單有效性驗證,如果驗證失敗則返回register.jsp要求顧客重新填寫,驗證成功就將UsersRegisterForm對象提交給UsersRegisterAction進(jìn)行處理,處理完后將提示信息

87、返回register.jsp并完成注冊。</p><p>  會員登錄時,首先在login.jsp中登錄,提交之后,登錄表單的內(nèi)容由Struts自動封裝到UsersLoginForm對象中,并提交到Validator進(jìn)行表單有效性驗證,如果驗證失敗則返回login.jsp要求重新登錄,驗證成功就將UsersLoginForm對象提交給UsersLoginAction進(jìn)行處理,處理完成后將處理結(jié)果返回login.j

88、sp并完成登錄。</p><p><b>  商品檢索、瀏覽模塊</b></p><p>  用戶與會員可以根據(jù)不同的商品種類瀏覽商品信息,也可以輸入關(guān)鍵字進(jìn)行商品檢索。</p><p>  控制層Struts的實現(xiàn):顧客請求均通過直接調(diào)用Action類的相應(yīng)方法進(jìn)行處理, Action類中的方法在收到請求后,根據(jù)具體的請求調(diào)用自己寫的方法或者

89、相應(yīng)DAO方法完成數(shù)據(jù)庫的訪問與操作,并將檢索得到的結(jié)果返回給Action, Action將最終的處理結(jié)果保存到request對象中,由相應(yīng)的JSP頁面展示出來。</p><p>  圖5-5商品和特價商品檢索、瀏覽模塊圖</p><p><b>  個人信息管理模塊</b></p><p>  顧客在成功登錄后,可以對訂單、用戶信息進(jìn)行管理。

90、</p><p>  圖5-6個人信息管理模塊圖</p><p><b>  購物車/收藏夾模塊</b></p><p>  未登錄會員即可進(jìn)行購物車的管理;登錄會員才能進(jìn)行收藏夾操作。</p><p>  圖5-7購物車/收藏夾模塊圖</p><p><b>  后臺登錄模塊</

91、b></p><p>  后臺管理員按職責(zé)與權(quán)限的不同共分為4種,共用同一個后臺登錄模塊,系統(tǒng)根據(jù)輸入的賬號和密碼來確定管理員的身份,以決定該管理員的操作權(quán)限。</p><p>  圖5-8后臺登錄模塊圖</p><p><b>  后臺商品管理模塊</b></p><p>  此模塊的頁面包括有瀏覽商品分類頁面P

92、roductApp.jsp,新增商品分類頁面ProductInsert.jsp,修改商品分類頁面ProductEdit.jsp。</p><p>  圖5-9后臺商品和特價商品管模塊圖</p><p>  后臺商品目錄管理模塊</p><p>  管理員成功登錄后,才能進(jìn)行對商品目錄的管理操作。</p><p>  圖5-10后臺商品目錄管模

93、塊圖</p><p><b>  后臺訂單管理模塊</b></p><p>  圖5-11后臺訂單管模塊圖</p><p>  訂單是由會員在購物后,成功提交訂單后產(chǎn)生的,從下單到結(jié)單中間還要經(jīng)過訂單受理和處理的過程。管理員成功登錄后,才能進(jìn)行訂單的管理操作。</p><p><b>  后臺會員管理模塊<

94、;/b></p><p>  管理員登錄成功后,才能對各會員的信息進(jìn)行管理操作。</p><p>  圖5-12后臺會員管理模塊圖</p><p><b>  系統(tǒng)實現(xiàn)</b></p><p><b>  環(huán)境配置</b></p><p><b>  啟動My

95、SQL</b></p><p>  首先在服務(wù)中將MySQL啟動,再進(jìn)入其可視界面管理工具M(jìn)ySQL Query Browser。</p><p>  圖6-1 MySQL Query Browser圖</p><p>  在Myeclipse6.0中進(jìn)行開發(fā)與測試,配置Tomcat后開啟。</p><p>  圖6-2 MyEc

96、lipse界面圖</p><p><b>  主要界面及代碼</b></p><p><b>  前臺界面顯示及代碼</b></p><p>  在頁面的右上角為導(dǎo)航條,點擊可進(jìn)入相應(yīng)頁面;在頁面的中上角為搜索商品區(qū),。中間分為左右兩部分,左邊為商品類別,點擊可以瀏覽此類別的商品,右邊分別為熱薦商品和打折專賣,都以3個為單

97、位在首頁展示出來,可以進(jìn)行查看詳情操作。</p><p>  圖6-3 home.jsp首頁界面圖</p><p>  商品目錄顯示CategoryShowAction</p><p>  LinkedHashMap<Category,List<Category>> map=new LinkedHashMap<Category,List

98、<Category>>();</p><p>  List<Category> l=md.findCategoryNameAll(1);//父目錄</p><p>  for(int i=0;i<l.size();i++){</p><p>  List<Category> l1=md.findCategoryName

99、All(0, l.get(i).getCategoryIdParent());</p><p>  map.put(l.get(i), l1);</p><p><b>  }</b></p><p>  request.setAttribute("showCategory", map);</p><p&

100、gt;  商品顯示JSP頁面主要代碼:</p><p>  <logic:notEmpty name="showdiscount"></p><p>  <logic:iterate id="r" indexId="i" name="showdiscount"></p>&

101、lt;p>  <DIV class=item><DIV class=pic></p><p>  <html:link action="/w/detailShow.do?prodid=${r.productId}"></p><p>  <html:img page="${r.thumbnail}" b

102、order="0" width="94"height="125" /></p><p>  </html:link></DIV><DIV class=Name></p><p>  <html:link action="/w/detailShow.do?prodid=${r

103、.productId}">${r.productname }</html:link></p><p>  </DIV><LI></p><p>  <STRIKE><fmt:formatNumber value="${r.price}" pattern="#,#00.00" /&g

104、t; </STRIKE></LI><LI></p><p>  ${r.discount }折</LI><LI></p><p>  <fmt:formatNumber value="${r.price/100*r.discount}" pattern="#,#00.00" />

105、</LI></DIV></logic:iterate></logic:notEmpty></p><p>  點擊左邊“圖書”一欄,分頁顯示圖書這一類商品。首先左邊顯示的是這一類折扣排行榜。這時候點擊第一個商品的購買按鈕,將會轉(zhuǎn)至購物車頁面(圖6-7);點擊收藏,跳轉(zhuǎn)至登陸頁面(圖6-5);點擊第一個商品名稱或者圖片,跳轉(zhuǎn)商品詳細(xì)介紹(圖6-9)。</p>

106、;<p>  圖6-4 browser.jsp 分類顯示商品</p><p>  下面為分頁顯示的控制實現(xiàn)代碼部分及action中代碼部分:</p><p>  <logic:notEmpty name="page"></p><p>  <logic:equal name="pagecur"

107、value="1"></p><p><b>  上一頁</b></p><p>  </logic:equal><logic:notEqual name="pagecur" value="1"></p><p>  <html:link actio

108、n="/w/browseShow.do?id=${sid}&&pid=${pagecur-1}">上一頁</html:link></logic:notEqual></p><p>  <logic:iterate id="r" indexId="i" name="page">&

109、lt;/p><p>  <logic:equal name="pagecur" value="${r}"></p><p>  <A class=page-in1>${r}</A>&nbsp;</logic:equal></p><p>  <logic:notEqua

110、l name="pagecur" value="${r}"></p><p>  <html:link action="/w/browseShow.do?id=${sid}&&pid=${r}"</p><p>  styleClass="page-out1">${r}<

111、/html:link>&nbsp;</logic:notEqual></p><p>  </logic:iterate><logic:equal name="pagecur" value="${PageCount}"></p><p>  下一頁</logic:equal></p&

112、gt;<p>  <logic:notEqual name="pagecur" value="${PageCount}"></p><p>  <html:link action="/w/browseShow.do?id=${sid}&&pid=${pagecur+1}">下一頁</html:l

113、ink></logic:notEqual></logic:notEmpty></p><p>  BrowseShowAction主要實現(xiàn)代碼:</p><p>  if(pid<1){</p><p><b>  pid=1;}</b></p><p>  int count=psd

114、.findCount(sid);</p><p>  if(pid>psd.getPageCount()){</p><p>  pid=psd.getPageCount();}</p><p>  List ll = psd.showProduct(sid, pid);</p><p>  request.setAttribute(&

115、quot;showProduct", ll);</p><p>  int PageSize = psd.getPageSize();</p><p>  request.setAttribute("PageSize", PageSize);</p><p>  int PageCount = psd.getPageCount();&l

116、t;/p><p>  request.setAttribute("PageCount", PageCount);</p><p>  request.setAttribute("count", count);</p><p>  int t=(pid-1)*3;</p><p>  request

117、.setAttribute("from", t);</p><p>  request.setAttribute("pagecur", pid);</p><p>  List page = new ArrayList();</p><p>  for (int i = 1; i <= PageCount; i++)&

118、lt;/p><p>  page.add(i);</p><p>  request.setAttribute("page", page);</p><p>  用戶登陸界面及錯誤信息顯示,點擊新用戶注冊,跳轉(zhuǎn)到注冊頁面(圖6-6)。</p><p>  圖6-5 login.jsp提示登陸頁面</p><

119、p>  顧客必須注冊和登錄才能進(jìn)入收藏夾和我的賬戶,當(dāng)顧客要注冊時進(jìn)入注冊頁面時(伴有部分錯誤信息):</p><p>  圖6-6 register.jsp注冊頁面</p><p>  <!-- 用戶密碼驗證 --></p><p>  <field property="logonpassword"</p>

120、<p>  depends="required,minlength,maxlength,validwhen"></p><p>  <arg0 key="label.logonpassword" /></p><p>  <arg1 name="minlength" key="${va

121、r:minlength}"</p><p>  resource="false" /></p><p>  <arg1 name="maxlength" key="${var:maxlength}"</p><p>  resource="false" />&

122、lt;/p><p>  <arg1 name="validwhen" key="label.relogonpassword" /></p><p>  <msg name="validwhen" key="errors.equals" /></p><p><b

123、>  <var></b></p><p>  <var-name>minlength</var-name></p><p>  <var-value>6</var-value></p><p><b>  </var></b></p><

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論