購(gòu)物網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩59頁(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><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p> 題 目:基于Struts + Spring + Hibernate</p><p> 的購(gòu)物網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘 要</b></p><p>  本設(shè)計(jì)運(yùn)用當(dāng)前主流的Java技術(shù),采用MVC開(kāi)發(fā)模

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

3、收藏夾功能、個(gè)人信息維護(hù)管理功能;后臺(tái)部分主要實(shí)現(xiàn)管理員管理商品信息、訂單信息、目錄信息和用戶信息。其中購(gòu)物車可以在用戶未登錄的情況下操作,并且原有的商品與現(xiàn)有的商品可以相互疊加。</p><p>  關(guān)鍵詞:網(wǎng)上購(gòu)物系統(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í)和技術(shù)背景2</p><p>  2.1J2EE概述2</p><p>  2.2

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

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對(duì)性能的規(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運(yùn)行環(huán)境需求10</p><p>  4系統(tǒng)概要設(shè)計(jì)11</p><p>  4.1總體設(shè)計(jì)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用戶顧客注冊(cè)、登錄模塊12</p><p>  4.2.2商品檢索、瀏覽模塊13</p><p>  4.2.3個(gè)人信息

14、管理模塊13</p><p>  4.2.4購(gòu)物車/收藏夾模塊13</p><p>  4.2.5后臺(tái)登錄模塊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會(huì)員管理模塊16</p><p>  5系統(tǒng)詳細(xì)設(shè)計(jì)18</p><p>  5.1數(shù)據(jù)庫(kù)設(shè)計(jì)18</p><p>  5.1.1ER圖設(shè)計(jì)18</p><p>  5.1.2數(shù)據(jù)表設(shè)計(jì)19</p><p>  5.2架構(gòu)設(shè)計(jì)21</p><p>  

16、5.2.1帶日志功能的設(shè)計(jì)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自動(dòng)生成的文件25</p><p>  5.2.6

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

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

19、  6系統(tǒng)實(shí)現(xiàn)31</b></p><p>  6.1環(huán)境配置31</p><p>  6.2主要界面及代碼32</p><p>  6.2.1前臺(tái)界面顯示及代碼32</p><p>  6.2.2后臺(tái)界面顯示及代碼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á)國(guó)家通過(guò)Internet進(jìn)行交易已

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

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

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

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

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

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

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

28、 a. 高可用性:來(lái)滿足現(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è)邏輯中分離出來(lái),利用成熟的INTERNET技術(shù)使用戶在管理上所花費(fèi)的時(shí)間最小化。</p><p>  J2EE正式降低了開(kāi)發(fā)這種中間層服務(wù)的成本和復(fù)雜程度,因而使得服務(wù)可以被快速的展開(kāi),并能夠更輕松的面對(duì)競(jìng)爭(zhēng)中的壓力。J2EE 架構(gòu)圖見(jiàn)圖2-1</p><p><b>  MVC設(shè)計(jì)模式</b></p><p>  MVC框架把業(yè)

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

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

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

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

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

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

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

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

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

39、l)和類的映射文件(XML Mapping)中的內(nèi)容,生成SessionFactory實(shí)例,并由它的openSession0方法負(fù)責(zé)每次所需的Session對(duì)象的創(chuàng)建,在Session對(duì)象的方法中借助持久化對(duì)象來(lái)完成對(duì)數(shù)據(jù)庫(kù)的操作,而不需使用JDBC和SQL進(jìn)行數(shù)據(jù)的操作。這樣就避免手工編寫(xiě)訪問(wèn)數(shù)據(jù)持久層的方法,可以大幅度減少開(kāi)發(fā)時(shí)人工使用SQL和JDBC處理數(shù)據(jù)的時(shí)間,降低了開(kāi)發(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取代實(shí)體Bean,提供具體的數(shù)據(jù)庫(kù)數(shù)據(jù)處理操作,三者進(jìn)行有機(jī)整合,構(gòu)成輕量級(jí)J2EE應(yīng)用框架。</p><p>  整個(gè)輕

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

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

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

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

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

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

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

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

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

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

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

52、<p>  要按照嚴(yán)格的格式輸入,否則數(shù)據(jù)庫(kù)不給予響應(yīng)進(jìn)行處理;</p><p>  查詢時(shí)要保證所有包含查詢關(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>  長(zhǎng)久保存的數(shù)據(jù)存入數(shù)據(jù)庫(kù);</p><p>  購(gòu)物車給于15天保存期;</p><p>&

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

73、gt;  ER圖設(shè)計(jì)</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)系將會(huì)在Hibernate的映射文件中體現(xiàn)出來(lái)。</p><p>  注冊(cè)用戶與地址欄為一對(duì)多關(guān)聯(lián):一個(gè)用戶可以有多個(gè)地址,而每個(gè)地址只能屬于一個(gè)用戶。</p><p>  注冊(cè)用

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

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

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

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

78、  Web.xml配置文件</p><p>  在web.xml中配置中文過(guò)濾器、Struts標(biāo)簽庫(kù)、Struts中央控制器ActionServlet及默認(rèn)的歡迎文件列表等。下圖為過(guò)濾器配置文件。</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自動(dòng)生成的方法聯(lián)結(jié)</p><p>  Hibernate自動(dòng)生成的文件 </p><p>  其中Abstract-前綴的為基類,DAO為方法。</p><p><b>  工程包層次結(jié)構(gòu)</b></p

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

84、truts存放所有Struts的FormBean、Action類及消息資源文件</p><p>  b存放所有后臺(tái)管理所用到的JSP頁(yè)面</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è)計(jì)</b></p><p><b>  顧客注冊(cè)、登錄模塊</b></p><p>  顧客只有通過(guò)注冊(cè)才能成為會(huì)員,會(huì)員只有登錄后才能進(jìn)行管理自己的收藏夾、訂單等操作。</p><p>  圖5-4顧客

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

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

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

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

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

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

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

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

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

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

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

