信息系統(tǒng)分析與設(shè)計(jì)的課程設(shè)計(jì)(基于JSP技術(shù)的網(wǎng)上書店)_第1頁
信息系統(tǒng)分析與設(shè)計(jì)的課程設(shè)計(jì)(基于JSP技術(shù)的網(wǎng)上書店)_第2頁
信息系統(tǒng)分析與設(shè)計(jì)的課程設(shè)計(jì)(基于JSP技術(shù)的網(wǎng)上書店)_第3頁
信息系統(tǒng)分析與設(shè)計(jì)的課程設(shè)計(jì)(基于JSP技術(shù)的網(wǎng)上書店)_第4頁
信息系統(tǒng)分析與設(shè)計(jì)的課程設(shè)計(jì)(基于JSP技術(shù)的網(wǎng)上書店)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄中文摘要 2外文摘要 2中文關(guān)鍵詞2英文關(guān)鍵詞21 選題背景42 程序開發(fā)的基礎(chǔ)技術(shù)52.1 HTML語言52.2 JavaSCRIPT語言62.3 JSP概述62.4 JSP工作原理72.5 JSP的發(fā)布82.6 SQL語言簡單介紹82.7 JDBC技術(shù)介紹93 需求分析93.1系統(tǒng)說明93.2 可行性分析103.3 系統(tǒng)功能簡介103.3.1 基本功能103.3.2 用戶界面設(shè)計(jì)113.4 系統(tǒng)運(yùn)行環(huán)境114 系統(tǒng)設(shè)計(jì)124.1 系統(tǒng)設(shè)計(jì)思想124.2 系統(tǒng)功能模塊化134.3 數(shù)據(jù)庫設(shè)計(jì)134.3.1 數(shù)據(jù)庫需求分析144.3.2 數(shù)據(jù)庫概念結(jié)構(gòu)144.3.3 數(shù)據(jù)庫邏輯機(jī)構(gòu)設(shè)計(jì)15

2、5 詳細(xì)設(shè)計(jì)165.1 系統(tǒng)概述165.3 系統(tǒng)主要文件175.3 詳細(xì)代碼及說明17實(shí)現(xiàn)用戶實(shí)體的Bean18實(shí)現(xiàn)圖書實(shí)體的Bean205.3.3 實(shí)現(xiàn)訂購單實(shí)體的Bean225.3.4 實(shí)現(xiàn)購物車實(shí)體的Bean235.3.5 實(shí)現(xiàn)購物實(shí)體的Bean245.3.6 前臺運(yùn)行程序cart.jsp296 總結(jié)35基于JSP技術(shù)的網(wǎng)上書店According To The Technical On-Line Book-Shopping System Of JSP學(xué)生:0000 科技學(xué)院指導(dǎo)老師:汪靜 經(jīng)濟(jì)與管理學(xué)院【摘要】網(wǎng)上書店的建設(shè)實(shí)現(xiàn)了對商業(yè)零售企業(yè)提供信息化管理。建立了企業(yè)對消費(fèi)者(B2C)

3、的網(wǎng)絡(luò)銷售系統(tǒng)。著重論述了系統(tǒng)功能與實(shí)現(xiàn),數(shù)據(jù)流程及存儲,包括圖書目錄,用戶注冊,網(wǎng)上訂貨與購物,圖書查詢,后臺數(shù)據(jù)庫管理等。運(yùn)用HTML語言,JavaScript技術(shù),JDBC,JSP與后臺數(shù)據(jù)庫MY SQL 鏈接等關(guān)鍵技術(shù)建設(shè)網(wǎng)上購物系統(tǒng)。本系統(tǒng)具有比較完善的后臺管理系統(tǒng)和前臺購物系統(tǒng),后臺管理系統(tǒng)使用者為系統(tǒng)管理員,主要完成:公告管理,圖書管理,訂單管理,用戶管理,系統(tǒng)管理功能。前臺購物系統(tǒng)使用者為顧客用戶,主要完成:瀏覽公告,瀏覽圖書,查詢圖書,購買圖書,用戶注冊功能。本系統(tǒng)唯一不足之處在受網(wǎng)上銀行的限制,無法完善在線付費(fèi)系統(tǒng)?!続bstract】The construction of

4、 the on-line shopping system carries out to retail the business enterprise to provide the information-based management to the business. Built up the business enterprise to the network sale system of the consumer (B2C).Emphasized to discuss the system function and realizations, the data process and s

5、aving, include the catalogue, the customer register, ordering on the net with shopping, merchandise search, the backstage database management etc. Make use of the language of HTML, technique of JavaScript, JDBC, the JSP and backstage database chains connect to wait the on-line shopping system of the

6、 key technique construction. This system has the more perfect backstage management system and the stage shopping systems, the backstage management system user is a system managing person, mainly complete: Announce the management, the merchandise management, order management, customer management, sys

7、tem management function. The stage shopping system user is the customer customer , mainly completing: Browse to announce, browse the merchandise, search the merchandise, purchase the merchandise, the customer registers the function. Unique shortage of this system of be placed in to be limit by the o

8、n-line bank, can't be perfect and on-line to pay the system.【關(guān)鍵詞】B2C ,JSP, 數(shù)據(jù)庫, JDBC【Key Words】Business to Customer , JAVA Sever Pages , Database , JDBC前言近年來,隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費(fèi)者展示出一種新穎的購物理念。網(wǎng)上書店作為B2C (Business to Customer,即企業(yè)對消費(fèi)者)電子商

