基于jsp的購(gòu)物網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘要</b></p><p>  近年來,隨著Internet的迅速崛起,網(wǎng)上購(gòu)物在當(dāng)前社會(huì)中,已不再是一種年輕人的行為。于是電子商務(wù)開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費(fèi)者展示出一種新穎的購(gòu)物理念,本購(gòu)物系統(tǒng)基于B/S模式,實(shí)現(xiàn)了當(dāng)前購(gòu)物網(wǎng)站的基本功能,以JAVA語(yǔ)言進(jìn)行開發(fā),采用分布式架構(gòu),數(shù)據(jù)庫(kù)層面采用基于MySQL的集群實(shí)現(xiàn)。</p

2、><p>  關(guān)鍵詞: 數(shù)據(jù)庫(kù) JAVA MySQL JSP 網(wǎng)上購(gòu)物</p><p><b>  目 錄</b></p><p><b>  一、緒論5</b></p><p><b> ?。ㄒ唬┮?</b></p><p> ?。ǘ┫到y(tǒng)實(shí)

3、現(xiàn)的目的和意義5</p><p><b>  1、目的5</b></p><p><b>  2、意義6</b></p><p>  二、 系統(tǒng)開發(fā)工具及技術(shù)和環(huán)境6</p><p> ?。ㄒ唬㎎SP技術(shù)6</p><p> ?。ǘ㏕omcat簡(jiǎn)介6</p

4、><p> ?。ㄈ┛蛻舳谁h(huán)境7</p><p><b>  (四)開發(fā)工具7</b></p><p> ?。ㄎ澹?shù)據(jù)庫(kù)技術(shù)8</p><p><b>  1、數(shù)據(jù)庫(kù)集群8</b></p><p><b>  2、分布式8</b></p>

5、;<p>  3、 MySQL9</p><p> ?。?HTML及JavaScript9</p><p><b>  1、 HTML9</b></p><p>  2、 JavaScript9</p><p><b>  三、需求分析10</b></p>

6、<p> ?。ㄒ唬┕δ苄枨?0</p><p> ?。ǘ┬枨笳f明書10</p><p> ?。ㄈ┛尚行匝芯?1</p><p><b>  四、系統(tǒng)設(shè)計(jì)11</b></p><p> ?。ㄒ唬┫到y(tǒng)功能描述11</p><p>  (二)UML系統(tǒng)建模12</p>

7、;<p><b>  1、用例圖12</b></p><p>  2、系統(tǒng)活動(dòng)圖12</p><p>  五、數(shù)據(jù)庫(kù)設(shè)計(jì)12</p><p>  1、系統(tǒng)E-R圖12</p><p>  2、數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)14</p><p>  3、創(chuàng)建數(shù)據(jù)庫(kù)表14</p>

8、<p>  六、 系統(tǒng)界面和功能實(shí)現(xiàn)15</p><p> ?。ㄒ唬┏绦蛟O(shè)計(jì)15</p><p> ?。ǘ┫到y(tǒng)登錄20</p><p> ?。ㄈ┦醉?yè)管理22</p><p>  (四)商品分類管理25</p><p> ?。ㄎ澹┯脩艄芾?6</p><p> ?。?/p>

9、)用戶權(quán)限管理27</p><p> ?。ㄆ撸┯脩魝€(gè)人信息管理27</p><p> ?。ò耍┯唵喂芾?9</p><p> ?。ň牛┵?gòu)物車管理29</p><p>  (十)系統(tǒng)登出31</p><p><b>  參考文獻(xiàn)32</b></p><p><

10、;b>  一、緒論</b></p><p>  網(wǎng)上購(gòu)物在當(dāng)前社會(huì)中,已不再是一種年輕人的行為。購(gòu)物的商品分類已涵蓋生活、辦公的各個(gè)方面:日常生活所需的吃、穿(衣服、化妝品、食品等等)、服務(wù)器、電子產(chǎn)品等等。可以說,網(wǎng)上購(gòu)物與我們的生活已經(jīng)密不可分。那么,網(wǎng)上購(gòu)物究竟是什么?專業(yè)地講,它是交易雙方從洽談、簽約以及貸款的支付、交貨通知等整個(gè)交易過程通過Internet、web和購(gòu)物界面技術(shù)化的B

11、2 C模式一并完成的一種新型購(gòu)物方式,它是電子商務(wù)的一個(gè)重要組成部分。隨著電子商務(wù)的不斷發(fā)展,網(wǎng)上購(gòu)物作為電子商務(wù)中一個(gè)重要的組成部分也在不斷壯大著。</p><p>  網(wǎng)上購(gòu)物系統(tǒng)作為網(wǎng)上購(gòu)物行為的支撐及商品展示、交易等的實(shí)際“工作者”,其穩(wěn)定性、可靠性、安全性的要求都是很高?,F(xiàn)今的網(wǎng)上商城都采用的三層模式體系結(jié)構(gòu)(MVC),從技術(shù)上來說已經(jīng)能滿足相關(guān)的要求,但是對(duì)于后期的性能提高等有一定的限制。</p

