基于struts的網(wǎng)上書店系統(tǒng)設(shè)計(jì)_第1頁
基于struts的網(wǎng)上書店系統(tǒng)設(shè)計(jì)_第2頁
基于struts的網(wǎng)上書店系統(tǒng)設(shè)計(jì)_第3頁
基于struts的網(wǎng)上書店系統(tǒng)設(shè)計(jì)_第4頁
基于struts的網(wǎng)上書店系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計(jì)基于struts的網(wǎng)上書店系統(tǒng)設(shè)計(jì)學(xué)生姓名何曉力學(xué) 號(hào)070920092學(xué) 院計(jì)算機(jī)與電子工程學(xué)院專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí)計(jì)科0703班指導(dǎo)教師唐愛國職 稱講 師湖 南 商 學(xué) 院2011年6月湖南商學(xué)院本科畢業(yè)設(shè)計(jì)(論文)誠信聲明本人鄭重聲明:所呈交的本科畢業(yè)設(shè)計(jì)(論文),是本人在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,成果不存在知識(shí)產(chǎn)權(quán)爭議,除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。 本科畢業(yè)設(shè)計(jì)(論文)作者簽名: 年 月 日

2、湖南商學(xué)院畢業(yè)設(shè)計(jì)(論文) 摘 要隨著網(wǎng)絡(luò)信息技術(shù)的發(fā)展,電子商務(wù)的應(yīng)用越來越廣泛,網(wǎng)上購物系統(tǒng)方便、快捷的優(yōu)勢,漸漸得到大家的認(rèn)可。在電子商務(wù)市場不斷升溫的同時(shí)我們也看到了許多有待解決的問題,比如以往開發(fā)一個(gè)大型電子商務(wù)軟件往往要經(jīng)歷漫長的開發(fā)周期,花費(fèi)大量的人力和物力,系統(tǒng)的擴(kuò)展性、重用性和維護(hù)性很差。使用struts框架能很好的解決上述問題。struts框架是一個(gè)實(shí)現(xiàn)了mvc模式并擁有很多自身功能的框架,它使開發(fā)人員把更多的精力放在業(yè)務(wù)邏輯的實(shí)現(xiàn)上。本文首先介紹了框架技術(shù),分析j2ee平臺(tái)下的mvc模式的一個(gè)流行的實(shí)例struts框架技術(shù),研究struts的體系結(jié)構(gòu)?;趕truts框架

3、,設(shè)計(jì)、實(shí)現(xiàn)網(wǎng)上書店系統(tǒng),給出了需求分析、總體設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、源碼及運(yùn)行結(jié)果。關(guān)鍵詞j2ee;mvc;struts;網(wǎng)上書店abstractwith the development of internet information technology, electronic commerce becomes mores and more popular. the advantage of shopping is convenient and rapid in the internet, which is gradually recognized by people. at the same

4、time, there are many problems needed to be resolved, such as the long development cycle of software in large-scale electronic commerce, the cost of too much time and money, bad property of expandability, reusing and maintenance.using struts framework can solve these problems very well. struts framew

5、ork implements mvc pattern with a lot of functions, which makes developers pay more attention on the implementation of business logic. in this paper, we introduce framework technical, analysis a popular example of mvc pattern based on j2ee platform-struts framework technology and work over on the ar

6、chitecture of struts. basing on struts framework, it designs and implements internet bookstore system, and gives the needs analysis, design, database design and operation results.key wordsj2ee;mvc;struts;internet bookstore目 錄1.引言11.1 開發(fā)背景11.2 現(xiàn)實(shí)意義11.3 研究現(xiàn)狀與技術(shù)概述21.3.1 struts框架的現(xiàn)狀及其趨勢21.3.2 網(wǎng)上書店的現(xiàn)狀和發(fā)展

7、趨勢51.4 設(shè)計(jì)要求與主要工作62. struts框架概述82.1 框架82.1.1 框架的優(yōu)點(diǎn)82.1.3 框架的分類82.2 struts框架92.2.1 struts簡介92.2.2 struts優(yōu)缺點(diǎn)92.3 體系結(jié)構(gòu)102.3.1 struts與web應(yīng)用的關(guān)系102.3.2 struts體系結(jié)構(gòu)102.3.3 struts基本組件包133.網(wǎng)上書店系統(tǒng)需求分析153.1 用戶需求分析153.1.1 圖書查詢需求153.1.2 購物車管理需求163.1.3 訂單處理需求163.1.4 會(huì)員注冊(cè)/登錄需求173.1.5 圖書管理需求173.2 系統(tǒng)業(yè)務(wù)流程分析183.3 系統(tǒng)運(yùn)行和開

8、發(fā)環(huán)境193.3.1 系統(tǒng)運(yùn)行環(huán)境193.3.2 系統(tǒng)開發(fā)環(huán)境193.4 數(shù)據(jù)流圖203.5 系統(tǒng)的數(shù)據(jù)字典234.網(wǎng)上書店系統(tǒng)總體設(shè)計(jì)254.1 系統(tǒng)設(shè)計(jì)描述254.2 系統(tǒng)模塊描述254.2.1 系統(tǒng)總體設(shè)計(jì)描述254.2.2 系統(tǒng)具體模塊描述264.3 數(shù)據(jù)庫設(shè)計(jì)274.3.1 數(shù)據(jù)庫介紹274.3.2 系統(tǒng)e-r圖274.3.3 系統(tǒng)各數(shù)據(jù)表的關(guān)系294.3.4 數(shù)據(jù)邏輯結(jié)構(gòu)表294.4 數(shù)據(jù)庫連接配置325.網(wǎng)上書店系統(tǒng)實(shí)現(xiàn)335.1 系統(tǒng)實(shí)現(xiàn)步驟335.2 功能模塊詳細(xì)設(shè)計(jì)335.2.1 主頁模塊345.2.2 用戶模塊345.2.3 購物車模塊365.2.4 圖書管理模塊376.