9、務(wù)的前端商務(wù)平臺,在其商務(wù)活動(dòng)全過程中起著舉足輕重的作用。網(wǎng)上購物是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供靜態(tài)和動(dòng)態(tài)兩類信息資源。所謂靜態(tài)信是指那些不經(jīng)常變動(dòng)或更新的資源,如公司簡介、管理規(guī)范和公司制度等等;動(dòng)態(tài)信息是指隨時(shí)變化的信息,如圖書報(bào)價(jià),會議安排和培訓(xùn)信息等。網(wǎng)上購物系統(tǒng)具有強(qiáng)大的交互功能,可使商家和用戶方便的傳遞信息,完成電子貿(mào)易或EDI交易。這種全新的交易方式實(shí)現(xiàn)了公司間文檔與資金的無紙化交換。現(xiàn)在流行的網(wǎng)上購物系統(tǒng)不僅要有漂亮的網(wǎng)頁,更要有嚴(yán)謹(jǐn)?shù)囊?guī)劃。每一個(gè)細(xì)小的環(huán)節(jié)都和重要。這樣才能使得在電子交易時(shí)避免不必要錯(cuò)誤發(fā)生。我們將使用HTML、JSP等技術(shù)來編輯網(wǎng)頁,并運(yùn)用J

10、SP技術(shù)把數(shù)據(jù)庫和動(dòng)態(tài)網(wǎng)頁相關(guān)聯(lián)。傳統(tǒng)的管理信息系統(tǒng)信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統(tǒng)的數(shù)據(jù)庫中,這種方法在數(shù)據(jù)量不大時(shí)有很多的應(yīng)用場合。當(dāng)數(shù)據(jù)量比較大,并且有較強(qiáng)的專業(yè)性時(shí),錄入的費(fèi)用和出錯(cuò)的可能性都相應(yīng)上升。本系統(tǒng)在實(shí)際應(yīng)用開發(fā)中解決方案是建立網(wǎng)站,  以及自己的數(shù)據(jù)庫,使得所需圖書信息可以及時(shí)的保存、更新??梢愿玫募皶r(shí)了解圖書買賣的情況。JSP是Sun公司推出的一種網(wǎng)站開發(fā)技術(shù),Sun公司借助自己在Java上的不凡造詣,又把人們引進(jìn)JSP時(shí)代,JSP即Java Server Page,它可以在Servlet和JavaBean的支持下,完成功能強(qiáng)大的

11、Web應(yīng)用程序。所以,在我的課程設(shè)計(jì)中,我采用了JSP作為開發(fā)工具,構(gòu)建了一個(gè)能實(shí)現(xiàn)簡單的電子商務(wù)的小型動(dòng)態(tài)商務(wù)網(wǎng)站網(wǎng)上書店銷售系統(tǒng)。該系統(tǒng)能實(shí)現(xiàn)用戶的注冊、登錄功能;能夠?qū)崿F(xiàn)圖書的查詢,訂購等功能。該系統(tǒng)基本上具備一個(gè)網(wǎng)上圖書銷售系統(tǒng)應(yīng)該具備的功能,該設(shè)計(jì)項(xiàng)目基本上體現(xiàn)了構(gòu)建一個(gè)動(dòng)態(tài)商務(wù)網(wǎng)站所需要的技術(shù),可以說,目前的大型商務(wù)網(wǎng)站也就是我們這個(gè)小型網(wǎng)站在內(nèi)容上的擴(kuò)充和重復(fù)。通過這次的課程設(shè)計(jì),我了解了目前流行的動(dòng)態(tài)商務(wù)網(wǎng)站的構(gòu)成和運(yùn)作原理,掌握了用JSP構(gòu)建動(dòng)態(tài)網(wǎng)站的相關(guān)知識和技術(shù)原理,鍛煉了自己的動(dòng)手實(shí)踐能力。更重要的是,通過這次的課程設(shè)計(jì),我培養(yǎng)出了刻苦鉆研的學(xué)習(xí)精神和嚴(yán)肅認(rèn)真的學(xué)習(xí)態(tài)度

12、,這對我以后的學(xué)習(xí)和工作有很大的益處。在這次課程設(shè)計(jì)過程中,我得到了指導(dǎo)老師汪老師和其他同學(xué)的悉心指導(dǎo)。在此,我對他們表示衷心的感謝!1 選題背景電子商務(wù)(E-COMMERCE或E-BUSINESS)是信息時(shí)代商業(yè)模式的實(shí)質(zhì)性變革,是未來貿(mào)易發(fā)展的方向。其實(shí)施牽涉社會信用體系,法律環(huán)境,經(jīng)濟(jì)次序諸方面,是一個(gè)與社會大環(huán)境息息相關(guān)并獨(dú)具完整結(jié)構(gòu)體系的系統(tǒng)工程。電子商務(wù)網(wǎng)站(網(wǎng)站商場)是整個(gè)電子商務(wù)的一個(gè)組成部分,它與傳統(tǒng)商務(wù)相比具有5方面主要優(yōu)勢。(1)無需店鋪?zhàn)饨鸬龋苁範(fàn)I業(yè)成本大大低于傳統(tǒng)商店。(2)采用"零庫存"管理方式,可大大縮短資金的周轉(zhuǎn)周期。(3)互聯(lián)網(wǎng)商務(wù)更有利

13、于開拓全球市場。(4)實(shí)現(xiàn)24小時(shí)不間斷營業(yè),有利于提高營業(yè)額。(5)可使用多媒體手段進(jìn)行促銷活動(dòng),可依靠客戶數(shù)據(jù)庫提供全新個(gè)人服務(wù)。隨著計(jì)算機(jī)與通信技術(shù)的飛速發(fā)展,電子商務(wù)的開展勢在必行。進(jìn)入90年代以來,隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)發(fā)展與應(yīng)用的極大突破,企業(yè)利用互聯(lián)網(wǎng)爭奪新市場,進(jìn)行電于商務(wù)活動(dòng)的越來越多,并又絕大多數(shù)獲得了較好的經(jīng)濟(jì)效益,建立一個(gè)好的網(wǎng)站正越來越受到企業(yè)的重視和關(guān)注。網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,給世界創(chuàng)造了巨大的信息財(cái)富,全球經(jīng)濟(jì)的延伸,使人類產(chǎn)生了廣泛交流的強(qiáng)烈愿望。面對電子商務(wù)的波瀾浪潮,各個(gè)大小商業(yè)網(wǎng)站應(yīng)運(yùn)而生。據(jù)統(tǒng)計(jì),國內(nèi)的電子商務(wù)網(wǎng)站已由1999年的200家發(fā)展到現(xiàn)在的600家,