12、><p><b> ?。ㄒ唬┮?lt;/b></p><p>  網(wǎng)上購(gòu)物是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供靜態(tài)和動(dòng)態(tài)兩類信息資源。所謂靜態(tài)信息是指那些比經(jīng)常變動(dòng)或更新的資源,如公司簡(jiǎn)介、管理規(guī)范和公司制度等等;動(dòng)態(tài)信息是指隨時(shí)變化的信息,如商品報(bào)價(jià),會(huì)議安排和培訓(xùn)信息等。網(wǎng)上購(gòu)物系統(tǒng)具有強(qiáng)大的交互功能,可使商家和用戶方便的傳遞信息,完成電子貿(mào)易或EDI交易。這種

13、全新的交易方式實(shí)現(xiàn)了公司間文檔與資金的無紙化交換。目前主要有B2B、B2C、C2C三種模式。</p><p>  網(wǎng)上購(gòu)物網(wǎng)站在國(guó)內(nèi)可以說正在發(fā)展中,其中以淘寶、阿里巴巴、京東、當(dāng)當(dāng)網(wǎng)等為主要的代表?,F(xiàn)在流行的網(wǎng)上購(gòu)物系統(tǒng)不僅要有漂亮的網(wǎng)頁(yè),更要有嚴(yán)謹(jǐn)?shù)囊?guī)劃。每一個(gè)細(xì)小的環(huán)節(jié)都和重要。這樣才能使得在電子交易時(shí)避免不必要錯(cuò)誤發(fā)生。我們將使用HTML、JSP等技術(shù)來編輯網(wǎng)頁(yè),并運(yùn)用JAVA技術(shù)把數(shù)據(jù)庫(kù)和動(dòng)態(tài)網(wǎng)頁(yè)相關(guān)聯(lián)

14、。傳統(tǒng)的管理信息系統(tǒng)信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統(tǒng)的數(shù)據(jù)庫(kù)中,這種方法在數(shù)據(jù)量不大時(shí)有很多的應(yīng)用場(chǎng)合。當(dāng)數(shù)據(jù)量比較大,并且有較強(qiáng)的專業(yè)性時(shí),錄入的費(fèi)用和出錯(cuò)的可能性都相應(yīng)上升。</p><p> ?。ǘ┫到y(tǒng)實(shí)現(xiàn)的目的和意義</p><p><b>  1、目的</b></p><p>  搭建一個(gè)能滿足日常購(gòu)物需要的購(gòu)物

15、網(wǎng)站,并可依此進(jìn)行相關(guān)網(wǎng)站的二次開發(fā)。通過對(duì)數(shù)據(jù)庫(kù)集群、應(yīng)用的分布式部署開發(fā)等開發(fā)技術(shù)的實(shí)戰(zhàn),加強(qiáng)相關(guān)技術(shù)的掌握程度,同時(shí)對(duì)相關(guān)理論知識(shí)加深了理解,有助于對(duì)JAVA程序更深層次的理解,有助于培養(yǎng)架構(gòu)的思想。</p><p><b>  2、意義</b></p><p>  對(duì)相關(guān)技術(shù)的掌握更進(jìn)一步,同時(shí)為相關(guān)網(wǎng)站開發(fā)積累了經(jīng)驗(yàn)。通過分布式架構(gòu)及數(shù)據(jù)庫(kù)集群技術(shù)的實(shí)戰(zhàn),對(duì)

16、真實(shí)環(huán)境中的應(yīng)用程序有了一定的了解,可進(jìn)行一定程度的發(fā)現(xiàn)問題并解決問題。</p><p>  系統(tǒng)開發(fā)工具及技術(shù)和環(huán)境</p><p><b> ?。ㄒ唬㎎SP技術(shù)</b></p><p>  JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似

17、ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 </p><p>  用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 </p><p>  JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來封裝產(chǎn)

18、生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè) 計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 </p><p>  Web服務(wù)器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以

19、實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。 JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 </p><p> ?。ǘ㏕omcat簡(jiǎn)介</p><p>  Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,是Apache 軟件基金會(huì)(Apache Soft

20、ware Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)?/p>

21、Tomcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。 </p><p>  Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入

22、新的功能。 </p><p>  Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪問請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)

23、行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomca

24、t處理靜態(tài)HTML的能力不如Apache服務(wù)器。</p><p><b> ?。ㄈ┛蛻舳谁h(huán)境</b></p><p>  客戶端理論上基于P4以上的計(jì)算機(jī)都可正常訪問服務(wù),主要基于IE8及以上、firefox12及以上等主流瀏覽器。</p><p><b>  (四)開發(fā)工具</b></p><p&g

25、t;  IDE采用MyEclipse 8.5進(jìn)行軟件代碼的編寫及調(diào)試</p><p>  IDE:Integrated Development Environment,集成開發(fā)環(huán)境,可以輔助開發(fā)程序的應(yīng)用軟件,就是你用來編程的軟件</p><p><b>  圖 1</b></p><p><b> ?。ㄎ澹?shù)據(jù)庫(kù)技術(shù)</b&g

26、t;</p><p><b>  1、數(shù)據(jù)庫(kù)集群</b></p><p>  數(shù)據(jù)庫(kù)是用來保存計(jì)算的最終結(jié)果的,所以是整個(gè)信息系統(tǒng)的最重要組成部分。在許多人看來,當(dāng)前的數(shù)據(jù)庫(kù)技術(shù)已經(jīng)可以說是非常地成熟了。然而,在滿足不斷增長(zhǎng)的聯(lián)機(jī)事務(wù)處理應(yīng)用方面,當(dāng)前的數(shù)據(jù)庫(kù)技術(shù)其實(shí)還存在不少急迫需要解決的技術(shù)問題。</p><p><b>  2、

