




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、j2ee 課程設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目藍(lán)夢網(wǎng)上商城系統(tǒng)詳細(xì)設(shè)計(jì)說明書編寫人(簽字): 日期: 年 月 日用戶方項(xiàng)目代表(簽字): 日期:年月日開發(fā)方項(xiàng)目代表(簽字):日期:年月日質(zhì)量保證 代表(簽字):日期:年月日目 錄第1章 引言41.1編寫目的41.2背景41.3定義51.4參考資料5第2章 系統(tǒng)的總體結(jié)構(gòu)6第3章 系統(tǒng)mvc架構(gòu)中各層組件設(shè)計(jì)61、mvc中的視圖層的設(shè)計(jì)72、mvc中的控制層的設(shè)計(jì)223 mvc中的模型層設(shè)計(jì)-業(yè)務(wù)處理組件274、mvc中的模型層設(shè)計(jì)-持久層組件的設(shè)計(jì)35第4章 項(xiàng)目中的各個(gè)用例的主要業(yè)務(wù)流和時(shí)序圖451、用戶注冊452、用戶登錄473、用戶修改自己的注冊信息494、
2、用戶修改密碼的時(shí)序圖505、在線注銷516、用戶查詢517、商品查詢528、購物車業(yè)務(wù)和時(shí)序圖539、用戶賬戶管理5310、用戶賬戶管理系統(tǒng)時(shí)序圖5411、查找用戶用例的時(shí)序圖5512、商品管理55第5章 項(xiàng)目中的各個(gè)用例的協(xié)作圖561、用戶注冊的協(xié)作圖562、用戶登錄的協(xié)作圖583、用戶修改密碼的協(xié)作圖594、用戶修改注冊信息的協(xié)作圖595、在線注銷的協(xié)作圖606、用戶查詢的協(xié)作圖607、用戶帳戶管理的協(xié)作圖618、購物車系統(tǒng)的協(xié)作圖619、后臺管理中查找用戶用例的協(xié)作圖6210、管理員管理商品信息業(yè)務(wù)流的協(xié)作圖62第7章 項(xiàng)目中的各個(gè)活動(dòng)圖621、業(yè)務(wù)實(shí)現(xiàn)過程的活動(dòng)圖-帶泳道的用戶登錄的過
3、程622、注冊用戶的各種活動(dòng)633、管理員的各種活動(dòng)63第8章 項(xiàng)目中的各個(gè)狀態(tài)圖631、guest用戶在本系統(tǒng)中可能出現(xiàn)的各種狀態(tài)632、注冊用戶在本系統(tǒng)中可能出現(xiàn)的各種狀態(tài)643、管理員的狀態(tài)圖64第9章 系統(tǒng)類與接口的設(shè)計(jì)651、表示層的類圖652、控制層的類圖663、業(yè)務(wù)層的類圖674、數(shù)據(jù)訪問層的類圖67第10章 輸入輸出設(shè)計(jì)701、用戶接口(界面設(shè)計(jì))702、外部接口70第11章 系統(tǒng)測試703楊教授大學(xué)堂 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料4、mvc中的模型層設(shè)計(jì)-持久層組件的設(shè)計(jì) “持久化”是指通過數(shù)據(jù)庫或其他信息存儲(chǔ)方式將系統(tǒng)中需要保存的數(shù)據(jù)保持在持續(xù)性載體中的過程。
4、從廣義上講,持久化不僅包括從系統(tǒng)到信息載體單方面存儲(chǔ)的過程,還包括這些信息的讀取、管理的整個(gè)交互過程。4.1數(shù)據(jù)訪問服務(wù)4.2 實(shí)體類(持久類)、會(huì)話類和數(shù)據(jù)連接類對數(shù)據(jù)庫中的數(shù)據(jù)訪問的編程實(shí)現(xiàn)的相關(guān)類可以分成實(shí)體類(entity class)、會(huì)話類(session class)和數(shù)據(jù)連接類。通過使用這種數(shù)據(jù)訪問層的模塊設(shè)計(jì)和模式劃分,使程序更加模塊化,便于開發(fā)和維護(hù)。4.3 各種類的主要作用1、實(shí)體類(持久類)的作用實(shí)體類對應(yīng)于一個(gè)表中的記錄數(shù)據(jù)的封裝,也就是該類的一個(gè)實(shí)例對應(yīng)于表中的一個(gè)記錄。而且,該類中的屬性和記錄中的字段是一一對應(yīng)的(domain entity),也可以與數(shù)據(jù)庫表中的
5、結(jié)構(gòu)不完全一一對應(yīng)(custom entity)。 本項(xiàng)目中的各個(gè)實(shí)體類請見下面所示。2、會(huì)話類的作用會(huì)話類對應(yīng)于對一個(gè)表中的所有記錄的操作(也即對實(shí)體)。主要為下面的幾種類型的操作(執(zhí)行上述任務(wù)的方法通常稱為“crud”方法,這是由各項(xiàng)任務(wù)的首字母組成的一個(gè)縮寫詞):1) 在數(shù)據(jù)庫中創(chuàng)建記錄(create);2) 查找并讀取數(shù)據(jù)庫中的記錄并把業(yè)務(wù)實(shí)體數(shù)據(jù)返回給調(diào)用程序(reader) ;3) 使用調(diào)用程序提供的修改后的業(yè)務(wù)實(shí)體數(shù)據(jù)更新數(shù)據(jù)庫中的記錄(update) ;4) 刪除數(shù)據(jù)庫中的記錄(delete)注意:本項(xiàng)目中的會(huì)話類主要采用基于hibernate中的session來實(shí)現(xiàn)的。3、數(shù)
6、據(jù)連接類的作用為了在后臺的數(shù)據(jù)庫的數(shù)據(jù)源發(fā)生變化的情況下,盡可能地減少對業(yè)務(wù)層、表示層的改動(dòng)。對數(shù)據(jù)庫的連接本項(xiàng)目中采用j2ee平臺中常用的dao的設(shè)計(jì)模式來實(shí)現(xiàn)數(shù)據(jù)庫的連接。表示層業(yè)務(wù)處理層數(shù)據(jù)訪問層持久實(shí)體數(shù)據(jù)訪問邏輯數(shù)據(jù)連接數(shù)據(jù)源本項(xiàng)目中的數(shù)據(jù)連接類如下:4.4 dao模式簡介1、dao模式(1)dao是data access object的縮寫,他抽象從數(shù)據(jù)源讀取與操作數(shù)據(jù)的方法。(2)dao模式有兩個(gè)主要的作用1)抽象數(shù)據(jù)源這里的數(shù)據(jù)源是一個(gè)廣義的概念,泛指所有可能的數(shù)據(jù)來源和方式,可以理解為數(shù)據(jù)來源。dao模式的用戶不知道數(shù)據(jù)來自什么數(shù)據(jù)庫,用什么方式連接和訪問,也不知道數(shù)據(jù)服務(wù)器
7、的物理位置和邏輯位置,數(shù)據(jù)原始完全透明的。2)抽象相關(guān)的crud邏輯dao模式可以使用任意的java數(shù)據(jù)訪問方式,包括jdbc、ejb、jdb/hibernate以及任何其他的orm工具。dao完全分離業(yè)務(wù)邏輯與數(shù)據(jù)邏輯,最大限度地減少開發(fā)人員混合業(yè)務(wù)邏輯與數(shù)據(jù)邏輯的情況。(3)為什么要提出dao模式將對數(shù)據(jù)源的訪問(也就是獲得數(shù)據(jù)庫的連接)抽象為一個(gè)類,從而利用數(shù)據(jù)訪問對象可以實(shí)現(xiàn)對不同數(shù)據(jù)庫類型和形式的數(shù)據(jù)資源進(jìn)行訪問。這種模式出現(xiàn)的背景在于數(shù)據(jù)訪問的邏輯極大程度上取決于數(shù)據(jù)存儲(chǔ)的格式比如說關(guān)系型數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫、磁盤文件等。2、dao的具體實(shí)現(xiàn)完整的dao實(shí)現(xiàn)包括:1) 業(yè)務(wù)對象可
8、以是此模式的客戶端;2) dao接口定義出dao所需要完成的crud功能;3) dao接口的實(shí)現(xiàn)類;4) dao工廠是dao模式的核心,提供透明的底層數(shù)據(jù)訪問實(shí)現(xiàn);5) 數(shù)據(jù)源可以使各種數(shù)據(jù)庫、xml文件、純文件系統(tǒng)等;6) 值對象(po)或者數(shù)據(jù)傳輸對象(dto)用于把數(shù)據(jù)返回給客戶端。在本項(xiàng)目中,采用普通的javabean類來實(shí)現(xiàn)dao。3、基于hibernate框架的dao組件的設(shè)計(jì)由于本項(xiàng)目在數(shù)據(jù)訪問層的技術(shù)選用方面是采用hibernate框架,因此對數(shù)據(jù)庫的連接使用hibernate框架中的hibernate.cfg.xml來進(jìn)行數(shù)據(jù)庫方面的參數(shù)的配置。本項(xiàng)目在dao組件層提供了一個(gè)
9、hibernatedaointerface接口以及對該接口實(shí)現(xiàn)類hibernatedaobean。當(dāng)然,對本項(xiàng)目中的dao組件的設(shè)計(jì),也可以采用分離的原則-將對用戶信息的數(shù)據(jù)訪問和對bbs信息的數(shù)據(jù)訪問設(shè)計(jì)為兩個(gè)不同的dao組件。4.5 值對象模式和傳輸對象模式在本項(xiàng)目中的應(yīng)用1、值對象(value object)前面在業(yè)務(wù)層組件設(shè)計(jì)中所涉及的各個(gè)業(yè)務(wù)實(shí)體類,以及在數(shù)據(jù)訪問層中所涉及的各個(gè)持久類,其實(shí)就是值對象。利用值對象可以封裝數(shù)據(jù)庫表或者其它業(yè)務(wù)數(shù)據(jù),同時(shí)對成批數(shù)據(jù)可以采用值對象的集合(如vector或者arraylist)來表示。2、傳輸對象模式-dto通過減少在分布式通信過程中所產(chǎn)生的
10、消息個(gè)數(shù)-通常這里所指的通信是在客戶端(瀏覽器)層和web服務(wù)器層或者web服務(wù)器層和數(shù)據(jù)庫服務(wù)層之間,從而提高數(shù)據(jù)交換的效率。在一個(gè)遠(yuǎn)程調(diào)用中,一個(gè)單一值對象可以被用來取出一系列相關(guān)數(shù)據(jù)并提供給客戶。因此,所應(yīng)該注意的是:為了能夠使值對象成為dto,該值對象的類必須實(shí)現(xiàn)serializable接口public class bbsinfovo implements serializable3、基于hibernate的jopo對象由于本項(xiàng)目在數(shù)據(jù)訪問方面采用hibernate技術(shù)來實(shí)現(xiàn),而根據(jù)hibernate的o/r mapping的技術(shù),將數(shù)據(jù)庫表中的數(shù)據(jù)轉(zhuǎn)換為object-也就是我們的jo
11、po對象。因此,在本項(xiàng)目中還提供對jopo的設(shè)計(jì)。主要有下面的各個(gè)po類等。4.6 事務(wù)處理 1、jdbc中的事務(wù)處理方式1)缺省事務(wù)處理方式為了確保對數(shù)據(jù)操作的完整和一致,在程序設(shè)計(jì)時(shí)要充分考慮到事務(wù)處理方面的問題。在jdbc中怎樣將多個(gè)sql語句組合成一個(gè)事務(wù)?在jdbc中,打開一個(gè)連接對象connection時(shí),缺省是auto-commit模式,每個(gè)sql語句都被當(dāng)作一個(gè)事務(wù),即每次執(zhí)行一個(gè)語句,都會(huì)自動(dòng)的得到事務(wù)確認(rèn)。為了能將多個(gè)sql語句組合成一個(gè)事務(wù),要將auto-commit模式屏蔽掉。 2)自定義自己的事務(wù)處理要求在auto-commit模式屏蔽掉之后,如果不調(diào)用commit(
12、)方法,sql語句不會(huì)得到事務(wù)確認(rèn)。在最近一次commit()方法調(diào)用之后的所有sql會(huì)在方法commit()調(diào)用時(shí)得到確認(rèn)。 2、本項(xiàng)目中的事務(wù)處理的設(shè)計(jì)1)在本項(xiàng)目中將可以應(yīng)用l 基于hibernate框架中的事務(wù)處理的應(yīng)用在本項(xiàng)目中由于在數(shù)據(jù)訪問上采用了hibernate框架,因此在事務(wù)處理的具體實(shí)現(xiàn)方面,當(dāng)然可以采用hibernate框架中的事務(wù)處理的支持。l 基于spring框架中的事務(wù)處理的應(yīng)用為了在事務(wù)處理方面能夠得到進(jìn)一步的簡化,我們也可以應(yīng)用基于spring框架中的事務(wù)處理技術(shù)的實(shí)現(xiàn)-在 spring中對基于hibernate框架中的事務(wù)處理進(jìn)行包裝,采用聲明方式的事務(wù)處理技
13、術(shù)的實(shí)現(xiàn)。2)本項(xiàng)目中最后實(shí)際所采用的事務(wù)處理的設(shè)計(jì)在設(shè)計(jì)方面,計(jì)劃將事務(wù)管理推遲到service組件的方法,而不是dao組件的方法。只有對業(yè)務(wù)邏輯方法添加事務(wù)才有實(shí)際的意義,對于dao方法(基本的crud操作)添加事務(wù)操作是沒有太大實(shí)際意義的。據(jù)此將采用基于spring框架中的聲明式的事務(wù)處理技術(shù)來實(shí)現(xiàn)本項(xiàng)目的事務(wù)處理。并且規(guī)定,對于query、list、show、get和find等開頭的數(shù)據(jù)查詢方法采用propagation_required,readonly級的事務(wù)定義;而對于set、save、update、remove和delete等開頭的數(shù)據(jù)修改方法采用propagation_req
14、uired級的事務(wù)定義。4.7 數(shù)據(jù)庫表中的數(shù)據(jù)緩存的問題可以應(yīng)用oscache(4.8 本項(xiàng)目的持久層采用hibernate開源框架技術(shù)1、持續(xù)性框架技術(shù)持續(xù)性框架一般提供一組軟件服務(wù),將“應(yīng)用”與其使用和操作的“數(shù)據(jù)源”分離開,隱藏訪問這些數(shù)據(jù)源的api的細(xì)節(jié),,這些api組件包括jdbc、jdo以及entity bean等。持續(xù)性框架通過統(tǒng)一的dao組件封裝這些具體的數(shù)據(jù)訪問邏輯。在各層次之間,一般是通過實(shí)現(xiàn)serializable接口的可序列化對象來傳遞對象化數(shù)據(jù)。主流的持續(xù)性框架一般會(huì)提供o/r mapping 功能,應(yīng)用o/r mapping的優(yōu)點(diǎn)在于能夠以面向?qū)ο蟮姆绞讲倏v數(shù)據(jù),
15、因此可以直接處理自定義數(shù)據(jù)實(shí)體的業(yè)務(wù)對象,我們根本不用操心sql語句以及底層存儲(chǔ)方式,這樣極大地簡化了代碼并提高了開發(fā)效率,對于日后維護(hù)擴(kuò)展都帶來極大的便利?;诖耍诒卷?xiàng)目的持久層實(shí)現(xiàn)中,將應(yīng)用hibernate開源框架技術(shù)。2、以系統(tǒng)中的注冊功能的實(shí)現(xiàn)說明具體的四層架構(gòu)4.9 本項(xiàng)目的持久層中的異常設(shè)計(jì)技術(shù)在本項(xiàng)目中為了能夠達(dá)到與特定的持久層實(shí)現(xiàn)技術(shù)無關(guān)的異常處理技術(shù),從而真正地實(shí)現(xiàn)服務(wù)層與數(shù)據(jù)訪問層的分離,進(jìn)行異常的自定義設(shè)計(jì)。第4章 項(xiàng)目中的各個(gè)用例的主要業(yè)務(wù)流和時(shí)序圖目的是對本項(xiàng)目中的一些關(guān)鍵的業(yè)務(wù)流進(jìn)行說明。1、用戶注冊 用戶需要通過注冊系統(tǒng)來將他們的有關(guān)個(gè)人信息登記到本網(wǎng)上商城系
16、統(tǒng)中,這些個(gè)人信息是用戶購物時(shí)所需要提供的。下面將介紹具體的業(yè)務(wù)需求及實(shí)現(xiàn)步驟。1注冊系統(tǒng)業(yè)務(wù)需求簡介(1)提供用戶界面給用戶輸入他們的name(姓名)、login name(登錄名)、password(密碼)、phone(電話號碼)、e-mail和registration fee(注冊費(fèi))。(2)提供用戶界面的輸入校驗(yàn)(本系統(tǒng)計(jì)劃采用客戶端和服務(wù)器端雙向驗(yàn)證的方式來校驗(yàn)用戶的輸入)1) 所有字段不能為空,2) 登錄名和密碼不能少于6個(gè)字符。 3) 電話號碼必須按888-888-8888的格式輸入。 4) e-mail必須按aaa的格式輸入。5) 費(fèi)用必須輸入數(shù)字。(3)用戶填完注冊信息,單擊
17、【提交】按鈕之后所有的用戶信息將會(huì)記錄到數(shù)據(jù)庫表中。(4)用戶注冊成功后系統(tǒng)將給出成功注冊的信息。2注冊系統(tǒng)業(yè)務(wù)及實(shí)現(xiàn)(1)用戶輸入個(gè)人信息后,系統(tǒng)進(jìn)行頁面校驗(yàn)。這里通過struts的validator框架來實(shí)現(xiàn)頁面校驗(yàn),返回具體的錯(cuò)誤信息讓用戶修正。(2)用戶根據(jù)提示的錯(cuò)誤信息輸入正確的信息。用戶輸入正確的信息,頁面校驗(yàn)通過,action bean將會(huì)把用戶所輸入的保存在form bean中的用戶個(gè)人信息取出,存入到vo對象中,進(jìn)而調(diào)用業(yè)務(wù)組件類中的方法實(shí)現(xiàn)將用戶個(gè)人信息存入到數(shù)據(jù)庫。 (3)用戶注冊成功后系統(tǒng)將給出成功注冊的信息。用戶個(gè)人信息存入到數(shù)據(jù)庫后,action form經(jīng)過act
18、ionmapping的forward方法將頁面消息輸出到頁面,在actionmessages對象中定義一個(gè)注冊成功的消息,真正的消息內(nèi)容在資源文件中,而在actionmessages對象中存入的是一個(gè)成功信息的關(guān)鍵詞。3實(shí)現(xiàn)注冊系統(tǒng)時(shí)序圖下圖是實(shí)現(xiàn)業(yè)務(wù)的時(shí)序圖,顯示了實(shí)現(xiàn)上述業(yè)務(wù)邏輯時(shí)的類之間的調(diào)用順序關(guān)系。2、用戶登錄本系統(tǒng)是通過登錄系統(tǒng)來實(shí)現(xiàn)安全管理,有些頁面(如購物車)只有用戶登錄后才能進(jìn)入。下面將介紹具體的業(yè)務(wù)需求及實(shí)現(xiàn)步驟。1登錄系統(tǒng)業(yè)務(wù)需求簡介下面是登錄系統(tǒng)業(yè)務(wù)需求簡介。(1)創(chuàng)建用戶的登錄界面。(2)對用戶的用戶名和密碼進(jìn)行校驗(yàn)。(3)如用戶登錄失敗,則需要輸出錯(cuò)誤信息。(4)如用戶登錄成功,則輸出成功信息,并保留用戶session,因而用戶登錄其他頁面(如shopping cart購物車)時(shí)不需要再次登錄。2登錄系統(tǒng)業(yè)務(wù)及實(shí)現(xiàn)(1)進(jìn)入“登錄”界面頁面顯示層是通過login.jsp來實(shí)現(xiàn)的,業(yè)務(wù)邏輯是通過action bean- loginaction調(diào)用模型層來實(shí)現(xiàn)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 配件采購合同范本 簡單
- JavaBean的意義與特點(diǎn)
- 委托礦山開采合同范本
- 賓館水電維修合同范本
- 布料買賣合同范本
- 中學(xué)教學(xué)管理規(guī)章制度
- 中學(xué)優(yōu)生培養(yǎng)路徑解讀
- 景區(qū)合資運(yùn)營合同范本
- 2025貨物租賃合同范文
- 2025年房屋租賃居間合同
- 機(jī)械制造廠質(zhì)量管理手冊
- (完整)中醫(yī)癥候積分量表
- 全國國家級園區(qū)名單
- 初中數(shù)學(xué)七年級下冊 加減消元法 全國一等獎(jiǎng)
- 利用智能垃圾分類系統(tǒng)促進(jìn)資源回收利用
- 《天然氣取樣導(dǎo)則》課件
- 測爆、測氧儀操作規(guī)程
- 煙花爆竹生產(chǎn)企業(yè)安全生產(chǎn)風(fēng)險(xiǎn)監(jiān)測預(yù)警系統(tǒng)建設(shè)方案
- 抗腫瘤藥物處方審核要點(diǎn)
- 熱處理危險(xiǎn)有害因素辨識及控制措施
- 工業(yè)用烤箱安全操作規(guī)程范本
評論
0/150
提交評論