

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要 </b></p><p> 隨著信息技術(shù)的逐步發(fā)展,電子商務(wù)已經(jīng)發(fā)展起來(lái)并在逐步壯大。電子商務(wù)的廣泛推廣,打破了時(shí)空限制,改變了貿(mào)易形態(tài),大大加速了整個(gè)社會(huì)的商品流通,有助于降低企業(yè)成本,提高企業(yè)競(jìng)爭(zhēng)力,尤其能夠使中小型企業(yè)直接進(jìn)入國(guó)際市場(chǎng)參與國(guó)際市場(chǎng)競(jìng)爭(zhēng)。電子商務(wù)的這些優(yōu)點(diǎn)使得書店的經(jīng)營(yíng)成本大大降低,因而網(wǎng)上書店得到了巨大的發(fā)展,越來(lái)越多的書店進(jìn)入
2、網(wǎng)絡(luò)時(shí)代。</p><p> 本論文的主要工作是研究并實(shí)現(xiàn)網(wǎng)上考試書店系統(tǒng)。本文首先介紹了網(wǎng)上購(gòu)書系統(tǒng)的開(kāi)發(fā)背景及國(guó)內(nèi)外發(fā)展?fàn)顩r,然后論述了系統(tǒng)的設(shè)計(jì)目標(biāo)、系統(tǒng)需求、總體設(shè)計(jì)方案和數(shù)據(jù)庫(kù)設(shè)計(jì),較詳細(xì)的介紹了系統(tǒng)的部分模塊詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)。最后,本文對(duì)系統(tǒng)進(jìn)行了單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試等。該系統(tǒng)分為前臺(tái)和后臺(tái)兩個(gè)模塊,前臺(tái)是用戶操作平臺(tái),具有顯示新上架圖書、搜索圖書、查看圖書信息、會(huì)員注冊(cè)、會(huì)員登錄、購(gòu)物車、訂
3、購(gòu)圖書、查看訂單等功能;后臺(tái)是管理員操作平臺(tái),具有圖書管理分類、圖書管理、用戶管理、訂單管理等功能。</p><p> 本系統(tǒng)利用使用廣泛的Windows XP作為開(kāi)發(fā)平臺(tái),采用比較流行的JSP作為開(kāi)發(fā)語(yǔ)言,后臺(tái)數(shù)據(jù)庫(kù)使用免費(fèi)、簡(jiǎn)便的MySQL實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),采用MyEclipse作為編程工具,設(shè)計(jì)的系統(tǒng)采用MVC模式。</p><p> 關(guān)鍵字:電子商務(wù) JSP MySQL MV
4、C</p><p><b> Abstract</b></p><p> With the development of information technology, E-commerce has been developed and is gradually expanding. Wide Promotion of e-business has break t
5、he constraints of time, changed trade patterns, and greatly accelerated the speed of Circulation of goods, which help reduce corporation costs and improve the competitiveness of enterprises. Especially small and medium e
6、nterprises can make access to international markets to take part in the international Competition. These advantages of e-commerce grea</p><p> The chief work of this graduation dissertation is to research a
7、nd accomplish online- bookstore system. This graduation dissertation describes the background of development of online-bookstores and Global development, the target of the design, system requirements, overall designs, pl
8、ans of the database. There is more detailed Discussion of the detailed design and implementation. Finally, this dissertation describes the testing process of online- bookstore system. The system is divided up into two<
9、;/p><p> This system uses the widely used Windows XP as a development platform, uses the popular JSP as a development language, uses the free and simple MySQL as database to establish a connection, uses MyEcli
10、pse as a programming tool and uses the MVC design pattern.</p><p> Keywords: E-commerce JSP MySQL MVC</p><p><b> 目 錄</b></p><p><b> 第一章緒 論1</b></
11、p><p> 1.1 開(kāi)發(fā)背景1</p><p> 1.2 國(guó)內(nèi)外發(fā)展?fàn)顩r1</p><p> 1.3 研究目標(biāo)、內(nèi)容2</p><p> 1.4 研究方法2</p><p> 第二章可行性與需求分析4</p><p> 2.1 可行性分析4</p><
12、p> 2.2 需求分析4</p><p> 第三章系統(tǒng)總體設(shè)計(jì)6</p><p> 3.1 系統(tǒng)功能描述6</p><p> 3.2 系統(tǒng)用例圖6</p><p> 3.3 功能模塊劃分圖7</p><p> 3.4 系統(tǒng)流程分析8</p><p> 第四章數(shù)
13、據(jù)庫(kù)設(shè)計(jì)11</p><p> 4.1 數(shù)據(jù)庫(kù)需求分析11</p><p> 4.2 系統(tǒng)E-R圖11</p><p> 4.3 系統(tǒng)E-R圖向關(guān)系模型的轉(zhuǎn)換11</p><p> 4.4 數(shù)據(jù)庫(kù)中表的設(shè)計(jì)12</p><p> 4.5 數(shù)據(jù)庫(kù)中表的建立腳本14</p><p&
14、gt; 4.6 數(shù)據(jù)庫(kù)訪問(wèn)16</p><p> 第五章部分模塊功能實(shí)現(xiàn)17</p><p> 5.1 圖書查詢?cè)O(shè)計(jì)17</p><p> 5.2 將圖書加入購(gòu)物車設(shè)計(jì)18</p><p> 5.3 購(gòu)物車管理設(shè)計(jì)19</p><p> 5.4 系統(tǒng)運(yùn)行效果21</p><
15、p> 第六章系統(tǒng)測(cè)試24</p><p> 6.1軟件測(cè)試的概念24</p><p> 6.2軟件測(cè)試的具體步驟24</p><p> 6.3部分軟件測(cè)試用例25</p><p><b> 結(jié) 論27</b></p><p><b> 謝 辭28<
16、;/b></p><p><b> 參考文獻(xiàn)29</b></p><p><b> 緒 論</b></p><p> 本課題的主要工作是網(wǎng)上考試書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。在設(shè)計(jì)前,需要了解網(wǎng)上書店的開(kāi)發(fā)背景和國(guó)內(nèi)外的發(fā)展?fàn)顩r,確定此類網(wǎng)站是否具有發(fā)展前景。在本章中將對(duì)此進(jìn)行詳細(xì)介紹。在本章最后,將介紹本課題的研究
17、目標(biāo)和內(nèi)容以及用于本系統(tǒng)實(shí)現(xiàn)的開(kāi)發(fā)工具。</p><p><b> 1.1 開(kāi)發(fā)背景</b></p><p> 隨著信息技術(shù)的不斷發(fā)展,信息的處理和傳遞突破了時(shí)間和地域的局限,網(wǎng)絡(luò)化和全球化成為一種不可避免的世界趨勢(shì)。由于網(wǎng)絡(luò)用戶的迅速膨脹,人們紛紛將眼光投向因特網(wǎng),在線系統(tǒng)迅速發(fā)展壯大起來(lái),電子商務(wù)就是在此基礎(chǔ)上發(fā)展起來(lái)的。而隨著電子商務(wù)的不斷發(fā)展,網(wǎng)上購(gòu)物越來(lái)
18、越普及,越來(lái)越多的商家建立了自己的網(wǎng)上店鋪,人們從此得以足不出戶地購(gòu)買所需商品[1]。網(wǎng)上書店是網(wǎng)上店鋪的一個(gè)方面,已經(jīng)逐漸成為Internet上一道靚麗的風(fēng)景。網(wǎng)上書店不僅查找圖書方便和快速、圖書種類繁多、價(jià)錢低廉,而且能夠在全世界范圍和24小時(shí)全天候銷售圖書,突破了場(chǎng)地和時(shí)間的限制。</p><p> 本論文的設(shè)計(jì)方案是基于實(shí)體書店的眾多不便之處而提出的,希望能解決實(shí)體書店占地廣、查找不便、成本高、銷售時(shí)間
19、短、銷售區(qū)域小等的缺點(diǎn),充分利用網(wǎng)上書店網(wǎng)站的眾多優(yōu)點(diǎn),減少書店的運(yùn)營(yíng)成本,增加圖書的銷售數(shù)量,獲得更豐厚的利潤(rùn)。據(jù)調(diào)查,目前網(wǎng)上書店網(wǎng)站的種類和數(shù)量都不多,而專門針對(duì)考試方面的網(wǎng)上書店網(wǎng)站更是少之又少。因此,針對(duì)眾多考生的考試書店的發(fā)展具有光明的前景。</p><p> 1.2 國(guó)內(nèi)外發(fā)展?fàn)顩r</p><p> 網(wǎng)上書店在國(guó)內(nèi)外的發(fā)展?fàn)顩r有很大的不同。在海外,網(wǎng)上書店已得到了極大的發(fā)
20、展,取得了巨大的成功,尤其是西方發(fā)達(dá)國(guó)家的網(wǎng)上書店,已處于世界領(lǐng)先地位。在國(guó)內(nèi),網(wǎng)上書店發(fā)展還不完善,發(fā)展?jié)摿薮?,前景光明?lt;/p><p> 國(guó)外網(wǎng)上書店起步早、規(guī)模大、發(fā)展快、數(shù)量多,在歐美等經(jīng)濟(jì)技術(shù)比較發(fā)達(dá)的國(guó)家和地區(qū)發(fā)展的非常迅速和廣泛。在90年代末期,國(guó)外已有網(wǎng)上書店1000多家。而其中最令人矚目的是亞馬遜(Amazon.com)——全球最大的網(wǎng)上書店。它為讀者提供了方便舒適的網(wǎng)上購(gòu)物環(huán)境,豐富的圖
21、書品種(達(dá)310萬(wàn)以上),優(yōu)惠的價(jià)格(折扣率從20%到50%),完善的金融結(jié)算制度,以及高效率的配送服務(wù),并且實(shí)現(xiàn)了零庫(kù)存運(yùn)轉(zhuǎn)。自1995年7月亞馬遜書店賣出第一本書起,它的銷售總額直線上升,1997年銷售額即達(dá)1.48億美元,為1996年的9.3倍,1998年猛增到5.4億美元,增幅達(dá)365%。它塑造了成功的網(wǎng)上銷售模式,產(chǎn)生了良好的品牌效應(yīng)。亞馬遜在短短幾年之內(nèi),獲得了巨大的成功,成了全世界圖書業(yè)界矚目的對(duì)象。</p>
22、<p> 國(guó)內(nèi)的網(wǎng)上書店主要具有以下特點(diǎn):</p><p> 1. 起步晚、數(shù)量少。最早的網(wǎng)上書店是中國(guó)書店,建立于1995年,而后至1997年新華書店才建立網(wǎng)上書店。</p><p> 2. 起步低,模式少。2005年評(píng)選出總體競(jìng)爭(zhēng)力前5名網(wǎng)上書店是:當(dāng)當(dāng)網(wǎng)上書店、中國(guó)尋書網(wǎng)、上海書城網(wǎng)上書店、博庫(kù)網(wǎng)上書店、全國(guó)購(gòu)書網(wǎng)。</p><p> 3.
23、 分布極不平衡。網(wǎng)上書店基本上集中在以北京為中心的地區(qū),以及上海為中心的地區(qū)和廣東為中心的地區(qū)。</p><p> 現(xiàn)在,國(guó)內(nèi)的網(wǎng)上書店主要有卓越網(wǎng)和當(dāng)當(dāng)網(wǎng),發(fā)展的比較完善。雖然跟國(guó)外網(wǎng)上書店還有很大差距,但它們正逐漸發(fā)展得更加健全、完善,逐步縮小跟國(guó)外的差距。</p><p> 1.3 研究目標(biāo)、內(nèi)容</p><p> 本課題主要研究網(wǎng)上考試書店系統(tǒng)的設(shè)計(jì)與
24、實(shí)現(xiàn)。本網(wǎng)站主要為考生購(gòu)買考試用書而設(shè)計(jì)。專業(yè)網(wǎng)站在內(nèi)容和服務(wù)方面針對(duì)性強(qiáng),對(duì)用戶的吸引力大,相同類型的專業(yè)網(wǎng)站之間的競(jìng)爭(zhēng)力非常激烈。因此,一個(gè)競(jìng)爭(zhēng)強(qiáng)的網(wǎng)站應(yīng)該便于用戶使用和易于管理員管理,使系統(tǒng)實(shí)現(xiàn)最大程度的自動(dòng)化,盡可能的減少人工操作環(huán)節(jié),縮短交易時(shí)間和減少由于人工造成的失誤,因此必須注重每一個(gè)細(xì)小的環(huán)節(jié),避免電子交易時(shí)發(fā)生錯(cuò)誤,避免造成經(jīng)濟(jì)損失。將數(shù)據(jù)庫(kù)與動(dòng)態(tài)網(wǎng)頁(yè)相關(guān)聯(lián),使得商品信息可以及時(shí)的保存和更新,使得用戶和管理員可以更好的
25、及時(shí)了解商品買賣信息。</p><p> 本系統(tǒng)主要實(shí)現(xiàn)兩個(gè)功能:一是用戶網(wǎng)上選書、購(gòu)書、產(chǎn)生訂單的功能,二是管理員對(duì)圖書、用戶、訂單進(jìn)行管理的功能。兩大功能可以分為以下功能模塊:</p><p> 1. 匿名用戶模塊:匿名用戶可以查看圖書信息、使用模糊查詢搜索圖書、進(jìn)入注冊(cè)頁(yè)面注冊(cè)成會(huì)員</p><p> 2. 會(huì)員用戶模塊:除具有匿名用戶的所有功能外,還可
26、以登錄帳號(hào)、訂購(gòu)圖書、查看訂單</p><p> 3. 購(gòu)物車模塊:臨時(shí)存儲(chǔ)會(huì)員訂購(gòu)的圖書</p><p> 4. 管理員模塊:管理員可以進(jìn)行圖書分類管理、管理圖書、管理用戶、管理訂單</p><p><b> 1.4 研究方法</b></p><p> 本系統(tǒng)利用Windows XP作為開(kāi)發(fā)平臺(tái),采用JSP作為
27、開(kāi)發(fā)語(yǔ)言,后臺(tái)數(shù)據(jù)庫(kù)使用MySQL實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),設(shè)計(jì)的系統(tǒng)采用MVC模式。</p><p> JSP是Java Server Page的縮寫,是由Sun公司倡導(dǎo)、許多公司參與,于1999年推出的一種Web服務(wù)設(shè)計(jì)標(biāo)準(zhǔn)。JSP是基于Java Servlet以及整個(gè)Java體系的Web開(kāi)發(fā)技術(shù),利用這一技術(shù)可以建立安全、跨平臺(tái)的先進(jìn)動(dòng)態(tài)網(wǎng)站。JSP是以Java技術(shù)為基礎(chǔ),又在許多方面做了改進(jìn),具有動(dòng)態(tài)頁(yè)面與靜態(tài)頁(yè)面
28、分離,能夠脫離硬件平臺(tái)的束縛,以及編譯后運(yùn)行等優(yōu)點(diǎn),完全克服了ASP的缺點(diǎn)。目前,JSP已經(jīng)成為開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站的主流技術(shù)[2]。</p><p> Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML
29、文本,因此客戶端只要有瀏覽器就能瀏覽。</p><p> MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQLAB公司。在2008年1月16日被Sun公司收購(gòu)。而2009年,Sun又被Oracle收購(gòu)。MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。MySQ
30、L還具有以下優(yōu)點(diǎn):使用C和C++編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性;為多種編程語(yǔ)言提供了API;支持多線程,充分利用CPU資源;優(yōu)化的SQL查詢算法,有效地提高查詢速度等[3]。 </p><p> MVC是三個(gè)單詞的縮寫,分別為:模型(Model),視圖(View)和控制器(Controller)。 MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)。MVC模式的目的就是實(shí)現(xiàn)
31、Web系統(tǒng)的職能分工。MVC具有以下的優(yōu)點(diǎn):低耦合行、高重用性和可適用性、較低的生命周期成本、快速的部署、可維護(hù)性、有利于軟件工程化管理。 </p><p> 圖1.1 MVC模式</p><p> Model層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通常可以用Javabean來(lái)實(shí)現(xiàn)。Javabean主要提供簡(jiǎn)單的setXXX方法和getXXX方法,在這些方法中不涉及對(duì)數(shù)據(jù)的具體處理細(xì)節(jié),以便增強(qiáng)模型
32、的通用性。</p><p> View層用于與用戶的交互,通常用JSP來(lái)實(shí)現(xiàn)。其作用主要是向控制器提交必要的數(shù)據(jù)和為模型提供數(shù)據(jù)顯示。</p><p> Controller層是一個(gè)或多個(gè)Servlet對(duì)象,是Model與View之間溝通的橋梁,根據(jù)視圖提供的要求進(jìn)行數(shù)據(jù)處理操作,并將有關(guān)的結(jié)果存儲(chǔ)到Javabean中,然后Servlet使用重定向方式請(qǐng)求視圖中的某個(gè)JSP頁(yè)面更新顯示
33、[4]。</p><p><b> 可行性與需求分析</b></p><p> 系統(tǒng)開(kāi)發(fā)前,經(jīng)過(guò)可行性分析和需求分析,才能使系統(tǒng)更加可行、合理。可行性分析是決定“做還是不做”,需求分析是決定“做什么、不做什么”。</p><p><b> 2.1 可行性分析</b></p><p> 可行性
34、研究主要內(nèi)容是要求以全面、系統(tǒng)的分析為主要方法,經(jīng)濟(jì)效益為核心,圍繞影響項(xiàng)目的各種因素,運(yùn)用大量的數(shù)據(jù)資料論證擬建項(xiàng)目是否可行。也就是說(shuō)可行性研究是為了弄清楚系統(tǒng)開(kāi)發(fā)的項(xiàng)目是不是可以實(shí)現(xiàn)和值得進(jìn)行研究的過(guò)程,實(shí)際上是一次大大簡(jiǎn)化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過(guò)程,所以,進(jìn)行可行性分析是非常必要的,也是很重要的[5]。</p><p> 經(jīng)過(guò)最初的設(shè)計(jì)目標(biāo)和進(jìn)行的市場(chǎng)調(diào)查,可以從以下三個(gè)方面對(duì)本系統(tǒng)進(jìn)行可行性分析:管理可行
35、性、經(jīng)濟(jì)可行性、技術(shù)可行性。</p><p><b> 1.管理可行性</b></p><p> 參考當(dāng)當(dāng)網(wǎng)、卓越網(wǎng)的圖書訂購(gòu)流程和幫助教程,并由多次網(wǎng)購(gòu)圖書的同學(xué)提供參考意見(jiàn)和多名考研期間的考生提供建議,可確保系統(tǒng)在管理層面上可行。</p><p><b> 2.經(jīng)濟(jì)可行性</b></p><p
36、> JSP+Tomcat+MySQL是免費(fèi)開(kāi)源的框架或者軟件,使得開(kāi)發(fā)成本大大下降。系統(tǒng)可重用性高,除可用于針對(duì)考生的考試書店,經(jīng)過(guò)修改后,可用于其他類型的網(wǎng)上書店。采用MVC模式使得開(kāi)本成本降低和易于維護(hù)用戶接口。界面美觀、易懂、操作方便,電腦初學(xué)者無(wú)需經(jīng)過(guò)學(xué)習(xí)就可以輕松得操作本系統(tǒng)的所有功能。本系統(tǒng)的開(kāi)發(fā)在經(jīng)濟(jì)上是可行的。</p><p><b> 3. 操作可行性</b>&l
37、t;/p><p> JSP+Servlet在技術(shù)上已經(jīng)成熟,MySQL數(shù)據(jù)庫(kù)易于連接,采用MVC模式,使得視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動(dòng)MVC的模型層即可。因?yàn)槟P团c控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。MVC模式允許你使用各種不同樣式的視圖來(lái)訪問(wèn)同一個(gè)服務(wù)器端的代碼。由于模型返回的數(shù)據(jù)沒(méi)有進(jìn)行
38、格式化,所以同樣的構(gòu)件能被不同的界面使用。例如,很多數(shù)據(jù)可能用HTML來(lái)表示,但是也有可能用WAP來(lái)表示,而這些表示所需要的僅僅是改變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無(wú)需做任何改變。</p><p> 綜上所述,本系統(tǒng)從各種方面分析都是完全可行的,系統(tǒng)的開(kāi)發(fā)完全可行。</p><p><b> 2.2 需求分析</b></p><p>
39、 軟件需求分析是指用戶對(duì)目標(biāo)系統(tǒng)在功能、性能、行為等方面的期望,也就是說(shuō)要解決的問(wèn)題進(jìn)行詳細(xì)的分析,弄清楚問(wèn)題的要求,包括用戶需要輸入什么數(shù)據(jù),要如何操作,最后要得到什么結(jié)果。</p><p> 需求分析是在可行性研究的基礎(chǔ)上進(jìn)行的,可行性研究實(shí)質(zhì)上是一次完整的分析和設(shè)計(jì)過(guò)程,只不過(guò)是在抽象的層次上進(jìn)行的大大壓縮和簡(jiǎn)化的分析和設(shè)計(jì)過(guò)程。需求分析的結(jié)果是軟件開(kāi)發(fā)的基礎(chǔ),必須仔細(xì)驗(yàn)證它的正確性,開(kāi)發(fā)人員必須和用戶取
40、得完全一致的意見(jiàn),需求分析的文檔應(yīng)該被用戶所確認(rèn)。為了更準(zhǔn)確、更具體地確定用戶的需求,往往需要構(gòu)造出目標(biāo)系統(tǒng)的原型,供用戶試用以取得實(shí)踐。良好的分析活動(dòng)有助于避免或盡早剔除早期錯(cuò)誤,從而提高軟件生產(chǎn)率,降低開(kāi)發(fā)成本,改進(jìn)軟件質(zhì)量[6]。</p><p> 將需求分析分為兩個(gè)過(guò)程,一個(gè)是理解需求,另一個(gè)是分析需求。 </p><p><b> 理解需求。</b>
41、;</p><p> 理解需求主要是開(kāi)發(fā)人員同用戶進(jìn)行溝通,了解用戶的的目地和意向,并且可以通過(guò)開(kāi)會(huì)、跟隨用戶參與實(shí)際工作、發(fā)放一些問(wèn)卷調(diào)查等形式來(lái)了解需求,進(jìn)而理解需求。</p><p><b> 分析需求</b></p><p> 分析需求就是描述系統(tǒng)的需求,通過(guò)定義系統(tǒng)中的關(guān)鍵信息來(lái)建立模型。分析需求是在正確地理解需求的基礎(chǔ)上來(lái)綜合
42、歸納用戶的需求,并且反饋給用戶,最終由開(kāi)發(fā)人員同用戶一起確定需求的內(nèi)容。</p><p> 通過(guò)上面的需求分析的過(guò)程,描述本系統(tǒng)的需求分析:</p><p> 1. 本系統(tǒng)根據(jù)需要把用戶權(quán)限分為管理員和用戶兩類。管理員能夠?qū)τ脩舻牟糠中畔⑦M(jìn)行管理。</p><p> 2. 管理員進(jìn)貨,收集圖書所有信息后,可以將圖書信息發(fā)布到網(wǎng)站上。</p>&l
43、t;p> 3. 管理員可以對(duì)圖書類別進(jìn)行查看、修改、刪除操作,可以對(duì)圖書進(jìn)行歸類。</p><p> 4. 管理員可以對(duì)圖書信息進(jìn)行查看、修改、刪除操作。</p><p> 5. 管理員只能查看、刪除用戶,不能對(duì)用戶的信息進(jìn)行修改。</p><p> 6. 管理員只能查看訂單、對(duì)訂單進(jìn)行發(fā)貨,不能對(duì)用戶訂單進(jìn)行修改、刪除操作。</p>&
44、lt;p> 7. 非用戶必須注冊(cè)成用戶,需要經(jīng)過(guò)登錄才能操作,不注冊(cè)不能登錄。</p><p> 8. 用戶可以搜索圖書、查看圖書詳細(xì)、訂購(gòu)圖書。</p><p> 9. 用戶不經(jīng)過(guò)登錄,不能進(jìn)行訂購(gòu)操作。</p><p> 10.用戶可以查看以前所有的訂單。</p><p> 11.為了安全,用戶和管理員必須要有安全退出功能
45、。</p><p> 12.本系統(tǒng)是基于IE開(kāi)發(fā)的系統(tǒng),用戶和管理員只需連接網(wǎng)絡(luò)即可使用。</p><p><b> 系統(tǒng)總體設(shè)計(jì)</b></p><p> 通過(guò)需求分析階段的工作,系統(tǒng)應(yīng)該做什么已經(jīng)清楚了,總體設(shè)計(jì)階段就是決定怎樣實(shí)現(xiàn)此系統(tǒng)。在本章中,將會(huì)對(duì)系統(tǒng)應(yīng)該具有的所有功能進(jìn)行總結(jié),按權(quán)限的不同分為管理員與注冊(cè)用戶,然后將所有功能
46、劃分成幾個(gè)功能模塊,最后對(duì)系統(tǒng)的運(yùn)作流程進(jìn)行設(shè)計(jì)。</p><p> 3.1 系統(tǒng)功能描述</p><p> 管理員收集到圖書信息后,從后臺(tái)登錄系統(tǒng)。</p><p> 管理員對(duì)圖書類別進(jìn)行管理:新增圖書類別、修改與刪除已有圖書類別、查看此類別的圖書。</p><p> 管理員添加新圖書信息。</p><p>
47、 管理員對(duì)圖書進(jìn)行管理:查看與修改圖書信息、刪除圖書。</p><p> 管理員按書名或作者或出版社查詢圖書。</p><p> 管理員查看用戶信息,并能對(duì)用戶進(jìn)行刪除。</p><p> 管理員查看訂單詳細(xì)信息,并將訂單付款狀態(tài)改為“已付款”,發(fā)貨狀態(tài)改為“已發(fā)貨”。</p><p> 管理員安全退出登錄。</p>
48、<p> 非用戶登錄網(wǎng)站,顯示用戶登錄窗口、最新圖書列表,查看圖書詳細(xì)信息,訂購(gòu)時(shí)提醒用戶先登錄。</p><p> 非用戶進(jìn)入用戶注冊(cè)頁(yè)面,填寫用戶基本信息,注冊(cè)成用戶。</p><p> 用戶按書名或作者或出版社搜索圖書。</p><p> 用戶訂購(gòu)圖書,將圖書放到購(gòu)物車中。</p><p> 用戶查看購(gòu)物車中所定圖書
49、的詳細(xì)信息,</p><p> 用戶對(duì)購(gòu)物車中的圖書進(jìn)行下訂單操作。</p><p> 用戶可查看所有的訂單信息,了解管理員是否收到匯款、是否發(fā)貨。</p><p> 用戶查看網(wǎng)站的聯(lián)系方式。</p><p> 用戶查看網(wǎng)站的訂購(gòu)流程。</p><p><b> 用戶安全退出登錄。</b>
50、;</p><p><b> 3.2 系統(tǒng)用例圖</b></p><p> 本系統(tǒng)的用例圖如圖3.1如下。</p><p> 由用例圖可知,系統(tǒng)中的角色可以劃分為兩類:</p><p> 管理員:擁有所有的權(quán)限,可以對(duì)圖書、訂單、用戶進(jìn)行管理</p><p> 用戶:用戶注冊(cè)、用戶登錄、
51、瀏覽網(wǎng)站圖書信息列表、搜索圖書、查詢圖書信息、任意購(gòu)買圖書、查看購(gòu)物車中的圖書、刪除購(gòu)物車中的圖書、提交購(gòu)買的圖書、查看訂單的信息。</p><p> 圖3.1 系統(tǒng)用例圖</p><p> 3.3 功能模塊劃分圖</p><p> 圖3.2 功能模塊劃分圖</p><p> 下面對(duì)功能模塊進(jìn)行詳細(xì)描述:</p><
52、;p><b> 用戶注冊(cè)登錄</b></p><p> 該模塊實(shí)現(xiàn)用戶的注冊(cè)登錄。用戶登錄時(shí),系統(tǒng)檢查用戶是否已經(jīng)注冊(cè)。若已經(jīng)注冊(cè),用戶登錄成功,若未注冊(cè),系統(tǒng)提醒用戶注冊(cè)。</p><p><b> 圖書查詢</b></p><p> 該模塊實(shí)現(xiàn)圖書書目信息的查詢,提供各種不同的查詢條件下的模糊查詢,方便用
53、戶能夠迅速地搜索到所需的圖書。此外,在用戶選擇了某個(gè)書目以后,可以顯示該書目的詳細(xì)信息,讓用戶了解此書的情況,方便用戶做出正確的選擇。</p><p><b> 查看用戶訂單</b></p><p> 該模塊實(shí)現(xiàn)已經(jīng)登錄的此用戶的所有訂單的顯示。</p><p><b> 購(gòu)物車管理</b></p>&
54、lt;p> 對(duì)應(yīng)于每個(gè)進(jìn)入該書店系統(tǒng)的用戶購(gòu)物車,主要管理用戶所選擇書目的信息。在用戶沒(méi)有退出系統(tǒng)之前或者沒(méi)有提交之前,一直保持著用戶所選擇的書目信息,提交之后即生成訂單。</p><p><b> 管理員登錄</b></p><p> 該模塊實(shí)現(xiàn)管理員的登錄。</p><p><b> 圖書信息管理</b>
55、</p><p> 該模塊實(shí)現(xiàn)管理員對(duì)圖書的管理。管理員將圖書分類,可以對(duì)某類圖書進(jìn)行查看、增加此類圖書、修改類別名稱、刪除某類別;也可以對(duì)圖書詳細(xì)信息進(jìn)行查看、修改,直接刪除此圖書。</p><p><b> 用戶管理</b></p><p> 用戶注冊(cè)及身份的認(rèn)證。因?yàn)橐獙?shí)際操作送貨上門,因此要收集到用戶的詳細(xì)信息。</p>
56、;<p><b> 訂單管理</b></p><p> 顯示訂單列表信息,根據(jù)實(shí)際的情況,管理員可以對(duì)訂單的狀態(tài)進(jìn)行修改。用戶在前臺(tái)可以查看自己的訂單列表信息以及詳細(xì)信息。</p><p> 3.4 系統(tǒng)流程分析</p><p> 系統(tǒng)流程是在計(jì)算機(jī)事務(wù)處理應(yīng)用進(jìn)行系統(tǒng)分析時(shí)常用的描述方法,它描述了計(jì)算機(jī)事務(wù)處理中從數(shù)據(jù)輸
57、入開(kāi)始到獲得輸出為止[7]。簡(jiǎn)單說(shuō)就是用戶在使用系統(tǒng)時(shí)的工作過(guò)程。多用戶系統(tǒng)的工作流程都有登錄模塊,對(duì)用戶的身份進(jìn)行認(rèn)證。 </p><p> 通過(guò)對(duì)系統(tǒng)進(jìn)行流程分析,可以對(duì)系統(tǒng)形成完整而全面的認(rèn)識(shí),能夠清晰地對(duì)工作流程進(jìn)行了解。</p><p> 在此系統(tǒng)中,分為兩個(gè)流程:前臺(tái)流程和后臺(tái)流程。前臺(tái)流程即是用戶流程,后臺(tái)流程即是管理員流程。用戶和管理員都要經(jīng)過(guò)身份認(rèn)證程序,不同
58、之處是用戶不經(jīng)過(guò)身份認(rèn)證程序也能進(jìn)行部分操作,而管理員必須經(jīng)過(guò)身份認(rèn)證程序才能夠進(jìn)行操作。另一不同之處是用戶可以注冊(cè),而管理員不可以注冊(cè)。</p><p> 從前臺(tái)流程圖(如圖3.3)中可以看出,用戶一開(kāi)始可以使用搜索或者查看圖書功能,在搜索功能中可以進(jìn)行多次搜索,在訂購(gòu)圖書過(guò)程中新用戶需要經(jīng)過(guò)一次注冊(cè)和登錄才可以進(jìn)入購(gòu)物車,在購(gòu)物車中可以添加多本圖書之后才下訂單。</p><p>
59、圖3.3 前臺(tái)流程分析圖</p><p> 圖3.4 后臺(tái)流程分析圖</p><p> 從后臺(tái)流程圖(如圖3.4)中可以看出,管理員一開(kāi)始必須經(jīng)過(guò)身份認(rèn)證,否則無(wú)法進(jìn)行任何操作,管理員可以對(duì)圖書分類、圖書、用戶、訂單進(jìn)行管理,進(jìn)行相應(yīng)的詳細(xì)操作。進(jìn)行完所有操作后,即可退出系統(tǒng)。</p><p><b> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p&g
60、t;<p> 數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)的各個(gè)表以及它們之間的關(guān)系并建立數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo)是為用戶和各種應(yīng)用系統(tǒng)提供一個(gè)信息基礎(chǔ)設(shè)施和高效的運(yùn)行環(huán)境。在本章中,將會(huì)根據(jù)數(shù)據(jù)庫(kù)的需求分析畫出系統(tǒng)E-R圖,根據(jù)E-R圖得出關(guān)系模型,此時(shí),表的結(jié)構(gòu)已經(jīng)非常清楚了,可以設(shè)計(jì)出所有表以及建立腳本,最后介紹數(shù)據(jù)庫(kù)的連接訪問(wèn)。</p><p> 4.1 數(shù)據(jù)庫(kù)需求分析</p><p&g
61、t; 根據(jù)本系統(tǒng)的需求,設(shè)計(jì)對(duì)應(yīng)的數(shù)據(jù)表及功能如下:</p><p> 圖書基本信息表:存放網(wǎng)上書店所銷售的圖書的基本信息。</p><p> 圖書分類信息表:存放網(wǎng)上書店所提供圖書分類的信息。</p><p> 用戶基本信息表:存放網(wǎng)上書店用戶的基本信息。</p><p> 管理員基本信息表:存放網(wǎng)上書店管理員的基本信息。<
62、/p><p> 訂單基本信息表:存放網(wǎng)上書店訂單的基本信息。</p><p> 訂單詳細(xì)信息表:存放網(wǎng)上書店訂單的詳細(xì)信息。</p><p> 根據(jù)以上的分析,確定出本系統(tǒng)的實(shí)體有:</p><p> 用戶實(shí)體:存放用戶的信息。</p><p> 管理員實(shí)體:存放管理員的信息。</p><p&
63、gt; 圖書實(shí)體:存放圖書的信息。</p><p> 圖書類別實(shí)體:存放圖書類別的信息。其與圖書實(shí)體的對(duì)應(yīng)關(guān)系為一對(duì)多。</p><p> 訂單實(shí)體:存放訂單的信息。其與用戶實(shí)體的對(duì)應(yīng)關(guān)系為一對(duì)一。</p><p> 訂單明細(xì)實(shí)體:存放訂單明細(xì)的信息。其與訂單實(shí)體的關(guān)系為多對(duì)一;與圖書實(shí)體的關(guān)系為多對(duì)一。</p><p> 4.2
64、系統(tǒng)E-R圖</p><p> 概念模型是按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫(kù)設(shè)計(jì),不涉及信息在計(jì)算機(jī)系統(tǒng)中的表示,只是用來(lái)描述特定組織所關(guān)心的信息結(jié)構(gòu)。這類模型強(qiáng)調(diào)其語(yǔ)義表達(dá)能力,概念應(yīng)該簡(jiǎn)單、清晰,易于用戶理解,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的工具。最為著名和使用最為廣泛的是E-R圖法[8]。</p><p> 本系統(tǒng)E-R圖如圖4.1所示。</p>&
65、lt;p> 4.3 系統(tǒng)E-R圖向關(guān)系模型的轉(zhuǎn)換</p><p> 將圖 E-R圖轉(zhuǎn)化成如下關(guān)系模型</p><p> 用戶(用戶ID,用戶名,用戶密碼,用戶真名,電話,地址,電子郵件,注冊(cè)時(shí)間)</p><p> 管理員(管理員名,管理員密碼)</p><p> 圖書(圖書ID,圖書類別ID,圖書名,圖書價(jià)格,圖書銷售價(jià)格,
66、出版社,圖書作者,圖書內(nèi)容目錄,圖書描述,入庫(kù)時(shí)間)</p><p> 圖書類別(圖書類別ID,圖書類別名稱)</p><p> 訂單(訂單ID,用戶ID,提交訂單時(shí)間,總金額,訂單備注,是否付款,是否發(fā)貨)</p><p> 訂單明細(xì)(唯一編號(hào),訂單ID,圖書ID,數(shù)量)</p><p> 圖4.1 在線書店系統(tǒng)E-R圖</p
67、><p> 4.4 數(shù)據(jù)庫(kù)中表的設(shè)計(jì)</p><p> 通過(guò)上面的關(guān)系模型,表的數(shù)量和結(jié)構(gòu)已變著非常清晰,在MySQL中建立如下6個(gè)表。</p><p> 表4-1 管理員基本信息表adminuser</p><p> 表4-2 用戶基本信息表user</p><p> 表4-3 圖書基本信息表bookinfo&
68、lt;/p><p> 表4-4 訂單基本信息表orderinfo</p><p> 表4-5 圖書分類基本信息表category</p><p> 表4-6 訂單明細(xì)信息表orderdetail</p><p> 4.5 數(shù)據(jù)庫(kù)中表的建立腳本</p><p> 在基本表的結(jié)構(gòu)確定后,就可以在MySQL中完成數(shù)據(jù)表
69、的創(chuàng)建工作,下面給出建立對(duì)應(yīng)數(shù)據(jù)表的SQL腳本。</p><p> 管理員基本信息表,代碼如下:</p><p> CREATE TABLE `adminuser` (</p><p> `adminuser` varchar(16) NOT NULL DEFAULT '',</p><p> `adminpass`
70、varchar(16) NOT NULL DEFAULT '',</p><p> PRIMARY KEY (`adminuser`)</p><p> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;</p><p> 用戶基本信息表,代碼如下:</p><p> CREATE TABL
71、E `user` (</p><p> ` userid ` int(10) unsigned NOT NULL AUTO_INCREMENT,</p><p> `loginname` varchar(20) NOT NULL DEFAULT '',</p><p> `realname` varchar(20) NOT NULL DEFAU
72、LT '',</p><p> `password` varchar(16) NOT NULL DEFAULT '',</p><p> `phone` varchar(16) NOT NULL DEFAULT '',</p><p> `address` varchar(150) NOT NULL DEFAUL
73、T '',</p><p> `email` varchar(50) NOT NULL DEFAULT '',</p><p> `regtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',</p><p> PRIMARY KEY (`id`)</p
74、><p> ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=gb2312;</p><p> 圖書基本信息表,代碼如下:</p><p> CREATE TABLE `bookinfo` (</p><p> ` bookid ` int(10) unsigned NOT NULL AU
75、TO_INCREMENT,</p><p> `categoryid` int(10) unsigned NOT NULL DEFAULT '0',</p><p> `name` varchar(100) NOT NULL DEFAULT '',</p><p> `price` float NOT NULL DEFAULT
76、'0',</p><p> `saleprice` float NOT NULL DEFAULT '0',</p><p> `press` varchar(50) NOT NULL DEFAULT '',</p><p> `author` varchar(50) NOT NULL DEFAULT '&
77、#39;,</p><p> `content` text NOT NULL,</p><p> `descript` text NOT NULL,</p><p> `regdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',</p><p> PRIMARY
78、KEY (`id`)</p><p> ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=gb2312;</p><p> 訂單信息基本表,代碼如下:</p><p> CREATE TABLE `orderinfo` (</p><p> ` orderid ` varchar(32
79、) NOT NULL DEFAULT '',</p><p> `userid` int(10) unsigned NOT NULL DEFAULT '0',</p><p> `submittime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',</p><p>
80、; `totalprice` float NOT NULL DEFAULT '0',</p><p> `content` varchar(200) CHARACTER SET gbk DEFAULT NULL,</p><p> `ispay` int(10) unsigned NOT NULL DEFAULT '0',</p><
81、;p> `isdeliver` int(10) unsigned NOT NULL DEFAULT '0',</p><p> PRIMARY KEY (`id`)</p><p> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;</p><p> 圖書分類基本信息表,代碼如下:</p>&
82、lt;p> CREATE TABLE `category` (</p><p> ` categoryid ` int(10) unsigned NOT NULL AUTO_INCREMENT,</p><p> `categoryname` varchar(50) NOT NULL DEFAULT '',</p><p> PRIMA
83、RY KEY (`id`)</p><p> ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gb2312;</p><p> 訂單明細(xì)信息表,代碼如下:</p><p> CREATE TABLE `orderdetail` (</p><p> `id` int(10) unsig
84、ned NOT NULL AUTO_INCREMENT,</p><p> `orderid` varchar(32) CHARACTER SET gbk NOT NULL DEFAULT '',</p><p> `bookid` int(10) unsigned NOT NULL DEFAULT '0',</p><p>
85、`amout` int(10) unsigned NOT NULL DEFAULT '0',</p><p> PRIMARY KEY (`id`)</p><p> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT='InnoDB free: 4096 kB';</p><p><
86、;b> 4.6 數(shù)據(jù)庫(kù)訪問(wèn)</b></p><p> 用Java語(yǔ)言編寫的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序稱為純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。JDBC提供的API通過(guò)將純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序轉(zhuǎn)換為DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))所使用的專用協(xié)議來(lái)實(shí)現(xiàn)和特定的DBMS交互信息,簡(jiǎn)單地說(shuō),JDBC可以調(diào)用本地的純Java驅(qū)動(dòng)程序和相應(yīng)的數(shù)據(jù)庫(kù)建立連接,如圖4.2所示。</p><p> 圖4.2
87、使用純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序</p><p> 使用純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序方式和數(shù)據(jù)庫(kù)建立連接需要經(jīng)過(guò)兩個(gè)步驟:</p><p> 1. 加載純Java驅(qū)動(dòng)程序</p><p> 目前,許多數(shù)據(jù)庫(kù)廠商都提供了自己相應(yīng)的純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。當(dāng)使用純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序訪問(wèn)數(shù)據(jù)庫(kù)時(shí),必須要保證連接數(shù)據(jù)庫(kù)的應(yīng)用程序所駐留的計(jì)算機(jī)上安裝有相應(yīng)DBMS提供的
88、純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。MySQL的驅(qū)動(dòng)程序名為MySQLConnector/J,在本系統(tǒng)中其文件名為mysql-connector-java-3.0.16-ga-bin.jar。</p><p> 應(yīng)用程序加載MySQL驅(qū)動(dòng)程序代碼如下:</p><p> try { jdbc.driverClassName=com.mysql.jdbc.Driver;</p>&l
89、t;p><b> }</b></p><p> Catch (Exception e) {}</p><p> 2. 和指定的數(shù)據(jù)庫(kù)建立連接:</p><p> 和MySQL數(shù)據(jù)庫(kù)建立連接的代碼如下:</p><p> try{ jdbc.url=jdbc:mysql://localhost/books
90、tore?characterEncoding=gb2312;</p><p> jdbc.username=root;</p><p> jdbc.password=root;</p><p> con=DriverManager.getConnection(url,username,password);</p><p><b&g
91、t; }</b></p><p> Catch (Exception e) {}</p><p> 應(yīng)用程序一旦和數(shù)據(jù)庫(kù)建立連接,就可以和該數(shù)據(jù)庫(kù)中的表交互信息,比如查詢、修改、更新表中的記錄[9]。</p><p><b> 部分模塊功能實(shí)現(xiàn)</b></p><p> 對(duì)系統(tǒng)進(jìn)行完總體設(shè)計(jì)之后,再
92、對(duì)每個(gè)模塊進(jìn)行詳細(xì)設(shè)計(jì)是非常必要的,這樣可以更好更合理的開(kāi)發(fā)系統(tǒng)。各個(gè)模塊可以獨(dú)立進(jìn)行設(shè)計(jì),從而使所有模塊同時(shí)進(jìn)行開(kāi)發(fā),大大縮短了開(kāi)發(fā)時(shí)間。所有模塊開(kāi)發(fā)完后,最終構(gòu)成一個(gè)完整的系統(tǒng)。在本章中,將詳細(xì)講解圖書查詢模塊和圖書購(gòu)買模塊的設(shè)計(jì),將圖書購(gòu)買模塊分為將圖書加入購(gòu)物車設(shè)計(jì)和購(gòu)物車管理設(shè)計(jì)兩部分。</p><p> 5.1 圖書查詢?cè)O(shè)計(jì)</p><p> 在此模塊中,用戶可以按照書名或
93、作者或出版社進(jìn)行模糊查詢。</p><p> 在主頁(yè)面中,在導(dǎo)航欄菜單中設(shè)計(jì)了一個(gè)搜索圖書的功能。這個(gè)功能是為了使得用戶較為精確地定位他們想要購(gòu)買和查看的圖書。因此,設(shè)計(jì)一個(gè)對(duì)應(yīng)此功能的搜索頁(yè)面及搜索結(jié)果頁(yè)面。設(shè)計(jì)的頁(yè)面如圖5.1所示。</p><p> 圖5.1 搜索圖書頁(yè)面</p><p> 在這個(gè)頁(yè)面中,定義了三個(gè)對(duì)話框,分別是書名、作者、出版社。通過(guò)輸
94、入這三個(gè)條件來(lái)精確定位索要搜索的圖書。例如,我們?cè)谏厦娴乃阉黜?yè)面中的對(duì)應(yīng)書名條件欄中輸入“考研”查詢條件,即為查詢書名信息中包含“考研”字樣的所有圖書信息。搜索后的結(jié)果頁(yè)面如圖5.2所示。</p><p> 圖5.2 搜索結(jié)果頁(yè)面</p><p> 在這個(gè)頁(yè)面頭部顯示搜索到相關(guān)圖書的數(shù)量,并且列出搜索出的圖書信息列表。在操作欄,列出“查看此書”、“訂購(gòu)”這兩個(gè)操作。“查看此書”用來(lái)顯示
95、選中的圖書的詳細(xì)信息,“訂購(gòu)”則用來(lái)加入購(gòu)物車。</p><p> 在查詢的頁(yè)面中,提交查詢的時(shí)候觸發(fā)的是searchResult.do,此操作用一個(gè)SimpleFormController來(lái)處理。具體是利用searchBookinfoFormController類的onSubmit()的方法來(lái)進(jìn)行處理。其分析如下:</p><p> Controller層 searchBookinf
96、oFormController類的onSubmit()方法來(lái)響應(yīng)表單提交時(shí)候所進(jìn)行的處理。在這個(gè)處理過(guò)程中,首先將表單的內(nèi)容進(jìn)行對(duì)象類型轉(zhuǎn)換,將其轉(zhuǎn)換為Bookinfo對(duì)象。再根據(jù)Service層的findSpecBook()方法,通過(guò)Bookinfo對(duì)象參數(shù)進(jìn)行查詢。查詢結(jié)果返回一個(gè)List對(duì)象,取得這個(gè)List對(duì)象的大小,作為查詢結(jié)果數(shù)目的顯示,然后將相關(guān)的信息放入一個(gè)HashMap對(duì)象,傳入搜索結(jié)果顯示的頁(yè)面。</p>
97、<p> Service層 Service層用到的是BookinfoService接口的findSpecBook()方法,這里借用接口BookinfoDao中的findSpecBook()方法,同樣是利用一個(gè)Bookinfo對(duì)象作為參數(shù)傳入。</p><p> 5.2 將圖書加入購(gòu)物車設(shè)計(jì)</p><p> 在此模塊中,用戶點(diǎn)擊“訂購(gòu)”,就可將圖書加入到購(gòu)物車中。<
98、;/p><p> 當(dāng)用戶登錄以后,就可以購(gòu)買圖書。但是當(dāng)用戶未登錄的時(shí)候,能夠查看到圖書的信息列表,并且也能夠點(diǎn)擊“訂購(gòu)”操作。因而,在設(shè)計(jì)的時(shí)候要考慮到這種情況,當(dāng)用戶還未登錄的時(shí)候,點(diǎn)擊“訂購(gòu)”操作時(shí),提示用戶登錄,如圖5.3所示。</p><p> 圖5.3 未登錄時(shí)添加失敗提示頁(yè)面</p><p> 這里的判斷邏輯設(shè)計(jì)主要是通過(guò)判斷Session中是否存在
99、用戶id的信息來(lái)進(jìn)行處理的。此外,還有一種情況要考慮,當(dāng)用戶登錄后購(gòu)買圖書,添加了某一條圖書信息,接著又繼續(xù)添加同一條圖書信息,這時(shí)要提示用戶不能重復(fù)添加圖書信息,如圖5.4所示。</p><p> 圖5.4 添加已經(jīng)添加過(guò)的圖書失敗提示頁(yè)面</p><p> 這里的判斷邏輯設(shè)計(jì)是通過(guò)遍歷Session中已經(jīng)添加的圖書信息列表,判斷是否存在要繼續(xù)添加的圖書信息。當(dāng)一切正常進(jìn)行,添加圖書
100、信息成功后,進(jìn)入我的購(gòu)物車列表信息頁(yè)面,如圖5.5所示。</p><p> 圖5.5 我的購(gòu)物車頁(yè)面</p><p> 在我的購(gòu)物車的頁(yè)面中,主要的操作有:查看、刪除、下訂單。查看表示查看此圖書的詳細(xì)信息;刪除表示刪除某一條購(gòu)物車記錄;下訂單則是提交當(dāng)前所選的圖書列表及其數(shù)量的信息,形成訂單。下面具體介紹將圖書加入購(gòu)物車操作時(shí)的邏輯分析設(shè)計(jì)。</p><p>
101、 1. Controller層 在添加圖書到購(gòu)物車時(shí)候,觸發(fā)buyBook.do操作,這個(gè)操作是由BookinfoController類中的buyBookHandler()方法來(lái)進(jìn)行處理的。在此方法中,首先是得到圖書的id信息,然后通過(guò)request.getSession().getAttribute(StaticData.SHOPCART_KEY)操作得到Session中的購(gòu)物車信息,如果是添加第一個(gè)圖書信息,則構(gòu)造購(gòu)物車對(duì)象,接著
102、判斷Session中是否有id這個(gè)對(duì)象,如果沒(méi)有,則返回到提示用戶登錄的頁(yè)面;如果有,判斷購(gòu)物車對(duì)象中是否已經(jīng)含有了要添加的圖書信息,這里主要通過(guò)Service層的BookinfoService接口中的hasTheBookinfo()方法來(lái)進(jìn)行判斷,傳入的參數(shù)是購(gòu)物車對(duì)象和圖書的id,如果判斷有要添加的圖書對(duì)象信息,則返回到提示用戶此圖書已經(jīng)添加的頁(yè)面。一切都順利進(jìn)行,則將此圖書信息進(jìn)行初始化,然后添加到購(gòu)物車對(duì)象中,并將購(gòu)物車對(duì)象設(shè)置
103、到Session中,并返回到我的購(gòu)物車的主頁(yè)面。</p><p> 2. Service層 利用BookinfoService接口中的HasTheBookinfo()方法判斷購(gòu)物車中是否含有了要添加的圖書信息。對(duì)傳入的購(gòu)物車對(duì)象ArrayList進(jìn)行遍歷,判斷其中對(duì)象的id信息是否與要添加的圖書id相等。如果相等,返回true;否則,返回false。同時(shí),用BoolinfoService接口的getBooki
104、nfo()方法得到Bookinfo對(duì)象。</p><p> 5.3 購(gòu)物車管理設(shè)計(jì)</p><p> 在購(gòu)物的過(guò)程中,將購(gòu)物車的信息存放在Session里面。這樣,用戶在整個(gè)過(guò)程中,都能夠訪問(wèn)到Session里面的購(gòu)物車信息,也就是對(duì)購(gòu)物車的信息進(jìn)行了共享,不論是否關(guān)閉了購(gòu)物車的頁(yè)面,購(gòu)物車的信息始終存放在Session里面,并且未被寫入數(shù)據(jù)庫(kù)中。當(dāng)進(jìn)行下訂單處理的時(shí)候,購(gòu)物車的信息才
105、被寫入數(shù)據(jù)庫(kù)中,同時(shí)將購(gòu)物車對(duì)象設(shè)置為null,這樣即達(dá)到了提交訂單的效果,又能夠把購(gòu)物車中的信息清空,使得用戶可以再次購(gòu)物。</p><p> 在進(jìn)行購(gòu)物車管理的時(shí)候,可以進(jìn)行刪除圖書信息處理,這個(gè)過(guò)程是將購(gòu)物車對(duì)象中要?jiǎng)h除的圖書對(duì)象刪除,并且重新設(shè)置購(gòu)物車對(duì)象信息到Session里面,接著返回到購(gòu)物車的主頁(yè)面。刪除的頁(yè)面如圖5.6所示。</p><p> 圖5.6 刪除購(gòu)物車中信息
106、的頁(yè)面</p><p> 在刪除圖書前,會(huì)有提示信息,單擊確定以后,即可刪除信息。單擊下訂單操作以后,即可提交購(gòu)物車的信息形成訂單,如圖5.7所示。</p><p> 圖5.7 訂單提交完成頁(yè)面</p><p> 在購(gòu)物車的實(shí)現(xiàn)頁(yè)面中,通過(guò)循環(huán),將從Session中得到的shoplist對(duì)象進(jìn)行循環(huán)處理,列出購(gòu)物車中的圖書信息列表。其中,在循環(huán)的過(guò)程中,設(shè)置一
107、個(gè)計(jì)數(shù)器count,累加所購(gòu)圖書的總金額。在操作欄中,設(shè)置一個(gè)刪除的鏈接,觸發(fā)一個(gè)帶參數(shù)book_id的delShopCart.do操作來(lái)刪除購(gòu)物車中的某條圖書信息。</p><p> 下面是具體的邏輯結(jié)構(gòu)分析:</p><p> 1. Controller層 用到BookinfoController類中的兩個(gè)方法:delShopCartHandler()、updateShopCar
108、tHandler()。這里給出delShopCartHandler()的分析:首先是得到要?jiǎng)h除的圖書信息id,然后從Session中獲得購(gòu)物車對(duì)象信息,在購(gòu)物車對(duì)象中進(jìn)行循環(huán)遍歷,查找出要?jiǎng)h除的對(duì)象將之刪除,最后重新設(shè)置購(gòu)物車對(duì)象信息到Session中,并返回到購(gòu)物車頁(yè)面。</p><p> 此外,在提交購(gòu)物車信息,形成訂單的過(guò)程中,要用到AddOrderinfoFormController類中的onSubmi
109、t()方法。在這個(gè)處理的過(guò)程中,不僅要把訂單的基本信息存入數(shù)據(jù)庫(kù)中,而且要將訂單的詳細(xì)信息也一并存入。首先得到表單提交的信息序列化后的對(duì)象,將之轉(zhuǎn)換成Orderinfo對(duì)象,并根據(jù)Service層接口的createOrderinfo()方法創(chuàng)建新的訂單基本信息。接著得到Session中的購(gòu)物車信息,將其中的每條記錄都轉(zhuǎn)化成Orderdetail對(duì)象,然后調(diào)用Service層的createOrderdetail()方法,創(chuàng)建訂單的詳細(xì)信息
110、。整個(gè)過(guò)程完成以后,將Session中的購(gòu)物車對(duì)象設(shè)置為空,以使得用戶可以繼續(xù)購(gòu)物,最后返回到訂單形成的頁(yè)面。</p><p> 2. Service層 其中的createOrderinfo()、createOrderdetail()為controller層服務(wù),其中的save()方法,用來(lái)保存各自的對(duì)象。</p><p> 5.4 系統(tǒng)運(yùn)行效果 </p><p&
111、gt; 在地址欄輸入本系統(tǒng)的地址:http://localhost:8080/bookstore以后,就可以進(jìn)入系統(tǒng)的用戶主頁(yè)面了,我設(shè)計(jì)的主頁(yè)面效果圖如圖5.8所示。</p><p> 圖5.8 用戶主頁(yè)面</p><p> 主頁(yè)面的的圖片是一個(gè)展開(kāi)的畫卷,充滿書香之氣。其分布是四部分:頭部、尾部、中左菜單欄、中右主頁(yè)面。上部為滾動(dòng)的歡迎語(yǔ)和導(dǎo)航菜單,這個(gè)菜單有四個(gè)部分:最新圖書、
112、搜索圖書、聯(lián)系我們、訂購(gòu)流程。尾部是關(guān)于版權(quán)的信息欄。中左的菜單欄在還未登錄的時(shí)候顯示的是用戶登錄框,包括登錄和新用戶注冊(cè)的功能。中右的主頁(yè)面顯示在線用戶正要操作的內(nèi)容,默認(rèn)的是顯示最新圖書列表。</p><p> 圖5.9 用戶登錄以后的頁(yè)面</p><p> 在圖5.9這個(gè)頁(yè)面中,有一個(gè)用戶信息欄,顯示用戶登錄以后的個(gè)人信息,中部有一個(gè)“購(gòu)物車”鏈接,用來(lái)查看已經(jīng)打算購(gòu)買的圖書的信
113、息。下部有一個(gè)“我的訂單的”鏈接,用戶可以查看所有的訂單,如圖5.10所示。</p><p> 圖5.10 用戶查看所有訂單的頁(yè)面</p><p> 圖5.11 管理員管理頁(yè)面</p><p> 圖5.11是管理員管理頁(yè)面,中間左邊是系統(tǒng)功能的菜單欄分區(qū),分為“圖書管理”“用戶管理”“訂單管理”,中間右邊是系統(tǒng)的主分區(qū),顯示管理員正要操作的內(nèi)容。</p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)(論文)
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)網(wǎng)上書店銷售系統(tǒng)
- 網(wǎng)上書店管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書店畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書店畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書店畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)
- java畢業(yè)設(shè)計(jì)論文 網(wǎng)上購(gòu)物書店設(shè)計(jì)
- 網(wǎng)上考試系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)----網(wǎng)上書店購(gòu)物系統(tǒng)
- 畢業(yè)設(shè)計(jì)---網(wǎng)上書店管理系統(tǒng)
- 網(wǎng)上書店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書店畢業(yè)論文---網(wǎng)上書店系統(tǒng)
- 網(wǎng)上書店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì) (2)
- 畢業(yè)設(shè)計(jì)----網(wǎng)上書店系統(tǒng)設(shè)計(jì) (2)
- 網(wǎng)上書店系統(tǒng)設(shè)計(jì)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論