27、分布式</b></p><p>  分布式系統(tǒng)(distributed system)是建立在網(wǎng)絡(luò)之上的軟件系統(tǒng)。正是因?yàn)檐浖奶匦?,所以分布式系統(tǒng)具有高度的內(nèi)聚性和透明性。因此,網(wǎng)絡(luò)和分布式系統(tǒng)之間的區(qū)別更多的在于高層軟件(特別是操作系統(tǒng)),而不是硬件。內(nèi)聚性是指每一個(gè)數(shù)據(jù)庫(kù)分布節(jié)點(diǎn)高度自治,有本地的數(shù)據(jù)庫(kù)管理系統(tǒng)。透明性是指每一個(gè)數(shù)據(jù)庫(kù)分布節(jié)點(diǎn)對(duì)用戶的應(yīng)用來說都是透明的,看不出是本地還是遠(yuǎn)程。。&

28、lt;/p><p>  在本系統(tǒng)中采用Apache CXF框架進(jìn)行分布式系統(tǒng)之間的交互,在保證系統(tǒng)交互需求的要求情況下,同時(shí)進(jìn)行數(shù)據(jù)安全、可靠性等的設(shè)計(jì)。</p><p>  對(duì)于所有的數(shù)據(jù)庫(kù)而言,除了記錄正確的處理結(jié)果之外,它們都面臨著四方面的挑戰(zhàn):如何提高處理速度,數(shù)據(jù)可用性、數(shù)據(jù)安全性和數(shù)據(jù)集可擴(kuò)性,也就是說,如何使當(dāng)前的數(shù)據(jù)庫(kù)具有這四方面的可伸縮性,使客戶能同時(shí)得到更高的處理速度、更高

29、的數(shù)據(jù)可用性、更高的數(shù)據(jù)安全性和更大的數(shù)據(jù)集,而不是提升了其中的部分指標(biāo),卻損壞了其余的指標(biāo)或者其余的指標(biāo)沒有改進(jìn)。隨著IT應(yīng)用的深入和有線,無線網(wǎng)絡(luò)的快速增長(zhǎng),聯(lián)機(jī)事務(wù)處理業(yè)務(wù)對(duì)以上四方面提出了更高的要求。</p><p>  將多個(gè)數(shù)據(jù)庫(kù)聯(lián)在一起組成數(shù)據(jù)庫(kù)集群來達(dá)到上述目標(biāo)應(yīng)該說是一個(gè)很自然的想法。理想的數(shù)據(jù)庫(kù)集群應(yīng)該可以做到以下幾點(diǎn):</p><p>  在需要更高數(shù)據(jù)庫(kù)處理速度的時(shí)

30、候,我們只需簡(jiǎn)單增加數(shù)據(jù)庫(kù)服務(wù)器就可以了。這樣可以大大減小硬件投資的風(fēng)險(xiǎn),而且大大提高現(xiàn)有服務(wù)的質(zhì)量。</p><p>  在任何時(shí)刻需要有多個(gè)隨時(shí)可用的實(shí)時(shí)同步數(shù)據(jù)服務(wù)。為了防災(zāi),最好有多個(gè)異地的同步數(shù)據(jù)服務(wù)。這不光會(huì)大大增加數(shù)據(jù)可用性,還會(huì)有意想不到的更高數(shù)據(jù)庫(kù)處理速度的效益。</p><p>  除了密碼保護(hù)之外,我們最好能控制企業(yè)內(nèi)部對(duì)數(shù)據(jù)庫(kù)的非法訪問。</p>&l

31、t;p>  數(shù)據(jù)集的可擴(kuò)性可能是最簡(jiǎn)單的要求了。但是,用增加數(shù)據(jù)庫(kù)服務(wù)器的辦法來擴(kuò)大數(shù)據(jù)集對(duì)數(shù)據(jù)可用性會(huì)產(chǎn)生負(fù)面影響。最好的結(jié)果是我們能任意增大數(shù)據(jù)集而沒有對(duì)可用性的負(fù)面影響。</p><p>  本系統(tǒng)中采用MySQL集群方案。</p><p><b>  3、 MySQL</b></p><p>  MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系

32、統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL的SQL語(yǔ)言是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了雙授權(quán)政策,它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。</p&g

33、t;<p> ?。?HTML及JavaScript</p><p><b>  1、 HTML</b></p><p>  HTML即超文本標(biāo)記語(yǔ)言,是Web頁(yè)的基本元素。它是一種描述性語(yǔ)言,使用描述性標(biāo)記符(即標(biāo)記)來表現(xiàn)相應(yīng)的內(nèi)容,僅僅限于如何表現(xiàn)文字、圖片等內(nèi)容。</p><p>  HTML文檔包含兩種信息:頁(yè)面本身的

34、文本及表現(xiàn)這些文本的格式、結(jié)構(gòu)等標(biāo)記。瀏覽器負(fù)責(zé)對(duì)HTML文檔進(jìn)行解析并正確地顯示出來。</p><p>  2、 JavaScript</p><p>  JavaScript語(yǔ)言是用于在客戶端運(yùn)行的腳本語(yǔ)言,它具有以下特點(diǎn):</p><p>  (1)JavaScript是一種用于在客戶端運(yùn)行的腳本語(yǔ)言,是解釋性的語(yǔ)言;</p><p>

