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

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)綜合實踐</b></p><p>  課題名稱:基于java Web的網(wǎng)上商城的設(shè)計與實現(xiàn)</p><p>  分 院: 電子與信息工程分院 </p><p>  專 業(yè): 3G軟件技術(shù) </p><p>

2、;  2016年 4 月25 日</p><p><b>  網(wǎng)上商城系統(tǒng)</b></p><p><b>  摘 要</b></p><p>  本文的主要研究對象是網(wǎng)上商城系統(tǒng),研究網(wǎng)上商城一般的業(yè)務(wù)流程,還有網(wǎng)上商城的結(jié)構(gòu)和模塊,各個模塊的功能等等。整個論文從如何來分析一個網(wǎng)上商城系統(tǒng)的業(yè)務(wù)流程和它的結(jié)構(gòu)以及模塊

3、,再到到對開發(fā)工具的選擇,以及對前面分析出來的結(jié)果進(jìn)行初步的設(shè)計(這里我設(shè)計的是使用Java的web開發(fā)技術(shù)來實現(xiàn)這個網(wǎng)上商城系統(tǒng)),對網(wǎng)上商城系統(tǒng)分析和設(shè)計完成之后,就進(jìn)入到實際的代碼編寫階段,在這個階段就可能對前面的設(shè)計進(jìn)行一定的修改或是完善。在開發(fā)階段,我將采用的是螺旋遞增式的開發(fā),每次只完成一部分功能,然后就立即對這些功能進(jìn)行測試,接著進(jìn)入下一個開發(fā)階段,然后繼續(xù)測試,直到所有的功能全部實現(xiàn)后,再對整個系統(tǒng)進(jìn)行一個完整的測試,看

4、其是否達(dá)到了先前的設(shè)計要求。</p><p>  綜上所述,本文討論的就是如何使用Java的web開發(fā)技術(shù)來完整的實現(xiàn)一個網(wǎng)上商城系統(tǒng)的主要功能。</p><p>  關(guān)鍵詞 商城設(shè)計與開發(fā) ; JAVA ; JAVA WEB</p><p><b>  目 錄</b></p><p><b>  第1章

5、 緒論1</b></p><p>  1.1 課題背景............................................................................................1</p><p>  1.2 目的和意義1</p><p>  1.3 論文研究內(nèi)容2</p>

6、<p>  1.4 什么是網(wǎng)上商城2</p><p>  1.5 網(wǎng)上商城的分類3</p><p>  第2章 網(wǎng)上商城系統(tǒng)的需求分析4</p><p>  2.1 網(wǎng)上商城業(yè)務(wù)流程分析4</p><p>  2.1.1 作為一名消費(fèi)者的使用流程4</p><p>  2.1.2 作為一名商城管理員

7、的操作流程5</p><p>  2.2 網(wǎng)上商城模塊分析5</p><p>  2.2.1 用戶模塊6</p><p>  2.2.2 管理員模塊6</p><p>  2.3 本章小結(jié)7</p><p>  第3章 網(wǎng)上商城系統(tǒng)的設(shè)計與實現(xiàn)8</p><p>  3.1 開發(fā)語言

8、和工具介紹8</p><p>  3.1.1 開發(fā)語言8</p><p>  3.1.2 數(shù)據(jù)庫9</p><p>  3.1.3 服務(wù)器9</p><p>  3.1.4 開發(fā)工具10</p><p>  3.2 業(yè)務(wù)邏輯設(shè)計10</p><p>  3.2.1 共用類和相應(yīng)方法

9、10</p><p>  3.2.2 用戶實體類和相應(yīng)方法11</p><p>  3.2.3 管理員實體類和相應(yīng)方法13</p><p>  3.2.4 商品類別類和相應(yīng)方法14</p><p>  3.2.5 商品類及其相應(yīng)管理方法15</p><p>  3.2.6 購物車類及其方法16</p&g

10、t;<p>  3.2.7 訂單類及其方法17</p><p>  3.3 數(shù)據(jù)庫設(shè)計18</p><p>  3.3.1 數(shù)據(jù)庫設(shè)計簡要介紹18</p><p>  3.3.2 數(shù)據(jù)庫具體設(shè)計19</p><p>  3.4 本章小結(jié)21</p><p>  第4章 系統(tǒng)的測試和分析22&l

11、t;/p><p>  4.1 Version 122</p><p>  4.2 Version 224</p><p>  4.3 Version 326</p><p>  4.4 Version 428</p><p>  4.5 Version 530</p><p>  4.6

12、Version 632</p><p>  4.7 Version 734</p><p>  4.8 Version 836</p><p>  4.9 Version 938</p><p>  4.10 Version 10 40</p><p>  4.11 本章小結(jié)40</p>&l

13、t;p><b>  結(jié) 論41</b></p><p><b>  致 謝42</b></p><p><b>  附 錄43</b></p><p><b>  參考文獻(xiàn)44</b></p><p><b>  

14、第一章 緒論</b></p><p><b>  1.1選題背景</b></p><p>  隨著計算機(jī)技術(shù)的發(fā)展和網(wǎng)絡(luò)人口的增加,網(wǎng)絡(luò)世界也越來越廣博,越來越豐富,網(wǎng)上商城已經(jīng)成為網(wǎng)上購物的一股潮流?;ヂ?lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通流域,互聯(lián)網(wǎng)的跨地域性和可交互性使其在與傳統(tǒng)媒體行業(yè)和傳統(tǒng)貿(mào)易行業(yè)的競爭中是具有不可抗拒的優(yōu)勢。人