97、位在首頁(yè)展示出來(lái),可以進(jìn)行查看詳情操作。</p><p>  圖6-3 home.jsp首頁(yè)界面圖</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頁(yè)面主要代碼:</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>  點(diǎn)擊左邊“圖書(shū)”一欄,分頁(yè)顯示圖書(shū)這一類商品。首先左邊顯示的是這一類折扣排行榜。這時(shí)候點(diǎn)擊第一個(gè)商品的購(gòu)買(mǎi)按鈕,將會(huì)轉(zhuǎn)至購(gòu)物車頁(yè)面(圖6-7);點(diǎn)擊收藏,跳轉(zhuǎn)至登陸頁(yè)面(圖6-5);點(diǎn)擊第一個(gè)商品名稱或者圖片,跳轉(zhuǎn)商品詳細(xì)介紹(圖6-9)。</p>

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

107、value="1"></p><p><b>  上一頁(yè)</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}">上一頁(yè)</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>  下一頁(yè)</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}">下一頁(yè)</html:l

113、ink></logic:notEqual></logic:notEmpty></p><p>  BrowseShowAction主要實(shí)現(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>  用戶登陸界面及錯(cuò)誤信息顯示,點(diǎn)擊新用戶注冊(cè),跳轉(zhuǎn)到注冊(cè)頁(yè)面(圖6-6)。</p><p>  圖6-5 login.jsp提示登陸頁(yè)面</p><

119、p>  顧客必須注冊(cè)和登錄才能進(jìn)入收藏夾和我的賬戶,當(dāng)顧客要注冊(cè)時(shí)進(jìn)入注冊(cè)頁(yè)面時(shí)(伴有部分錯(cuò)誤信息):</p><p>  圖6-6 register.jsp注冊(cè)頁(yè)面</p><p>  <!-- 用戶密碼驗(yàn)證 --></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. 本站所有資源如無(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)論