基于java的網(wǎng)上購書系統(tǒng)畢業(yè)設計_第1頁
已閱讀1頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  伴隨著Internet的蓬勃發(fā)展,網(wǎng)絡購物中心作為電子商務的一種形式正以其高效、低成本的優(yōu)勢,逐步成為新興的經(jīng)營模式和理念,人們已經(jīng)不再滿足用途信息的瀏覽和發(fā)布,而是渴望著能夠充分享受網(wǎng)絡所帶來的更加多的便利。網(wǎng)絡購物正適應了當今社會快節(jié)奏地生活,使顧客足不出戶便可以方便快捷輕松地選購自己喜歡的商品。</p>

2、<p>  本系統(tǒng)便是嘗試用JSP在網(wǎng)絡上架構一個動態(tài)的電子商務網(wǎng)站,它是在Windows XP下,以Mysql為數(shù)據(jù)庫開發(fā)平臺,Tomcat網(wǎng)絡信息服務作為應用服務器,采用JSP(Java Server Pages)技術開發(fā)的網(wǎng)上購物系統(tǒng)。他分前臺部分和后臺部分,前臺部分由用戶使用,主要包括用戶注冊,購物車管理,訂單管理,個人資料管理,留言板管理等功能;后臺部分由管理員使用,主要包括商品管理,處理訂單,用戶信息管理,鏈接信息

3、管理等功能。</p><p>  建立后的網(wǎng)站系統(tǒng)是一個動態(tài)、交互式、具有商品提供、系統(tǒng)管理、用戶購買等功能的電子商務網(wǎng)站。</p><p>  關鍵詞:JSP;Mysql;Tomcat;Struts;網(wǎng)上購物系統(tǒng)</p><p><b>  目 錄</b></p><p><b>  引 言4<

4、/b></p><p>  第一章 網(wǎng)上購書系統(tǒng)概述5</p><p>  1.1 系統(tǒng)開發(fā)背景5</p><p>  1.1.1網(wǎng)上購書的發(fā)展5</p><p>  1.1.2網(wǎng)上購書系統(tǒng)的現(xiàn)狀5</p><p>  1.2系統(tǒng)實現(xiàn)的目標6</p><p>  1.3系統(tǒng)的開發(fā)

5、意義6</p><p>  第二章 應用技術基礎理論7</p><p>  2.1 JAVA語言基礎知識7</p><p>  2.1.1 JAVA語言簡介7</p><p>  2.1.2 JAVA語言特點7</p><p>  2.2 JSP的技術原理8</p><p>  2.

6、2.1 JSP語言8</p><p>  2.2.2 JSP語言特點8</p><p>  2.3 Java Servlets概述9</p><p>  2.3.1 Servlet 技術9</p><p>  2.3.2 Servlet的結構10</p><p>  2.3.3 Servlet的接口10&l

7、t;/p><p>  2.4 JavaBean簡介11</p><p>  2.5 Struts概述11</p><p>  2.5.1 Struts介紹11</p><p>  2.5.2 MVC簡介12</p><p>  2.5.3 Struts優(yōu)缺點13</p><p>  2.6

8、 mysql概述13</p><p>  2.6.1 mysql介紹13</p><p>  2.6.2 mysql的基本命令14</p><p>  第三章 系統(tǒng)環(huán)境配置15</p><p>  3.1服務器配置15</p><p>  3.2 Tomcat安裝及配置16</p><p

9、>  3.3 Mysql安裝及配置16</p><p>  第四章 系統(tǒng)需求分析及總體設計18</p><p>  4.1 系統(tǒng)需求分析18</p><p>  4.2 總體設計19</p><p>  4.3各模塊具體功能說明19</p><p>  4.3.1 注冊功能19</p>

10、<p>  4.3.2 登錄功能19</p><p>  4.3.3 用戶相關信息維護功能20</p><p>  4.3.4 商品瀏覽20</p><p>  4.3.5商品交易功能20</p><p>  第五章 數(shù)據(jù)庫設計21</p><p>  5.1 數(shù)據(jù)庫E-R圖21</p>

11、;<p>  5.2數(shù)據(jù)實體類結構概要設計22</p><p>  5.2.1 數(shù)據(jù)庫結構設計UserInfo22</p><p>  5.2.2 數(shù)據(jù)庫結構設計Produts23</p><p>  5.2.3 數(shù)據(jù)庫結構設計ProductType23</p><p>  5.2.4 數(shù)據(jù)庫結構設計Transactio

12、ns23</p><p>  5.3數(shù)據(jù)庫的初始化及創(chuàng)建24</p><p>  5.3.1數(shù)據(jù)庫的初始化24</p><p>  5.3.2 數(shù)據(jù)庫的創(chuàng)建26</p><p>  第六章 系統(tǒng)詳細設計28</p><p>  6.1系統(tǒng)整體結構28</p><p>  6.2用戶信

13、息自維護用例圖28</p><p>  6.3系統(tǒng)模塊詳細設計29</p><p>  6.3.1用戶注冊模塊29</p><p>  6.3.2用戶登錄模塊30</p><p>  6.3.3圖書瀏覽模塊31</p><p>  6.3.4書籍選購及交易模塊32</p><p> 

14、 6.3.5用戶定單查詢?yōu)g覽事件模塊34</p><p>  6.3.6用戶信息修改模塊36</p><p>  6.3.7管理員操作界面37</p><p>  6.4購物車類圖結構39</p><p>  第七章 系統(tǒng)測試及發(fā)布及難點分析40</p><p>  7.1本系統(tǒng)使用的運行及開發(fā)平臺40&l

15、t;/p><p>  7.2系統(tǒng)測試40</p><p>  7.2.1 系統(tǒng)關鍵部分測試分析40</p><p>  7.2.2 單元測試分析40</p><p>  7.2.3 測試分析總結及說明41</p><p>  7.2.4 系統(tǒng)的性能分析42</p><p><b>