14、并以平均每天開通兩家商務(wù)網(wǎng)站的速度遞增。電子商務(wù)網(wǎng)站的起步與發(fā)展,改變了傳統(tǒng)的經(jīng)營運(yùn)作模式,為信息共享和信息協(xié)作提供了無限空間。同時(shí),如何為電于商務(wù)網(wǎng)站提供獨(dú)立,客觀和公正的審計(jì)和簽證,也將成為注冊會計(jì)師談?wù)摰臒衢T話題。電子商務(wù)是21世紀(jì)經(jīng)濟(jì)發(fā)展的引擎,商務(wù)活動(dòng)在21世紀(jì)將進(jìn)入電子商務(wù)時(shí)代,發(fā)展電子商務(wù)是大勢所趨,是社會發(fā)展的必然,據(jù)預(yù)計(jì),2004年全球電子商務(wù)市場將從1999年的1513億美元增長到7萬億美元。而中國的電子商務(wù)交易額2000年底將達(dá)到8億美元,到2002年將增長到100億美元。作為一種全新的商務(wù)方式,電子商務(wù)帶來了更多的商業(yè)機(jī)會。要在新的商業(yè)機(jī)會中贏得市場,就必須開展電子商務(wù)

15、。電子商務(wù)包括信息流,資金流和物流3大要素,因此,包括信息和資金流的商務(wù)網(wǎng)站的建設(shè)在電子商務(wù)體系中有著重要的地位。電子商務(wù)是internet發(fā)展的直接產(chǎn)物,是網(wǎng)絡(luò)技術(shù)應(yīng)用的全新發(fā)展方向。internet本身具有的開放性,全球性,低成本,高效率的特點(diǎn),也成為了電子商務(wù)的內(nèi)在特點(diǎn),并使得電子商務(wù)大大超越了作為一種新的貿(mào)易形式歷具有的價(jià)值,它不僅會改變企業(yè)本身的生產(chǎn),經(jīng)營,管理活動(dòng),而且還將影響到整個(gè)社會的經(jīng)濟(jì)運(yùn)行與結(jié)構(gòu),但是,要實(shí)現(xiàn)完整的電子商務(wù)不僅涉及到賣家和買家,還會有金融機(jī)構(gòu),政府機(jī)構(gòu),認(rèn)證機(jī)構(gòu),配送中心等機(jī)構(gòu)的加入,由此而涉及到網(wǎng)上銀行,在線支付等條件的成熟和數(shù)據(jù)加密,電子簽名等安全技術(shù)的

16、完善,所以,要建立一個(gè)比較完善的電子商務(wù)網(wǎng)的并不隨急于求成,必須要對電子商務(wù)有一定購認(rèn)識和了解。還必須進(jìn)行嚴(yán)密的策劃和準(zhǔn)備,這樣才能使電子商務(wù)盡快完善,盡早收益。電子商務(wù)經(jīng)過一段時(shí)間的概念瘋妙,濃霧漸漸散開,不僅冤大頭似的投資商開始清醒(不是聽個(gè)故事就扔錢,而是要看是否有贏利了),商務(wù)網(wǎng)站本身也開始考慮如何經(jīng)營,亟需解決安全"著陸"的問題。4月2日,來自全國各地的100多家互聯(lián)網(wǎng)企業(yè)的老總們齊聚北京,參加"中國互聯(lián)網(wǎng)商業(yè)應(yīng)用策略聯(lián)盟高級論壇",共同研討中國互聯(lián)網(wǎng)的商業(yè)應(yīng)用課題。其中涉及的許多問題是原先人們不愿或忌諱談及的,僅從敢于正視電子商務(wù)網(wǎng)站面臨困難

17、這一點(diǎn)來看,這就是一個(gè)了不起的進(jìn)步。去年早些時(shí)間,還有人為是電子商務(wù)還是商務(wù)電子而爭論,現(xiàn)在,擺在人們面前的則是如何解決電子商務(wù)的信息流,資金流和物流配送的實(shí)際問題了。要用經(jīng)營企業(yè)的模式來經(jīng)營網(wǎng)站,已成為越來越多商務(wù)網(wǎng)站經(jīng)營者的共識。所謂電子商務(wù),說白了就是利用互聯(lián)網(wǎng)來做生意。在傳統(tǒng)企業(yè)由于種種原因還弄不清楚互聯(lián)網(wǎng)是什么的時(shí)候,一群IT業(yè)界的精英首先看到了互聯(lián)網(wǎng)帶來的商機(jī),于是紛紛建網(wǎng),做起了網(wǎng)絡(luò)發(fā)財(cái)夢。當(dāng)1998年希望做中國雅虎的"門戶網(wǎng)站"夢破滅后,1999年"電子商務(wù)網(wǎng)站"又遍地開花,以為在網(wǎng)上做個(gè)網(wǎng)頁,放上些圖書名稱就是電子商務(wù)了。誰知,這條路比