15、們對于互聯(lián)網(wǎng)技術(shù)的要求已不單單是瀏覽一下網(wǎng)站網(wǎng)頁,收發(fā)電子郵件,日益忙碌的人們開始追求足不出戶就能買到心儀的商品,是越來越多的上網(wǎng)愛好者實現(xiàn)購物的一種方式。對于企業(yè)來講,無論是企業(yè)之間,還是企業(yè)和客戶之間的交易,如果能夠?qū)崿F(xiàn)網(wǎng)上交易將大大提高交易速度節(jié)約成本。但是對網(wǎng)絡(luò)的及時、一對一、跨時間、 跨空間等特性,并沒有充分加以利用。在這種形勢下,傳統(tǒng)的依靠管理人員人工工作傳遞信息和數(shù)據(jù)的管理方式就無法滿足企業(yè)日益增長的業(yè)務(wù)需求了。因而開發(fā)了

16、這樣一個具有前后臺的網(wǎng)上商城系統(tǒng),以滿足購物者和企業(yè)的需求。</p><p>  1.2選題的目的和意義</p><p>  對于網(wǎng)上商城來說,我想每個人都不陌生,即使你沒有親自在網(wǎng)上買過東西也一定見過、聽說過網(wǎng)上購物這種方式。網(wǎng)絡(luò)購物作為一種新的購物形式已經(jīng)被廣大群眾所接受,尤其是年輕群體,他們特別熱衷于網(wǎng)購。</p><p>  網(wǎng)購最大的優(yōu)勢就是東西要比現(xiàn)實中

17、商場里的商品便宜,而且一般都是送貨上門,因為網(wǎng)購一般都是采取快遞送貨方式,直接送到你家樓下或者公司里,因此網(wǎng)絡(luò)購物的第二大優(yōu)勢就是其便利性,用戶只要坐在電腦前,點(diǎn)點(diǎn)鼠標(biāo)就可以買東西了。當(dāng)然網(wǎng)購也有它的缺點(diǎn),比如無法見到實物,只能通過商家介紹的文字和圖片來了解商品,再比如買衣服無法試穿,而且這也為不良商家提供了忽悠消費(fèi)者的方法,他們會盡力美化自己的商品來誘惑消費(fèi)者買單,而消費(fèi)者收到商品后才發(fā)現(xiàn)和想象中的差異很大,而商家又以各種各樣的理由推

18、脫,而且由于采用網(wǎng)上交易,所以會存在安全問題。但是這些都不能擋住網(wǎng)購的魅力,網(wǎng)上購物現(xiàn)在正變得越來越流行,市場份額也變得越來越大。因此這次畢業(yè)設(shè)計題目就以目前現(xiàn)有的網(wǎng)上商城系統(tǒng)為研究對象,例如淘寶和當(dāng)當(dāng),這里主要研究后者的形式,也就是商城自己經(jīng)營的方式,研究一般的網(wǎng)上商城的業(yè)務(wù)流程,猜測其各個功能模塊及其組合、連接方式,并分析其具體的實現(xiàn)方式,最后使用Java加web服務(wù)器和數(shù)據(jù)庫完成一個網(wǎng)上商城系統(tǒng)的主要功能模塊。</p>

19、<p>  通過這樣一個畢業(yè)設(shè)計,可以提高自己Java編程的水準(zhǔn),也練習(xí)了怎樣構(gòu)建一個完整的系統(tǒng),從系統(tǒng)的需求分析到設(shè)計,直至編碼、測試并運(yùn)行,熟悉并掌握一個完整的Web開發(fā)流程,為今后工作打下基礎(chǔ)。</p><p><b>  1.3論文研究內(nèi)容</b></p><p>  網(wǎng)上商城是一個基于Internet的應(yīng)用,屬于B/S架構(gòu),前端就是一個客戶瀏覽

20、器,客戶需要通過瀏覽器來訪問服務(wù)器,因此,本文主要研究的就是一個網(wǎng)上商城系統(tǒng)(商城自負(fù)經(jīng)營的類型)的業(yè)務(wù)流程及其實現(xiàn)方式。</p><p>  首先,需要站在使用者的角度去思考你究竟會怎么使用這個系統(tǒng),而一個網(wǎng)上商城的使用者一般又有兩類,一類是普通消費(fèi)者,而另一類則是商城的管理員,因此我就需要思考這兩類人都會怎么來使用這個系統(tǒng),這樣就能分析出網(wǎng)上商城系統(tǒng)的業(yè)務(wù)流程。</p><p>  而

21、實現(xiàn)這個業(yè)務(wù)流程可以采用很多種不同的方法,很明顯,網(wǎng)上商城系統(tǒng)是一個基于Internet的應(yīng)用,因此就需要使用到Web開發(fā)的方法,目前Web開發(fā)的方法有很多,流行的有Java和.Net,這里我選擇了Java,因此我就需要研究如果采用Java作為編程語言,我應(yīng)當(dāng)如何來實現(xiàn)這個系統(tǒng),這個系統(tǒng)應(yīng)該劃分為多少個模塊,每個模塊的功能又是什么,他們之間如何組合到一起,這也就是系統(tǒng)的設(shè)計。</p><p>  第二章 網(wǎng)上商城

22、系統(tǒng)的需求分析</p><p>  網(wǎng)上商城業(yè)務(wù)流程分析</p><p>  開發(fā)一個項目,不管你采用什么實現(xiàn)方式,其實都是在完成其業(yè)務(wù)流程,因此,將一個系統(tǒng)的業(yè)務(wù)流程分析清楚,將為后面的開發(fā)提供極大的便利。由于本文選擇了B2C(Business To Customer,商家對顧客直銷)模式,所以之后的分析或討論均是針對此種模式。</p><p>  如何對一個系統(tǒng)

23、進(jìn)行分析有很多的方法,這里我采用了站在具體的使用者的角度來考慮這個網(wǎng)上商城系統(tǒng)的功能和結(jié)構(gòu),先是粗略的分析一下使用的流程,在這個過程中就能夠發(fā)現(xiàn)一些必須的基礎(chǔ)的類。</p><p>  作為一名消費(fèi)者的使用流程</p><p>  假如一個消費(fèi)者第一次來到一個網(wǎng)上商城,他首先一般會先瀏覽瀏覽該商城的首頁以及首頁上所列的各種商品,如果你這個網(wǎng)站的首頁設(shè)計得很精細(xì)很吸引人的話,消費(fèi)者才會有興趣