9、 網(wǎng)上書店系統(tǒng)測試與運(yùn)行406.1 功能測試406.2 系統(tǒng)運(yùn)行417. 總結(jié)與展望47參考文獻(xiàn)48致 謝50基于struts的網(wǎng)上書店的設(shè)計(jì)與實(shí)現(xiàn)1.引言本文采用b/s(瀏覽器/服務(wù)器)構(gòu)架來設(shè)計(jì)一個(gè)網(wǎng)上書店系統(tǒng),用struts開發(fā)手段實(shí)現(xiàn)。本章概述了課題的開發(fā)背景、選題意義、應(yīng)用現(xiàn)狀和設(shè)計(jì)要求。1.1 開發(fā)背景隨著科技的不斷發(fā)展和網(wǎng)絡(luò)的逐步普及,企業(yè)的www網(wǎng)站在商業(yè)活動(dòng)中發(fā)揮著越來越大的作用,在信息時(shí)代,建立一個(gè)功能強(qiáng)大、界面美觀的電子商務(wù)網(wǎng)站,建立電子商務(wù)系統(tǒng)平臺(tái),對(duì)企業(yè)的發(fā)展是至關(guān)重要的。所謂電子商務(wù),是指各種具有商業(yè)活動(dòng)能力的實(shí)體(生產(chǎn)企業(yè)、商貿(mào)企業(yè)、金融機(jī)構(gòu)、政府機(jī)構(gòu)、個(gè)人消費(fèi)者

10、等)利用網(wǎng)絡(luò)和先進(jìn)的數(shù)字化傳媒技術(shù)進(jìn)行的各項(xiàng)商業(yè)貿(mào)易活動(dòng)。其中特別要強(qiáng)調(diào)的特點(diǎn),一是其商業(yè)背景,二是網(wǎng)絡(luò)化和數(shù)字化。簡言之,電子商務(wù)就是通過電子網(wǎng)絡(luò)渠道達(dá)成的商務(wù)活動(dòng)。它是計(jì)算機(jī)網(wǎng)絡(luò)的第二次革命,通過電子手段建立新的經(jīng)濟(jì)秩序,不僅涉及電子技術(shù)和商業(yè)交易本身,而且涉及諸如金融、稅務(wù)、教育等社會(huì)其他層面。電子商務(wù)活動(dòng)相應(yīng)分成兩大類:企業(yè)組織-企業(yè)組織(business-business,b2b)型和企業(yè)組織-消費(fèi)者(business-consumer,b2c)型。一般意義上,一個(gè)完整的電子商務(wù)系統(tǒng)包括信息流、資金流與物流三個(gè)要素,三者相輔相成。除了此之外,網(wǎng)絡(luò)安全也是需要重點(diǎn)考慮的因素。1.2 現(xiàn)

11、實(shí)意義基于信息技術(shù)的迅速發(fā)展,企業(yè)越來越注重信息化對(duì)企業(yè)的重大影響。b2c即企業(yè)通過互聯(lián)網(wǎng)為消費(fèi)者提供一個(gè)新型的購物環(huán)境網(wǎng)上商店,消費(fèi)者通過網(wǎng)絡(luò)在網(wǎng)上購物、在網(wǎng)上支付。由于這種模式節(jié)省了客戶和企業(yè)的時(shí)間和空間,大大提高了交易效率,特別是對(duì)于工作忙碌的上班族,這種模式可以為其節(jié)省寶貴的時(shí)間。是企業(yè)展示自己產(chǎn)品的平臺(tái),是企業(yè)與客戶的交流平臺(tái),是企業(yè)提升企業(yè)知名度的一個(gè)良好的平臺(tái),是能夠給公司帶來無限效益的平臺(tái)。1.3 研究現(xiàn)狀與技術(shù)概述 1.3.1 struts框架的現(xiàn)狀及其趨勢近年來,隨著internet技術(shù)的迅猛發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)給人們的工作、學(xué)習(xí)和日常生活帶來很大的便利,同時(shí)開發(fā)web的技術(shù)也

12、在不斷更新。j2ee即是其中一個(gè)非常有競爭力的選擇。j2ee體系包括很多技術(shù),比如jsp、servlet、ejb、webservice等。如何充分使用這些技術(shù),將它們有機(jī)組合起來構(gòu)造一個(gè)滿足客戶需要的穩(wěn)定系統(tǒng)是項(xiàng)目開發(fā)過程中的一個(gè)關(guān)鍵環(huán)節(jié)。此環(huán)節(jié)一般主要由架構(gòu)設(shè)計(jì)師完成,設(shè)計(jì)師將根據(jù)項(xiàng)目需求,對(duì)j2ee體系中的各處技術(shù)進(jìn)行篩選取舍,并考慮到開發(fā)過程中的角色分工、后期的運(yùn)行維護(hù),以及系統(tǒng)可重用性、可擴(kuò)展性等諸多因素,建立系統(tǒng)的框架。一個(gè)成功的軟件需要有一個(gè)成功的框架,但軟件框架的建立是個(gè)復(fù)雜而又持續(xù)改進(jìn)的過程,如果能開發(fā)出通用的框架將能大大縮短開發(fā)時(shí)間,減少維護(hù)工作量。struts就是其中一個(gè)流

13、行的基于j2ee的樞架。使用struts框架的好處是:開發(fā)人員不需要再花費(fèi)大量的時(shí)間在整個(gè)應(yīng)用,而是集中精力實(shí)現(xiàn)業(yè)務(wù)邏輯和界面,其它功能由struts框架實(shí)現(xiàn)。這將大大縮短項(xiàng)目的開發(fā)周期,并降低了學(xué)習(xí)與開發(fā)web應(yīng)用的難度。struts是一個(gè)開放資源框架,由craig r.mcclanahan創(chuàng)建,之后他將其捐贈(zèng)給了apache software foundation。起初,它是作為apachejakarta項(xiàng)目的組成部分,項(xiàng)目的創(chuàng)建人 希望通過對(duì)該項(xiàng)目的研究,j2ee中各種技術(shù)以及面相對(duì)象的技術(shù)的水準(zhǔn)。struts是一個(gè)開放源代碼的web的應(yīng)用框架,實(shí)現(xiàn)了mvc設(shè)計(jì)模式,基于servlet和

14、jsp api,可以用來構(gòu)建復(fù)雜的web應(yīng)用。它允許我們分解應(yīng)用程序的業(yè)務(wù)邏輯,控制邏輯和表現(xiàn)邏輯的代碼,便于開發(fā)的分工,使系統(tǒng)的重用性和維護(hù)性更好。目前,struts已經(jīng)發(fā)展到了第二代。雖然struts2號(hào)稱是一個(gè)全新的框架,但這僅僅是相對(duì)struts1而言。struts2 與struts1相比,確實(shí)有很多革命性的改進(jìn),但它并不是新發(fā)布的新框架,而是在另一個(gè)赫赫有名的框架:webwork基礎(chǔ)上發(fā)展起來的。從某種程度上來講,struts2沒有繼承struts 1的血統(tǒng),而是繼承webwork的血統(tǒng)?;蛘哒f,webwork衍生出了struts2,而不是struts1衍生了struts2。因?yàn)閟t

15、ruts2是webwork的升級(jí),而不是一個(gè)全新的框架,因此穩(wěn)定性、性能等各方面都有很好的保證,而且吸收了struts1和webwork兩者的優(yōu)勢,因此,是一個(gè)非常值得期待的框架。apache struts2是一個(gè)優(yōu)雅的,可擴(kuò)展的java ee web框架。框架設(shè)計(jì)的目標(biāo)貫穿整個(gè)開發(fā)周期,從開發(fā)到發(fā)布,包括維護(hù)的整個(gè)過程。apache struts 2即是之前大家所熟知的webwork 2。在經(jīng)歷了幾年的各自發(fā)展后,webwork和struts社區(qū)決定合二為一,也即是struts 2。struts2和struts1的不同之處體現(xiàn)在以下幾個(gè)方面:action 類:struts1要求action類