16、;  總 結43</b></p><p><b>  致 謝44</b></p><p>  參 考 文 獻45</p><p><b>  引 言</b></p><p>  目前,網(wǎng)絡正以一種前所未有的沖擊力在影響著人類的活動,包括人類的生產(chǎn)和日常生活。網(wǎng)絡的誕生和發(fā)展

17、,顛覆了傳統(tǒng)的信息傳播方式,沖破了存在于傳統(tǒng)交流方式中時間和空間的種種壁壘,極大地改變了人類從物質(zhì)到精神、從形式到內(nèi)容、從生產(chǎn)到生活的各種活動,并且給人類帶來了新的機遇和挑戰(zhàn)。</p><p>  在互聯(lián)網(wǎng)服務業(yè)務方面:電子郵件、搜索引擎、網(wǎng)上銀行、在線交易、網(wǎng)絡廣告、網(wǎng)絡新聞、網(wǎng)絡游戲等服務業(yè)務仍然快速的發(fā)展著。</p><p>  21世紀是網(wǎng)絡飛速發(fā)展的時代,上網(wǎng)、創(chuàng)建網(wǎng)站已經(jīng)成為熱

18、門話題。Internet技術得到持續(xù)、猛烈的發(fā)展,已經(jīng)成為計算機產(chǎn)業(yè)的一個技術熱點,越來越多的企業(yè)開始關注網(wǎng)絡,許多人正在或正準備學習網(wǎng)絡知識,進行網(wǎng)絡開發(fā)或創(chuàng)建自己的網(wǎng)站。</p><p>  本次畢業(yè)設計——基于J2EE的網(wǎng)上購書網(wǎng)站的設計,是在Windows XP下,以Msql為數(shù)據(jù)庫開發(fā)平臺,Tomcat網(wǎng)絡信息服務作為應用服務器,采用JSP(Java Server Pages)技術開發(fā)的。</p&

19、gt;<p>  在本論文中全面詳細地介紹了網(wǎng)上購書系統(tǒng)的設計方案,第1章為網(wǎng)上購書系統(tǒng)概述,包括系統(tǒng)的開發(fā)背景,網(wǎng)上購物的發(fā)展,網(wǎng)上購書系統(tǒng)的現(xiàn)狀,系統(tǒng)實現(xiàn)的目標,系統(tǒng)開發(fā)的意義。第2章為JAVA的基礎理論,包括JSP的技術原理,Java及Java Servlets概述,JavaBean簡介,在JSP中使用XML,mysql概述,Struts概述等。第3章為系統(tǒng)構架,包括服務器配置,JAVA虛擬機的安裝配置,Tomcat

20、環(huán)境搭建,mysql的安裝配置等;第4章為系統(tǒng)需求分析及總體設計,包括需求分析,系統(tǒng)功能模塊設計,對具體功能及用例說明,數(shù)據(jù)庫需求分析;第5章為數(shù)據(jù)庫設計,包括數(shù)據(jù)庫結構設計,用JSP連接數(shù)據(jù)庫;第6章系統(tǒng)詳細設計,包括前臺和后臺兩個大的部分,前臺部分由用戶使用,主要包括用戶注冊,購物車管理,訂單管理,個人資料管理;后臺部分由管理員使用,主要包括會員信息管理,主要包括商品管理,處理訂單,用戶信息管理,鏈接信息管理等功能;第7章為系統(tǒng)測試

21、及發(fā)布及難點分析,包括開發(fā)難點和技巧,系統(tǒng)的測試;系統(tǒng)中存在的問題及解決方法;第8章為總結;第9章為致謝;第10章為參考文獻。</p><p>  第一章 網(wǎng)上購書系統(tǒng)概述</p><p>  1.1 系統(tǒng)開發(fā)背景</p><p>  1.1.1網(wǎng)上購書的發(fā)展</p><p>  近年來,隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提

22、供信息的最佳渠道并逐步進入傳統(tǒng)的流通領域。于是電子商務開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費者展示出一種新穎的購物理念。</p><p>  網(wǎng)上購書系統(tǒng)作為B2B,B2C(Business to Customer,即企業(yè)對消費者),C2C(Customer to Customer,即消費者對消費者)電子商務的前端商務平臺,在其商務活動全過程中起著舉足輕重的作用。本文主要考慮的是如何建設B

23、2C的網(wǎng)上購物系統(tǒng)。</p><p>  網(wǎng)上購書是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供靜態(tài)和動態(tài)兩類信息資源。所謂靜態(tài)信息是指那些比經(jīng)常變動或更新的資源,如公司簡介、管理規(guī)范和公司制度等等;動態(tài)信息是指隨時變化的信息,如商品報價,會議安排和培訓信息等。網(wǎng)上購書系統(tǒng)具有強大的交互功能,可使商家和用戶方便的傳遞信息,完成電子貿(mào)易或EDI交易。這種全新的交易方式實現(xiàn)了公司間文檔與資金的無紙化交換。</p

24、><p>  1.1.2網(wǎng)上購書系統(tǒng)的現(xiàn)狀</p><p>  目前在國內(nèi)PHP與ASP應用最為廣泛。而JSP由于是一種較新的技術,國內(nèi)采用的較少。但在國外,JSP已經(jīng)是比較流行的一種技術,尤其是電子商務類的網(wǎng)站,多采用JSP。</p><p>  首先,PHP缺乏規(guī)模支持。其次,缺乏多層結構支持。對于大負荷站點,解決方法只有一個:分布計算。數(shù)據(jù)庫、應用邏輯層、表示邏輯