35、  (2)JavaScript是基于對(duì)象的語(yǔ)言,是事件驅(qū)動(dòng)的語(yǔ)言;</p><p><b> ?。?)具有簡(jiǎn)單性;</b></p><p> ?。?)具有安全性,不允許訪問本地硬盤,不能將數(shù)據(jù)存入到服務(wù)器上, 不能對(duì)網(wǎng)絡(luò)文檔進(jìn)行修改,能防止數(shù)據(jù)的丟失;</p><p>  (5)具有動(dòng)態(tài)性,可對(duì)用戶的輸入作出反應(yīng),如在客戶端進(jìn)行數(shù)

36、據(jù)合 法性檢驗(yàn),無須交給服務(wù)器檢驗(yàn);</p><p> ?。?)具有跨平臺(tái)性,只要能允許瀏覽器,就能正確地運(yùn)行JavaScript。</p><p>  我使用JavaScript實(shí)現(xiàn)對(duì)用戶輸入數(shù)據(jù)合法性檢查。</p><p><b>  三、需求分析</b></p><p>  需求分析是軟件設(shè)計(jì)中非常重要的一

37、個(gè)環(huán)節(jié),沒有經(jīng)過詳細(xì)的需求分析就匆匆忙忙進(jìn)行軟件開發(fā)是注定要失敗的。所以一定要花時(shí)間與用戶進(jìn)行溝通交流,詳細(xì)了解客戶到底需要軟件做到什么。在溝通交流過程中也可以大致告訴用戶軟件可以做到些什么、是怎樣做的。對(duì)用戶提出的一些不切實(shí)際的需求一定要以合理的方式明確地拒絕。經(jīng)雙方討論并明確的需求要以書面的形式簽字確認(rèn)</p><p><b> ?。ㄒ唬┕δ苄枨?lt;/b></p><p

38、>  一個(gè)網(wǎng)絡(luò)購(gòu)物系統(tǒng),首先我們要保證客戶能夠很方便進(jìn)行商品選擇,系統(tǒng)應(yīng)該具有分類選擇商品功能,系統(tǒng)應(yīng)該實(shí)現(xiàn)“購(gòu)物車”的功能,用戶可以把選中的商品放入“購(gòu)物車”中,在選購(gòu)?fù)戤吅笤僖黄鸾Y(jié)帳。在系統(tǒng)的后臺(tái),管理員能夠管理商品,商品分類,以及客戶購(gòu)買訂單。 因此分析,本系統(tǒng)主要由前臺(tái)和后臺(tái)兩部分組成,前臺(tái)為客戶端,顧客可以在此處購(gòu)買商品,后臺(tái)為商品管理端,實(shí)現(xiàn)對(duì)商品和訂單的管理。</p><p><b&g

39、t; ?。ǘ┬枨笳f明書</b></p><p>  經(jīng)過詳細(xì)的需求調(diào)研,最終形成需求說明書。需求說明書包含項(xiàng)目背景、項(xiàng)目目標(biāo)任務(wù)、需求規(guī)定等內(nèi)容,其中需求規(guī)定是重點(diǎn)。下面簡(jiǎn)單列出本文的需求:</p><p>  對(duì)物品的出入庫(kù)要求能進(jìn)行數(shù)據(jù)錄入,便于后期進(jìn)行統(tǒng)計(jì)</p><p>  物品按類別進(jìn)行劃分,有規(guī)律的、可進(jìn)行統(tǒng)計(jì)的代碼進(jìn)行管理</p&g

40、t;<p>  用戶可在線進(jìn)行購(gòu)買商品,可實(shí)時(shí)查看到購(gòu)物車、訂單信息及狀態(tài)</p><p>  要求有精細(xì)的權(quán)限管理,管理員只能對(duì)用戶密碼進(jìn)行重置,不可查看用戶密碼,用戶之間對(duì)于訂單等信息不可見。</p><p>  購(gòu)物車信息在用戶再次登錄系統(tǒng)時(shí)仍然能夠進(jìn)行查看。</p><p>  用戶可對(duì)個(gè)人基本信息進(jìn)行查看、修改。</p><

41、;p>  系統(tǒng)退出時(shí),應(yīng)及時(shí)清空用戶相關(guān)信息。</p><p><b>  (三)可行性研究</b></p><p>  硬件、軟件上的可行性:目前市場(chǎng)上的計(jì)算機(jī)軟硬件資源都可以滿足系統(tǒng)開發(fā)的要求。其中運(yùn)用的主要軟件有MyEclipse、Tomcat服務(wù)器等,數(shù)據(jù)庫(kù)采用MySQL數(shù)據(jù)庫(kù)。 </p><p>  JSP技術(shù):該技術(shù)目前已經(jīng)十

42、分成熟,功能強(qiáng)大,擴(kuò)展性好。JSP在網(wǎng)站開發(fā)上是個(gè)非常理想的技術(shù)工具。</p><p><b>  四、系統(tǒng)設(shè)計(jì)</b></p><p><b>  (一)系統(tǒng)功能描述</b></p><p>  下圖顯示了系統(tǒng)的全部功能:</p><p><b>  圖 2</b></

43、p><p> ?。ǘ︰ML系統(tǒng)建模</p><p><b>  1、用例圖</b></p><p>  用例圖是用來鑒別和劃分系統(tǒng)功能,它把系統(tǒng)分成動(dòng)作者和用例兩個(gè)部分。動(dòng)作者表示系統(tǒng)用戶能扮演的角色,這些用戶可能是人,可能是其他的計(jì)算機(jī),一些硬件,或者甚至是其他軟件系統(tǒng),本系統(tǒng)的動(dòng)作者就是管理員。</p><p>  用