16、繼承一個(gè)抽象基類。struts1的一個(gè)普遍問題是使用抽象類編程而不是接口;struts2 action類可以實(shí)現(xiàn)一個(gè)action接口,也可實(shí)現(xiàn)其他接口,使可選和定制的服務(wù)成為可能。struts2提供一個(gè)actionsupport基類去實(shí)現(xiàn)常用的接口。action接口不是必須的,任何有execute標(biāo)識(shí)的pojo對(duì)象都可以用作struts2的action對(duì)象。線程模式:struts1 action是單例模式并且必須是線程安全的,因?yàn)閮H有action的一個(gè)實(shí)例來處理所有的請(qǐng)求。單例策略限制了struts1 action能作的事,并且要在開發(fā)時(shí)特別小心。action資源必須是線程安全的或同步的;st

17、ruts2 action對(duì)象為每一個(gè)請(qǐng)求產(chǎn)生一個(gè)實(shí)例,因此沒有線程安全問題。(實(shí)際上,servlet容器給每個(gè)請(qǐng)求產(chǎn)生許多可丟棄的對(duì)象,并且不會(huì)導(dǎo)致性能和垃圾回收問題)servlet依賴:struts1 action 依賴于servlet api,因?yàn)楫?dāng)一個(gè)action被調(diào)用時(shí)httpservletrequest 和 httpservletresponse 被傳遞給execute方法;struts 2 action不依賴于容器,允許action脫離容器單獨(dú)被測試。如果需要,struts2 action仍然可以訪問初始的request和response.但是,其他的元素減少或者消除了直接訪問ht

18、tpservetrequest 和 httpservletresponse的必要性??蓽y性:測試struts1 action的一個(gè)主要問題是execute方法暴露了servlet api(這使得測試要依賴于容器)。一個(gè)第三方擴(kuò)展(struts testcase)提供了一套struts1的模擬對(duì)象(來進(jìn)行測試);struts 2 action可以通過初始化、設(shè)置屬性、調(diào)用方法來測試,“依賴注入”支持也使測試更容易。捕獲輸入:struts1 使用actionform對(duì)象捕獲輸入。所有的actionform必須繼承一個(gè)基類。因?yàn)槠渌鹙avabean不能用作actionform,開發(fā)者經(jīng)常創(chuàng)建多余的類

19、捕獲輸入。動(dòng)態(tài)bean(dynabeans)可以作為創(chuàng)建傳統(tǒng)actionform的選擇,但是,開發(fā)者可能是在重新描述(創(chuàng)建)已經(jīng)存在的javabean(仍然會(huì)導(dǎo)致有冗余的javabean); struts 2直接使用action屬性作為輸入屬性,消除了對(duì)第二個(gè)輸入對(duì)象的需求。輸入屬性可能是有自己(子)屬性的rich對(duì)象類型。action屬性能夠通過web頁面上的taglibs訪問。struts2也支持actionform模式。rich對(duì)象類型,包括業(yè)務(wù)對(duì)象,能夠用作輸入/輸出對(duì)象。這種modeldriven 特性簡化了taglib對(duì)pojo輸入對(duì)象的引用。表達(dá)式語言:struts1 整合了js

20、tl,因此使用jstl el.這種el有基本對(duì)象圖遍歷,但是對(duì)集合和索引屬性的支持很弱;struts2可以使用jstl,但是也支持一個(gè)更強(qiáng)大和靈活的表達(dá)式語言object graph notation language (ognl)。綁定值到頁面:struts 1使用標(biāo)準(zhǔn)jsp機(jī)制把對(duì)象綁定到頁面中來訪問;struts 2 使用 valuestack技術(shù),使taglib能夠訪問值而不需要把你的頁面和對(duì)象綁定起來。valuestack策略允許通過一系列名稱相同但類型不同的屬性重用頁面。類型轉(zhuǎn)換:struts 1 actionform 屬性通常都是string類型。struts1使用commons

21、-beanutils進(jìn)行類型轉(zhuǎn)換。每個(gè)類一個(gè)轉(zhuǎn)換器,對(duì)每一個(gè)實(shí)例來說是不可配置的;struts2 使用ognl進(jìn)行類型轉(zhuǎn)換。提供基本和常用對(duì)象的轉(zhuǎn)換器。校驗(yàn):struts 1支持在actionform的validate方法中手動(dòng)校驗(yàn),或者通過commons validator的擴(kuò)展來校驗(yàn)。同一個(gè)類可以有不同的校驗(yàn)內(nèi)容,但不能校驗(yàn)子對(duì)象;struts2支持通過validate方法和xwork校驗(yàn)框架來進(jìn)行校驗(yàn)。xwork校驗(yàn)框架使用為屬性類類型定義的校驗(yàn)和內(nèi)容校驗(yàn),來支持chain校驗(yàn)子屬性。action執(zhí)行的控制:struts1支持每一個(gè)模塊有單獨(dú)的request processors(生命周

22、期),但是模塊中的所有action必須共享相同的生命周期;struts2支持通過攔截器堆棧(interceptor stacks)為每一個(gè)action創(chuàng)建不同的生命周期。堆棧能夠根據(jù)需要和不同的action一起使用。struts的目標(biāo)就是要全面減輕建立企業(yè)級(jí)的web應(yīng)用的負(fù)擔(dān)。該框架已經(jīng)被驗(yàn)證了好幾年,是目前較為成熟和穩(wěn)定的框架之一。它在最近幾年得到了飛速的發(fā)展,尤其在web應(yīng)用開發(fā)中應(yīng)用得非常廣泛,有的文獻(xiàn)上說它已經(jīng)成為jsp web應(yīng)用框架事實(shí)上的標(biāo)準(zhǔn)。1.3.2 網(wǎng)上書店的現(xiàn)狀和發(fā)展趨勢電子商務(wù)是利用現(xiàn)代信息網(wǎng)絡(luò)進(jìn)行商務(wù)活動(dòng)的一種先進(jìn)手段,作為創(chuàng)新的經(jīng)濟(jì)運(yùn)行方式,其影響已經(jīng)遠(yuǎn)遠(yuǎn)超過商業(yè)領(lǐng)

23、域。國外最早的電子商務(wù)體驗(yàn)其實(shí)是從網(wǎng)上售書開始的。1994年7月,美國考夫貝佐斯在西雅圖開設(shè)了全球第一家網(wǎng)上書店亞馬遜書店。這個(gè)與世界最長河流亞馬遜同名的網(wǎng)絡(luò)書店也是全球電子商務(wù)的一面旗幟。中國引入的b2c的電子商務(wù)模式網(wǎng)上書店以卓越網(wǎng)和當(dāng)當(dāng)網(wǎng)為代表的直接建立在因特網(wǎng)上的虛擬書店,其中卓越定位于精品圖書的銷售,當(dāng)當(dāng)網(wǎng)則是追隨亞馬遜模式的多品種銷售的代表;還有一類是出于競爭或仿效也加入網(wǎng)上書店行列的一些老牌圖書銷售商,如新華書店。網(wǎng)上書店為它的顧客提供了更多的方便。人們不受時(shí)間的限制,不受空間的限制,不受傳統(tǒng)購物的諸多限制,可以隨時(shí)隨地在網(wǎng)上交易,一個(gè)消費(fèi)者可以在全球的任何一家商家購物;而且利用