25、層彼此分開,而且同層也可以根據(jù)流量分開,組成二維陣列。而PHP則缺乏這種支持。還有上面提到過的一點,PHP提供的數(shù)據(jù)庫接口支持不統(tǒng)一,這就使得它不適合運用在電子商務中。</p><p>  ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft Windowsd的COM/DCOM獲得ActiveX規(guī)模支持,通過DCOM和Transcation Server獲得結構支持;JSP可以通過SUN Java的Ja

26、va Class和EJB獲得規(guī)模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結構支持。</p><p>  三者中,JSP應該是未來發(fā)展的趨勢。世界上一些大的電子商務解決方案提供商都采用JSP/Servlet。</p><p>  總的來說,ASP,PHP,JSP三者都有相當數(shù)量的支持者,而這三者也各有所長,在開發(fā)過程中,我們應該根據(jù)實際的需要來使用最

27、合適的技術,本系統(tǒng)則采用較新的jsp技術,一方面jsp的安全性和跨平臺性比較好,另一方面,我也希望能從開發(fā)該系統(tǒng)的過程中,深入學習一下這門編程語言。</p><p>  1.2系統(tǒng)實現(xiàn)的目標</p><p>  現(xiàn)在流行的網(wǎng)上購物系統(tǒng)不僅要有漂亮的網(wǎng)頁,更要有嚴謹?shù)囊?guī)劃,注重每一個細小的環(huán)節(jié)。這樣才能使得在電子交易時避免不必要錯誤發(fā)生。我們將使用HTML、JSP等技術來編輯網(wǎng)頁,并運用JD

28、BC技術把數(shù)據(jù)庫和動態(tài)網(wǎng)頁相關聯(lián)。傳統(tǒng)的管理信息系統(tǒng)信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統(tǒng)的數(shù)據(jù)庫中,這種方法在數(shù)據(jù)量不大時有很多的應用場合。當數(shù)據(jù)量比較大,并且有較強的專業(yè)性時,錄入的費用和出錯的可能性都相應上升。本設計在實際應用中的解決方案是建立網(wǎng)站, 以及自己的數(shù)據(jù)庫,使得所需商品信息可以及時的保存、更新,可以更好的及時了解商品買賣的情況。</p><p>  1.3系統(tǒng)的開發(fā)意義</

29、p><p>  Internet的發(fā)展,為改變傳統(tǒng)的商業(yè)運作模式提供了一種技術上的可行性的方案:利用Internet的技術和協(xié)議,建立各種企業(yè)內(nèi)部網(wǎng)Intranet,企業(yè)外部網(wǎng)Extranet,通過廉價的通訊手段,將買家與賣家、廠商和合作伙伴緊密結合在了一起,消除時間與空間帶來的障礙,從而大大的節(jié)約了交易成本,擴大了交易范圍。</p><p>  當今比較流行的網(wǎng)上購物系統(tǒng)國外有“淘寶(www

30、.taobao.com)”,國內(nèi)有“當當(www.dangdang.com)”。它們都是相當優(yōu)秀的電子商務網(wǎng)站,對其他的網(wǎng)站提供了良好的典范。設計中可以學習參考他們的思想,了解和熟悉整個網(wǎng)站的開發(fā)流程及完整的電子商務網(wǎng)站應有的功能和注意事項。</p><p>  第二章 應用技術基礎理論</p><p>  2.1 JAVA語言基礎知識</p><p>  2.1.

31、1 JAVA語言簡介</p><p>  Java來自于Sun公司的一個叫Green的項目,其原先的目的是為家用消費電子產(chǎn)品開發(fā)一個分布式代碼系統(tǒng),這樣我們可以把E-mail發(fā)給電冰箱、電視機等家用電器,對它們進行控制,和它們進行信息交流。開始,準備采用C++,但C++太復雜,安全性差,最后基于C++開發(fā)了一種新的語言Oak(Java的前身),Oak是一種用于網(wǎng)絡的精巧而安全的語言,Sun公司曾以此投標一個交互式

32、電視項目,但結果被SGI打敗??蓱z的Oak幾乎無家可歸,恰巧這時Mark Ardreesen開發(fā)的Mosaic和Netscape啟發(fā)了Oak項目組成員,他們用Java編 制 了HotJava瀏 覽器,得到了Sun公司首席執(zhí)行官Scott McNealy的支持,觸發(fā)了Java進 軍Internet。 Java的取名也有一則趣聞,有一天,幾 位Java成員組的會員正在討論給這個新的語言取什么名字,當時他們正在咖啡館喝著Java(爪哇)咖 啡

33、,有一個人靈機一動說就叫Java怎 樣,得到了其他人的贊賞,于是,Java這個名字就這樣傳開了。</p><p>  2.1.2 JAVA語言特點</p><p><b>  ◆簡單的</b></p><p>  Java最初是為對家用電器進行集成控制而設計的一種語言,因此它必須簡單明了。</p><p><b&g

34、t;  ◆面向對象的 </b></p><p>  面向對象可以說是Java最重要的特性,它支持繼承、重載、多態(tài)等面向對象的特性。</p><p><b>  ◆健壯的</b></p><p>  Java致力于檢查程序在編譯和運行時的錯誤。</p><p><b>  ◆安全的</b>

35、</p><p>  一方面,在Java語言里,刪除了指針和釋放內(nèi)存等C++功能,避免了非法內(nèi)存操作。另一方面,通過Java的安全體系架構來確保Java代碼的安全性。</p><p><b>  ◆解釋的</b></p><p>  Java代碼是解釋執(zhí)行的,我們使用Java編譯器將Java代碼編譯成字節(jié)碼,這是一種中間代碼,然后由Java解釋

36、器解釋執(zhí)行。</p><p><b>  ◆與平臺無關的</b></p><p>  只要有Java運行系統(tǒng)的機器都能執(zhí)行這種中間代碼。</p><p><b>  ◆多線程的</b></p><p>  Java語言的一個重要特性就是在語言級支持多線程的程序設計。</p><p