24、進(jìn)行下一部探索,看看你們這個商城有什么好的商品。因此,目前的網(wǎng)上商城設(shè)計者大多會在首頁花費(fèi)很大的功夫,比如在首頁就展示商品什么的,一次來吸引客戶的眼球。如此一來,用戶也不需要登錄就可以查看。</p><p>  進(jìn)而如果他對這個商品感興趣,那他就會點(diǎn)擊‘購買’這個按鈕,如果客戶是第一次來此商城購買商品,那么系統(tǒng)就會自動提醒客戶是否注冊一個新賬號,注冊之后才能進(jìn)行下一步操作。當(dāng)然了,消費(fèi)者進(jìn)行注冊之后系統(tǒng)就該為消費(fèi)

25、者提供一個登錄功能,以方便消費(fèi)者登錄進(jìn)而進(jìn)行購買商品的操作以及一些相關(guān)的操作。該系統(tǒng)在消費(fèi)者登錄成功之后會在頁面上顯示該消費(fèi)者的用戶名以及跟消費(fèi)者相關(guān)的一些操作功能。這些操作功能包括修改用戶的密碼,查看自己的個人信息,修改自己的相關(guān)的個人信息。</p><p>  當(dāng)然用戶登錄之后也可以查看商品,最重要的,登錄用戶可以選擇商品放入自己的購物車并下單結(jié)賬。還可以查看自己所下的訂單。</p><p

26、>  根據(jù)上面的信息分析,我們大致可以分析出來有這么幾個實體類來支撐這些操作,首先,注冊之后就會產(chǎn)生一個用戶,接著要用此用戶來支持登錄功能,這樣一來,所有的用戶集合成了一個用戶實體類,這個實體類包括用戶名,用戶密碼,聯(lián)系方式,用戶地址等等。接著,在用戶注冊登錄之后,商城就要向用戶展示相關(guān)的商品,那么,所有的商品又集合成了一個商品實體類,這個實體類包括一些商品的相關(guān)信息,不如商品名,商品價格,商品生產(chǎn)日期等。再者,用戶如果對某些商品

27、感興趣了,就要把喜歡的商品放到購物車?yán)?,那么又一個購物車實體類產(chǎn)生了,這個實體類包括商品名稱,商品價格,把此商品放入購物車的用戶名稱等等;最后會員買完東西后給商城下了訂單,那么這個訂單也需要包裝成一個實體類,上面需要記錄一些信息,最主要的信息應(yīng)當(dāng)有:誰下了這個訂單?買了什么東西?多少錢?其它的諸如什么時候下的也可以記錄。</p><p>  作為一名商城管理員的使用流程</p><p> 

28、 管理員首先也要登錄才能操作所有功能,商城管理員應(yīng)當(dāng)能管理商城注冊的會員:可以查看商城的已注冊會員,并且對已注冊的會員信息進(jìn)行修改,而且也可以刪除相關(guān)的會員。</p><p>  接著,管理員還應(yīng)該有如下的一些功能。首先,添加父類商品,比如說“書籍”,再者,就是可以添加子類商品,比如說“計算機(jī)”,最后,管理員應(yīng)該也可以添加子類下的相關(guān)的一些商品,比如說“30天精通JAVA” 。</p><p&

29、gt;  當(dāng)然,管理員應(yīng)該也可以修改自己的密碼。</p><p>  從管理員的操作,我們也可以得到這么幾個實體類。第一,管理員,既然有管理員那么就必須有一個類來記錄這些東西,對于該系統(tǒng)需要說明一點(diǎn)的就是:在我開發(fā)的這個系統(tǒng)中,由于本人的水平只是有限,為了降低該項目的復(fù)雜度,所以本人把管理員和會員都放在同一個實體類中去了,在登錄的時候把管理員的名稱固定到代碼中去了,即:admin,用戶類這個實體類中,admin這

30、個用戶是不能刪除的,是永久保存在此實體類中的,只要以這個名稱登錄,那么頁面就會跳轉(zhuǎn)到管理員的操作頁面中去;第二,這里提到了父類別,那么這個也應(yīng)當(dāng)包裝成一個類,而且這個類應(yīng)當(dāng)和子類別有一定的關(guān)聯(lián)。第三,這里也提到了子類別,那么子類別也應(yīng)該是個實體類,這個類和商品類也有一定得關(guān)聯(lián);第三,最底層的就是商品這個類了,所有商品集合在一個構(gòu)成了一個商品實體類,商品類別是屬于某個子類別中的一種。</p><p>  因此,從前

31、面兩個站在不同角度來分析使用流程來看,我從中提取出了一些個名詞,這些個名詞也就成為了一些基礎(chǔ)的實體類,目前分析的出來的有,用戶類、商品父類別類、商品子類別類、商品類、購物車類、訂單類、。</p><p>  顯然,這些個類在此商城項目中是比較具體的,是可以很明顯看出的,但是還有一些類是比較“抽象”的,是不能這樣直接的通過找名詞來得出來,但是可以分析這個過程,可以得出這些類確實要存在,因而來將其推算出來。商城有很多

32、數(shù)據(jù)是要存到數(shù)據(jù)庫的,在這里,我把一些與數(shù)據(jù)庫打交道的通用操作封裝成為一個JDBC的類。另外,對于商城頁面中涉及到需要分頁的,我寫了一個通用的分頁實體類,里面包括六個相關(guān)的屬性。</p><p>  當(dāng)然這肯定不是全部,隨著分析設(shè)計的深入,還會有一些類添加進(jìn)來,就算進(jìn)入到實際開發(fā)階段,還有可能突然覺得需要再加入某個類。</p><p><b>  網(wǎng)上商城模塊分析</b&g

33、t;</p><p><b>  用戶模塊分析</b></p><p>  用戶模塊是為商城的前臺展示所設(shè)計的,用戶模塊又可以大致劃分為一下子模塊:</p><p><b>  用戶注冊模塊</b></p><p><b>  用戶登錄模塊</b></p><