24、搜索引擎尋找自己想要的書籍非??旖?,省時(shí)又省力。而書店本身也擁有了更廣闊的市場。在網(wǎng)上這個(gè)世界將會(huì)變得很小,一個(gè)商家可以面對(duì)全球的消費(fèi)者。它更快速的流通和低廉的價(jià)格。電子商務(wù)減少了商品流通的中間環(huán)節(jié),節(jié)省了大量的開支,從而也大大降低了商品流通和交易的成本。它更符合時(shí)代的要求。如今人們?cè)絹碓阶非髸r(shí)尚、講究個(gè)性,注重購物的環(huán)境,網(wǎng)上購物,更能體現(xiàn)個(gè)性化的購物過程。要做到這些,網(wǎng)上書店必須有大量的網(wǎng)上購書者、先進(jìn)方便的結(jié)算方式、完善的配送體系、較高的折扣率等條件支持。亞馬遜就通過其高效運(yùn)轉(zhuǎn)的一整套系統(tǒng)實(shí)現(xiàn)了零庫存運(yùn)轉(zhuǎn)。此外,通過計(jì)算機(jī)存貯的資料,網(wǎng)上書店毫不費(fèi)力地建立起自己龐大的全球化讀者信息庫,對(duì)

25、客戶需求和產(chǎn)品行情的預(yù)測也就更準(zhǔn)確。從而有效地降低庫存,減少資金占用。此外,網(wǎng)上虛擬書店,業(yè)務(wù)環(huán)節(jié)大為簡化,能節(jié)約費(fèi)用開支,降低銷售成本。關(guān)于網(wǎng)絡(luò)技術(shù)的發(fā)展有以下幾個(gè)方面:第一,在網(wǎng)絡(luò)方面,早期用于電子商務(wù)的網(wǎng)絡(luò)多為較封閉的,現(xiàn)在基本上都轉(zhuǎn)向tcp/ip。絕大多數(shù)企業(yè)網(wǎng)絡(luò)都用internet的技術(shù)來構(gòu)建,這為電子商務(wù)的發(fā)展提供了一個(gè)統(tǒng)一的平臺(tái)。第二,在軟件方面,以ibm、hp為首的眾多it廠商紛紛推出自己的電子商務(wù)產(chǎn)品,有的還提出了“一攬子解決方案”。對(duì)于人們最關(guān)心的支付與安全問題,似乎也都不成問題。例如各種卡技術(shù)ic卡、智能卡、各種信用卡、電子現(xiàn)金卡等;各種安全技術(shù)防火墻、密鑰管理、時(shí)戳業(yè)務(wù)

26、、不可否認(rèn)業(yè)務(wù)、公鑰證書認(rèn)證等。第三,在硬件方面,無論是企業(yè)或商家構(gòu)建服務(wù)器,還是個(gè)人選擇上網(wǎng)的pc,都有非常寬廣的可選擇的面,因此,國內(nèi)計(jì)算機(jī)和網(wǎng)絡(luò)發(fā)展非常迅猛。當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開網(wǎng)絡(luò),這正是計(jì)算機(jī)被廣泛應(yīng)用于網(wǎng)上銷售系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。網(wǎng)上書店如今已被廣泛的運(yùn)用,而且將會(huì)越來越普及。1.4 設(shè)計(jì)要求與主要工作設(shè)計(jì)一個(gè)基于b/s的網(wǎng)上書店系統(tǒng),該系統(tǒng)可由各個(gè)角色通過網(wǎng)絡(luò)進(jìn)行訪問,實(shí)現(xiàn)信息管理、在線查詢、網(wǎng)上購買等功能。設(shè)計(jì)要求:(1) 管理會(huì)員信息及審核網(wǎng)上

27、交易信息;(2) 圖書更新功能;(3) 會(huì)員注冊(cè)登陸功能;(4) 在線挑選購買圖書功能;本設(shè)計(jì)主要分為四個(gè)部分,其結(jié)構(gòu)和內(nèi)容如下:第一部分是引言,包括開發(fā)背景,現(xiàn)實(shí)意義等部分;第二部分是struts框架的概述,具體介紹框架、struts及其體系結(jié)構(gòu);第三部分是網(wǎng)上書店的需求分析和設(shè)計(jì)與實(shí)現(xiàn),網(wǎng)上書店的流程、開發(fā)工具及開發(fā)環(huán)境、具體實(shí)現(xiàn)的過程和最終的成果展示;第四部分是對(duì)全文的一個(gè)總結(jié)和對(duì)未來的展望。2. struts框架概述本章主要介紹框架的概念、優(yōu)點(diǎn)及其分類,struts技術(shù)的相關(guān)概念、優(yōu)缺點(diǎn)以及struts的體系結(jié)構(gòu)。2.1 框架框架是一個(gè)可重用的應(yīng)用程序,它實(shí)現(xiàn)了一些用戶開發(fā)時(shí)需要的一些

28、基本功能,讓用戶專心于業(yè)務(wù)邏輯的實(shí)現(xiàn)。用戶通過定制框架形成滿足他們具體需求的軟件,但用戶對(duì)框架復(fù)雜的內(nèi)部結(jié)構(gòu)不清楚。重用是框架的主要目的,即框架設(shè)計(jì)概念的重用或者框架中的抽象類的重用。2.1.1 框架的優(yōu)點(diǎn)模塊化:通過將復(fù)雜的實(shí)現(xiàn)細(xì)節(jié)封裝于穩(wěn)定的界面后面,框架加強(qiáng)了自身的模塊化。當(dāng)設(shè)計(jì)和實(shí)現(xiàn)的改變會(huì)給整個(gè)軟件系統(tǒng)帶來很大的改變時(shí),模塊化可以把這種改變限定在局部的范圍??芍赜茫嚎蚣芏x的穩(wěn)定的接口有助于組件的產(chǎn)生和設(shè)計(jì),這些組件可以被重用,框架組件的重用可以縮短開發(fā)周期,大大地提高開發(fā)效率、軟件的質(zhì)量、可靠性。此外,框架描述了該領(lǐng)域內(nèi)的知識(shí)和以前開發(fā)者的寶貴經(jīng)驗(yàn),這樣就不需要對(duì)該領(lǐng)域內(nèi)的核心需求

29、進(jìn)行重復(fù)理解,并且提高了核心設(shè)計(jì)的質(zhì)量??蓴U(kuò)展性:用戶不僅可以使用框架提供的功能,通過擴(kuò)展框架己有接口,用戶可以實(shí)現(xiàn)自己的功能。2.1.3 框架的分類(1)底層系統(tǒng)結(jié)構(gòu)框架:底層系統(tǒng)結(jié)構(gòu)框架主要用于底層結(jié)構(gòu)的開發(fā),底層系統(tǒng)結(jié)構(gòu)框架移植性比較好。比如操作系統(tǒng)、通訊框架、用戶接日框架和語言處理框架。(2)中間件集成框架:它主要用來集成分布式的應(yīng)用程序和組件。中間件的發(fā)展非常快速,并逐漸為大多數(shù)程序開發(fā)者接受。比如 :對(duì)象請(qǐng)求代理框架、面向消息的中間件和事務(wù)處理數(shù)據(jù)庫。(3)企業(yè)應(yīng)用框架:它解決的問題的領(lǐng)域非常廣泛(如gis系統(tǒng)、遠(yuǎn)程通訊系統(tǒng)),而且這些軟件系統(tǒng)本身己經(jīng)成為該領(lǐng)域行為的重要組成部分。