37、><b>  ◆動態(tài)的</b></p><p>  它允許程序動態(tài)地裝入運行過程中所需要的類。</p><p>  2.2 JSP的技術原理</p><p>  2.2.1 JSP語言</p><p>  在傳統(tǒng)的網(wǎng)頁HTML文件(*,htm,*,html)中加入Java程序片段(Scriptlet)和JSP標記(

38、tag),就構成了JSP網(wǎng)頁(*,jsp)。JSP頁面看上去象標準的HTML和XML頁面,并附帶有JSP引擎能夠處理和抽取的額外元件。Web服務器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結果以HTML格式返回給用戶。程序都在服務器端執(zhí)行,網(wǎng)絡上傳送給客戶端的僅是得到的結果,對客戶瀏覽器的要求最低。它基于強大的Java語言,具有良好的伸縮性,在網(wǎng)絡數(shù)據(jù)庫應用開發(fā)領域具有得天獨厚的優(yōu)勢。</p><

39、;p>  2.2.2 JSP語言特點</p><p>  JSP技術在多個方面加速了動態(tài)Web頁面的開發(fā):</p><p> ?。?)將內(nèi)容的生成和顯示進行分離</p><p>  使用JSP技術,Web頁面開發(fā)人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標識和JavaBean

40、s組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。如果核心邏輯被封裝在標識和Beans中,那么其他人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。</p><p> ?。?)強調(diào)可重用的組件</p><p>  絕大多數(shù)JSP頁面依賴于可重用的,跨平臺的組件(JavaBeans或者Enterprise JavaBeansTM組件)來執(zhí)行應用程序所要求的

41、更為復雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件。</p><p> ?。?)采用標識簡化頁面開發(fā)</p><p>  Web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態(tài)內(nèi)容生成所需要的。標準的JSP標識能夠訪問和實例化JavaBeans組件,設置或者檢索組件屬性,下載Apple

42、t,以及執(zhí)行用其他方法更難于編碼和耗時的功能。</p><p> ?。?)JSP能提供所有Servlets功能</p><p>  與Servlets相比,JSP能提供所有Servlets功能,它比用Println書寫和修改HTML更方便??梢愿鞔_地進行分工,Web頁面設計人員編寫HTML,只需留出空間讓Servlets程序員插入動態(tài)部分即可。</p><p> 

43、?。?)健壯的存儲管理和安全性</p><p>  由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性。</p><p> ?。?)一次編寫,各處運行</p><p>  作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處

44、運行”的特點。隨著越來越多的供應商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務器和工具,更改工具或服務器并不影響當前的應用。</p><p>  2.3 Java Servlets概述</p><p>  2.3.1 Servlet 技術</p><p>  Java Servlet是JSP技術的基礎,JSP本身就是預先被編譯成Servlet,然后再運

45、行的,而且大型的Web應用程序的開發(fā)需要Java Servlet和JSP配合才能完成,Servlet這個名稱大概源于Applet,現(xiàn)在國內(nèi)的翻譯方式很多,本文為了避免誤會,本文直接采用Servlet這個名稱而不做任何翻譯,讀者如果愿意,可以稱之為“小服務程序”。Servlet其實和傳統(tǒng)的CGI程序和ISAPI、NSAPI等Web程序開發(fā)工具的作用是相同的,在使用Java Servlet以后,用戶不必再使用效率低下的CGI方式,也不必使用

46、只能在某個固定Web服務器平臺運行的API方式來動態(tài)生成Web頁面。許多Web服務器都支持Servlet,即使不直接支持Servlet的Web服務器也可以通過附加的應用服務器和模塊來支持Servlet。得益于Java的跨平臺的特性,Servlet也是平臺無關的,實際上,只要符合Java Servlet規(guī)范,Servlet是完全平臺無關且是Web服務器無關的。</p><p>  2.3.2 Servlet的結構&

47、lt;/p><p>  當一個servlet接收來自客戶端的調(diào)用請求, 它接收兩個對象: 一個是ServletRequest,另外一個是ServletResponse, 這個ServletRequest類概括從客戶端到服務器之間的聯(lián)系, 而 ServletResponse類概括從servlet返回客戶端的聯(lián)系, </p><p>  ServletRequest interface 可以獲取到

48、這樣一些信息如由客戶端傳送的闡述名稱,客戶端正在使用的協(xié)議, 產(chǎn)生請求并且接收請求的服務器遠端主機名, 它也提供獲取數(shù)據(jù)流的servlet, ServletInputStream, 這些數(shù)據(jù)是客戶端引用中使用HTTP POST 和 PUT 方法遞交的, 一個ServletRequest的子類可以讓 servlet獲取更多的協(xié)議特性數(shù)據(jù), 例如: HttpServletRequest 包含獲取 HTTP-specific頭部信息的方法,

49、</p><p>  ServletResponse interface 給出相應客戶端的servlet方法, 它允許servlet 設置內(nèi)容長度和回應的mime類型, 并且提供輸出流, ServletOutputStream, 通過編寫者可以發(fā)回相應數(shù)據(jù), ServletResponse子類可以給出更多 protocol-specific容量的信息。</p><p>  2.3.3 Se

50、rvlet的接口</p><p>  Servlet 從javax包的httpservlet類擴展,在HttpServlet中加入了一些附加的方法,這些方法可以被協(xié)助處理HTTP 基本請求的HttpServlet類中的方法service自動地調(diào)用。這些方法有:</p><p>  ◆doGet 用來處理HTTP的GET請求。</p><p>  ◆doPost 用來

51、處理HTTP的POST請求。</p><p>  ◆doPut用來處理HTTP的PUT請求。</p><p>  ◆doDelete用來處理HTTP的DELETE請求。</p><p>  ◆doHead 用來處理HTTP的HEAD請求。</p><p>  ◆doOptions用來處理HTTP的OPTIONS請求。</p>&