44、例描述了當(dāng)動(dòng)作者之一給系統(tǒng)特定的刺激時(shí)系統(tǒng)的活動(dòng)。</p><p>  系統(tǒng)總用例圖如下所示:</p><p><b>  圖 3</b></p><p><b>  2、系統(tǒng)活動(dòng)圖</b></p><p>  活動(dòng)圖片反映系統(tǒng)中從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的流程,強(qiáng)調(diào)對(duì)象間的控制流程,如圖所示,描述了管

45、理員登陸、信息管理、及導(dǎo)購(gòu)查詢的活動(dòng)執(zhí)行順序?;顒?dòng)圖是一種特殊的狀態(tài)圖,描述需要做的活動(dòng),執(zhí)行這些活動(dòng)的順序(多為并行的)以及工作流(完成工作所需的步驟)。它對(duì)系統(tǒng)的功能建特別重要,強(qiáng)調(diào)對(duì)象間的控制流程。系統(tǒng)活動(dòng)圖如下圖所示:</p><p><b>  圖 4</b></p><p><b>  五、數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p>&

46、lt;p>  包括用戶信息表,用戶權(quán)限表、商品分類表、商品信息表、訂單信息表等表,以及各個(gè)表的關(guān)系圖。</p><p><b>  1、系統(tǒng)E-R圖</b></p><p>  本系統(tǒng)中主要用到了商品實(shí)體、用戶實(shí)體、訂單實(shí)例等。</p><p><b>  商品實(shí)體</b></p><p>&

47、lt;b>  圖 5</b></p><p><b>  用戶實(shí)體</b></p><p><b>  圖 6</b></p><p><b>  訂單實(shí)體</b></p><p><b>  圖 7</b></p><

48、;p><b>  實(shí)體之間的關(guān)系:</b></p><p><b>  圖 8</b></p><p><b>  2、數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  在本系統(tǒng)中,用戶主要用于購(gòu)買商品并下訂單,管理員則主要對(duì)相關(guān)商品進(jìn)行出入庫(kù)管理,因此我們主要關(guān)心商品、訂單、用戶、購(gòu)物車等數(shù)據(jù)庫(kù)實(shí)體

49、。</p><p>  商品:商品id、商品編號(hào)、商品名稱、商品所屬分類、價(jià)格、庫(kù)存、產(chǎn)地</p><p>  用戶:用戶id、用戶名稱、用戶密碼、手機(jī)號(hào)</p><p>  訂單:訂單id、商品id、數(shù)量、價(jià)格、最終價(jià)格、用戶id</p><p><b>  3、創(chuàng)建數(shù)據(jù)庫(kù)表</b></p><p&

50、gt;  在MySQL中要建立數(shù)據(jù)表。</p><p><b>  商品表</b></p><p><b>  用戶表</b></p><p><b>  訂單表</b></p><p><b>  系統(tǒng)界面和功能實(shí)現(xiàn)</b></p><

51、;p><b> ?。ㄒ唬┏绦蛟O(shè)計(jì)</b></p><p>  本系統(tǒng)設(shè)計(jì)的網(wǎng)站在設(shè)計(jì)過程中包含頁(yè)面(HTML)的設(shè)計(jì)以及客戶端驗(yàn)證機(jī)制(JavaScript)的設(shè)計(jì)。Javascript也叫小語(yǔ)言腳本,它是一種非常流行的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)。本系統(tǒng)應(yīng)用服務(wù)器端JSP動(dòng)態(tài)頁(yè)面技術(shù),以及struts,hibernate,spring的技術(shù)支持下,結(jié)合客戶端動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)javascript以及與ht

52、ml的配合的設(shè)計(jì),從而實(shí)現(xiàn)系統(tǒng)。</p><p>  系統(tǒng)主要采用三大框架(SSH)進(jìn)而實(shí)現(xiàn)客戶端與服務(wù)端的交互,數(shù)據(jù)庫(kù)層通過hibernate整體對(duì)實(shí)體類進(jìn)行管理,并通過hibernate使用jdbc連接數(shù)據(jù)庫(kù),代碼如下:</p><p>  <?xml version='1.0' encoding='UTF-8'?></p>&

53、lt;p>  <!DOCTYPE hibernate-configuration PUBLIC</p><p>  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"</p><p>  "http://hibernate.sourceforge.net/hibernate-configuratio

54、n-3.0.dtd"></p><p>  <!-- Generated by MyEclipse Hibernate Tools. --></p><p>  <hibernate-configuration></p><p>  <session-factory></p

55、><p>  <property name="connection.url"> jdbc:mysql://localhost:3306/marble</p><p>  </property></p><p>  <property name="dialect"></p><

56、p>  org.hibernate.dialect.MySQLDialect </property></p><p>  <property name="myeclipse.connection.profile"> dangsql </property></p><p>  <property name="con

57、nection.username">root</property></p><p>  <property name="connection.password"></property></p><p>  <property name="connection.driver_class">

58、 com.mysql.jdbc.Driver </property></p><p>  <property name="show_sql">true</property></p><p>  <mapping resource="tarena/marble/mapping/DUser.hbm.xml" /&