34、;p><b>  用戶信息修改模塊</b></p><p><b>  修改用戶密碼模塊</b></p><p><b>  商品展示模塊</b></p><p><b>  購物車模塊</b></p><p><b>  查看以往訂單模塊

35、</b></p><p>  用戶注冊模塊負(fù)責(zé)新會員注冊,并將其持久化,也就是將新注冊的會員的信息寫入數(shù)據(jù)庫。登錄模塊負(fù)責(zé)驗證會員的登錄,看看有沒有這個用戶,密碼是否正確等,這種操作通常都是從數(shù)據(jù)庫查詢。用戶信息修改模塊可以讓用戶修改自己的個人信息,這就涉及到了數(shù)據(jù)庫的修改。修改用戶密碼模塊讓用戶修改自己的密碼。商品展示模塊應(yīng)當(dāng)是從數(shù)據(jù)庫中將商品拿出來,然后再以某種方式顯示的網(wǎng)頁上。購物車模塊就是收集

36、和記錄用戶所購買的商品,購物車最后要么被直接銷毀,要么會轉(zhuǎn)化為訂單,然后被銷毀。查看以往訂單模塊使用戶能查看自己所下的訂單。因此數(shù)據(jù)庫的操作始終貫穿在整個系統(tǒng)里面,幾乎所有的地方都涉及到了數(shù)據(jù)庫的操作。</p><p><b>  管理員模塊分析</b></p><p>  管理員模塊是為管理員管理商城事物所設(shè)計的,管理員模塊又可以初步劃分為以下子模塊:</p&

37、gt;<p><b>  會員管理模塊</b></p><p><b>  商品類別管理模塊</b></p><p><b>  商品管理模塊</b></p><p><b>  訂單處理模塊</b></p><p><b>  管

38、理員的自我管理</b></p><p>  很明顯,會員管理模塊是用來管理商城的注冊會員的,應(yīng)當(dāng)可以查看會員、修改會員信息、刪除會員,這就是對數(shù)據(jù)庫的增刪改查的體現(xiàn)。商品類別管理模塊用來管理商品類別,可以查看商品類別,添加商品類別,修改商品類別和刪除商品類別。商品管理模塊用來管理商城的商品,可以查看商品,添加商品,修改商品和刪除商品。訂單處理模塊用來管理會員所下訂單,可以查看會員所下的訂單,并處理這些

39、訂單。</p><p><b>  本章小結(jié)</b></p><p>  本章主要從商城的使用者角度,也就是普通用戶和商城管理員兩方面分別分析了這些用戶對商城一般的操作流程。然后根據(jù)這些流程分析出了一些直接的類,也就是一些基礎(chǔ)的實體類,并跟據(jù)這些大致的流程分析出兩個大模塊,用戶模塊和管理員模塊,兩個大模塊又可以進(jìn)一步細(xì)分為一個個小模塊。并大致分析了這些模塊的功能。&l

40、t;/p><p>  第三章 網(wǎng)上商城系統(tǒng)的設(shè)計與實現(xiàn)</p><p>  本章是網(wǎng)上商城系統(tǒng)的具體設(shè)計,包括開發(fā)環(huán)境的選擇及介紹,各個功能模塊的具體設(shè)計以及一部分實現(xiàn)。</p><p><b>  開發(fā)語言和工具介紹</b></p><p>  這里介紹我選擇的開發(fā)語言,開發(fā)工具等。</p><p>

41、;<b>  開發(fā)語言介紹</b></p><p>  1.Java簡介:Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線程的動態(tài)語言。</p><p>  Java平臺由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interf

42、ace、簡稱API)構(gòu)成[2]。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺上安裝一個Java平臺之后,Java應(yīng)用程序就可運(yùn)行。現(xiàn)在Java平臺已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。 </p><p>  2.HTML簡介:HTML是Hypertext Markup Language的縮寫,

43、即超文本標(biāo)記語言。它是用于創(chuàng)建可從一個平臺移植到另一平臺的超文本文檔的一種簡單標(biāo)記語言,經(jīng)常用來創(chuàng)建Web頁面。HTML文件是帶有格式標(biāo)識符和超文本鏈接的內(nèi)嵌代碼的ASCII 文本文件。HTML是制作網(wǎng)頁的基礎(chǔ),</p><p>  3.JavaScript簡介:JavaScript是由Netscapt與SUN公司合作開發(fā)的產(chǎn)品。JavaScript是一種跨平臺的開放式腳本描述語言,它是Java和Livescri

44、pt的衍生物,它生成的應(yīng)用程序能夠?qū)⒖蛻艉头?wù)器上的對象和資源聯(lián)系在一起,通過Internet動態(tài)的表示信息并與用戶進(jìn)行交互。JavaScript是用來改變網(wǎng)頁外觀的編輯命令和指令,它對網(wǎng)頁設(shè)計有著重要的幫助。</p><p>  4.AJAX簡介:AJAX即“Asynchronous JavaScript and XML”(異步JavaScript和XML),AJAX并非縮寫詞,而是由Jesse James G

45、aiiett創(chuàng)造的名詞,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。</p><p>  5.JSP簡介:JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)[7]。該技術(shù)為創(chuàng)建顯示動態(tài)生成內(nèi)容的Web頁面提供了一個簡捷而快速的方法。JSP技術(shù)的設(shè)計目的是使得構(gòu)造基于Web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種Web服務(wù)器,

46、應(yīng)用服務(wù)器,瀏覽器和開發(fā)工具共同工作。 JSP規(guī)范是Web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)、以及開發(fā)工具供應(yīng)商間廣泛合作的結(jié)果。</p><p><b>  數(shù)據(jù)庫介紹</b></p><p>  MySQL 是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器,它是一個客戶機(jī)/服務(wù)器結(jié)構(gòu)的實現(xiàn)。MySQL是現(xiàn)在流行的關(guān)系數(shù)據(jù)庫中其中的一種,相比其它的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來