52、lt;p>  ◆doTrace用來處理HTTP的TRACE請求。</p><p>  2.4 JavaBean簡介</p><p>  JavaBean是一種基于Java的軟件組件,JavaBean和Active控件一樣,可以通過封裝業(yè)務邏輯建立一整套可重復利用的對象庫。JSP對于在Web應用中集成JavaBean組件提供了完善的支持,這種支持不僅能縮短開發(fā)時間(可以直接利用經(jīng)過測試

53、和可信任的已有組件),避免重復開發(fā),也為JSP應用帶來了更多的可伸縮性。JavaBean組件可以用來執(zhí)行復雜的計算任務,或負責與數(shù)據(jù)庫的交互及數(shù)據(jù)提取等。</p><p>  由于Java語言在這些方面所具有的特點和優(yōu)勢,使得基于它的軟件JavaBean組件技術倍受人們關注。它的任務就是:一次編寫,可以在任何地方執(zhí)行,可以在任何地方重用。JavaBean組件可以在任何地方重用包括了可以在應用程序、其他組件、文檔、

54、Web站點和應用程序構造器工具等多種方案中再利用。</p><p>  2.5 Struts概述</p><p>  2.5.1 Struts介紹</p><p>  Struts是一種開源軟件,它可以幫助開發(fā)人員更快更容易的開發(fā)Web程序。Struts所基于的標準技術----例如JavaBeans,servlets和 JSP,是大多數(shù)開發(fā)人員非常熟悉掌握的, 在軟

55、件開發(fā)過程中通過使用標準組建, 并用填空式的開發(fā)方法, Struts可以幫助程序員減輕每個新項目都重復進行那些既費時又繁瑣的工作。</p><p>  Struts使用的是Model2體系結構。ActionServlet負責控制總流程。另外一個Action類負責存取業(yè)務邏輯類。當ActionServlet類從容器中獲取一個請求時,它使用請求的URI(路徑)來決定是哪一個Action來處理該請求。一個Action可

56、以檢驗輸入的合法性、通過業(yè)務邏輯層來讀取數(shù)據(jù)庫或者其他數(shù)據(jù)服務中的信息。要完成這些功能,Action需要用戶提交給它處理數(shù)據(jù)。為了每一個Action都要處理從請求中提取輸入數(shù)據(jù)的操作,Struts將這些輸入數(shù)據(jù)綁定到JavaBean中。每一個這樣的輸入Bean都是Struts中ActionForm類的子類。ActionServlet通過查看請求的路徑就可以決定哪一個ActionForm用來包含輸入數(shù)據(jù)。這些ActionForm類都應該是

57、org,apache,struts,action,ActionForm的子類。每一個HTTP請求都必須有一個HTTP響應。但Struts自己并不生成響應,而是將該請求轉發(fā)到其他的資源上如JSP頁面。Struts提供一個名為ActionForward的類來將邏輯名保存到每個頁面的路徑。當業(yè)務邏輯部</p><p>  2.5.2 MVC簡介</p><p><b>  MVC模式:

58、</b></p><p>  我們開始從傳統(tǒng)形式上描述MVC然后討論它如何能適應網(wǎng)絡的應用。MVC模式三個部分中任一個都是經(jīng)過檢驗的,他們分別執(zhí)行相應的公共模塊。這個模式的主要意圖是分成三個相互獨立的交互的模塊:模型,視圖和控制器。模型的核心是一個邏輯函數(shù),視圖是用來顯示用戶應用程序傳遞的數(shù)據(jù),而控制器是控制用戶的交互和輸入的。 三者的通信是通過一個變換裝置保持協(xié)調(diào)同步的</p><

59、;p>  模型-視圖-控制器(MVC)(如圖2.1):</p><p>  1、模型(Model)</p><p>  模型是應用程序的主體部分。模型表示業(yè)務數(shù)據(jù),或者業(yè)務邏輯,</p><p>  2、視圖(View)</p><p>  視圖是應用程序中用戶界面相關的部分,是用戶看到并與之交互的界面。 </p><

60、;p>  3、控制器(controller) </p><p>  控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新model對象狀態(tài)。</p><p>  圖 2.1 MVC組件類型的關系和功能</p><p>  MVC式的出現(xiàn)不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時它還提高了應用系統(tǒng)的可維護性、可擴展性、可移植性和組件的可復用性</p>

61、;<p>  2.5.3 Struts優(yōu)缺點</p><p><b>  優(yōu)點:</b></p><p>  ◆有利于構筑穩(wěn)健的應用</p><p>  ◆減少了代碼的重復,易于維護 </p><p>  ◆有利于軟件工程化管理</p><p><b>  缺點:</

62、b></p><p>  ◆增加了系統(tǒng)結構和實現(xiàn)的復雜性</p><p>  ◆視圖與控制器間的過于緊密的連接</p><p>  ◆視圖對模型數(shù)據(jù)的低效率訪問</p><p>  2.6 mysql概述</p><p>  2.6.1 mysql介紹</p><p>  MySQL是一個

63、小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。目前MySQL被廣泛地應用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。</p><p>  2.6.2 mysql的基本命令</p><p><b>  -

64、---創(chuàng)建數(shù)據(jù)庫</b></p><p>  mysql> create database 數(shù)據(jù)庫名稱</p><p><b>  ----創(chuàng)建表</b></p><p>  mysql> create table 表名 (列的名字(id)類型(int(4))primary key(定義主鍵) auto_incremen

65、t(描述 自增),……,);</p><p>  ----查看所有數(shù)據(jù)庫</p><p>  mysql> show databases 數(shù)據(jù)庫名稱;</p><p>  ----使用某個數(shù)據(jù)庫</p><p>  mysql> use database 數(shù)據(jù)庫名稱;</p><p>  ----查看所使用

