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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、的網絡銷售系統(tǒng)。著重論述了系統(tǒng)功能與實現(xiàn),數(shù)據(jù)流程及存儲,包括圖書目錄,用戶注冊,網上訂貨與購物,圖書查詢,后臺數(shù)據(jù)庫管理等。運用HTML語言,JavaScript技術,JDBC,JSP與后臺數(shù)據(jù)庫MY SQL 鏈接等關鍵技術建設網上購物系統(tǒng)。本系統(tǒng)具有比較完善的后臺管理系統(tǒng)和前臺購物系統(tǒng),后臺管理系統(tǒng)使用者為系統(tǒng)管理員,主要完成:公告管理,圖書管理,訂單管理,用戶管理,系統(tǒng)管理功能。前臺購物系統(tǒng)使用者為顧客用戶,主要完成:瀏覽公告,瀏覽圖書,查詢圖書,購買圖書,用戶注冊功能。本系統(tǒng)唯一不足之處在受網上銀行的限制,無法完善在線付費系統(tǒng)。【Abstract】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.【關鍵詞】B2C ,JSP, 數(shù)據(jù)庫, JDBC【Key Words】Business to Customer , JAVA Sever Pages , Database , JDBC前言近年來,隨著Internet的迅速崛起,互聯(lián)網已日益成為收集提供信息的最佳渠道并逐步進入傳統(tǒng)的流通領域。于是電子商務開始流行起來,越來越多的商家在網上建起在線商店,向消費者展示出一種新穎的購物理念。網上書店作為B2C (Business to Customer,即企業(yè)對消費者)電子商

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

33、議使用64MB以上內存,如果使用Windows 2000或Windows XP建議使用128MB以上內存。硬盤空間:至少需要50MB以上的硬盤空間來安裝所需的組件。運行JSP的服務器端要求:(如表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)設計4.1 系

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

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

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

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

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

39、rd;2)構造函數(shù)里做了2件事情,第一:尋找數(shù)據(jù)庫連接驅動;第二:對上面的3個私有成員初始化: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方法顯式加載一個驅動程序 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ù)庫的時候采用的是jdbc-odbc橋的方式,這種方式采用的驅動是JDK自帶的,不需要另外安裝。但是,

41、為了與特定的數(shù)據(jù)庫連接,我們必須建立一個數(shù)據(jù)源:cart。給3個屬性賦值,我利用了this指針。3)這個類我封裝了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;這個函數(shù)有1個參數(shù),String userName,就是通過這個用戶名在user表里查詢相應的用戶的。要查詢數(shù)據(jù)庫里user表,就必須先連接數(shù)據(jù)庫。連接數(shù)據(jù)庫第一步是加載驅動,之后就是進行連接。我采用Driv

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

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

46、te String id;private String productName;private String productPrice;private String productNote;1) 其構造函數(shù)和用戶實體類基本上一致,所以代碼及其說明我在這里就省略了。2) 對圖書的操作也主要是2類,一類是對特定圖書的查詢,其原理和查詢用戶是一樣的,但是有一點小小的區(qū)別,即查詢圖書可以使查詢所有的圖書,或者是查詢特定id的圖書,我通過以下代碼把這2種查詢合在了queryProduct這個函數(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;其關于連接數(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個圖書,如果超過pageSize個,就分頁顯示。PageSize在后面將會定義,其值我設置為10。3) 第二類方法是查詢圖書的id,全稱,價格和note. 例如查找圖書的ID:public String getProductId()return id;5.3.3 實現(xiàn)訂購單實體的Bean客戶每次購買一種圖書都會產生一次訂購單,它包括訂單號,所購買的書號,所購買這種書的數(shù)量,這些構成了這個類的私有屬性:

49、private String id;private String orderId;private String productId;private String productNum;1) 客戶每次選中一種圖書后,點擊放入購物車,就會產生一個訂單,其實現(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ù)傳過來的。很明顯,新建一張訂購單其實就是在order_item表里插入一條新紀錄就可以了。其原理已經在上面說過來了,就不在此重復了。2)在后面的購物車里,一名顧客的最終消費總額就是根據(jù)這里一張張的訂購單得到的,所以查找特定訂

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

52、模擬這個功能.作為購物車,購物人,購物時間,所購書的總價格都是必不可少的:private String id;private String userName;private String orderDate;private String orderPrice;我覺得在這個Bean里面主要要解決的一個問題,如何解決一個新的購物車。當一個顧客買完書提交購物車后,我們必須插入一個新的購物車紀錄,這是由insertOrder()方法來實現(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();這里,插入的原理和前面是相同的,但是有一個地方需要解釋:即購物時間字段,是采用的java.util.Calendar.getInstance().getTime()

54、,這是一個庫函數(shù),被封裝在java.util,在這個類定義的開頭,我把這個庫文件包含進來:import java.util.*;這個方法返回的結果必須把轉化成String,否則后面插入數(shù)據(jù)庫時會出現(xiàn)類型不匹配的錯誤。toString()就是用來實現(xiàn)類型轉換的。為了方便后面對這個購物車進行操作,我在這個方法里還獲得了該購物車的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號,并且按照降序排列。是因為,針對一個網上購書系統(tǒng),顧客可以多次在這里購書,那么在購物車表單里,針對一個顧客會有很多條他的購物紀錄,而在數(shù)據(jù)庫里,各條記錄的id是安裝時間先后順序逐漸遞增的,如果安裝降序排列,那么得到的第一條記錄則是最新插入的紀錄。result=rs.getString(1)表示只把該條記錄的第一個字段傳給result,即把購物車的id號傳給result。5.3.5 實現(xiàn)購物實體的Bean1)買書的第一步便是用戶登錄,現(xiàn)在購書網站都要求已經注冊過的用戶才能購買書籍,這樣便于網站管理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論