30、比較而言,雖然底層系統(tǒng)結(jié)構(gòu)框架和中間件集成框架對(duì)于提高開發(fā)發(fā)速度和質(zhì)量非常重要,但是它們并不能像企業(yè)應(yīng)用框架給開發(fā)帶來革命性的改善。2.2 struts框架2.2.1 struts簡介struts是apache組織jakarta項(xiàng)目的一個(gè)子項(xiàng)目,用以改善web系統(tǒng)的結(jié)構(gòu)。它是一個(gè)基于sun j2ee平臺(tái)的mvc框架,主要是采用servlet和jsp技術(shù)來實(shí)現(xiàn)的。struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點(diǎn),同時(shí)簡化了基于mvc的web應(yīng)用程序的開發(fā)。它可分為以下四個(gè)主要部分,其中三個(gè)就和mvc模式緊密相關(guān)。模型(model),本質(zhì)上來說在struts中model是一個(gè)action類,

31、開發(fā)者通過其實(shí)現(xiàn)商業(yè)邏輯,同時(shí)用戶請(qǐng)求通過控制器(controller)向action的轉(zhuǎn)發(fā)過程是基于由struts-config.xml文件描述的配置信息的。視圖(view),view是由與控制器servlet配合工作的一整套jsp定制標(biāo)簽庫構(gòu)成,利用她們我們可以快速建立應(yīng)用系統(tǒng)的界面??刂破?controller),本質(zhì)上是一個(gè)servlet,將客戶端請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的action類。struts是用xml來描述如何自動(dòng)產(chǎn)生一些javabean的屬性的,此外struts還利用xml來描述在國際化應(yīng)用中的用戶提示信息,這樣一來就實(shí)現(xiàn)了應(yīng)用系統(tǒng)的多語言支持。2.2.2 struts優(yōu)缺點(diǎn)stru

32、ts框架具有以下優(yōu)點(diǎn):struts跟tomcat、turbine等諸多apache項(xiàng)目一樣,是開源軟件,這是它的一大優(yōu)點(diǎn),使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制;作為基于servlet技術(shù)的框架,struts且有servlet所具有的大部分優(yōu)點(diǎn);struts是基于mvc實(shí)現(xiàn)的,因此它具有結(jié)構(gòu)層次分明、可重用性高、程序具有健壯性和可伸縮性,便于開發(fā)與設(shè)計(jì)分工,具有集中統(tǒng)一的權(quán)限控制等優(yōu)點(diǎn);jsp標(biāo)記機(jī)制和taglib標(biāo)簽庫的使用可提高代碼的可重用性和靈活性,大大提高開發(fā)效率;頁面導(dǎo)航使系統(tǒng)的脈絡(luò)更加清晰,通過一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對(duì)于后期的維護(hù)有著莫大的好處,尤其是當(dāng)另

33、一批開發(fā)者接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢體現(xiàn)得更加明顯;struts對(duì)其他技術(shù)顯示出很好的融合性;struts還提供了校驗(yàn)、國際化、日志等豐富的功能,方便開發(fā)人員使用。但是struts框架也存在一些缺點(diǎn):taglib是struts的一大優(yōu)勢,但對(duì)于初學(xué)者而言,卻需要一個(gè)持續(xù)學(xué)習(xí)的過程,甚至還會(huì)打亂你網(wǎng)頁編寫的習(xí)慣,但是,當(dāng)你習(xí)慣了它時(shí),你會(huì)覺得它真的很棒;struts將mvc的controller一分為三,在獲得結(jié)構(gòu)更加清晰的同時(shí),也增加了系統(tǒng)的復(fù)雜度。struts產(chǎn)生的時(shí)間還不長,但已逐步越來越多運(yùn)用于商業(yè)軟件。雖然它現(xiàn)在還有不少缺點(diǎn),但它是一種非常優(yōu)秀的j2ee mvc實(shí)現(xiàn)方式。2.3 體系結(jié)構(gòu)

34、struts由一組相互協(xié)作的類(組件)、servlet以及jsp卷標(biāo)庫組成?;趕truts架構(gòu)的web應(yīng)用程序基本上符合jsp模式2的設(shè)計(jì)標(biāo)準(zhǔn),可以說是mvc設(shè)計(jì)模式的一種實(shí)現(xiàn)。struts有其自己的控制器(controller),同時(shí)整合了其它的一些技術(shù)去實(shí)現(xiàn)模型層(model)和視圖層(view)。在模型層,struts可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,包括ejb,jdbc等。在視圖層,struts能夠與jsp,xsl等等這些表示層組件相結(jié)合。2.3.1 struts與web應(yīng)用的關(guān)系struts作為一種框架,它主要基于web層進(jìn)行應(yīng)用系統(tǒng)開發(fā)。按照j2ee架構(gòu)的標(biāo)準(zhǔn),struts和js

35、p/servlet一樣,存在于web contain一層。2.3.2 struts體系結(jié)構(gòu)struts框架是mvc的實(shí)現(xiàn),下面就分別從模型,視圖和控制器來介紹struts的體系結(jié)構(gòu)。圖2.1顯示了struts 框架的體系結(jié)構(gòu)在響應(yīng)客戶請(qǐng)求的時(shí)候,各個(gè)部分的交互過程。圖2.1 struts體系結(jié)構(gòu)(1)視圖(view)一個(gè)基于struts的應(yīng)用的視圖部分通常使用jsp技術(shù)構(gòu)造。jsp頁面可以包含靜態(tài)的html。jsp環(huán)境包括一組標(biāo)準(zhǔn)的行為標(biāo)記,比如.除了內(nèi)建行為,還有一個(gè)用來定義你自己的標(biāo)記的標(biāo)準(zhǔn)設(shè)施,它被組織成“自定義標(biāo)記庫”。java開發(fā)者很容易在jsp當(dāng)中過度使用java小程序,直接嵌入條

36、件業(yè)務(wù)邏輯和循環(huán)。mvc解決了這一問題,通過把復(fù)雜的處理分離到model和 controller組件中,從而使jsp本身更小,這顯然大大簡化并加速了開發(fā)、測試及維護(hù)的工作。struts的自定義標(biāo)記可以非常好的和系統(tǒng)的model部分交互,通過使用這些自定義標(biāo)記創(chuàng)建的jsp窗體,可以實(shí)現(xiàn)和model部分中的actionform的映像,完成對(duì)用戶數(shù)據(jù)的封裝。(2)模型(model) 模型是應(yīng)用的主要邏輯。mvc系統(tǒng)中的model部分從概念上可以分為兩類系統(tǒng)的內(nèi)部狀態(tài)和改變系統(tǒng)狀態(tài)的動(dòng)作。struts通常使用一組javabean表示系統(tǒng)的內(nèi)部狀態(tài),根據(jù)系統(tǒng)的復(fù)雜度也可以使用像entity ejb和se