47、說,MySQL具有小巧、功能齊全、查詢迅捷等優(yōu)點(diǎn)。MySQL 主要目標(biāo)是快速、健壯和易用。關(guān)鍵的是它是免費(fèi)的,可以在Internet上免費(fèi)下載到,并可免費(fèi)使用。MySQL 對于一般中小型,甚至大型應(yīng)用都能夠勝任。</p><p><b>  服務(wù)器介紹</b></p><p>  Tomcat是Apache 軟件基金會(Apache Software Foundati

48、on)的Jakarta 項目中的一個核心項目[10],由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。因為Tomcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。</p><p><b>  開發(fā)工具介紹</b></p><p>  在開發(fā)過程中,我主要用到了myeclip

49、se</p><p>  MyEclipse介紹:MyEclipse,是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。</p><p><b>  業(yè)務(wù)邏輯設(shè)計</b></p><p>  要實現(xiàn)網(wǎng)上商城的業(yè)務(wù)邏輯,必須有相應(yīng)的實體類和其

50、相應(yīng)的方法,這里就大致將其設(shè)計出來。</p><p>  基礎(chǔ)共用類和相應(yīng)方法</p><p>  整個系統(tǒng)有一些通用的類和方法,比如連接數(shù)據(jù)庫等。</p><p><b>  DataBase類</b></p><p><b>  方法:</b></p><p>  pub

51、lic static Connection getConn() 取得用于連接數(shù)據(jù)庫的Connection。</p><p>  public static void close(Connection conn) 關(guān)閉Connection。</p><p>  public static void close(Statement stmt) 關(guān)閉Statement。</p>&

52、lt;p>  public static void close(ResultSet rs) 關(guān)閉ResultSet。</p><p>  3.2.1.2 PoolDataSource類</p><p>  private static String username;</p><p>  private static String password;</

53、p><p>  private static String url ;</p><p>  private static String className;</p><p>  private static int maxActive;</p><p>  private static int minActive;</p><

54、p>  private static int curActive;</p><p>  private static Properties prop = new Properties();</p><p>  private static int curActive</p><p>  getters()和setters()方法,用來得到和設(shè)置成員變量的值,因

55、此不詳細(xì)列出。</p><p>  3.2.1.3 Page類</p><p>  Page包裝了分頁信息。</p><p><b>  成員變量:</b></p><p>  1、private Integer pageNo;//當(dāng)前是第幾頁</p><p>  2、private Intege

56、r pageSize;//當(dāng)前總共多少頁</p><p>  3、private Long totalPage ;//總共多少頁</p><p>  4、private String url;//頁面地址(jsp)</p><p>  5、private String method ;//相關(guān)方法名</p><p>  6、private S

57、tring index ;//用來作標(biāo)記的</p><p>  方法:getters()和setters()方法,用來得到和設(shè)置成員變量的值,因此不詳細(xì)列出。</p><p>  用戶實體類以及相關(guān)的類和相應(yīng)方法</p><p>  為了實現(xiàn)商城會員的注冊、登錄、查看會員自己的信息、修改會員的個人信息、修改個人密碼和查看所下的訂單,應(yīng)當(dāng)有一個用戶實體類和其相應(yīng)的方法

58、,在這里設(shè)計出兩個類User類。User包裝了用戶的信息,并提供相應(yīng)的get和set方法;</p><p><b>  User類</b></p><p><b>  成員變量:</b></p><p>  private int id 用戶id。</p><p>  1、 private Inte

59、ger userId ;//User的id</p><p>  2、 private String username ;//用戶名</p><p>  3、 private String password ;//用戶密碼</p><p>  4、 private String email ;//用戶郵箱</p><p>  5、 privat

60、e String address ;//用戶地址</p><p>  6、 private String phone ;//用戶聯(lián)系方式</p><p>  方法:getters()和setters()方法,用來得到和設(shè)置成員變量的值,因此不詳細(xì)列出。</p><p>  3.2.2.2 IUserDAO接口 </p><p>  1

61、、 User findUserByExample(User user) ;//根據(jù)一個user找出user</p><p>  2、 void save(User user) ;//添加一個user</p><p>  3、 List<User> findAllUser() ;//查找出所有的會員</p><p>  4、 User findUserBy

62、Id(Integer userId) ;//根據(jù)某個id查找對應(yīng)的user</p><p>  5、 void modify(User user) ;//修改相應(yīng)的user</p><p>  6、 void delete(User user) ;//刪除選中的user</p><p>  7、 User findUserByName(String username

63、) ;//根據(jù)用戶名稱查找user</p><p>  8、 List findUserByPage(Page page) ;//根據(jù)頁數(shù)號碼列出用戶</p><p>  9、 void modifyPasswordByUid(Integer uid) ;//根據(jù)id修改相應(yīng)的用戶密碼</p><p>  3.2.2.3 UserDAO類</p>&l

64、t;p>  實現(xiàn)了IUserDAO接口的所有方法,在此不再詳細(xì)列出。</p><p>  3.2.2.4 UserService類</p><p>  成員變量: IUserDAO userDao = new UserDAO() ;</p><p><b>  相關(guān)方法:</b></p><p>  1、publ

65、ic void save(User user){ }</p><p>  2、public List<User> findAllUser(){} </p><p>  3、public User findUserById(Integer userId){}</p><p>  4、public User login(User user){}<

66、/p><p>  5、public void modify(User user) {}</p><p>  6、public void delete(User user){}</p><p>  7、public User findUserByName(String username){}</p><p>  8、public List find

67、UserByPage(Page page){}</p><p>  9、public void modifyPasswordByUid(Integer uid){}</p><p>  商品父類別類和相應(yīng)方法</p><p>  這是一個基礎(chǔ)的類,它是一種樹形結(jié)構(gòu),有根類別,其下又有很多子類別,一個商品子類別類必須屬于某種商品父類別類。</p><

