版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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> 基于J2EE架構(gòu)的電子商務(wù)系統(tǒng)設(shè)計(jì)</p><p><b> 教學(xué)單位: </b></p><p><b> 專(zhuān)業(yè)名稱(chēng): </b></p><p><b> 學(xué) 號(hào): </b&g
2、t;</p><p><b> 學(xué)生姓名: </b></p><p><b> 指導(dǎo)教師: </b></p><p><b> 指導(dǎo)單位: </b></p><p><b> 完成時(shí)間: </b></p><p> 基于J
3、2EE架構(gòu)的電子商務(wù)系統(tǒng)設(shè)計(jì)</p><p> 【摘要】 IBM公司對(duì)未來(lái)世界有句預(yù)言----“要么電子商務(wù),要么無(wú)商可務(wù)!”。隨著經(jīng)濟(jì)全球化的發(fā)展,網(wǎng)絡(luò)影響著人們生活的方方面面?,F(xiàn)如今,電子商務(wù)風(fēng)暴越刮越烈,人們?cè)絹?lái)越傾向于網(wǎng)上購(gòu)物,足不出戶(hù)就可以在網(wǎng)上買(mǎi)到各種各樣的商品。所以,如何建立適合公司的電子商務(wù)系統(tǒng)成則為了許多企業(yè)家的煩惱。出于此現(xiàn)狀,本文主要研究了如何建立一個(gè)網(wǎng)上購(gòu)書(shū)系統(tǒng)。</p>
4、<p> 本人所設(shè)計(jì)制作的“珍書(shū)網(wǎng)”網(wǎng)上購(gòu)書(shū)系統(tǒng),是建立在J2EE架構(gòu)上的,并運(yùn)用了Struts2框架,JQuery框架,Ajax技術(shù)等現(xiàn)如今熱門(mén)的技術(shù)。該系統(tǒng)主要擁有產(chǎn)品瀏覽,分類(lèi)顯示,注冊(cè)登錄,購(gòu)物車(chē),下訂單五大模塊。各個(gè)模塊間相互依賴(lài),并共同組成了一個(gè)較為完整的網(wǎng)上購(gòu)書(shū)系統(tǒng)。</p><p> 【關(guān)鍵詞】 電子商務(wù),J2EE, Struts2,網(wǎng)上購(gòu)書(shū)</p><p&g
5、t; Design of E-Commerce System based on J2EE Architecture</p><p> 【Abstract】 IBM says when predicting the future world ---- “Either electronic commerce or no commercial
6、 affairs”. As the economic globalization is developing, the computer network is affecting every aspect of human life. Today, e-commerce storm based on computer network is becoming stronger and stronger. More and more peo
7、ple tend to do online shopping, and they can buy any kinds of commodities via the network without going out of their houses. Therefore, how to establish an e-commerce system su</p><p> 【Key Words】 E-comme
8、rce,J2EE,Struts2,Online book shopping</p><p><b> 目錄</b></p><p><b> 第1章 緒論1</b></p><p><b> 1.1項(xiàng)目背景1</b></p><p> 1.1.1電子商務(wù)的定義1&
9、lt;/p><p> 1.1.2創(chuàng)建電子商務(wù)網(wǎng)站的必要性2</p><p> 1.2 需求分析2</p><p> 1.2.1 項(xiàng)目概況2</p><p> 第2章 技術(shù)背景4</p><p><b> 2.1框架簡(jiǎn)介4</b></p><p> 2.2
10、J2EE 框架4</p><p> 2.3 Struts2框架5</p><p> 2.4 OGNL表達(dá)式6</p><p> 2.5 JQuery 框架7</p><p> 2.6 AJAX技術(shù)7</p><p> 第3章 系統(tǒng)設(shè)計(jì)9</p><p><b>
11、 3.1系統(tǒng)設(shè)計(jì)9</b></p><p> 3.1.1系統(tǒng)架構(gòu)9</p><p> 3.1.2 代碼文件詳情9</p><p> 3.2數(shù)據(jù)庫(kù)設(shè)計(jì)11</p><p> 3.2.1數(shù)據(jù)庫(kù)簡(jiǎn)介11</p><p> 3.2.2概念模型設(shè)計(jì)(E-R圖)12</p><
12、p> 第4章 系統(tǒng)實(shí)現(xiàn)14</p><p> 4.1模塊實(shí)現(xiàn)14</p><p> 4.1.1產(chǎn)品瀏覽模塊15</p><p> 4.1.2注冊(cè)登陸模塊17</p><p> 4.1.3分類(lèi)顯示模塊22</p><p> 4.1.4購(gòu)物車(chē)模塊23</p><p>
13、 4.1.5訂單模塊26</p><p><b> 結(jié)論30</b></p><p><b> 參考文獻(xiàn)31</b></p><p><b> 致謝33</b></p><p><b> 圖目錄</b></p><p&g
14、t; 圖2.1 J2EE框架架構(gòu)圖5</p><p> 圖2.2 Struts2框架6</p><p> 圖2.3 Struts2流程圖7</p><p> 圖3.1 系統(tǒng)架構(gòu)圖10</p><p> 圖3.2 代碼文件12</p><p> 圖3.3數(shù)據(jù)庫(kù)ER圖13</p>&l
15、t;p> 圖4.1模塊實(shí)現(xiàn)圖15</p><p> 圖4.2產(chǎn)品瀏覽頁(yè)面16</p><p> 圖4.3產(chǎn)品瀏覽模塊16</p><p> 圖4.4登陸頁(yè)面18</p><p> 圖4.5注冊(cè)登陸模塊18</p><p> 圖4.6注冊(cè)與注冊(cè)驗(yàn)證頁(yè)面20</p><p&
16、gt; 圖4.7郵箱驗(yàn)證頁(yè)面22</p><p> 圖4.8分類(lèi)顯示頁(yè)面23</p><p> 圖4.9分類(lèi)顯示模塊23</p><p> 圖4.10購(gòu)物車(chē)頁(yè)面24</p><p> 圖4.11購(gòu)物車(chē)模塊25</p><p> 圖4.12訂單頁(yè)面27</p><p>
17、圖4.13訂單模塊27</p><p> 圖4.13地址管理頁(yè)面28</p><p><b> 表目錄</b></p><p> 表3.1表現(xiàn)層文件及功能10</p><p> 表3.2控制層文件及功能11</p><p> 表3.3業(yè)務(wù)層文件及功能11</p>
18、<p> 表3.4持久層文件及功能11</p><p> 表3.5其他文件及功能11</p><p> 表3.6數(shù)據(jù)庫(kù)表功能13</p><p><b> 第1章 緒論</b></p><p><b> 1.1項(xiàng)目背景</b></p><p> 根
19、據(jù)中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)2009年發(fā)布的《中國(guó)網(wǎng)絡(luò)購(gòu)物市場(chǎng)研究報(bào)告》,截至2009年6月,我國(guó)網(wǎng)購(gòu)用戶(hù)規(guī)模已達(dá)8788萬(wàn),同比增加2459萬(wàn),年增長(zhǎng)率為38.9%。值得注意的是,用戶(hù)對(duì)C2C(Customer to Customer,消費(fèi)者之間的電子商務(wù))購(gòu)物網(wǎng)站。相對(duì)而言,B2C購(gòu)物網(wǎng)站在產(chǎn)品品質(zhì)和服務(wù)質(zhì)量上都領(lǐng)先于C2C購(gòu)物網(wǎng)站。因此,擁有自己的B2C網(wǎng)站是每個(gè)企業(yè)在當(dāng)今信息時(shí)代實(shí)現(xiàn)飛躍的一個(gè)轉(zhuǎn)折點(diǎn)。</p>
20、<p> 報(bào)告中還指出,2009年上半年有85.7%的網(wǎng)民在網(wǎng)上查詢(xún)過(guò)商品信息,但是只有26%的網(wǎng)民實(shí)現(xiàn)了網(wǎng)絡(luò)購(gòu)物。這表明,我國(guó)存在著龐大的潛在網(wǎng)購(gòu)用戶(hù)群體,只是進(jìn)行必要的引導(dǎo)和培養(yǎng),這部分用戶(hù)將為網(wǎng)購(gòu)市場(chǎng)帶來(lái)廣闊的前景。IBM公司對(duì)未來(lái)世界有句預(yù)言----“要么電子商務(wù),要么無(wú)商可務(wù)!”。雖然這有些夸大其詞,但從CNNIC報(bào)告發(fā)布的數(shù)據(jù)中,我們可以清晰的意思到電子商務(wù)時(shí)代正向我們走來(lái)。</p><p
21、> 1.1.1電子商務(wù)的定義</p><p> 電子商務(wù)網(wǎng)站是利用軟、硬件基礎(chǔ)設(shè)施,通過(guò)Internet相互連接起來(lái)的,為用戶(hù)提供網(wǎng)頁(yè)服務(wù)(Web Server)、數(shù)據(jù)傳輸服務(wù)(FTP Server)、數(shù)據(jù)庫(kù)服務(wù)(Database Server)和郵件服務(wù)(Mail Server)等多種服務(wù)的信息載體。電子商務(wù)網(wǎng)站由服務(wù)器、工作站和各種網(wǎng)站設(shè)備作為技術(shù)支撐,通常以虛擬主機(jī)方式或主機(jī)托管方式存放和運(yùn)行,網(wǎng)
22、站一般擁有固定的域名。</p><p> 電子商務(wù)離不開(kāi)Internet,因此,在電子商務(wù)系統(tǒng)中,商務(wù)網(wǎng)站就是最基礎(chǔ)的設(shè)施。目前,在Internet上建立商務(wù)網(wǎng)站是電子商務(wù)主要的實(shí)現(xiàn)形式。</p><p> 商務(wù)網(wǎng)站是從事電子商務(wù)活動(dòng)的基礎(chǔ)平臺(tái),是企業(yè)樹(shù)立形象、展示產(chǎn)品或服務(wù)的窗口,是實(shí)現(xiàn)現(xiàn)代化辦公的標(biāo)志,是商務(wù)活動(dòng)中交易雙方信息交匯與傳遞的重要渠道,也是企業(yè)與用戶(hù)進(jìn)行交互的界面。利用
23、Internet、Web網(wǎng)站和手機(jī)網(wǎng)絡(luò)等現(xiàn)代信息工具實(shí)現(xiàn)相關(guān)業(yè)務(wù)是電子商務(wù)企業(yè)的基本特征。</p><p> 1.1.2創(chuàng)建電子商務(wù)網(wǎng)站的必要性</p><p> (1) 用戶(hù)數(shù)量龐大,蘊(yùn)涵無(wú)數(shù)商機(jī)</p><p> 全世界現(xiàn)在有數(shù)以?xún)|計(jì)的用戶(hù)接入互聯(lián)網(wǎng)。據(jù)專(zhuān)家統(tǒng)計(jì),到2010年底電子商務(wù)規(guī)??蛇_(dá)5700億,比2009年增長(zhǎng)一倍。另一個(gè)快速增長(zhǎng)的電子商務(wù)網(wǎng)站發(fā)
24、布平臺(tái)----手機(jī)網(wǎng)絡(luò)的發(fā)展也很快。截至2009年6月底,中國(guó)手機(jī)上網(wǎng)用戶(hù)已達(dá)到1.554億。</p><p> (2) 提供商業(yè)信息,及時(shí)更新變化</p><p> 利用網(wǎng)絡(luò)來(lái)建立黃頁(yè)廣告,能夠更加及時(shí)地提供企業(yè)的商業(yè)信息,并隨時(shí)提供最新的商業(yè)資訊。</p><p> (3) 加強(qiáng)與客戶(hù)的聯(lián)系,提供優(yōu)質(zhì)的服務(wù)</p><p> 通過(guò)
25、構(gòu)建商務(wù)網(wǎng)站,企業(yè)可以在網(wǎng)頁(yè)上每天24小時(shí)向成千上萬(wàn)的人提供聯(lián)系與溝通的渠道,任何人在任何時(shí)間都可以利用這個(gè)渠道。當(dāng)今的商務(wù)過(guò)程更注重為客戶(hù)提供優(yōu)質(zhì)的服務(wù),在網(wǎng)站上可以采用更多、更便捷的途徑為客戶(hù)提供各種服務(wù)。</p><p> (4) 加快新產(chǎn)品的發(fā)布周期,及時(shí)反饋用戶(hù)信息</p><p> 利用網(wǎng)絡(luò),新產(chǎn)品和新服務(wù)可以迅速發(fā)布到全球范圍,其成本低廉。通過(guò)增加一個(gè)新項(xiàng)目來(lái)更新網(wǎng)頁(yè)所花
26、費(fèi)的費(fèi)用只是印刷一本新產(chǎn)品目錄的零頭。</p><p><b> 1.2 需求分析</b></p><p> 1.2.1 項(xiàng)目概況</p><p> “珍書(shū)網(wǎng)”電子商務(wù)系統(tǒng)主要包含有五大模塊,分別是:產(chǎn)品瀏覽,注冊(cè)登陸,分類(lèi)顯示,購(gòu)物車(chē)和訂單模塊。</p><p> 本系統(tǒng)的頁(yè)面顯示是基于頁(yè)面框架的,主要使用CS
27、S+DIV的布局方式。它的作用是把一個(gè)完整的頁(yè)面分割成幾個(gè)不同的區(qū)域。這樣做的好處是,某些所有頁(yè)面都有的共同的部分可以只寫(xiě)一次,減少代碼量,加快開(kāi)發(fā)速度。并且使用框架可以非常方便的完成網(wǎng)頁(yè)導(dǎo)航工作,不但可以讓網(wǎng)站的結(jié)構(gòu)更加清晰,而且可以讓各大搜索引擎更容易搜索到網(wǎng)站。其次,各個(gè)框架之間決不會(huì)存在相互干擾問(wèn)題。利用框架最大的特點(diǎn)就是使網(wǎng)站的風(fēng)格一致,把一個(gè)網(wǎng)站中頁(yè)面相同的部分單獨(dú)制作成一個(gè)頁(yè)面,作為框架結(jié)構(gòu)的一個(gè)子框架的內(nèi)容給整個(gè)網(wǎng)站公用
28、。</p><p> 頁(yè)面與后臺(tái)的數(shù)據(jù)交換是通過(guò)OGNL表達(dá)式和EL表達(dá)式來(lái)綁定交換的。這樣一來(lái),可以簡(jiǎn)化數(shù)據(jù)交換的代碼,比起傳統(tǒng)的servlet中使用的Request,Response,Session等數(shù)據(jù)載體來(lái)進(jìn)行數(shù)據(jù)交換,它無(wú)疑方便很多。</p><p> 系統(tǒng)的請(qǐng)求,跳轉(zhuǎn)是由Struts2框架來(lái)控制的。使用Struts2框架來(lái)控制請(qǐng)求的跳轉(zhuǎn),只需在對(duì)應(yīng)的Struts2.xml文
29、件中配置完成就行了。與傳統(tǒng)的servlet相比,它可以大大減少開(kāi)發(fā)人員編寫(xiě)的代碼量。如使用傳統(tǒng)的servlet,首先必須獲取當(dāng)前完整的URL,并對(duì)其進(jìn)行切割,找出請(qǐng)求語(yǔ)句,然后使用大量的if-else語(yǔ)句來(lái)判斷請(qǐng)求,才能找到相應(yīng)的方法。并且返回?cái)?shù)據(jù)必須使用Response,Session,ApplicationContext等交互給頁(yè)面來(lái)顯示。</p><p><b> 第2章 技術(shù)背景</b&
30、gt;</p><p><b> 2.1框架簡(jiǎn)介</b></p><p> 框架(Framework)是指整個(gè)或者部分系統(tǒng)的可重用設(shè)計(jì),它表現(xiàn)為一組抽象構(gòu)件以及構(gòu)件實(shí)例之間的交互的方法;另一種定義認(rèn)為,它是被應(yīng)用開(kāi)發(fā)者自由定的應(yīng)用系統(tǒng)的骨架。前者是從應(yīng)用方面陳述而后者是從目的方面給出了定義??梢哉f(shuō),框架就是個(gè)可重用的設(shè)計(jì)構(gòu)件,它制定了程序的體系架構(gòu),闡明了整個(gè)系統(tǒng)
31、的設(shè)計(jì)、協(xié)作構(gòu)件之間的相互依賴(lài)關(guān)系、責(zé)任分配和控制流程的規(guī)則,表現(xiàn)出抽象類(lèi)與其實(shí)例間的依賴(lài)方法,它為構(gòu)件重用提供了連接關(guān)系。</p><p> 應(yīng)用框架的概念很簡(jiǎn)單。它并不是應(yīng)用程序中包含構(gòu)件的程序片段,而是實(shí)現(xiàn)了應(yīng)用系統(tǒng)開(kāi)發(fā)中普遍使用的功能的底層服務(wù)。使用應(yīng)用框架的開(kāi)發(fā)人員可以在一個(gè)常用功能已實(shí)現(xiàn)的平臺(tái)上來(lái)開(kāi)始具體系統(tǒng)的開(kāi)發(fā)。它強(qiáng)調(diào)的是軟件設(shè)計(jì)重用性和系統(tǒng)功能的可擴(kuò)展性,以縮短大型應(yīng)用系統(tǒng)軟件的開(kāi)發(fā)周期,提升
32、開(kāi)發(fā)質(zhì)量。與傳統(tǒng)的面向?qū)ο箝_(kāi)發(fā)相比較,應(yīng)用框架更加注重于專(zhuān)業(yè)領(lǐng)域的模塊重用。應(yīng)用框架具有專(zhuān)業(yè)領(lǐng)域相關(guān)性,組件根據(jù)框架進(jìn)行復(fù)合生成可運(yùn)行的系統(tǒng)。框架的粒度越大,其中包含的領(lǐng)域知識(shí)就更加完整。</p><p> 2.2 J2EE 框架</p><p> J2EE的全稱(chēng)是Java2平臺(tái)企業(yè)版(Java 2 Platform,Enterprise Edition)。</p>&l
33、t;p> 它是一套和傳統(tǒng)應(yīng)用開(kāi)發(fā)完全不同的新的技術(shù)架構(gòu),其中包含了許多組件,主要功能是可簡(jiǎn)化并且規(guī)范了應(yīng)用系統(tǒng)的開(kāi)發(fā)與部署,進(jìn)而提高了系統(tǒng)的可移植性、安全與再用價(jià)值。</p><p> 如今,Java 2平臺(tái)擁有3個(gè)版本,它們分別是適用于小型設(shè)備和智能卡上的Java 2平臺(tái)Micro版本(Java 2 Platform Micro Edition,J2ME)、適用于桌面操作系統(tǒng)的Java 2平臺(tái)標(biāo)準(zhǔn)版(
34、Java 2 Platform Standard Edition,J2SE)、適用于服務(wù)器應(yīng)用程序的創(chuàng)建和服務(wù)的Java 2平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。</p><p> 圖2.1 J2EE框架架構(gòu)圖</p><p> 2.3 Struts2框架</p><p> Struts 2以WebWor
35、k優(yōu)秀的設(shè)計(jì)思想為核心,吸收了Struts 1的部分優(yōu)點(diǎn),建立了一個(gè)兼容WebWork和Struts 1的MVC框架,Struts 2的目標(biāo)是希望可以讓原來(lái)使用Struts 1、WebWork的開(kāi)發(fā)人員,都可以平穩(wěn)過(guò)渡到使用Struts 2框架。</p><p> 圖2.2 Struts2框架</p><p> Struts 2框架的大致處理流程如下:</p><p
36、> (1)瀏覽器發(fā)送請(qǐng)求,例如請(qǐng)求/mypage.action等。</p><p> (2)核心控制器FilterDispatcher根據(jù)請(qǐng)求決定調(diào)用合適的Action。</p><p> (3)WebWork的攔截器鏈自動(dòng)對(duì)請(qǐng)求應(yīng)用通用功能,例如workflow、validation或文件上傳等功能。</p><p> (4)回調(diào)Action的exe
37、cute方法,該execute方法先獲取用戶(hù)請(qǐng)求參數(shù),然后執(zhí)行某種數(shù)據(jù)庫(kù)操作,既可以是將數(shù)據(jù)保存到數(shù)據(jù)庫(kù),也可以從數(shù)據(jù)庫(kù)中檢索信息。實(shí)際上,因?yàn)锳ction只是一個(gè)控制器,它會(huì)調(diào)用業(yè)務(wù)邏輯組件來(lái)處理用戶(hù)的請(qǐng)求。</p><p> (5)Action的execute方法處理結(jié)果信息將被輸出到瀏覽器中,可以是HTML頁(yè)面、圖像,也可以是PDF文檔或者其他文檔。此時(shí)支持的視圖技術(shù)非常多,既支持JSP,也支持Veloc
38、ity、FreeMarker等模板技術(shù)。</p><p> 圖2.3 Struts2流程圖</p><p> 2.4 OGNL表達(dá)式</p><p> ognl – Object-Graph Navigation Language(對(duì)象圖導(dǎo)航語(yǔ)言), OGNL可以讓我們用非常簡(jiǎn)單的表達(dá)式訪(fǎng)問(wèn)對(duì)象層, Struts2中使用OGNL來(lái)做界面數(shù)據(jù)綁定,即把界面元素(
39、例如一個(gè)textfield)和對(duì)象層某個(gè)類(lèi)的某個(gè)屬性綁定在一起,修改和顯示自動(dòng)同步。根對(duì)象ValueStack的實(shí)現(xiàn)類(lèi)為OgnlValueStack配合struts標(biāo)簽使用,例如:</p><p> <s:property value="name"/></p><p> <s:property value="user.username&
40、quot;/></p><p> <s:property value=“username.length()"/></p><p> <s:property value="users[1]"/></p><p> 2.5 JQuery 框架</p><p> jQuery由美國(guó)
41、人John Resig創(chuàng)建,至今已吸引了來(lái)自世界各地的眾多javascript高手加入其team,包括來(lái)自德國(guó)的Jörn Zaefferer,羅馬尼亞的Stefan Petre等等。jQuery是繼prototype之后又一個(gè)優(yōu)秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE,寫(xiě)更少的代碼,做更多的事情。它是輕量級(jí)的js庫(kù)(壓縮后只有21k) ,這是其它的js庫(kù)所不及的,它兼容CSS3,還
42、兼容各種瀏覽器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery是一個(gè)快速的,簡(jiǎn)潔的javaScript庫(kù),使用戶(hù)能更方便地處理HTML documents、events、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供AJAX交互。jQuery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。jQuery能夠使用戶(hù)的html頁(yè)保持代碼和html內(nèi)容
43、分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需定義id即可。</p><p> 2.6 AJAX技術(shù)</p><p> Ajax的全稱(chēng)是:AsynchronousJavaScript+XML,Ajax不是一個(gè)技術(shù),它實(shí)際上是幾種技術(shù),每種技術(shù)都有其獨(dú)特這處,合在一起就成了一個(gè)功能強(qiáng)大的新技術(shù)。Ajax包括:XHTML和CSS 使用文檔對(duì)象(Document
44、ObjectModel)作動(dòng)態(tài)顯示和交互 使用XML和XSLT做數(shù)據(jù)交互和操作使XMLHttpRequest進(jìn)行異步數(shù)據(jù)接收使用JavaScript將它們綁定在一起。</p><p> Ajax(AsynchronousJavaScriptandXML)是結(jié)合了Java技術(shù)、XML以及JavaS-</p><p> cript等編程技術(shù),可以讓開(kāi)發(fā)人員構(gòu)建基于Java技術(shù)的W
45、eb應(yīng)用,并打破了使用頁(yè)面重載的慣例。 </p><p> Ajax是使用客戶(hù)端腳本與Web服務(wù)器交換數(shù)據(jù)的Web應(yīng)用開(kāi)發(fā)方法。這樣,Web頁(yè)面不用打斷交互流程進(jìn)行重新加裁,就可以動(dòng)態(tài)地更新。使用Ajax,用戶(hù)可以創(chuàng)建接近本地桌面應(yīng)用的直接、高可用、更豐富、更動(dòng)態(tài)的Web用戶(hù)界面。 </p><p> 異步JavaScript和XML(AJAX)不是什么新技術(shù),而是
46、指這樣一種方法:使用幾種現(xiàn)有技術(shù)——包括級(jí)聯(lián)樣式表(CSS)、JavaScript、XHTML、XML和可擴(kuò)展樣式語(yǔ)言轉(zhuǎn)換(XSLT),開(kāi)發(fā)外觀(guān)及操作類(lèi)似桌面軟件的Web應(yīng)用軟件。實(shí)現(xiàn)Ajax的所有組件都已存在了許多年。AdaptivePath的用戶(hù)體驗(yàn)戰(zhàn)略部門(mén)主管兼創(chuàng)辦合伙人JesseJamesGarrett今年2月發(fā)表在AdaptivePath網(wǎng)站上的一篇文章中杜撰了這個(gè)術(shù)語(yǔ)。</p><p> 異步這個(gè)詞
47、是指AJAX應(yīng)用軟件與主機(jī)服務(wù)器進(jìn)行聯(lián)系的方式。如果使用舊模式,每當(dāng)用戶(hù)執(zhí)行某種操作、向服務(wù)器請(qǐng)求獲得新數(shù)據(jù),Web瀏覽器就會(huì)更新當(dāng)前窗口。如果使用AJAX的異步模式,瀏覽器就不必等用戶(hù)請(qǐng)求操作,也不必更新整個(gè)窗口就可以顯示新獲取的數(shù)據(jù)。只要來(lái)回傳送采用XML格式的數(shù)據(jù),在瀏覽器里面運(yùn)行的JavaScript代碼就可以與服務(wù)器進(jìn)行聯(lián)系。JavaScript代碼還可以把樣式表加到檢索到的數(shù)據(jù)上,然后在現(xiàn)有網(wǎng)頁(yè)的某個(gè)部分加以顯示。</
48、p><p><b> 第3章 系統(tǒng)設(shè)計(jì)</b></p><p><b> 3.1系統(tǒng)設(shè)計(jì)</b></p><p><b> 3.1.1系統(tǒng)架構(gòu)</b></p><p> 本電子商務(wù)網(wǎng)站采用四層架構(gòu):</p><p> (1) 表現(xiàn)層:JSP頁(yè)面 涉
49、及標(biāo)簽,OGNL表達(dá)式,jQuery,Ajax</p><p> (2) 控制層:使用Struts2控制器,涉及struts.xml配置</p><p> (3) 業(yè)務(wù)層:Action組件</p><p> (4) 持久層:DAO組件</p><p> 圖3.1 系統(tǒng)架構(gòu)圖</p><p> 3.1.2 代碼
50、文件詳情</p><p> 表3.1表現(xiàn)層文件及功能</p><p> 表3.2控制層文件及功能</p><p> 表3.3業(yè)務(wù)層文件及功能</p><p> 表3.4持久層文件及功能</p><p> 表3.5其他文件及功能</p><p><b> 圖3.2 代碼文件&
51、lt;/b></p><p><b> 3.2數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 3.2.1數(shù)據(jù)庫(kù)簡(jiǎn)介</p><p> (1) 數(shù)據(jù)庫(kù)是信息系統(tǒng)的核心和基礎(chǔ),把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來(lái),提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫(kù)中獲得所需的信息。</p><p&g
52、t; (2) 數(shù)據(jù)庫(kù)是信息系統(tǒng)的各個(gè)部分能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在。</p><p> (3) 數(shù)據(jù)庫(kù)設(shè)計(jì)是信息系統(tǒng)開(kāi)發(fā)和建設(shè)的重要組成部分。</p><p> 3.2.2概念模型設(shè)計(jì)(E-R圖)</p><p> 數(shù)據(jù)模型是是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束條件,為數(shù)據(jù)庫(kù)系統(tǒng)的信息表與操作提供一個(gè)抽象的框架。
53、描述了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束。</p><p><b> 本系統(tǒng)的ER圖:</b></p><p> 圖3.3數(shù)據(jù)庫(kù)ER圖</p><p> 表3.6數(shù)據(jù)庫(kù)表功能</p><p><b> 第4章 系統(tǒng)實(shí)現(xiàn)</b></p><p><b> 4.1模
54、塊實(shí)現(xiàn)</b></p><p> “珍書(shū)網(wǎng)”電子商務(wù)系統(tǒng)包含有五大模塊,分別是:產(chǎn)品瀏覽,分類(lèi)顯示,注冊(cè)登陸,購(gòu)物車(chē)和訂單模塊。</p><p> (1) 產(chǎn)品瀏覽下包括最新上架,熱銷(xiāo)圖書(shū),編輯推薦三個(gè)小模塊。</p><p> (2) 分類(lèi)顯示下有一個(gè)分頁(yè)模塊</p><p> (3) 注冊(cè)登陸下有兩個(gè)模塊,分別是注冊(cè)和
55、登陸,注冊(cè)下又有一個(gè)注冊(cè)驗(yàn)證模塊,注冊(cè)驗(yàn)證下還有個(gè)郵箱驗(yàn)證模塊。</p><p> (4) 購(gòu)物車(chē)下?lián)碛性黾樱瑒h除,修改數(shù)量三個(gè)模塊</p><p> (5) 訂單模塊包括一個(gè)地址管理模塊</p><p><b> 圖4.1模塊實(shí)現(xiàn)圖</b></p><p> 4.1.1產(chǎn)品瀏覽模塊</p><
56、;p> 圖4.2產(chǎn)品瀏覽頁(yè)面</p><p> 圖4.3產(chǎn)品瀏覽模塊</p><p> <%@taglib prefix="s" uri="/struts-tags"%>//引入OGNL表達(dá)式</p><p> <%@include file="../common/head.jsp&q
57、uot;%>//加入共同的頭尾部頁(yè)面</p><p> <%@include file="../common/foot.jsp"%></p><p> (1) 左邊分類(lèi)導(dǎo)航欄</p><p> private List<Category> cats; //傳到頁(yè)面的數(shù)據(jù)</p><p>
58、 public String execute(){</p><p> CategoryDAO catDao=new CategoryDAOImpl();</p><p><b> try {</b></p><p> List<Category> all=catDao.findAll();//查找出所有的類(lèi)別,放入一個(gè)Lis
59、t里,然后傳到頁(yè)面</p><p> cats=findSubCatsByParentId(all,1);</p><p> for(Category c:cats){</p><p> c.setSubCats(findSubCatsByParentId(all,c.getId()));// 通過(guò)過(guò)濾獲取一級(jí)級(jí)別</p><p>&l
60、t;b> }</b></p><p> return "success";</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p> return"error";</p>
61、<p><b> }</b></p><p><b> }</b></p><p> <s:iterator value="cats" var="subcats">//使用OGNL表達(dá)式迭代cats,循環(huán)顯示出各個(gè)類(lèi)別</p><p> </s:
62、iterator></p><p> (2) 最新上架圖書(shū)(根據(jù)上架時(shí)間,取前8個(gè)商品)</p><p> select * from d_product where has_deleted=0 order by add_time desc limit 0,8</p><p><b> (3) 熱銷(xiāo)圖書(shū)</b></p>
63、<p> select * from d_product where has_deleted=0 limit 0,1</p><p> (4) 編輯推薦(三表聯(lián)合查詢(xún),根據(jù)入庫(kù)時(shí)間由近到遠(yuǎn),查出產(chǎn)品信息)</p><p> "select dp.*,db.* from d_category_product dcp join d_product dp on(dcp
64、.product_id=dp.id) join d_book db on(dp.id=db.id) where dcp.cat_id=? order by dp.add_time desc limit ?,?"</p><p> 4.1.2注冊(cè)登陸模塊</p><p><b> 圖4.4登陸頁(yè)面</b></p><p> 圖4.
65、5注冊(cè)登陸模塊</p><p><b> (1) 登陸</b></p><p> //Struts2控制登陸命令,根據(jù)不同的返回值,跳至不同的action</p><p> <action name="login" class="com.tarena.dang.action.user.LoginActi
66、on"></p><p> <result name="verify">verify_form.jsp</result></p><p> <result name="login">login_form.jsp</result></p><p> <r
67、esult name="main">/main/main.jsp</result></p><p> <result name="order" type="redirectAction">../cart/cartlist</result></p><p> <result nam
68、e="notfound">login_form.jsp</result></p><p> <result name="input">/user/login_form.jsp</result></p><p><b> </action></b></p>&
69、lt;p><b> //登陸查詢(xún)</b></p><p> UserDAO dao=new UserDAOImpl();</p><p><b> try {</b></p><p> user=dao.findByEmail(email); //根據(jù)Email找到用戶(hù)</p>&l
70、t;p> if(user==null){</p><p> return "error";//如果用戶(hù)為空,返回error</p><p><b> }</b></p><p> if(!user.isEmailVerify())</p><p> return "verif
71、y";//如果用戶(hù)未驗(yàn)證郵箱,跳至郵箱驗(yàn)證</p><p> }else if(!user.getPassword().equals(password)){</p><p> return "login";//如果成功找到用戶(hù),但密碼不匹配,跳登錄界面</p><p><b> }else{</b></
72、p><p> user.setLastLoginTime(System.currentTimeMillis());//設(shè)置最后登陸時(shí)間</p><p> String ip=ServletActionContext.getRequest().getRemoteAddr();//獲得當(dāng)前登陸IP</p><p> user.setLastLoginIp(ip); /
73、/設(shè)置當(dāng)前IP</p><p> ActionContext.getContext().getSession().put("user", user);</p><p> user.setLastLoginIp(ActionContext)</p><p> dao.update(user);</p><p> r
74、eturn "main";//如果成功找到用戶(hù),且密碼匹配,跳產(chǎn)品瀏覽界面</p><p><b> }</b></p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p> return "error
75、";</p><p><b> }</b></p><p> 圖4.6注冊(cè)與注冊(cè)驗(yàn)證頁(yè)面</p><p><b> (2) 注冊(cè)</b></p><p> private User user;//拿到頁(yè)面?zhèn)鱽?lái)的user</p><p> public St
76、ring execute(){</p><p> UserDAO userDao=new UserDAOImpl();</p><p><b> try {</b></p><p> user.setUserIntegral(0);//設(shè)置積分</p><p> user.setLastLoginTime(Sys
77、tem.currentTimeMillis());//設(shè)置最后登陸時(shí)間</p><p> String ip=ServletActionContext.getRequest().getRemoteAddr();//獲得當(dāng)前登陸IP</p><p> user.setLastLoginIp(ip);//設(shè)置當(dāng)前IP</p><p> user.setEma
78、ilVerify(false);//設(shè)置郵箱是否驗(yàn)證</p><p> String verifyCode=VerifyUtil.createVerifyCode();//生成郵箱驗(yàn)證碼</p><p> user.setEmailVerifyCode(verifyCode);//設(shè)置郵箱驗(yàn)證碼</p><p> userDao.save(user);//將u
79、ser存入d_user表中</p><p> return "success";</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p> return "error";</p><p>
80、;<b> }</b></p><p><b> }</b></p><p><b> (3) 注冊(cè)驗(yàn)證</b></p><p> //發(fā)送Ajax請(qǐng)求驗(yàn)證注冊(cè)郵箱</p><p> $(function() {</p><p> $(
81、9;#txtEmail').blur(function() {//通過(guò)ID獲取到元素,添加鼠標(biāo)焦點(diǎn)失去事件</p><p> $('#email\\.info').html('');</p><p> var txt = $('#txtEmail').val();</p><p> //判斷郵箱地址的可用
82、性</p><p> if (!txt) {</p><p> $('#email\\.info').html('<img src="../images/wrong.gif"/>郵箱地址不能為空');</p><p> emailflag = false;</p><p>
83、<b> } else {</b></p><p> //利用正則表達(dá)式判斷郵箱是否符合格式</p><p> var pattern = /\b(^['_A-Za-z0-9-]+(\.['_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(\.[A-Za-z0-9-]+)*((\.[A-Za-z0-9]{2,})|(\.[A-Za-
84、z0-9]{2,}\.[A-Za-z0-9]{2,}))$)\b/;</p><p> if (!pattern.test(txt)) {</p><p> emailflag = false;</p><p> $('#email\\.info').html('<img src="../images/wrong.gif
85、"/>郵箱地址不符合規(guī)則');</p><p><b> } else {</b></p><p> $.post("user/validEmail.action",</p><p> {"email" : txt},</p><p> functi
86、on(data) {</p><p> if (data) {</p><p> $('#email\\.info').html('<img src="../images/right.gif"/><span style="color:blue">郵箱地址可以使用</span>')
87、;</p><p> //$('#emailflag').val(true);</p><p> emailflag = true;</p><p><b> } else {</b></p><p> emailflag = false;</p><p> //判斷郵箱
88、是否已經(jīng)被注冊(cè)了</p><p> $('#email\\.info').html('<img src="../images/wrong.gif"/>郵箱地址被占用');</p><p><b> }</b></p><p><b> });</b>&l
89、t;/p><p><b> }</b></p><p><b> }</b></p><p><b> });</b></p><p><b> (4) 驗(yàn)證郵箱</b></p><p> 圖4.7郵箱驗(yàn)證頁(yè)面</p&g
90、t;<p> UserDAO dao=new UserDAOImpl();</p><p><b> try {</b></p><p> System.out.println("verifyemail:"+email); //在控制臺(tái)打印郵箱驗(yàn)證碼</p><p> User user=dao.
91、findByEmail(email);</p><p> if(user.getEmailVerifyCode().equals(verify)){ //判斷用戶(hù)輸入的驗(yàn)證碼和發(fā)的是否一致</p><p> user.setEmailVerify(true);</p><p> dao.update(user);</p><p> v
92、erifyok=true;</p><p><b> }</b></p><p> return "success";</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p> re
93、turn "error";</p><p><b> }</b></p><p><b> }</b></p><p> 4.1.3分類(lèi)顯示模塊</p><p> 圖4.8分類(lèi)顯示頁(yè)面</p><p> 圖4.9分類(lèi)顯示模塊</p>
94、<p><b> (1) 分頁(yè)</b></p><p> CategoryDAO catDao=new CategoryDAOImpl();</p><p><b> try {</b></p><p> pCat=catDao.findCategoryById(pid);</p><
95、;p> cats=catDao.findByParentId(pid);</p><p> //統(tǒng)計(jì)給個(gè)類(lèi)別一共包含多少種商品,totalNum</p><p> totalNum=catDao.numOfPid(pid);//類(lèi)別一共包含多少種商品</p><p> BookDAO bookDao=new BookDAOImpl();</p&g
96、t;<p> int begin=(page-1)*size;</p><p> maxPage=catDao.numOfProductByCategoryId(id)/size+1; //計(jì)算出最大頁(yè)數(shù)</p><p> books=bookDao.findByCatId(id,begin,size); //根據(jù)所給的三個(gè)條件找出商品集</p><
97、p> return "success";</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p> return "error";</p><p><b> }</b><
98、;/p><p> //分頁(yè)顯示查詢(xún)語(yǔ)句</p><p> "select dp.*,db.* from d_category_product dcp join d_product dp on(dcp.product_id=dp.id) join d_book db on(dp.id=db.id) where dcp.cat_id=? limit ?,?";</p&
99、gt;<p> 4.1.4購(gòu)物車(chē)模塊</p><p> 圖4.10購(gòu)物車(chē)頁(yè)面</p><p> 圖4.11購(gòu)物車(chē)模塊</p><p><b> //創(chuàng)建購(gòu)物車(chē)實(shí)例</b></p><p> public static CartImpl getInstance() {</p><
100、p> //從ActionContext中獲取session,再?gòu)膕ession中獲取購(gòu)物車(chē)實(shí)例,如果獲取不到,則新建實(shí)例,并放入session中</p><p> Map<String, Object> session = ActionContext.getContext().getSession();</p><p> CartImpl cart = (CartI
101、mpl) session.get("cart");</p><p> if (cart == null) {</p><p> cart = new CartImpl();</p><p><b> try {</b></p><p> cart.load(CookieUtil.findCoo
102、kie("cart", request));</p><p> } catch (UnsupportedEncodingException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p> session.put(&q
103、uot;cart", cart);</p><p><b> }</b></p><p> return cart;</p><p><b> }</b></p><p> (1) 購(gòu)物車(chē)中增加商品方法</p><p> //遍歷購(gòu)物車(chē),如果發(fā)現(xiàn)要添加的商
104、品的ID和購(gòu)物車(chē)中某件商品的ID相同,將返回,您以添加過(guò)商品</p><p> public boolean add(int id) {</p><p> for (CartItem item : items) {</p><p> if (item.getProduct().getId() == id) {</p><p> ret
105、urn false;</p><p><b> }</b></p><p><b> }</b></p><p> ProductDAO proDao = new ProductDAOImpl();</p><p> Product p = null;</p><p>
106、;<b> try {</b></p><p> p = proDao.findById(id);</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p>
107、<p> CartItem item = new CartItem();</p><p> item.setProduct(p);</p><p> item.setQty(1);</p><p> items.add(item); //根據(jù)ID查找出商品,然后加入購(gòu)物車(chē)中</p><p><b> try {
108、</b></p><p> CookieUtil.addCookie("cart", store(), response);</p><p> } catch (UnsupportedEncodingException e) {</p><p> e.printStackTrace();</p><p>
109、<b> }</b></p><p> return true;</p><p><b> }</b></p><p> (2) 刪除,遍歷購(gòu)物車(chē),將商品ID和刪除的ID相同的商品的Buy字段set為false</p><p> CookieUtil.addCookie("car
110、t", store(), response);</p><p> } catch (UnsupportedEncodingException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b&g
111、t;</p><p> (3) 修改數(shù)量,遍歷購(gòu)物車(chē),將商品的qty屬性改成頁(yè)面?zhèn)鱽?lái)的要更改的商品數(shù)量</p><p> public void modify(int id, int qty) {</p><p> for (CartItem c : items) { </p><p> if (c.getProduct().getI
112、d() == id) {</p><p> c.setQty(qty);</p><p><b> }</b></p><p><b> }</b></p><p><b> try {</b></p><p> CookieUtil.addC
113、ookie("cart", store(), response);</p><p> } catch (UnsupportedEncodingException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b
114、> }</b></p><p><b> 4.1.5訂單模塊</b></p><p><b> 圖4.12訂單頁(yè)面</b></p><p><b> 圖4.13訂單模塊</b></p><p> public String execute(){<
115、;/p><p> Map<String, Object> session = ActionContext.getContext().getSession();//獲得Session</p><p> User user=(User) session.get("user");//獲得已存入Session里的用戶(hù)</p><p> if
116、(user==null){</p><p> return "login";</p><p><b> }</b></p><p> int id=user.getId();</p><p> AddressDAO aDao=new AddressDAOImpl();</p>&
117、lt;p><b> try {</b></p><p> adds=aDao.findAddressByUserId(id);//根據(jù)用戶(hù)ID找到用戶(hù)地址</p><p> return "success";</p><p> } catch (SQLException e) {</p><
118、p> e.printStackTrace();</p><p> return "error";</p><p><b> }</b></p><p><b> }</b></p><p> 圖4.13地址管理頁(yè)面</p><p><
119、b> //生成新地址</b></p><p> Map<String, Object> session = ActionContext.getContext().getSession();</p><p> User user=(User)session.get("user");</p><p> CartI
120、mpl cart = CartImpl.getInstance();//獲取購(gòu)物車(chē)實(shí)例</p><p> OrderDAO oDao=new OrderDAOImpl();</p><p> if(user==null){</p><p> return "login";</p><p><b> }&l
121、t;/b></p><p> if(id==-1){</p><p> Order o=new Order(); </p><p> o.setUserId(user.getId());</p><p> o.setOrderTime(System.currentTimeMillis());</p><p&g
122、t; o.setTotalPrice(cart.sum());</p><p> o.setReceiveName(receiveName);</p><p> o.setFullAddress(fullAddress);</p><p> o.setPostalCode(postalCode);</p><p> o.setMob
123、ile(mobile);</p><p> o.setPhone(phone);</p><p><b> try {</b></p><p> oDao.insert(o);</p><p> } catch (SQLException e) {</p><p> e.print
124、StackTrace();</p><p><b> }</b></p><p> AddressDAO aDao=new AddressDAOImpl();</p><p><b> try {</b></p><p> address=aDao.findAddressById(id);
125、//自動(dòng)填寫(xiě)已有地址</p><p> return "success";</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p> return "error";</p><p>
126、;<b> }</b></p><p><b> //顯示之前的地址</b></p><p> $(function(){</p><p> $('#address').change(function(){</p><p> $('#addressId').
127、val("-1");</p><p> $('#receiveName').val('');;</p><p> $('#fullAddress').val('');</p><p> $('#postalCode').val('');</
128、p><p> $('#phone').val('');</p><p> $('#mobile').val('');</p><p> var id=$('#address').val().trim();</p><p> if(id==-1){</p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于J2EE架構(gòu)的電子商務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE的電子商務(wù)系統(tǒng).pdf
- 基于J2EE的保險(xiǎn)電子商務(wù)系統(tǒng).pdf
- 基于J2EE架構(gòu)的BTB電子商務(wù)在線(xiàn)采購(gòu)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE的旅游電子商務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE的電子商務(wù)應(yīng)用系統(tǒng)研究.pdf
- 基于J2EE多層架構(gòu)技術(shù)的電子商務(wù)研究與應(yīng)用.pdf
- 基于j2ee架構(gòu)的電子商務(wù)模式的研究設(shè)計(jì)與實(shí)現(xiàn)開(kāi)題報(bào)告
- 畢業(yè)設(shè)計(jì)論文---基于j2ee架構(gòu)的在線(xiàn)招聘系統(tǒng)
- 基于J2EE框架的電子商務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于j2ee的b2b電子商務(wù)系統(tǒng)【文獻(xiàn)綜述】
- 基于J2EE的服裝企業(yè)電子商務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于j2ee的家具產(chǎn)品電子商務(wù)管理系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)
- 基于J2EE-XML的電子商務(wù)架構(gòu)研究.pdf
- 基于J2EE的電子商務(wù)解決方案.pdf
- 基于J2EE電子商務(wù)平臺(tái)的構(gòu)建——咸陽(yáng)機(jī)床廠(chǎng)電子商務(wù)系統(tǒng).pdf
- 基于J2EE的電子商務(wù)庫(kù)存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE的移動(dòng)Agent電子商務(wù)系統(tǒng)框架研究.pdf
- 基于J2EE的家具產(chǎn)品電子商務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2ME和J2EE的移動(dòng)電子商務(wù)系統(tǒng)研究.pdf
評(píng)論
0/150
提交評(píng)論