66、數(shù)據(jù)庫下所有的表</p><p>  mysql> show tables;</p><p>  ----顯示表的屬性結構</p><p>  mysql> desc 表名;</p><p>  ----選擇表中數(shù)據(jù)的顯示</p><p>  * 代表選擇所有列 ,</p><p>

67、  mysql> select * from 表名 where id=?[and name=?] [or name=?];</p><p>  mysql> select id,name from 表名order by 某一列的名稱 desc(降序,asc為升序)</p><p>  ----刪除表中的數(shù)據(jù)</p><p>  mysql> del

68、ete from table where id=?[or name=? (and name=?)];</p><p><b>  ----刪除表</b></p><p>  mysql> drop table;</p><p><b>  ----刪除數(shù)據(jù)庫</b></p><p>  mys

69、ql> drop database;</p><p>  第三章 系統(tǒng)環(huán)境配置</p><p><b>  3.1服務器配置</b></p><p>  第一步:從官方網(wǎng)站http://java.sun.com下載該軟件的最新版本。我所下載的是jdk-6u13-windows-i586-p.exe文件。</p><p&

70、gt;  第二步:雙擊.exe文件,安裝在C:\Program Files\Java\jdk1.6.0_13。</p><p>  第三步:JDK的環(huán)境配置:在Windows中用鼠標指向我的電腦,按右鍵,選擇“屬性”,在“系統(tǒng)特性”表單內(nèi)選擇“高級”標簽,在“高級”標簽內(nèi)選擇“環(huán)境變量”,在系統(tǒng)變量中加入變量JAVA_HOME(變量名為C:\Program Files\Java\jdk1.6.0_13.class

71、path(變量值為C:\Program Files\Java\ jdk1.6.0_13\lib\dt.jar;C:\ProgramFiles\Java\jdk1.5.0_06\lib\tools,jar;C:\ProgramFiles\Java\jdk1.5.0_06)和path(變量值為C:\Program Files\Java\jdk1.6.0_13\bin)。</p><p>  安裝和配置完畢后,在“命令

72、提示符”中輸入javac,會出現(xiàn)如圖3.1所示,則說明JDK安裝和配置都是正確的。</p><p>  圖3.1 javac調(diào)試界面</p><p>  3.2 Tomcat安裝及配置</p><p>  直接運行下載的apache-tomcat-5.5.26.exe文件,按照一般的Windows程序安裝步驟即可安裝好Tomcat,安裝時它會自動尋找JDK的位置。

73、安裝過程中需要選擇一個文件夾作為Tomcat的安裝目錄。我選擇安裝的位置是C:\Tomca 5.5。</p><p>  安裝完成以后,添加一個Tomcat的環(huán)境變量,添加方法和JDK的環(huán)境變量的添加方法相同,設置變量名為TOMCAT_HOME,變量值為C:\Tomcat 5.5。</p><p>  設置完畢后就可以運行Tomcat服務器了。Tomcat成功啟動后,在瀏覽器中輸入http

74、://localhost:8080/,如果出現(xiàn)歡迎界面,則說明Tomcat安裝成功。歡迎界面如圖3.2所示。</p><p>  圖3.2 Tomcat歡迎界面</p><p>  3.3 Mysql安裝及配置</p><p>  Mysql的安裝文件可以直接到 http://www.mysql.com 下載,獲得for win32的,zip包,建議選擇4.0.2

75、0d版本。下載獲得Mysql的for win32安裝包后,用winzip解壓縮,直接運行setup,exe,需要注意的是選擇一個安裝路徑,當然,安裝路徑可以任意,建議選擇C:\MySQL目錄。安裝完成后MySQL也就完成了。默認的用戶名是root,密碼為123456。</p><p>  Mysql安裝完成后,請通過開始-程序-附件-命令提示符進入:</p><p>  錄入cd C:\m

76、ysql\bin 并按下回車鍵,將目錄切換為 cd C:\mysql\bin</p><p>  在 C:\mysql\bin> 命令提示符下錄入 mysqld-nt -install 命令,然后按下回車,如果出現(xiàn) Service successfully installed 的提示, 這表示你已成功的將 MySQL 安裝成一項 Windows 的服務。</p><p>  點擊 開

77、始-程序-管理工具-服務 ,你可以看到Mysql已經(jīng)成為眾多服務項目中的一項,不過此時它還未被啟動, 因此接下來我們就啟動它。</p><p>  啟動 MySQL 服務的方法有以下三種,請自行選擇其中一種來進行:</p><p>  重啟機器時自動啟動它</p><p>  在服務窗口中選取 MySQL 服務名稱,然后按下啟動按鈕來啟動它</p>&

78、lt;p>  在“命令提示字符”窗口中輸入 NET START MySQL 指令來啟動它</p><p>  Mysql數(shù)據(jù)安裝完成,系統(tǒng)會默認生成一個名為test的數(shù)據(jù)庫。一般情況下,由于該數(shù)據(jù)需要用root用戶進行訪問,從安全性角度而言,我們建議你新建一個數(shù)據(jù)庫,并給這個數(shù)據(jù)庫分配一個新的用戶來訪問。(如下圖3.3為數(shù)據(jù)庫運行界面)</p><p>  圖3.3數(shù)據(jù)庫運行界面&l

79、t;/p><p>  第四章 系統(tǒng)需求分析及總體設計</p><p>  4.1 系統(tǒng)需求分析</p><p>  此基于J2EE的網(wǎng)上書店系統(tǒng)主要是實現(xiàn)網(wǎng)上選書、購書、產(chǎn)生訂單等功能的系統(tǒng)。一個典型的網(wǎng)上商城一般都需要實現(xiàn)商品信息的動態(tài)提示、購物車管理、客戶信息注冊登錄管理、訂單處理等模塊。</p><p>  根據(jù)網(wǎng)上書店的基本需求,本系統(tǒng)需

80、要完成的具體任務如下:</p><p>  會員注冊:為了能夠實現(xiàn)圖書商品的購買,需要管理客戶相關的聯(lián)系方式、送貨地點等相關的信息。</p><p>  書圖查詢:當客戶進入網(wǎng)上書店時,應該在主頁面中顯示書目信息,以供客戶選擇所需圖書,同時用戶可以進一步對書籍內(nèi)容進行查看預覽等。</p><p>  購物車管理:當客戶選擇購買某圖書產(chǎn)品時,應該能夠將對應圖書信息,如

81、:價格、圖書信息記錄到對應的購物車中,并允許客戶返回書目查詢頁面,選擇其他商品,并添加到購物車中,當對應的購物訂單生成后,應該能夠自動清除以生成訂單的購物車中的信息。</p><p>  訂單處理:對應客戶購買圖書商品信息的需求,在確定了所購圖書商品的價格、數(shù)量等信息后,提示用戶選擇對應的送貨方式及付款方式,最終生成對應的訂單記錄,以便于網(wǎng)站配貨人員依據(jù)訂單信息進行后續(xù)的出貨、送貨的處理。也可以對訂單進行修改等操

82、作。</p><p><b>  4.2 總體設計</b></p><p>  圖4.1系統(tǒng)功能結構圖</p><p>  4.3各模塊具體功能說明</p><p>  4.3.1 注冊功能</p><p>  由于用戶購買的圖書必須通過郵寄,物流等手段送達,所以用戶如果想通過該系統(tǒng)進行圖書交易,

83、就必須要把一些必須的基本信息通過注冊的方式保存在系統(tǒng)中。</p><p>  要求用戶注冊的目的主要是為了方便發(fā)送貨物。</p><p>  為保證用戶帳號的唯一性,建議采用電子郵件地址作為ID。</p><p>  為方便用戶隨時更正不合理的數(shù)據(jù),要求系統(tǒng)提供及時的客戶校驗提示功能。</p><p>  4.3.2 登錄功能</p&g

84、t;<p>  為了在用戶進行圖書交易的時候確認用戶ID,用戶在進行圖書結算的時候,必須登錄。</p><p>  登錄的主要目的是通過ID確認該用戶是否注冊,系統(tǒng)根據(jù)登錄用戶名的注冊信息進行交易。</p><p>  登錄的時機可以在用戶訪問系統(tǒng)的時候,也可以在圖書結算的時候。同時為方便沒有注冊用戶的操作,在登錄頁面中可以進行注冊功能選擇。注冊后的用戶自動作為登錄用戶。&l

85、t;/p><p>  結算界面要求可以導航到用戶定單維護界面,方便用戶查看,維護定單。</p><p>  4.3.3 用戶相關信息維護功能</p><p><b>  用戶注冊信息維護:</b></p><p>  用戶可以維護個人信息,修改注冊信息。主要是方便用戶隨時更改聯(lián)系方式。</p><p>

86、;<b>  用戶定單信息維護:</b></p><p>  用戶可以在訂購商品后,對定單信息進行維護,包括查看歷史交易記錄。用戶可以修改,刪除還沒有發(fā)貨的商品記錄。</p><p>  4.3.4 商品瀏覽</p><p>  購物的最大樂趣就是瀏覽商品,在線購書系統(tǒng)必須提供用戶對商品進行瀏覽的功能,用戶可以在不做任何購物決定的情況下隨意瀏覽

87、各種商品,要求系統(tǒng)對用戶瀏覽的商品提供最好的瀏覽效果和瀏覽的方便。</p><p>  用戶可以方便地通過商品名稱進行查看。要求顯示記錄需要顯示商品名稱,圖片,價格,說明,生產(chǎn)廠家,生產(chǎn)日期等信息。</p><p>  我們在購物的時候也要挎一個購物藍或推一個購物車,在線購書系統(tǒng)要求在商品信息上提供購書功能。方便用戶隨時把書籍加入到購書清單中,以便最后進行商品交易。</p>

88、<p>  4.3.5商品交易功能</p><p>  商品交易功能是本系統(tǒng)最核心的功能,也稱為購物車功能。該功能主要完成商品選購與結算。</p><p>  登錄用戶可以在查詢結果中選擇是否購物,購物商品臨時存放在購物車中,由用戶最后確認并結算后再放入數(shù)據(jù)庫交易記錄。</p><p>  在結算得時候,提供商品數(shù)量錄入,允許用戶指定購買數(shù)量。用戶也可以在

89、結算前刪除預購買的商品。</p><p><b>  第五章 數(shù)據(jù)庫設計</b></p><p>  5.1 數(shù)據(jù)庫E-R圖</p><p>  數(shù)據(jù)庫總體E-R圖(如圖5.1):</p><p>  圖:5.1數(shù)據(jù)庫總體E-R圖</p><p>  數(shù)據(jù)庫E-R圖說明:</p>&

90、lt;p><b>  實體表:</b></p><p>  ● category:商品類別表、存放商品類別</p><p>  ● product:商品表、存放商品信息</p><p>  ● user:用戶密碼表、存放用戶名和密碼</p><p>  ● contactinfo:用戶詳細信息表、存放對應用戶的詳細

91、信息</p><p>  ● orderstatus:訂單狀態(tài)表、保存訂單的狀態(tài)</p><p>  ● payway:付款方式表、存放可用的付款方式</p><p>  ● orders:訂單表、存放所有的訂單</p><p><b>  關系表:</b></p><p>  ● orderli

92、ne:訂單和商品關系表、保存訂單和商品的關聯(lián)關系</p><p>  5.2數(shù)據(jù)實體類結構概要設計</p><p>  數(shù)據(jù)庫實體類結構概要設計圖:</p><p>  圖5.2數(shù)據(jù)庫實體類結構概要設計圖</p><p>  5.2.1 數(shù)據(jù)庫結構設計UserInfo</p><p>  表5.1 UserInfo&

93、lt;/p><p>  5.2.2 數(shù)據(jù)庫結構設計Produts</p><p>  表5.2 Produts</p><p>  5.2.3 數(shù)據(jù)庫結構設計ProductType</p><p>  表5.3 ProductType</p><p>  5.2.4 數(shù)據(jù)庫結構設計Transactions</p&

94、gt;<p>  表5.4 Transactions</p><p>  5.3數(shù)據(jù)庫的初始化及創(chuàng)建</p><p>  5.3.1數(shù)據(jù)庫的初始化</p><p><b>  ◆初始化代碼:</b></p><p>  -------------------------建立庫腳本</p>&

95、lt;p><b>  --刪除數(shù)據(jù)庫</b></p><p>  drop database if exists gwap;</p><p><b>  --創(chuàng)建數(shù)據(jù)庫</b></p><p>  create database if not exists gwap default character set gbk

96、;</p><p><b>  --切換數(shù)據(jù)庫</b></p><p><b>  use gwap;</b></p><p>  -------------------------創(chuàng)建表腳步</p><p><b>  --創(chuàng)建商品類別表</b></p><

97、;p>  create table category(</p><p>  categoryid numeric(10),</p><p>  name varchar(128) not null,</p><p>  description varchar(512),</p><p>  constraint category_id_

98、pk primary key(categoryid)</p><p><b>  );</b></p><p><b>  --創(chuàng)建商品表</b></p><p>  create table product (</p><p>  productid numeric(16),</p>

99、<p>  name varchar(64) not null,</p><p>  description varchar(4000),</p><p>  basePrice numeric(12,2) not null,</p><p>  categoryid numeric(10),</p><p>  author v

100、archar(128) not null,</p><p>  publish varchar(256) not null,</p><p>  pages numeric(6),</p><p>  images varchar(128),</p><p>  constraint product_id_pk primary key(pro

101、ductid)</p><p><b>  );</b></p><p><b>  --創(chuàng)建用戶密碼表</b></p><p>  CREATE TABLE users (</p><p>  userid varchar(16),</p><p>  password v

102、archar(12) not null,</p><p>  constraint users_userid_pk primary key(userid)</p><p><b>  );</b></p><p>  --創(chuàng)建用戶詳細信息表</p><p>  CREATE TABLE contactinfo (<

103、/p><p>  contactid numeric(20),</p><p>  userid varchar(16),</p><p>  street1 varchar(64) default NULL,</p><p>  street2 varchar(64) default NULL,</p><p>  ci

104、ty varchar(32) default NULL,</p><p>  province varchar(32),</p><p>  country varchar(32),</p><p>  zip varchar(8) default NULL,</p><p>  email varchar(32) default NULL,

105、</p><p>  homephone varchar(16) default NULL,</p><p>  cellphone varchar(16) default NULL,</p><p>  officephone varchar(16) default NULL,</p><p>  constraint contactinf

106、o_id_pk primary key(contactid)</p><p><b>  );</b></p><p><b>  --創(chuàng)建訂單狀態(tài)表</b></p><p>  CREATE TABLE orderstatus (</p><p>  statusid numeric(3),<

107、;/p><p>  name varchar(32) not null,</p><p>  description varchar(64) default NULL,</p><p>  constraint orderstatus_id_pk PRIMARY KEY (statusid)</p><p><b>  );</b

108、></p><p><b>  --創(chuàng)建付款方式表</b></p><p>  create table payway (</p><p>  paywayid numeric(3),</p><p>  paystyle varchar(64) not null,</p><p>  co

109、nstraint payway_id_pk primary key(paywayid)</p><p><b>  );</b></p><p><b>  --創(chuàng)建訂單表</b></p><p>  CREATE TABLE orders (</p><p>  orderid int auto_

110、increment,</p><p>  name varchar(32),</p><p>  cost numeric(15,3) not null,</p><p>  userid varchar(16),</p><p>  statusid numeric(3),</p><p>  paywayid nu

111、meric(3),</p><p>  CONSTRAINT orders_id_pk primary key(orderid)</p><p><b>  );</b></p><p>  --創(chuàng)建訂單和商品關系表</p><p>  CREATE TABLE orderline (</p><p&

112、gt;  lineid int auto_increment,</p><p>  orderid numeric(20),</p><p>  productid numeric(16),</p><p>  amount numeric(20,2) not null,</p><p>  constraint orderline_pk P

113、RIMARY KEY (lineid)</p><p><b>  );</b></p><p>  ◆初始化成功界面(如圖5.3):</p><p>  圖5.3初始化成功界面</p><p>  5.3.2 數(shù)據(jù)庫的創(chuàng)建</p><p><b>  ◆創(chuàng)建代碼:</b>&

114、lt;/p><p>  -------------------------初始化表腳步</p><p>  --初始化商品類別表</p><p>  insert into category(categoryid,name,description) values(1,'計算機', '軟件與程序設計相關');</p><

115、p>  insert into category(categoryid,name,description) values(2,'英語', '英語相關圖書');</p><p>  insert into category(categoryid,name,description) values(3,'文學', '文學作品圖書集');</p&

116、gt;<p><b>  --初始化商品表</b></p><p>  INSERT INTO product VALUES (1, 'JAVA編程思想:第3版', '......', 95,00, 1, '(美)Bruce Eckel', '機械工業(yè)出版社', 796, 'images/product/z

117、cover,gif');</p><p><b>  .........</b></p><p>  --初始化用戶密碼表</p><p>  INSERT INTO users VALUES ('admin', 'admin');</p><p>  --初始化用戶詳細信息表&l

118、t;/p><p>  INSERT INTO contactinfo VALUES (1, 'admin', '', '', '', 18, 1, '', '', '', '', '');</p><p>  --初始化訂單狀態(tài)表</p>

溫馨提示

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

評論

0/150

提交評論