68、;p>  ParentCategory實體類</p><p><b>  成員變量:</b></p><p>  1、private Integer pid ;</p><p>  2、private String pname ;</p><p>  方法:getters()和setters()方法,用來得到和設(shè)置

69、成員變量的值,因此不詳細(xì)列出。</p><p>  3.2.3.2 IParentCategoryDAO接口</p><p>  List listAll() ;//列出所有的父類別的實例</p><p>  void addParentCategory(ParentCategory pCategory) ;//添加父類別中的實例</p><p&

70、gt;  3.2.3.3 ParentCategoryDAO類</p><p>  實現(xiàn)了ParentCategoryDAO接口的所有方法,在此不再詳細(xì)列出。</p><p>  3.2.3.4 ParentCategoryService類</p><p>  成員變量:IChildCategoryDAO iccDao = new ChildCategoryDAO

71、() ;</p><p><b>  相關(guān)方法:</b></p><p>  1、 public void addChildCategory(ChildCategory cCategory) {}</p><p>  2、 public List listAll() {}</p><p>  3、 public Lis

72、t findChildCategoryByPid(Integer pid){}</p><p>  商品子類別類和相應(yīng)方法</p><p>  ChildCategory類</p><p>  這個類與ParentCategory有關(guān)聯(lián)</p><p>  1、 private Integer cid ;//子類別類的id</p>

73、<p>  2、private String cname ;//子類別類的名稱</p><p>  3、private Integer pid ;//相關(guān)聯(lián)的父類別id</p><p>  3.2.4.2 IChildCategoryDAO接口</p><p><b>  抽象方法:</b></p><p>

74、;  1、List listAll() ;//列出所有的子類別實例</p><p>  2、void addChildCategory(ChildCategory cCategory) ;// 添加子類別實例</p><p>  3、List findChildCategoryByPid(Integer pid) ;</p><p>  3.2.4.3 ChildC

75、ategoryDAO類</p><p>  實現(xiàn)了ChildCategoryDAO接口的所有方法,在此不再詳細(xì)列出。</p><p>  3.2.4.4 ChildCategoryService類</p><p><b>  成員變量: </b></p><p>  IChildCategoryDAO iccDao

76、 = new ChildCategoryDAO() ;</p><p><b>  方法:</b></p><p>  1、public void addChildCategory(ChildCategory cCategory) {}</p><p>  2、public List listAll() {}</p><p&

77、gt;  3、public List findChildCategoryByPid(Integer Pid){}</p><p>  商品類以及相關(guān)類和方法</p><p>  3.2.5.1 Goods類</p><p>  1、private Integer gid ;//商品id</p><p>  2、private String g

78、name ;//商品名稱</p><p>  3、private Float price ;//商品價格</p><p>  4、private String description ;//商品相關(guān)描述</p><p>  5、private Integer cid ;//子類別id</p><p>  6、private String im

79、age ;//商品圖片</p><p>  3.2.5.2IGoodsDAO接口</p><p>  1、void saveGoods(Goods goods) ;//添加商品</p><p>  2、List listAllGoods(Page page) ;//列出所有的商品</p><p>  3、List findGoodsByCid

80、(Integer cid,Page page) ;//根據(jù)商品id找出相對于的商品</p><p>  4、void modifyGoodsByGid(Goods goods,Integer gid) ;//根據(jù)商品id修改某商品的信息</p><p>  5、void deleteGoodsByGid(Integer gid) ;//根據(jù)商品id刪除此商品</p><

81、p>  3.2.5.3 GoodsDAO類</p><p>  實現(xiàn)了GoodsDAO接口的所有方法,在此不再詳細(xì)列出。</p><p>  3.2.5.4 GoodsService類</p><p>  成員變量:IGoodsDAO goodsDao = new GoodsDAO() ;</p><p><b>  方法