59、gt;</p><p>  <mapping resource="tarena/marble/mapping/DProduct.hbm.xml" /></p><p>  <mapping resource="tarena/marble/mapping/DReceiveAddress.hbm.xml" /></p>

60、<p>  <mapping resource="tarena/marble/mapping/DCategory.hbm.xml" /></p><p>  <mapping resource="tarena/marble/mapping/DItem.hbm.xml" /></p><p>  <mappi

61、ng resource="tarena/marble/mapping/DOrder.hbm.xml" /></p><p>  </session-factory></p><p>  </hibernate-configuration></p><p>  而事務(wù)層則通過spring注入的方式對(duì)所有的邏輯進(jìn)行管理,

62、事務(wù)層主要處理系統(tǒng)中的一些邏輯,分類接口和實(shí)現(xiàn)類,接口可以提供給相應(yīng)的操作調(diào)用,而實(shí)現(xiàn)類主要實(shí)現(xiàn)所需的功能邏輯,代碼如下:</p><p><b>  //事務(wù)的管理</b></p><p>  public class HibernateInterceptor extends MethodFilterInterceptor {</p><p>

63、;  Logger logger = Logger.getLogger(RegistAction.class);</p><p><b>  @Override</b></p><p>  protected String doIntercept(ActionInvocation arg0) throws Exception {</p><p>

64、;<b>  // 打開事務(wù)</b></p><p>  logger.debug("打開事務(wù)");</p><p>  Session session = new BaseDAO().getSession();</p><p>  Transaction tx = session.beginTransaction();&l

65、t;/p><p><b>  try {</b></p><p>  String view = arg0.invoke();</p><p>  logger.debug("提交事務(wù)");</p><p>  tx.commit();</p><p>  return view;

66、</p><p><b>  // 提交事務(wù)</b></p><p>  } catch (Exception e) {</p><p>  logger.debug("回滾事務(wù)");</p><p><b>  // 回滾事務(wù)</b></p><p> 

67、 e.printStackTrace();</p><p>  tx.rollback();</p><p><b>  throw e;</b></p><p>  } finally {</p><p>  logger.debug("回收Session資源");</p><p

68、>  // 回收Session資源</p><p>  session.close();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  

69、接口層代碼:</b></p><p>  public interface IOrderService {</p><p>  // 添加新的用戶地址</p><p>  public abstract boolean addaddress(DReceiveAddress address);</p><p>  // 獲取用戶曾經(jīng)

70、填寫過的地址</p><p>  public List<DReceiveAddress> getAddrs();</p><p>  // 向數(shù)據(jù)庫(kù)中存order,會(huì)自動(dòng)存到地址表和訂單項(xiàng)表</p><p>  public boolean addOrder(DOrder d_order, DReceiveAddress address);</p

71、><p><b>  }</b></p><p><b>  實(shí)現(xiàn)層代碼:</b></p><p>  public class OrderService implements IOrderService {</p><p>  // 添加新的用戶地址</p><p>  pub

72、lic boolean addaddress(DReceiveAddress address) {</p><p>  IOrderDAO dao = DAOFactory.getOrderDAO();</p><p>  DUser user = (DUser) ActionContext.getContext().getSession().get(</p><p&

73、gt;  Constant.SESSION_USER);</p><p>  address.setUserId(user.getId());</p><p>  dao.add(address);</p><p>  return true;</p><p><b>  }</b></p><p&g

74、t;  // 獲取用戶曾經(jīng)填寫過的地址</p><p>  public List<DReceiveAddress> getAddrs() {</p><p>  IOrderDAO dao = DAOFactory.getOrderDAO();</p><p>  DUser user = (DUser) ActionContext.getConte

75、xt().getSession().get(</p><p>  Constant.SESSION_USER);</p><p>  return dao.getAddressByUserId(user.getId());</p><p><b>  }</b></p><p>  // 向數(shù)據(jù)庫(kù)中存order,會(huì)自動(dòng)存

76、到地址表和訂單項(xiàng)表</p><p>  public boolean addOrder(DOrder d_order, DReceiveAddress address) {</p><p>  double totalprice = 0;</p><p>  Set<DItem> items = new HashSet<DItem>();&

77、lt;/p><p>  Map session = ActionContext.getContext().getSession();</p><p>  CartService service = (CartService) session.get(Constant.CART_KEY);</p><p>  if (service != null) {</p&

78、gt;<p><b>  // 存用戶Id</b></p><p>  DUser user = (DUser) ActionContext.getContext().getSession().get(</p><p>  Constant.SESSION_USER);</p><p>  d_order.setUserId(

79、user.getId());</p><p>  d_order.setStatus(1);</p><p><b>  // 存訂單項(xiàng)表</b></p><p>  List<CartItem> list = service.getCartItem();</p><p>  for (int i = 0;

80、i < list.size(); i++) {</p><p>  CartItem item = list.get(i);</p><p>  if (!item.isDelete()) {</p><p>  DItem di = new DItem();</p><p>  DProduct p = item.getP();<

81、;/p><p>  di.setOrder(d_order);</p><p>  di.setProductId(p.getId());</p><p>  di.setProductName(p.getProductName());</p><p>  前臺(tái)和后臺(tái)的交互則通過struts管理實(shí)現(xiàn),前臺(tái)將請(qǐng)求發(fā)送后天,通過struts執(zhí)行相應(yīng)的

82、action層,action層的邏輯又通過事務(wù)層處理返回,獲取結(jié)果又通過action返回到前臺(tái)頁(yè)面,從而完成一套交互。代碼如下:</p><p><b>  <struts></b></p><p>  <package namespace="/authorize" name="authorize-default&quo

83、t;</p><p>  extends="dang-default"></p><p>  <action name="regist" class="tarena.marble.actions.authorize.RegistAction"></p><p>  <result n

84、ame="success">/authorize/verify_form.jsp</result></p><p>  <result name="input">/authorize/register_form.jsp</result></p><p>  <result name="fail

85、">/authorize/register_form.jsp</result></p><p><b>  </action></b></p><p>  <action name="image" class="tarena.marble.actions.authorize.ImageActi

86、on"></p><p>  <result name="success" type="stream">imageStream</result></p><p><b>  </action></b></p><p>  <action name=

87、"valid" class="tarena.marble.actions.authorize.ValidAction"></p><p>  <result name="success" type="json"></result></p><p><b>  </a

88、ction></b></p><p>  <action name="verify" class="tarena.marble.actions.authorize.VerifyAction"></p><p>  <result name="success">/authorize/regi

89、ster_ok.jsp</result></p><p>  <result name="input">/authorize/verify_form.jsp</result></p><p>  <result name="fail">/authorize/verify_form.jsp</res

90、ult></p><p><b>  </action></b></p><p>  <action name="login" class="tarena.marble.actions.authorize.LoginAction"></p><p>  <result

91、name="success" type="redirect">/category/main.jsp</result></p><p>  <result name="fail">/authorize/login_form.jsp</result></p><p>  <result

92、name="tocart" type="redirectAction">../cart/cart!showList</result></p><p>  <result name="tojihuo" type="redirect">/authorize/verify_form.jsp</result

93、></p><p><b>  </action></b></p><p>  <action name="exit" class="tarena.marble.actions.authorize.ExitAction"></p><p>  <result name=

94、"success" type="redirect">/authorize/login_form.jsp</result></p><p><b>  </action></b></p><p>  </package></p><p><b>  <

95、;/struts></b></p><p>  系統(tǒng)中的交易記錄或者錯(cuò)誤信息記錄則通過log4j進(jìn)行管理,可以詳細(xì)的記錄系統(tǒng)運(yùn)轉(zhuǎn)過程中暴露出的問題,log4j.properties代碼如下:</p><p>  log4j.rootLogger=ERROR,console</p><p>  log4j.appender.console=org.a

96、pache.log4j.ConsoleAppender</p><p>  log4j.appender.console.layout=org.apache.log4j.SimpleLayout</p><p>  log4j.appender.file=org.apache.log4j.FileAppender</p><p>  log4j.appender.f

97、ile.File=/home/java/debug.html</p><p>  log4j.appender.file.layout=org.apache.log4j.HTMLLayout</p><p><b> ?。ǘ┫到y(tǒng)登錄</b></p><p>  系統(tǒng)登錄主要用于用戶的登錄,只有登錄后的用戶才能下單,生成訂單。否則,只能瀏覽商品

98、相關(guān)信息。此模塊的主要功能是對(duì)用戶和密碼進(jìn)行驗(yàn)證,只有合法的用戶才能進(jìn)入本系統(tǒng)。用戶填寫的信息都是通過form表單使用post方法提交給服務(wù)器。服務(wù)器通過getParameter函數(shù)獲得form表單數(shù)據(jù),然后與數(shù)據(jù)庫(kù)中的用戶信息做比較,如果匹配則合法登錄。在用戶登錄后,將用戶的所有信息通過setAttribute函數(shù)保存在session中,方便其他界面隨時(shí)使用對(duì)象中的用戶信息。代碼片段如下:</p><p>  

99、//登錄action</p><p>  public class LoginAction extends BaseAction {</p><p>  private DUser user;</p><p><b>  // 登錄檢查</b></p><p>  public String execute() {<

100、;/p><p>  String email = request.getParameter("name");</p><p>  String pwd = request.getParameter("password");</p><p>  IAuthorizeService authorizeService = Service

101、Factory</p><p>  .getAuthorizeService();</p><p>  String result = authorizeService.loginUser(email, pwd);</p><p>  if ("nofond".equals(result)) {</p><p>  req

102、uest.setAttribute("nofond", "沒有注冊(cè)該用戶!請(qǐng)先注冊(cè)");</p><p>  return "fail";</p><p>  } else if ("noright".equals(result)) {</p><p>  request.setAttr

103、ibute(Constant.LOGIN_EMAIL, email);</p><p>  request.setAttribute("noright", "密碼有誤請(qǐng)重新輸入!");</p><p>  return "fail";</p><p><b>  } else {</b>

104、;</p><p>  IUserDAO udao = DAOFactory.getUserDAO();</p><p>  user = udao.findUserByEmail(email);</p><p>  // 如果驗(yàn)證了郵箱就往Session中放user</p><p>  if (user.getIsEmailVerify()

105、) {</p><p>  session.put(Constant.SESSION_USER, user);</p><p>  if (session.get(Constant.CART_KEY) != null) {</p><p><b>  //直接去購(gòu)物車了</b></p><p>  return &quo

106、t;tocart";</p><p><b>  }</b></p><p>  return "success";</p><p><b>  } else {</b></p><p><b>  //去激活</b></p><

107、;p>  session.put(Constant.SESSION_USER, user);</p><p>  return "tojihuo";</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }&l

108、t;/b></p><p>  登錄密碼通過MD5進(jìn)行加密,代碼如下</p><p><b>  //加密工具類</b></p><p>  public final class EncrityUtil {</p><p>  // 通過MD5加密用戶的密碼</p><p>  public

109、 static String encrity(String s) {</p><p><b>  try {</b></p><p>  MessageDigest digest = MessageDigest.getInstance("MD5");</p><p>  byte[] bys = digest.digest(

110、s.getBytes());</p><p>  return enByBase64(bys);</p><p>  } catch (NoSuchAlgorithmException e) {</p><p>  e.printStackTrace();</p><p>  return "";</p>&

111、lt;p><b>  }</b></p><p><b>  }</b></p><p>  // 通過Base64顯示加密后的密碼</p><p>  public static String enByBase64(byte[] bys) {</p><p>  BASE64Encoder

112、encode = new BASE64Encoder();</p><p>  return encode.encode(bys);</p><p><b>  }</b></p><p>  // 可以用來對(duì)Base64解碼</p><p>  public static byte[] deByBase64(Strin

113、g s) throws IOException {</p><p>  BASE64Decoder decoder = new BASE64Decoder();</p><p>  return decoder.decodeBuffer(s);</p><p><b>  }</b></p><p><b> 

114、 }</b></p><p><b>  圖 9</b></p><p><b> ?。ㄈ┦醉?yè)管理</b></p><p>  首頁(yè)管理主要用于商品的展示,主要有熱點(diǎn)推薦,圖片商品展示等。用戶可在首頁(yè)中找到自己感興趣的商品,并可進(jìn)入到各級(jí)分類商品中查找。</p><p><b&g

115、t;  圖 10</b></p><p><b>  圖 11</b></p><p>  為了方便用戶查詢所需商品信息,在網(wǎng)站中設(shè)置了商品分類顯示模塊。在網(wǎng)站首頁(yè)的右側(cè)以樹狀菜單的形式列出了商品的大、小分類信息,用戶單擊大類別結(jié)點(diǎn)可以顯示出該類的所有小類信息,單擊小類結(jié)點(diǎn)可以進(jìn)入到分類商品顯示頁(yè)面查看該類別的全部商品信息,在分類商品顯示頁(yè)面中,單擊商品名

116、稱可以查看相應(yīng)商品的詳細(xì)信息。顯示商品的大、小分類信息的關(guān)鍵是獲取商品的大分類信息,并分別查詢出每個(gè)大類所對(duì)應(yīng)的小分類信息,再通過<div>標(biāo)記和JavaScript自定義函數(shù)實(shí)現(xiàn)<div>結(jié)點(diǎn)的顯示和隱藏。jsp代碼如下:</p><p>  <%@page contentType="text/html;charset=utf-8"%></p>

117、<p>  <html xmlns="http://www.w3.org/1999/xhtml"></p><p><b>  <head></b></p><p>  <title>全球最大的購(gòu)物網(wǎng)站</title></p><p>  <link hre

118、f="../css/book.css" rel="stylesheet" type="text/css" /></p><p>  <link href="../css/second.css" rel="stylesheet" type="text/css" /></p&

119、gt;<p>  <link href="../css/secBook_Show.css" rel="stylesheet" type="text/css" /></p><p>  <script src="../js/jquery-1.4.min.js"></script><

120、/p><p>  <script src="../js/load.js"></script></p><p><b>  </head></b></p><p><b>  <body></b></p><p><b>  &

121、amp;nbsp;</b></p><p>  <!-- 頭部開始 --></p><p>  <%@include file="../common/head.jsp"%></p><p>  <!-- 頭部結(jié)束 --></p><p>  <div style=&qu

122、ot;width: 962px; margin: auto;"></p><p>  <a href="#"><img src="../images/default/book_banner_081203.jpg"</p><p>  border="0" /> </a></

123、p><p><b>  </div></b></p><p>  <div class="book"></p><p>  <!--左欄開始--></p><p>  <div id="left" class="book_left&q

124、uot;></p><p>  <!--加載category/category.jsp中內(nèi)容--></p><p><b>  </div></b></p><p>  <!--左欄結(jié)束--></p><p>  <!--中欄開始--></p><

125、p>  <div class="book_center"></p><p>  <!--推薦物品開始--></p><p>  <div class=second_c_border1 id="recommend"></p><p><b>  </div><

126、/b></p><p>  <!--推薦物品結(jié)束--></p><p>  <!--熱銷物品開始--></p><p>  <div class="book_c_border2" id="hot"></p><p><b>  </div>

127、</b></p><p>  <!--熱銷物品結(jié)束--></p><p>  <!--最新上架物品開始--></p><p>  <div class="book_c_border2" id="new"></p><p><b>  </d

128、iv></b></p><p>  <!--最新上架物品結(jié)束--></p><p>  <div class="clear"></p><p><b>  </div></b></p><p><b>  </div><

129、/b></p><p>  <!--中欄結(jié)束--></p><p>  <!--右欄開始--></p><p>  <div id="newhot" class="book_right"></p><p>  <div class="book_r

130、_border2" id="__XinShuReMai"></p><p>  <div class="book_r_b2_1x" id="new_bang"></p><p>  <h2 class="t_xsrm"></p><p><b

131、>  熱賣榜</b></p><p><b>  </h2></b></p><p>  <div id="NewProduct_1_o_t"></p><p>  <h3 class="second"></p><p>  &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論