18、"門戶網(wǎng)站"難度更大。2 程序開發(fā)的基礎(chǔ)技術(shù)2.1HTML語言HTML(Hyper Text Markup Language 超文本標(biāo)記語言)是一種用來制作超文本文檔的簡單標(biāo)記語言。與常見的字處理文件不同,Web頁以超文本標(biāo)識語言編排格式。HTML文件是帶有特定HTML插入標(biāo)記的用以編排文檔屬性和格式的標(biāo)準(zhǔn)文本文件。它能獨(dú)立于各種操作系統(tǒng)平臺(如UNIX,WINDOWS等)。自1990年以來HTML就一直被用作World Wide Web上的信息表示語言,用于描述Homepage的格式設(shè)計(jì)和它與WWW上其它Homepage的連結(jié)信息。HTML文檔(即Homepage的源文件

19、)是一個(gè)放置了標(biāo)記的ASCII文本文件,通常它帶有.html或.htm的文件擴(kuò)展名。生成一個(gè)HTML文檔主要有以下三種途徑:1. 手工直接編寫(例如用你所喜愛的ASCII文本編輯器或其它HTML的編輯工具)。2. 通過某些格式轉(zhuǎn)換工具將現(xiàn)有的其它格式文檔(如WORD文檔)轉(zhuǎn)換成HTML文檔。3. 由Web服務(wù)器(或稱HTTP 服務(wù)器)一方實(shí)時(shí)動(dòng)態(tài)地生成。一般的HTML頁面具有如下的結(jié)構(gòu):<html><body>這是HTML正文部分</body></html>可見在一個(gè)HTML網(wǎng)頁文件中,一般必須有一對html標(biāo)記作為文件的開頭和結(jié)尾,在標(biāo)記后是頭

20、部標(biāo)記,其后是實(shí)體標(biāo)記。2.2JavaSCRIPT語言JavaScript腳本語言腳本是應(yīng)用程序在網(wǎng)頁上表達(dá)的語言,可以將腳本嵌入Web頁中。通常腳本在服務(wù)器上運(yùn)行,但也可以采用客戶端和服務(wù)器端結(jié)合使用JavaScript是JSP的默認(rèn)腳本語言.2.3JSP概述Java Server Page(簡稱JSP)是基于Java的技術(shù),用于創(chuàng)建可支持跨平臺及跨Web服務(wù)器的Web服務(wù)器端應(yīng)用程序(即所謂的動(dòng)態(tài)網(wǎng)頁)。它是由Sun Microsystem公司倡導(dǎo),由多家公司合作建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn).JSP正式發(fā)布于1999年6月,是基于Java Servlet以及整個(gè)Java體系的Web開發(fā)技術(shù)。

21、在傳統(tǒng)的網(wǎng)頁(即擴(kuò)展名為 .html的文件)中加入Java程序片(Scriplet)和JSP標(biāo)記(tag)即可構(gòu)成一個(gè)常規(guī)的JSP網(wǎng)頁(其擴(kuò)展名為 .jsp)。目前的Java2 platform Enterprise Edition(簡稱J2EE),是Sun公司為企業(yè)級應(yīng)用建立的高水準(zhǔn)的結(jié)構(gòu),它獲得了各大開發(fā)平臺提供商的積極支持,并已成為當(dāng)今企業(yè)應(yīng)用開發(fā)的主流平臺。JSP是J2EE平臺上的一個(gè)組件,由于JSP技術(shù)被設(shè)計(jì)成獨(dú)立于平臺和服務(wù)器,因此可以利用這一技術(shù)建立先進(jìn)、安全和跨平臺的網(wǎng)站。2.4JSP工作原理在一個(gè)JSP文件第一次被請求時(shí),JSP引擎把該JSP文件轉(zhuǎn)換成為一個(gè)servlet。而

22、這個(gè)引擎本身也是一個(gè)servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把該JSP文件轉(zhuǎn)換成一個(gè)Java源文件,在轉(zhuǎn)換時(shí)如果發(fā)現(xiàn)jsp文件有任何語法錯(cuò)誤,轉(zhuǎn)換過程將中斷,并向服務(wù)端和客戶端輸出出錯(cuò)信息;如果轉(zhuǎn)換成功, JSP引擎用javac把Java源文件編譯成相應(yīng)的class文件。然后創(chuàng)建一個(gè)該SERVLET的實(shí)例,該SERVLETjspInit()方法被執(zhí)行,jspInit()方法在servlet的生命周期中只被執(zhí)行一次。然后jspService()方法被調(diào)用來處理客戶端的請求。對每一個(gè)請求,JSP引擎創(chuàng)建一個(gè)新的線程來處理該請求。如果有多個(gè)客戶端同

23、時(shí)請求該JSP文件,則JSP引擎會創(chuàng)建多個(gè)線程。每個(gè)客戶端請求對應(yīng)一個(gè)線程。以多線程方式執(zhí)行可大大降低對系統(tǒng)的資源需求,提高系統(tǒng)的并發(fā)量及響應(yīng)時(shí)間.但應(yīng)該注意多線程的編程限制,由于該servlet始終駐于內(nèi)存,所以響應(yīng)是非??斓?。 如果.jsp文件被修改了,服務(wù)器將根據(jù)設(shè)置決定是否對該文件重新編譯,如果需要重新編譯,則將編譯結(jié)果取代內(nèi)存中的servlet,并繼續(xù)上述處理過程。 雖然JSP效率很高,但在第一次調(diào)用時(shí)由于需要轉(zhuǎn)換和編譯而有一些輕微的延遲。 此外,如果在任何時(shí)候如果由于系統(tǒng)資源不足的原因,JSP引擎將以某種不確定的方式將servlet從內(nèi)存中移去。當(dāng)這種情況發(fā)生時(shí)jspDestroy

24、()方法首先被調(diào)用, 然后servlet實(shí)例便被標(biāo)記加入"垃圾收集"處理。 jspInit()及jspDestory()格式如下:可在jspInit()中進(jìn)行一些初始化工作,如建立與數(shù)據(jù)庫的連接,或建立網(wǎng)絡(luò)連接,從配置文件中取一些參數(shù)等,在jspDestory()中釋放相應(yīng)的源。 缺省情況下:服務(wù)端要輸出到客戶端的內(nèi)容,不直接寫到客戶端,而是先寫到一個(gè)輸出緩沖區(qū)中.只有在下面三中情況下,才會把該緩沖區(qū)的內(nèi)容輸出到客戶端上: 該JSP網(wǎng)頁已完成信息的 輸出緩沖區(qū)已滿 JSP中調(diào)用輸出緩沖區(qū)的大小可以用:設(shè)置輸出緩沖區(qū)的大小為1KB。設(shè)置輸出緩沖區(qū)的大小為0