37、ssion ejb等組件來實(shí)現(xiàn)系統(tǒng)狀態(tài)。struts為model部分提供了action和actionform對(duì)象:所有的action處理器對(duì)象都是開發(fā)者從struts的action類派生的子類。action處理器對(duì)象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的view組件以產(chǎn)生響應(yīng)。struts提供的actionform組件對(duì)象,它可以通過定義屬性描述客戶端窗體數(shù)據(jù)。開發(fā)者可以從它派生了類對(duì)象,利用它和struts提供的自定義標(biāo)記庫結(jié)合可以實(shí)現(xiàn)對(duì)客戶端的窗體數(shù)據(jù)的良好封裝和支持,action處理器對(duì)象可以直接對(duì)它進(jìn)行讀寫,而不再需要和request、response對(duì)象進(jìn)行數(shù)

38、據(jù)交互。通過actionform組件對(duì)象實(shí)現(xiàn)了對(duì)view和model之間的交互的支持。struts在實(shí)現(xiàn)時(shí)把做什么(action)和如何做(業(yè)務(wù)邏輯)分離,這樣,可以實(shí)現(xiàn)業(yè)務(wù)邏輯的重用。(3)控制器(controller)應(yīng)用的視圖部分關(guān)注與接收客戶端的請(qǐng)求,決定什么業(yè)務(wù)邏輯功能將被執(zhí)行,然后委派產(chǎn)生用戶界面的下一階段的責(zé)任給一個(gè)合適的視圖組件。在struts中controller功能由actionservlet和actionmapping對(duì)象構(gòu)成:核心是一個(gè)servlet類型的對(duì)象actionservlet,它用來接受客戶端的請(qǐng)求。actionservlet包括一組基于配置文件生成的acti

39、onmapping對(duì)象,每個(gè)actionmapping對(duì)象實(shí)現(xiàn)了一個(gè)請(qǐng)求到一個(gè)具休的model部分中action處理器對(duì)象之間的映像。struts框架的處理流程清楚的體現(xiàn)了mvc系統(tǒng)的特點(diǎn),struts controller actionservlet處理客戶請(qǐng)求,利用配置的actionmapping對(duì)象把請(qǐng)求映像到action處理器對(duì)象進(jìn)行處理。action處理對(duì)象訪問actionform中的數(shù)據(jù),處理和響應(yīng)客戶請(qǐng)求,它還調(diào)用后臺(tái)的bean組件,這些組件封裝了具體的業(yè)務(wù)邏輯。action處理器對(duì)象根據(jù)處理結(jié)果通知controller,controller進(jìn)行下一步的處理。由于struts已經(jīng)

40、為我們提供了一個(gè)非常好的mvc框架,我們利用struts開發(fā)mvc系統(tǒng)時(shí)可以大大加快開發(fā)的速度。在開發(fā)時(shí)可以采用的開發(fā)流程如下: 明確應(yīng)用的需求。 明確“屏幕顯示”需求,即有那些頁面。 為每一個(gè)“屏幕顯示”定義訪問路徑。 配置struts-config.xml,定義actionmappings建立到應(yīng)用業(yè)務(wù)邏輯之間的聯(lián)系。 開發(fā)滿足“屏幕顯示”需求的所有支持對(duì)象。 基于每個(gè)“屏幕顯示”需求提供的數(shù)據(jù)屬性來創(chuàng)建對(duì)應(yīng)的actionform對(duì)象。 開發(fā)被actionmapping調(diào)用的action對(duì)象。 開發(fā)應(yīng)用業(yè)務(wù)邏輯對(duì)象(bean, ejb等等)。 對(duì)應(yīng)actionmapping設(shè)計(jì)的流程創(chuàng)建j

41、sp頁面。 建立合適的配置文件struts-config.xml,web.xml。 開發(fā)/測程/部署。具體在使用struts框架時(shí),對(duì)應(yīng)各個(gè)部分的開發(fā)工作主要包括:模型部分:采用javabean和ejb相結(jié)合,設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯根據(jù)不同的請(qǐng)求從action派生具體action處理對(duì)象。完成“做什么”的任務(wù)來調(diào)用由bean構(gòu)成的業(yè)務(wù)組件。創(chuàng)建由actionform派生的類,實(shí)現(xiàn)對(duì)客戶端窗體數(shù)據(jù)的封裝。控制器部分:struts為我們提供了核心控制部分的實(shí)現(xiàn)。我們只要在struts-config.xml中配action mapping對(duì)象。視圖部分:為了使模型中的actionform與jsp交

42、互,我們必須使用struts提供的自定義標(biāo)記庫創(chuàng)建html窗體。利用struts提供的自定義標(biāo)記庫編寫用戶接口把應(yīng)用邏輯和顯示邏輯分離。struts框架通過這些自定義標(biāo)記建立了view和model之間的聯(lián)系。struts的自定義標(biāo)記還提供了很多定制頁面的功能。同時(shí)需要編輯兩個(gè)配置文件:web.xml和struts-config.xml. 通過它們配置struts系統(tǒng)中的各個(gè)模塊之問的交互。2.3.3 struts基本組件包struts框架大約有115個(gè)包,近200個(gè)類所組成,而且數(shù)量還在不斷的擴(kuò)展。我們無法列舉所有的包和類,只能列舉幾個(gè)主要的簡要的介紹一下。表2-1說明了目前struts ap

43、i中基本的幾個(gè)組件,包括action,actions,config,util,taglib,validator。表2.1 struts基本組件包包名功能org.apache.struts.action控制整個(gè)struts framework的運(yùn)行的核心類、組件都在這個(gè)包中,比如我們上面提到的控制器actionservlet。以及action, actionform, actionmapping等等。org.apache.struts.actions提供客戶的http請(qǐng)求和業(yè)務(wù)邏輯處理之間的特定適配器轉(zhuǎn)換功能org.apache.struts.config提供對(duì)配置文件struts-config

44、.xml元素的映像。org.apache.struts.uti1為了更好支持web application的應(yīng)用,提供了對(duì)一些常用服務(wù)的支持,比如connection pool和message s.apache.struts.taglib是一個(gè)客戶卷標(biāo)類的集合。下面包括bean tags,html tags,logic tags,nested tags,template tags這幾個(gè)用于構(gòu)建用戶接口的卷標(biāo)類。org.apache-struts.validatorstrutsl.l framework中增加的vaiidator framework用于動(dòng)態(tài)的配置from窗體的驗(yàn)