82、:</b></p><p>  1、public void saveGoods(Goods goods){} </p><p>  2、public List listAllGoods(Page page){}</p><p>  3、public List findGoodsByCid(Integer cid,Page page{}</p>

83、<p>  4、public void modifyGoodsByGid(Goods goods,Integer gid){}</p><p>  public void deleteGoodsByGid(Integer gid){}</p><p>  3.2.6 SvImage類</p><p>  該類主要用于在添加相關(guān)商品時,同時要求附帶商品

84、圖片,此時就需要運(yùn)用這個類來處理圖片上傳方面的功能了。</p><p>  3.2.6.1 SvImage類</p><p>  Servlet,用來實現(xiàn)為商品上傳圖片,用到了apache的commons-fileupload和commons-io組件,這是在Java的Web開發(fā)中最常用的文件上傳組件。上傳的圖片會存放在服務(wù)器的目錄下。</p><p>  3.2

85、.7購物車類及其方法</p><p>  該類主要用于用戶如果對某件商品感興趣時,就可以按下“放入購物車”這個按鈕,同時,這件商品的相關(guān)信息就會被放到了相應(yīng)的購物車中去了。即用來存放用戶喜歡而即將購買的商品信息的。</p><p>  3.2.7.1 Car類</p><p>  1、private Integer carId ;//購物車id</p>

86、<p>  2、private String gname ;//放入購物車某商品的名稱</p><p>  3、private Float price ;//放入購物車某商品的價格</p><p>  4、private Integer userId ;//此購物車屬于那個user的用戶的id</p><p>  3.2.7.2 ICarDAO接口&l

87、t;/p><p>  1、void saveCar(Car car) ;//用戶決定購買某件商品</p><p>  2、void deleteCar();//把某件商品從購物車中移出來</p><p>  3、List<Car> listCarsByUid(Integer uid) ;//列出某用戶的購物車</p><p>  4、

88、void deleteCarByCarId(Integer carId) ;根據(jù)carid把某件商品從購物車中移出來</p><p>  3.2.7.3 CarDAO類 </p><p>  實現(xiàn)了CarDAO接口的所有方法,在此不再詳細(xì)列出。</p><p>  3.2.7.4 CarService類</p><p>  成員

89、變量: ICarDAO carDao = new CarDAO() ;</p><p><b>  方法:</b></p><p>  1、 public void saveCar(Car car){} </p><p>  2、public List listCarByUid(Integer uid){}</p>&l

90、t;p>  3、 public void deleteCarByCarId(Integer carId){}</p><p>  3.2.8訂單類及其方法</p><p>  3.2.8.1 Orders類</p><p><b>  成員變量:</b></p><p>  1、private Integer or

91、derId ;//訂單id</p><p>  2、private Integer userId ;//下此訂單的用戶id</p><p>  3、private String gname ;//此訂單中某商品的名稱</p><p>  4、private Float price ;//此訂單中某商品的價格</p><p>  5、priva

92、te Date orderDate ;//訂單日期</p><p>  6、private String orderNum ;//訂單號</p><p>  7、private String username ;//下此訂單的用戶名稱</p><p>  8、private String state ;//訂單的狀態(tài)</p><p>  此類

93、中的set和get方法在此就不再列出了。</p><p>  3.2.8.2 IOrdersDAO 接口</p><p>  1、void saveOrder(Orders order) ;//保存訂單</p><p>  2、List<Orders> listOrdersByUid(Integer userId) ;//列出某用戶的訂單</p&

94、gt;<p>  3、List<Orders> listAllOrders() ;//列出所有訂單</p><p>  4、void handleOrderByOrderId(String state,Integer orderId) ;//處理訂單</p><p>  5、void deleteOrderByOrderId(Integer orderId) ;/

95、/刪除某訂單</p><p>  3.2.8.3 OrdersDAO 類</p><p>  實現(xiàn)了IOrderDAO接口的所有方法,在此不再詳細(xì)列出</p><p>  3.2.8.4 OrderSerrvice類 </p><p>  成員變量: IOrdersDAO orderDao = new OrderDAO() ;</p&g

96、t;<p><b>  相關(guān)方法:</b></p><p>  1、public void saveOrder(Orders order){} </p><p>  2、public List<Orders> listMyOrderByUid(Integer userId){} </p><p>  3

97、、public List<Orders> listAllOrder(){}</p><p>  4、public void handleOrderByOrderId(String state,Integer orderId){ }</p><p>  5、public void deleteOrderByOrderId(Integer orderId) {}</p>

98、<p><b>  數(shù)據(jù)庫設(shè)計</b></p><p>  3.3.1 user表</p><p>  user表是用來存放商城會員的信息的表,有7個字段,分別用來存放用戶id、用戶名、密碼、聯(lián)系電話、送貨地址、Email和注冊日期,它又和User實體類的成員變量對應(yīng),詳見表4-1。</p><p>  表4-1 user表&l

99、t;/p><p>  3.3.2 parentcategory表</p><p>  parentcategory表用來存放父類別的信息的,有2個字段,分別用來存放父類別的的pid和名稱的,它的主鍵作為子類別childcategory表的外鍵。</p><p>  表4-2 parentcategory表</p><p>  3.3.3 c

100、hildcategory表</p><p>  cparentcategory表用來存放子類別的信息的,有3個字段,分別用來存放子類別的的cid、名稱和外鍵pid,,它的主鍵作為商品goods表的外鍵。</p><p>  表4-3 category表</p><p>  3.3.4 goods表</p><p>  goods表用來保存商

101、品的信息,有6個字段,分別用來保存商品的id、商品的名稱、價格、描述、圖片名稱、外鍵cid詳見表4-4。</p><p>  表4-4 goods表</p><p>  3.3.5 car表</p><p>  car表用來存放用戶喜歡并且有意購買的商品信息的,有4個字段,分別表示訂單id,用戶id,商品名稱,商品價格。詳情見4-5。</p><

102、;p>  表4-5 car表</p><p>  3.3.6 orders表</p><p>  orders用來存在用戶已經(jīng)購買的商品信息以及相關(guān)的一些信息,本表有8個字段,分別表示訂單id,用戶id,商品名稱,商品價格,下單日期,訂單號,用戶名,訂單狀態(tài),詳情請見4-6。</p><p>  表4-6orders表</p><p&g

103、t;<b>  3.4 本章小結(jié)</b></p><p>  本章非常詳細(xì)的介紹了網(wǎng)上商城系統(tǒng)的具體設(shè)計,從開發(fā)工具的選擇和環(huán)境的搭建,到基礎(chǔ)的共用類,到具體的實體類再到數(shù)據(jù)庫的設(shè)計。這樣就完成了項目具體框架的搭建。</p><p>  第四章 系統(tǒng)的測試和分析</p><p>  從這里進(jìn)入到具體的軟件編碼階段,我采用了螺旋遞增的方式開發(fā),每

104、個版本都只完成一定的功能,然后進(jìn)行一定的測試,然后繼續(xù)進(jìn)行開發(fā),繼續(xù)完成和完善功能,直到所有的功能全部完成。</p><p>  4.11 Version 1</p><p>  在這個版本里,做了一些系統(tǒng)共用類的封裝,比如對數(shù)據(jù)庫操作的一些常用的方法,將其封裝到了DB類中,封裝了取得數(shù)據(jù)庫連接Connection的方法,和關(guān)閉Connection、Statement和ResultSet的

105、方法。在獲得數(shù)據(jù)庫連接Connection的時候需要提供一些信息,第一個是數(shù)據(jù)連接驅(qū)動的名字,第二個是數(shù)據(jù)庫連接字符串,還有用戶名和密碼,這些信息如果寫死在程序里面并不好,如果修改數(shù)據(jù)庫那必須要重新修改程序,因此我將上面那些信息封裝到了配置文件中,也就是sys-config.xml文件中,如果配置發(fā)生了變化,那只需要在配置文件中改動相應(yīng)的配置即可。</p><p>  在網(wǎng)絡(luò)編程中,中文亂碼問題一直是個比較麻煩的

106、事情,解決的方法就是在JSP頁面或者Servlet里設(shè)置字符集,但是頁面非常多的情況下,設(shè)置字符集就變得非常麻煩,而且如果發(fā)生變動,就需要將這些頁面或Servlet的代碼全部改一遍,所以這里引入了一個Filter,F(xiàn)ilter是一個過濾器,屬于面向切面編程的東西,它就是在原來的調(diào)用流程里無縫的切入了一層,來實現(xiàn)一些功能,下面我畫圖解釋一下Filter的工作原理和調(diào)用流程,如圖4-1。</p><p>  圖4-1

107、 普通調(diào)用流程</p><p>  在沒有加入Filter之前,一個請求到達(dá)時,Tomcat會幫忙調(diào)用相應(yīng)的JSP或者Servlet,如果加入了Filter則變成了圖4-2所示的樣子。</p><p>  圖4-2 加入Filter之后的調(diào)用流程</p><p>  如果加入了一個Filter,則會變成這個樣子,也就是在原先的Tomcat調(diào)用Servlet之間又切入

108、了一層,正因為切入了這么一層,所以在這一層就可以做一些事情,在這里我設(shè)置了字符集(GBK),之后又通過doFilter()方法繼續(xù)調(diào)用Servlet,這種切入是無縫的,不會影響之前的任何東西。</p><p>  在用戶注冊和登錄之前,我設(shè)置好了這個網(wǎng)上商城的首頁,界面截圖如下:</p><p><b>  圖4-1-1</b></p><p>

109、;  在這個版本里,我還建立了User實體類封裝了會員的信息,IUserDAO接口,UserDAO類以及UserService類,UserService則提供了一系列的管理方法,有了這些類和接口,接著就完成了用戶的注冊和登錄功能,在用戶注冊的時候采用了AJAX來驗證用戶名是否已經(jīng)被注冊過了,如果已經(jīng)被注冊過了頁面就是提示該用戶名已經(jīng)被注冊過,如果沒有則提示該用戶名可以用,在注冊頁面還使用了JavaScript來驗證用戶的輸入,比如密碼長

110、度不能小于6位,兩次密碼輸入的是否一致,如果輸入了電話,另外還使用了正則表達(dá)式來驗證郵箱格式是否符合規(guī)定的格式。最后還設(shè)置了驗證碼這個功能,防止一些非法分子進(jìn)行批量注冊。正對這個功能,我特地寫了一個ImageCode類。</p><p>  下面是當(dāng)用戶第一次來此網(wǎng)站,在點(diǎn)擊注冊按鈕之后,出現(xiàn)的頁面,界面截圖如下</p><p><b>  圖4-1-2</b><

111、;/p><p>  當(dāng)用戶填寫的所有信息都符合相關(guān)的規(guī)定,那么注冊之后頁面就會轉(zhuǎn)到登錄界面提醒用戶是否要進(jìn)行登錄,在首頁右邊有一個供用戶登錄的區(qū)域,在這里可以輸入用戶名和密碼登錄,截圖如下:</p><p><b>  圖4-1-3</b></p><p>  在登錄過程中,如果用戶名為空或者密碼為空,頁面會有相關(guān)的提示信息,即使用戶輸入了用戶名和

112、密碼,如果用戶名或者密碼不對,頁面也會有相關(guān)的提示信息提示用戶。然后,如果用戶名和密碼都輸入正確,那么在登錄之后頁面會跳轉(zhuǎn)到下一個頁面,并且會將這個用戶記錄到Session中,此頁面的功能我把它放在了下個版本中測試。這里不再詳述。</p><p>  到這里,V1.0版本就完成了,經(jīng)過測試也都沒有問題。</p><p>  4.12 Version 2</p><p&g

113、t;  該版本完成得是用戶信息的修改,用戶的密碼修改以及用戶注銷功能。當(dāng)點(diǎn)擊當(dāng)前用戶名的時候,頁面中間會出現(xiàn)如下類容,截圖如下:</p><p><b>  圖4-1-4</b></p><p>  當(dāng)用戶輸入新的信息并點(diǎn)擊提交之后,就會把新的信息保存到數(shù)據(jù)庫中。當(dāng)用戶再做顯示操作的時候,顯示的便是修改以后的信息。</p><p>  當(dāng)用戶點(diǎn)

114、擊頁面右上方的修改密碼按鈕時,便會出現(xiàn)修改密碼的頁面,頁面中有三個輸入框,第一個是要求輸入原密碼,第二個框要求輸入新密碼,第三個輸入框要求輸入與第二個輸入框輸入的內(nèi)容一致,如果不一致,頁面便會出現(xiàn)提示信息提示兩次密碼輸入不一致。截圖如下:</p><p><b>  圖4-1-5</b></p><p>  當(dāng)用戶想退出本商城時,可以點(diǎn)擊頁面右上方的注銷按鈕,用戶按下

115、注銷按鈕時,頁面會彈出一個小窗口,提示用戶是否真的要退出。如果點(diǎn)擊確定,頁面也轉(zhuǎn)到初始狀態(tài),如果點(diǎn)擊取消,頁面不變。截圖如下:</p><p><b>  圖4-1-6</b></p><p>  Version2的功能到這里已結(jié)束,經(jīng)過細(xì)心的測試,這些功能能正常發(fā)揮作用。</p><p>  4.13 Version 3</p>

116、<p>  接著我們來看看管理員方面。在前面我已經(jīng)說明了,由于本人水平有限,所有就沒有把用戶表和管理員表分開了,而是把管理員的數(shù)據(jù)也寫進(jìn)了user表,在數(shù)據(jù)庫里面把a(bǔ)dmin這個用戶名定為管理員用戶名,只要以此用戶名登錄的便是管理員身份。在登錄界面方面,管理員也是賀普通用戶共用一個登錄界面。界面截圖在上面已列出來,在這里不再贅述。</p><p>  管理員輸入正確用戶名和密碼之后頁面轉(zhuǎn)到主頁面,否則

溫馨提示

  • 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

提交評論