25、,即不緩沖。用response.isCommitted()可檢查看服務(wù)端是否已將數(shù)據(jù)輸出到客戶端. 如果返回值是TRUE則已將數(shù)據(jù)輸出到客戶端,是FALSE則還沒有.有以下3種方法可以做到輸出向該方法通過修改HTTP協(xié)議的HEADER部分,對瀏覽器下達(dá)重定向指令的,使瀏覽器顯示重定向網(wǎng)頁的內(nèi)容.下面的方法也能改變HTTP HEADER屬性,它的原理和 1 是一樣的.采用<JSP:FORWORD> 該方法是利用服務(wù)器端先將數(shù)據(jù)輸出到緩沖區(qū)的機(jī)制,在把緩沖區(qū)的內(nèi)容發(fā)送到客戶端之前,原來的不發(fā)送,改為發(fā)送該頁面的內(nèi)容,如果在<JSP:FORWORD>之前有很多輸出,前面的輸出

26、已使緩沖區(qū)滿,將自動(dòng)輸出到客戶端,那么該語句將不起作用,這一點(diǎn)應(yīng)該特別注意。2.5JSP的發(fā)布當(dāng)編輯好JSP文件后,必需發(fā)布后才能實(shí)現(xiàn)其功能,JSP文件本身并不能運(yùn)行。我們用Tomcat來發(fā)布JSP文件。2.6 SQL語言簡單介紹SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國國家標(biāo)準(zhǔn)協(xié)會)的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracl

27、e, Sybase, Microsoft SQL Server, Access等都采用了SQL語言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫都對SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括Select, Insert, Update, Delete, Create 以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫操作。select語句中位于from關(guān)鍵詞之后的表格名稱用來決定將要進(jìn)行查詢操作的目標(biāo)表格。除了上面所提到的運(yùn)算符外,LIKE運(yùn)算符在where條件從句中也非常重要。LIKE運(yùn)算符的功能非常強(qiáng)大,通過使用LIKE運(yùn)算符可以設(shè)定只選擇與用戶規(guī)定格式相同的記錄。2.7JDBC技術(shù)介紹許多開發(fā)者和用

28、戶都在尋找Java程序中訪問數(shù)據(jù)庫的便捷方法。由于Java是一個(gè)健壯,安全,易于使用的,易于理解且可以從網(wǎng)絡(luò)中自動(dòng)download ,所以它成為開發(fā)數(shù)據(jù)庫應(yīng)用的一種良好的語言基礎(chǔ)。它提供了C,C+,Smalltalk, BASIC, COBOL, and 4GLs的許多優(yōu)點(diǎn)。許多公司已經(jīng)開始在Java與DBMS的連接方面做工作。 許多Java應(yīng)用開發(fā)者都希望能夠編寫?yīng)毩⒂谔囟―BMS的程序,而我們也相信一個(gè)獨(dú)立于DBMS的接口將使得與各種各樣DBMS連接變得最為便捷,開發(fā)更加迅速。所以我們認(rèn)為定義一個(gè)通用的SQL數(shù)據(jù)庫存取框架,在各種各樣的提供數(shù)據(jù)庫連接模塊上提供統(tǒng)一的界面是十分有意義的。這使

29、程序員可以面對單一的數(shù)據(jù)庫界面,使數(shù)據(jù)庫無關(guān)的Java工具和產(chǎn)品成為可能,使得數(shù)據(jù)庫連接的開發(fā)者可以提供各種各樣的連接方案。我們看到我們定義一個(gè)通用低層的,支持基本SQL功能的JavaDataBase Connectivity (JDBC)API的緊迫任務(wù)。 JDBC API得到數(shù)據(jù)庫開發(fā)廠商,連接開發(fā)廠商,ISV,以及應(yīng)用開發(fā)者的支持是十分重要的。我們相信把我們的工作建立在ODBC抽象層的基礎(chǔ)上將JDBC更加容易得到大家的接受。而且從技術(shù)上來說,ODBC是我們設(shè)計(jì)工作的一個(gè)良好基礎(chǔ)。 因?yàn)镺DBC是一個(gè)C語言接口,所以O(shè)DBC在Java中直接使用不適當(dāng)。從Java中來調(diào)用C代碼在安全性,健壯

30、性,實(shí)現(xiàn)的方便,可移植性等等方面有許多不便。它使得Java在這些方面的許多優(yōu)點(diǎn)得不到發(fā)揮。3需求分析3.1系統(tǒng)說明本系統(tǒng)是一個(gè)中小型的電子商務(wù)系統(tǒng)-網(wǎng)上書店,可以為各類用戶提供方便的在線買書環(huán)境,符合目前國內(nèi)流行的電子商務(wù)模式。用戶可以在系統(tǒng)中實(shí)現(xiàn)注冊、瀏覽圖書、搜索查詢圖書、下定單、處理定單等功能;管理員可以通過用戶管理、定單管理、圖書管理、評論管理等管理功能來對系統(tǒng)進(jìn)行維護(hù)更新。網(wǎng)站的組成有以下幾個(gè)子系統(tǒng)組成:1. 主頁,顯示歡迎界面,提供近期的書本。2. 購物車,處理訂購并顯示想要訂購的書本。3. 查詢系統(tǒng),通過書本編號、書本名稱來查詢是否有自己需要的書本。4. 用戶注冊系統(tǒng),處理新用戶