45、證。3.網(wǎng)上書店系統(tǒng)需求分析網(wǎng)上書店系統(tǒng)是典型的b2c,其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。系統(tǒng)主要實(shí)現(xiàn)圖書查詢、圖書管理、購物車管理、訂單處理、用戶登錄、用戶注冊(cè)功能。3.1 用戶需求分析本網(wǎng)上書店系統(tǒng)主要是方便用戶,節(jié)省時(shí)間。主要完成的功能有用戶登錄/登出,圖書查詢,購物車管理,訂單管理。3.1.1 圖書查詢需求當(dāng)客戶進(jìn)入網(wǎng)上書店時(shí),應(yīng)該在首頁中顯示最新的書目信息,讓客戶對(duì)新到圖書一目了然;在首頁上提供到所有圖書列表頁面的鏈接,以供客戶選擇所需圖書;同時(shí)

46、也提供按照?qǐng)D書名稱快速查詢所需書目信息的功能。其用例圖如圖3.1所示:圖3.1 圖書查詢用例圖3.1.2 購物車管理需求當(dāng)客戶選擇購買某圖書產(chǎn)品時(shí),能夠?qū)?duì)應(yīng)圖書信息,如:價(jià)格、數(shù)量、時(shí)間等記錄到對(duì)應(yīng)的購物車中,并允許客戶返回書目查詢頁面,選擇其他圖書,并添加到購物車中。當(dāng)客戶點(diǎn)擊付款并且付款成功后,生成對(duì)應(yīng)的購物訂單,并自動(dòng)清除已生成訂單的購物車中的信息。其用例圖如圖3.2所示:圖3.2 購物車管理用例圖3.1.3 訂單處理需求對(duì)應(yīng)客戶購買圖書商品信息的需求,在確定了所購圖書商品的價(jià)格、數(shù)量等信息后,提示用戶選擇對(duì)應(yīng)的送貨方式及付款方式,最終生成對(duì)應(yīng)的訂單記錄,以便于網(wǎng)站配貨人員依據(jù)訂單信息

47、進(jìn)行后續(xù)的出貨、送貨的處理。訂單生成后,當(dāng)客戶再次返回首頁,能夠在首頁上查詢到該客戶所有的訂單信息。其用例圖如圖3.3所示:圖3.3 購物車管理用例圖3.1.4 會(huì)員注冊(cè)/登錄需求為了能夠?qū)崿F(xiàn)圖書商品的購買,需要管理客戶相關(guān)的聯(lián)系方式、送貨地點(diǎn)等相關(guān)的信息。登錄之前必須注冊(cè),注冊(cè)時(shí)需要驗(yàn)證。其用例圖如圖3.4所示:圖3.4 購物車管理用例圖3.1.5 圖書管理需求當(dāng)作為管理員用戶登錄時(shí),可以對(duì)圖書信息進(jìn)行查看、編輯,刪除書目和增加新的書目。其用例圖如圖3.2所示:圖3.5 圖書管理用例圖3.2 系統(tǒng)業(yè)務(wù)流程分析業(yè)務(wù)流程反映了現(xiàn)實(shí)的業(yè)務(wù)活動(dòng)。業(yè)務(wù)流程圖描述了系統(tǒng)內(nèi)各單位、人員間業(yè)務(wù)關(guān)系、作業(yè)順序

48、和管理信息流向的圖表。現(xiàn)實(shí)業(yè)務(wù)活動(dòng)中的一些弊病很難憑空指出,而利用業(yè)務(wù)流程圖可以細(xì)致地分析其業(yè)務(wù)流程的合理性、可能存在的問題及從何處入手進(jìn)行解決。經(jīng)過對(duì)網(wǎng)上書店系統(tǒng)的分析,交易系統(tǒng)架構(gòu)圖描述如3.6所示。圖3.6 業(yè)務(wù)流程圖3.3 系統(tǒng)運(yùn)行和開發(fā)環(huán)境3.3.1 系統(tǒng)運(yùn)行環(huán)境為了充分使用學(xué)?,F(xiàn)有的軟硬件資源,在保障網(wǎng)上書店系統(tǒng)正常、穩(wěn)定、高效運(yùn)行的前提下,達(dá)到節(jié)省開支降低成本的目的。根據(jù)這個(gè)要求,設(shè)定了網(wǎng)上書店系統(tǒng)的運(yùn)行環(huán)境。(1)網(wǎng)絡(luò)環(huán)境:數(shù)據(jù)庫服務(wù)器及操作主機(jī)網(wǎng)絡(luò)環(huán)境均采用互聯(lián)網(wǎng)。(2)硬件環(huán)境: 服務(wù)器:cpu使用intel pentium 4 xeon/2.8ghz,內(nèi)存為lgb,選用2

49、塊73gb 10000轉(zhuǎn)熱插拔scsi硬盤。 客戶機(jī):cpu最低為intel pentium4/2ghz以上,內(nèi)存最低256mb,硬盤最低為40gb。(3)軟件環(huán)境: 服務(wù)器:windows server 2003,tomcat應(yīng)用服務(wù)器,mysql數(shù)據(jù)庫。 客戶機(jī):windows 2000或者xp操作系統(tǒng),ie瀏覽器(版本在6.0以上)。3.3.2 系統(tǒng)開發(fā)環(huán)境系統(tǒng)開發(fā)環(huán)境主要介紹的是系統(tǒng)所用的后臺(tái)數(shù)據(jù)庫、開發(fā)語言、開發(fā)技術(shù)以及開發(fā)平臺(tái)等。(1)數(shù)據(jù)庫系統(tǒng)采用mysql作為數(shù)據(jù)庫平臺(tái),既可以被應(yīng)用程序訪問,又可在后臺(tái)操作,完成對(duì)數(shù)據(jù)的整理等。與其他的大型數(shù)據(jù)庫例如oracle、db2、sql

50、 server等相比,mysql自有它的不足之處,如規(guī)模小、功能有限等,但對(duì)于一般的個(gè)人使用者和中小型企業(yè)來說,mysql提供的功能已經(jīng)綽綽有余,而且由于mysql是開放源碼軟件,因此可以大大降低總體擁有成本。(2)開發(fā)環(huán)境 j2ee是一個(gè)開放的、基于標(biāo)準(zhǔn)的開發(fā)和部署的平臺(tái),用于構(gòu)建n層的、基于web的、以服務(wù)器端計(jì)算為核心的、模塊化的企業(yè)應(yīng)用。j2ee同時(shí)也是所有兼容j2ee標(biāo)準(zhǔn)的應(yīng)用服務(wù)器產(chǎn)品的統(tǒng)一標(biāo)識(shí)。其結(jié)構(gòu)圖如圖3.7所示。圖3.7 struts結(jié)構(gòu)圖(3)開發(fā)平臺(tái)由于java開發(fā)工具運(yùn)行時(shí)比較耗費(fèi)系統(tǒng)資源,為了高效、快捷的完成教師工作量核算系統(tǒng)的開發(fā)工作,采取如下開發(fā)環(huán)境。網(wǎng)絡(luò)環(huán)境:

51、局域網(wǎng)。硬件環(huán)境:cpu pentium4 3ghz,內(nèi)存1g,硬盤120gb。軟件環(huán)境:操作系統(tǒng)windows xp,數(shù)據(jù)庫mysql,開發(fā)工具myeclipse,tomcat。3.4 數(shù)據(jù)流圖數(shù)據(jù)流圖(data flow diagram,dfd),是結(jié)構(gòu)化分析化分析方法(sa)中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。數(shù)據(jù)流圖由數(shù)據(jù)流、加工、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)源點(diǎn)或終點(diǎn)四種基本成分組成。為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,用一個(gè)數(shù)據(jù)流圖是不夠的。為表達(dá)稍為復(fù)雜的實(shí)際問題,需要按照問題的層次結(jié)構(gòu)進(jìn)行

52、逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系。先把整個(gè)數(shù)據(jù)處理過程暫且看成一個(gè)加工,它的輸入數(shù)據(jù)和輸出數(shù)據(jù)實(shí)際上反映了系統(tǒng)與外界環(huán)境的接口。這就是分層數(shù)據(jù)圖的項(xiàng)層,也稱作總體圖。在這里,先將整個(gè)網(wǎng)上書店系統(tǒng)看成是一個(gè)加工處理,將操作人員作為外部的條件(即系統(tǒng)的操作對(duì)象),即可以的得出dfd。圖3.8為網(wǎng)上書店系統(tǒng)前臺(tái)的頂層dfd,圖3.9為網(wǎng)上書店系統(tǒng)后臺(tái)的頂層dfd。圖3.8 系統(tǒng)前臺(tái)頂層dfd圖3.9 系統(tǒng)后臺(tái)頂層dfd結(jié)構(gòu)化分析方法的基本思路是“自頂向下,逐步細(xì)化”。即從系統(tǒng)的基本模型開始,逐層地進(jìn)行分解。隨著這個(gè)過程的不斷進(jìn)行,系統(tǒng)的加工數(shù)量越來越多,每個(gè)加工的功能也越來越具體,直到所

53、有的加工都足夠簡單,不必再分解為止。系統(tǒng)總體圖雖然從概況上描述了整個(gè)系統(tǒng)的內(nèi)外接口情況,但它并不能很清楚地表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,因此需要進(jìn)一步的細(xì)化。網(wǎng)上書店的數(shù)據(jù)處理按照功能包括三個(gè)部分:用戶管理,圖書管理,訂單管理。因此,就可以畫出表示三個(gè)部分的加工及其相關(guān)的數(shù)據(jù)流圖,形成網(wǎng)上書店的零級(jí)圖,如圖3.10所示。零級(jí)圖由外部實(shí)體、處理和數(shù)據(jù)存貯結(jié)點(diǎn)組成。它表示一個(gè)系統(tǒng)的主要功能或者是一個(gè)大型系統(tǒng)的主要的組成子系統(tǒng)。圖3.10 系統(tǒng)的零級(jí)圖由于各個(gè)子系統(tǒng)比較復(fù)雜,為了更清晰地表達(dá)數(shù)據(jù)加工過程,可以進(jìn)一步對(duì)它進(jìn)行細(xì)化,從而得到各個(gè)模塊的一級(jí)圖。本系統(tǒng)根據(jù)實(shí)際功能將整個(gè)系統(tǒng)細(xì)化后,得到用戶

54、管理,訂單管理,圖書管理的一級(jí)圖。一級(jí)圖由外部實(shí)體、處理和數(shù)據(jù)存貯結(jié)點(diǎn)組成,其組成與零級(jí)圖組成類似。一級(jí)圖雖然已經(jīng)對(duì)零級(jí)圖做了進(jìn)一步細(xì)化,但仍不能詳細(xì)的將其內(nèi)部各個(gè)模塊的處理細(xì)節(jié)表述出來。因此,需要對(duì)各個(gè)子系統(tǒng)的一級(jí)圖進(jìn)一步細(xì)化,就可以得到子系統(tǒng)其內(nèi)各個(gè)模塊的細(xì)節(jié)圖。細(xì)節(jié)圖僅僅由處理和數(shù)據(jù)存貯結(jié)點(diǎn)組成,它表示一個(gè)復(fù)雜的處理流程的詳細(xì)的內(nèi)部過程。由于圖書管理與訂單管理,用戶管理基本的流程相同,大致都是對(duì)數(shù)據(jù)進(jìn)行增刪改,查詢。下面詳細(xì)對(duì)圖書管理進(jìn)行描述。圖書管理模塊的一級(jí)dfd如圖3.11所示,該子系統(tǒng)包含圖書查詢,新增圖書,刪除圖書,修改圖書,查看圖書詳情等模塊。圖3.11 圖書管理模塊一級(jí)df

55、d只有明確了功能,精確地描繪了各個(gè)數(shù)據(jù)流才可以認(rèn)為分析工作結(jié)束。一般情況下,第二層的數(shù)據(jù)流圖中的加工細(xì)節(jié)還不夠清晰,需要把每個(gè)加工繼續(xù)分解成更小的加工??梢詫D3.11中的編輯圖書繼續(xù)細(xì)化,分為新增圖書,刪除圖書,修改圖書,查看圖書功能,其數(shù)據(jù)流圖如圖3.12所示。圖6 編輯細(xì)化dfd3.5 系統(tǒng)的數(shù)據(jù)字典網(wǎng)上書店系統(tǒng)的數(shù)據(jù)字典主要有管理員信息表,用戶信息列表,圖書詳細(xì)分類表,圖書信息表,訂單基本信息表,購物車表。其中每個(gè)數(shù)據(jù)表的文件名、組成字段、數(shù)據(jù)組織如下所示。 管理員用戶信息表l 文件名:d_adminl 組成:管理員編號(hào)+用戶名+密碼+管理員類別l 組織:管理員編號(hào)為主鍵 普通用戶信息

56、列表l 文件名:d_userl 組成:用戶編號(hào)+郵箱+用戶密碼+昵稱+密碼l 組織:用戶編號(hào)為主鍵 商品信息表l 文件名:d_productl 組成:圖書id+圖書分類+圖書詳細(xì)分類+圖書名稱+圖書價(jià)格+會(huì)員圖書價(jià)格+圖書封面地址+圖書作者+圖書出版社+圖書出版時(shí)間+圖書摘要l 組織:圖書id為主鍵 圖書詳細(xì)分類表l 文件名:d_detail_catalogl 組成:圖書詳細(xì)分類id+從屬的圖書類型+詳細(xì)類型名稱l 組織:圖書詳細(xì)分類id為主鍵 訂單基本信息表l 文件名:d_orderl 組成:訂單id+圖書id+用戶id+訂購時(shí)間+訂單狀態(tài)+訂單數(shù)量l 組織:訂單id為主鍵 購物車表l 文件名:d_cartl 組成:購物車id+用戶id+圖書id+圖書數(shù)量l 組織:購物車id,用戶id,圖書id和為主鍵4.網(wǎng)上書店系統(tǒng)總體設(shè)計(jì)該環(huán)節(jié)主要的工作有系統(tǒng)設(shè)計(jì)描述、系統(tǒng)模塊描述、數(shù)據(jù)設(shè)計(jì)等。 4.1 系統(tǒng)設(shè)計(jì)描述系統(tǒng)設(shè)計(jì)工作由總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩部分組成。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論