31、的注冊和老用戶買書時(shí)的確認(rèn)。3.2 可行性分析1.技術(shù)可行性。根據(jù)已有的計(jì)算機(jī)平臺和開發(fā)環(huán)境,已充分具備開發(fā)該系統(tǒng)對計(jì)算機(jī)軟硬件、數(shù)據(jù)庫和開發(fā)工具的要求。只要利用好已有的參考資料,結(jié)合好已學(xué)的計(jì)算機(jī)專業(yè)知識,投入大量的時(shí)間,完成該系統(tǒng)雖有困難,但是是可行的。2.經(jīng)濟(jì)可行性。網(wǎng)上購物系統(tǒng)不需要投入大量的人力、物力和財(cái)力,成本很低,但是一旦實(shí)現(xiàn)卻能在生產(chǎn)實(shí)際中發(fā)揮著極其重要的作用,為我們的社會生產(chǎn)節(jié)省巨大的人力、物力和財(cái)力,相應(yīng)會帶來良好的經(jīng)濟(jì)效益,所以應(yīng)鼓勵(lì)軟件開發(fā)人員積極開發(fā)。3.使用可行性。該系統(tǒng)開發(fā)完成后將具有易使用,易理解,易維護(hù)等特性,對計(jì)算機(jī)操作人員的計(jì)算機(jī)水平要求不高,可以很方便的

32、為使用者服務(wù)。3.3 系統(tǒng)功能簡介 基本功能l 游客可以瀏覽網(wǎng)站l 用戶登陸l 用戶能夠?yàn)g覽網(wǎng)站l 提供搜索引擎,使用戶能夠按特定的條件對所需圖書進(jìn)行搜索l 用戶下定單購買圖書l 用戶處理定單 用戶界面設(shè)計(jì)3.4 系統(tǒng)運(yùn)行環(huán)境操作系統(tǒng):Windows 9X、Windows NT Workstation/Server 4.0以上、Windows 2000 Server/Professional、Windows XP Professional。CPU:沒有很高的要求,只要能夠順利運(yùn)行Windows系列操作系統(tǒng)就可以了。當(dāng)然,CPU的處理速度越快,運(yùn)行JSP代碼的效率越高。內(nèi)存:最低配置32MB,建

33、議使用64MB以上內(nèi)存,如果使用Windows 2000或Windows XP建議使用128MB以上內(nèi)存。硬盤空間:至少需要50MB以上的硬盤空間來安裝所需的組件。運(yùn)行JSP的服務(wù)器端要求:(如表2.1所示)表2.1操作系統(tǒng)需要安裝的J2SDK TomcatWindows 98J2sdk-1_4_1_01 Tomcat 4.0以上Windows NT 4.0 ServerJ2sdk-1_4_1_01 Tomcat 4.0以上Windows 2000J2sdk-1_4_1_01 Tomcat 4.0以上Windows XPJ2sdk-1_4_1_01 Tomcat 4.0以上4系統(tǒng)設(shè)計(jì)4.1 系

34、統(tǒng)設(shè)計(jì)思想本系統(tǒng)采用三層架構(gòu)設(shè)計(jì),它的工作原理如圖3-1所示。圖3-1采用三層構(gòu)架以后,用戶界面層通過統(tǒng)一的接口向業(yè)務(wù)層發(fā)送請求,業(yè)務(wù)層按自己的邏輯規(guī)則將請求處理之后進(jìn)行數(shù)據(jù)庫操作,然后將數(shù)據(jù)庫返回的數(shù)據(jù)封裝成類的形式返回給用戶界面層。這樣用戶界面層甚至可以不知道數(shù)據(jù)庫的結(jié)構(gòu),它只要維護(hù)與業(yè)務(wù)層之間的接口即可。4.2 系統(tǒng)功能模塊化如圖3-2為本系統(tǒng)的功能模塊圖。用戶登錄在線購書察看圖書詳細(xì)購買圖書查詢察看訂單信息查看購物車在線購書購買察看圖書詳細(xì)資料購買查看訂單詳細(xì)繼續(xù)購書清空購物車提交購物車刪除已經(jīng)選購的圖書修改購買數(shù)量圖3-24.3 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫在一個(gè)信息管理系統(tǒng)中占有非常重要的地位

35、,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞將直接對應(yīng)用系統(tǒng)的效率,以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。 數(shù)據(jù)庫需求分析針對一般在線書店的需求,得出如下需求信息。§ 用戶分為游客和已注冊用戶。§ 訂單分為單張?jiān)敿?xì)訂單和總訂單。§ 一個(gè)用戶可以購買多本圖書。§ 一個(gè)用戶對應(yīng)一張訂單。§ 一個(gè)列表對應(yīng)多張訂單。針對本系統(tǒng)功能分析,總結(jié)出如下的需求信息。§ 用戶,包括數(shù)據(jù)項(xiàng):用戶ID、用戶名、密碼。§ 圖書,包括數(shù)據(jù)項(xiàng):圖書編號、圖書名、價(jià)格、圖書介紹。§ 訂單列表,包括數(shù)據(jù)項(xiàng):訂單編號、

36、圖書編號、購書數(shù)量。§ 訂單,包括數(shù)據(jù)項(xiàng):訂單編號、用戶編號、下單時(shí)間。 數(shù)據(jù)庫概念結(jié)構(gòu)從本系統(tǒng)中規(guī)劃出的實(shí)體有:用戶實(shí)體、圖書實(shí)體、訂單實(shí)體、訂單列表實(shí)體。實(shí)體之間關(guān)系的E-R圖如圖3-3所示。購書用戶訂單列表訂單圖書 1 N M N 1 L N圖3-3用戶信息實(shí)體的E-R圖如圖3-4所示。圖書實(shí)體的E-R圖如圖3-5所示。訂單實(shí)體的E-R圖如圖3-6所示。訂單列表實(shí)體的E-R圖如圖3-7所示。 數(shù)據(jù)庫邏輯機(jī)構(gòu)設(shè)計(jì)在線書店數(shù)據(jù)庫中各個(gè)表的設(shè)計(jì)結(jié)果如下面的標(biāo)和所示。表3-8為圖書信息列表。表3-8表3-9為用戶信息列表。表3-9表3-10為訂單總表,記錄某個(gè)用戶的訂單信息。表3-10

37、表3-11為訂單表,記錄但張訂單的具體信息。表3-115詳細(xì)設(shè)計(jì)5.1 系統(tǒng)概述我設(shè)計(jì)的這個(gè)系統(tǒng)是一個(gè)由JSP實(shí)現(xiàn)的網(wǎng)上購書系統(tǒng)。它實(shí)現(xiàn)了基本的登錄驗(yàn)證、查詢圖書、分頁處理、購物車處理以及訂單處理功能,其主要界面見圖4-1:圖4-15.3 系統(tǒng)主要文件這個(gè)購書系統(tǒng)主要有2類文件,一類是Bean文件,我把它們統(tǒng)一放在了cart文件夾里,保存在jakarta-tomcat-commonclassescart下,(這是tomcat要求的默認(rèn)存放Bean的路徑);另一類是jsp文件,保存在jakarta-tomcat-5.0.27webappsROOT。(這是tomcat的默認(rèn)工作環(huán)境)Bean文件:

38、CartManager.java,OrderEntity.java,OrderItemEntity.javaProductEntity.java,UserEntity.javaJsp文 件:cart.jsp5.3詳細(xì)代碼及說明實(shí)現(xiàn)用戶實(shí)體的Bean1)用戶作為實(shí)體,我把他的id, 姓名,密碼作為其屬性在Bean里面做了定義,它們都是和數(shù)據(jù)庫里的user表相對應(yīng)的,在這個(gè)Bean里封裝的方法也主要是對這個(gè)表進(jìn)行操作.這個(gè)幾個(gè)屬性都被定義為類的私有成員,外界不可訪問private String id;private String userName;private String userPasswo

39、rd;2)構(gòu)造函數(shù)里做了2件事情,第一:尋找數(shù)據(jù)庫連接驅(qū)動(dòng);第二:對上面的3個(gè)私有成員初始化:public static String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"public static String sConnStr = "jdbc:odbc:cart"public static Connection conn = null;public UserEntity(String id,String userName,String userPassword)try Class.forName(sDB

40、Driver); /采用Class.forName方法顯式加載一個(gè)驅(qū)動(dòng)程序 catch(java.lang.ClassNotFoundException e) System.err.println("UserEntity: " + e.getMessage();this.id=id;this.userName=userName;this.userPassword=userPassword;根據(jù)上面對變量sDBDriver ,sConnStr的定義和初始化可以看出,我在連接數(shù)據(jù)庫的時(shí)候采用的是jdbc-odbc橋的方式,這種方式采用的驅(qū)動(dòng)是JDK自帶的,不需要另外安裝。但是,

41、為了與特定的數(shù)據(jù)庫連接,我們必須建立一個(gè)數(shù)據(jù)源:cart。給3個(gè)屬性賦值,我利用了this指針。3)這個(gè)類我封裝了2類方法:一是查找特定用戶名的所有記錄,代碼如下:public static UserEntity queryUser(String userName) throws SQLExceptiontry Class.forName(sDBDriver); catch(java.lang.ClassNotFoundException e) System.err.println("UserEntity: " + e.getMessage(); /query from d

42、atabaseString sql="select id,user_name,user_password from user where user_name= ? "ResultSet rs = null;try conn = DriverManager.getConnection(sConnStr); PreparedStatement prepStmt = conn.prepareStatement(sql);prepStmt.setString(1,userName);rs = prepStmt.executeQuery(); catch(SQLException e

43、x) System.err.println("OrderItemEntity executeQuery: " + ex.getMessage();UserEntity user=null;if(rs.next()user=new UserEntity(rs.getString(1),rs.getString(2),rs.getString(3);return user;這個(gè)函數(shù)有1個(gè)參數(shù),String userName,就是通過這個(gè)用戶名在user表里查詢相應(yīng)的用戶的。要查詢數(shù)據(jù)庫里user表,就必須先連接數(shù)據(jù)庫。連接數(shù)據(jù)庫第一步是加載驅(qū)動(dòng),之后就是進(jìn)行連接。我采用Driv

44、erManager類的getConnection方法來建立與cart數(shù)據(jù)源的連接,連接成功后,返回一個(gè)Connection類的對象conn.要查找特定用戶名的紀(jì)錄,其實(shí)就是對uesr進(jìn)行查詢操作。PreparedStatement對象就是用于查詢語句的執(zhí)行,它是Statement的子類,與Statement不同的地方,PreparedStatement對象可以接受參數(shù),這里需要接受的參數(shù)是user_name,然后進(jìn)行預(yù)編譯。在每一次執(zhí)行這個(gè)查詢,都可以給sql語句傳輸不同的user_name,這樣大大提高了靈活性。要想查詢后的結(jié)果最后顯示給用戶,必須對ResultSet對象進(jìn)行操作,即對rs進(jìn)

45、行操作。我在程序里是把該記錄賦給一個(gè)UserEntity對象。該類封裝的另一種方法是:用戶名和密碼的獲得。這個(gè)主要是為了方便后面驗(yàn)證用戶合法性使用public String getUserName()return userName;public String getUserPassword()return userPassword;5.3.2實(shí)現(xiàn)圖書實(shí)體的Bean雖然我做的是一個(gè)購書系統(tǒng),但考慮到系統(tǒng)的可擴(kuò)展性,我把書當(dāng)作一種圖書來進(jìn)行定義。同樣,參照數(shù)據(jù)庫里的product表,我給圖書這個(gè)類定義了如下4個(gè)屬性,圖書id,圖書名稱,圖書價(jià)格,圖書note,其類型同樣是該類的私有屬性:priva

46、te String id;private String productName;private String productPrice;private String productNote;1) 其構(gòu)造函數(shù)和用戶實(shí)體類基本上一致,所以代碼及其說明我在這里就省略了。2) 對圖書的操作也主要是2類,一類是對特定圖書的查詢,其原理和查詢用戶是一樣的,但是有一點(diǎn)小小的區(qū)別,即查詢圖書可以使查詢所有的圖書,或者是查詢特定id的圖書,我通過以下代碼把這2種查詢合在了queryProduct這個(gè)函數(shù)里:String sql="select id,product_name,product_price

47、,product_note from product "if(productIpareTo("")!=0)sql=sql+" where id = ? "Vector v=new Vector();ResultSet rs = null;其關(guān)于連接數(shù)據(jù)庫,查詢記錄的代碼和上面的大致雷同,所以在這里就省略了。顯示圖書是分頁顯示的,其代碼如下:while(rs.next()+i;if(i>pageCount*pageSize)if(i<=(pageCount+1)*pageSize)v.add(new ProductEntity(rs.

48、getString(1),rs.getString(2),rs.getString(3),rs.getString(4);elsebreak;這一段代碼的主要功能是:每一頁最多顯示pageSize個(gè)圖書,如果超過pageSize個(gè),就分頁顯示。PageSize在后面將會定義,其值我設(shè)置為10。3) 第二類方法是查詢圖書的id,全稱,價(jià)格和note. 例如查找圖書的ID:public String getProductId()return id;5.3.3 實(shí)現(xiàn)訂購單實(shí)體的Bean客戶每次購買一種圖書都會產(chǎn)生一次訂購單,它包括訂單號,所購買的書號,所購買這種書的數(shù)量,這些構(gòu)成了這個(gè)類的私有屬性:

49、private String id;private String orderId;private String productId;private String productNum;1) 客戶每次選中一種圖書后,點(diǎn)擊放入購物車,就會產(chǎn)生一個(gè)訂單,其實(shí)現(xiàn)代碼如下:String sql="insert into order_item(order_id,product_id,product_num) values(?,?,?) "ResultSet rs = null;try conn = DriverManager.getConnection(sConnStr); Prepa

50、redStatement prepStmt = conn.prepareStatement(sql);prepStmt.setString(1,orderId);prepStmt.setString(2,productId);prepStmt.setString(3,productNum);prepStmt.executeUpdate();訂購單,書號,購買數(shù)量都是作為參數(shù)傳過來的。很明顯,新建一張訂購單其實(shí)就是在order_item表里插入一條新紀(jì)錄就可以了。其原理已經(jīng)在上面說過來了,就不在此重復(fù)了。2)在后面的購物車?yán)?,一名顧客的最終消費(fèi)總額就是根據(jù)這里一張張的訂購單得到的,所以查找特定訂

51、單號的訂購單是這個(gè)類里面不可缺少的方法,它的算法實(shí)質(zhì)上就是條件查詢,和前面的無條件查詢相比,我只把sql語句作了改動(dòng):String sql="select id,order_id,product_id,product_num from order_item where order_id= ? "2) 第3個(gè)被封裝的方法是設(shè)置,獲得訂購單號,書號,定購數(shù)量,并且還可以獲得session price.5.3.4 實(shí)現(xiàn)購物車實(shí)體的Bean在現(xiàn)實(shí)生活中,人們?nèi)コ匈I東西,都是把圖書放在一個(gè)購物籃里,等到把所有要買的東西選購?fù)戤吅?,一起拿到收銀臺前付錢。我在程序里定義的購物車實(shí)體就是

52、模擬這個(gè)功能.作為購物車,購物人,購物時(shí)間,所購書的總價(jià)格都是必不可少的:private String id;private String userName;private String orderDate;private String orderPrice;我覺得在這個(gè)Bean里面主要要解決的一個(gè)問題,如何解決一個(gè)新的購物車。當(dāng)一個(gè)顧客買完書提交購物車后,我們必須插入一個(gè)新的購物車紀(jì)錄,這是由insertOrder()方法來實(shí)現(xiàn)的:其插入代碼如下:conn = DriverManager.getConnection(sConnStr); PreparedStatement prepStmt

53、= conn.prepareStatement(sql);String curDate=(java.util.Calendar.getInstance().getTime().toString();prepStmt.setString(1,userName);prepStmt.setString(2,curDate);prepStmt.setString(3,orderPrice);prepStmt.executeUpdate();這里,插入的原理和前面是相同的,但是有一個(gè)地方需要解釋:即購物時(shí)間字段,是采用的java.util.Calendar.getInstance().getTime()

54、,這是一個(gè)庫函數(shù),被封裝在java.util,在這個(gè)類定義的開頭,我把這個(gè)庫文件包含進(jìn)來:import java.util.*;這個(gè)方法返回的結(jié)果必須把轉(zhuǎn)化成String,否則后面插入數(shù)據(jù)庫時(shí)會出現(xiàn)類型不匹配的錯(cuò)誤。toString()就是用來實(shí)現(xiàn)類型轉(zhuǎn)換的。為了方便后面對這個(gè)購物車進(jìn)行操作,我在這個(gè)方法里還獲得了該購物車的id: String selectStatement ="select id " +"from orderlist where user_name=? order by id desc " PreparedStatement prep

55、Stmt = conn.prepareStatement(selectStatement); prepStmt.setString(1,userName); ResultSet rs = prepStmt.executeQuery(); rs.next(); String result=rs.getString(1);return result;在sql里,查詢特定用戶購物車的id號,并且按照降序排列。是因?yàn)?,針對一個(gè)網(wǎng)上購書系統(tǒng),顧客可以多次在這里購書,那么在購物車表單里,針對一個(gè)顧客會有很多條他的購物紀(jì)錄,而在數(shù)據(jù)庫里,各條記錄的id是安裝時(shí)間先后順序逐漸遞增的,如果安裝降序排列,那么得到的第一條記錄則是最新插入的紀(jì)錄。result=rs.getString(1)表示只把該條記錄的第一個(gè)字段傳給result,即把購物車的id號傳給result。5.3.5 實(shí)現(xiàn)購物實(shí)體的Bean1)買書的第一步便是用戶登錄,現(xiàn)在購書網(wǎng)站都要求已經(jīng)注冊過的用戶才能購買書籍,這樣便于網(wǎng)站管理

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論