




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、j2ee 課程設(shè)計實訓項目藍夢網(wǎng)上商城系統(tǒng)詳細設(shè)計說明書編寫人(簽字): 日期: 年 月 日用戶方項目代表(簽字): 日期:年月日開發(fā)方項目代表(簽字):日期:年月日質(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è)計61、mvc中的視圖層的設(shè)計72、mvc中的控制層的設(shè)計223 mvc中的模型層設(shè)計-業(yè)務(wù)處理組件274、mvc中的模型層設(shè)計-持久層組件的設(shè)計35第4章 項目中的各個用例的主要業(yè)務(wù)流和時序圖451、用戶注冊452、用戶登錄473、用戶修改自己的注冊信息494、
2、用戶修改密碼的時序圖505、在線注銷516、用戶查詢517、商品查詢528、購物車業(yè)務(wù)和時序圖539、用戶賬戶管理5310、用戶賬戶管理系統(tǒng)時序圖5411、查找用戶用例的時序圖5512、商品管理55第5章 項目中的各個用例的協(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章 項目中的各個活動圖621、業(yè)務(wù)實現(xiàn)過程的活動圖-帶泳道的用戶登錄的過
3、程622、注冊用戶的各種活動633、管理員的各種活動63第8章 項目中的各個狀態(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è)計651、表示層的類圖652、控制層的類圖663、業(yè)務(wù)層的類圖674、數(shù)據(jù)訪問層的類圖67第10章 輸入輸出設(shè)計701、用戶接口(界面設(shè)計)702、外部接口70第11章 系統(tǒng)測試703楊教授大學堂 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料4、mvc中的模型層設(shè)計-持久層組件的設(shè)計 “持久化”是指通過數(shù)據(jù)庫或其他信息存儲方式將系統(tǒng)中需要保存的數(shù)據(jù)保持在持續(xù)性載體中的過程。
4、從廣義上講,持久化不僅包括從系統(tǒng)到信息載體單方面存儲的過程,還包括這些信息的讀取、管理的整個交互過程。4.1數(shù)據(jù)訪問服務(wù)4.2 實體類(持久類)、會話類和數(shù)據(jù)連接類對數(shù)據(jù)庫中的數(shù)據(jù)訪問的編程實現(xiàn)的相關(guān)類可以分成實體類(entity class)、會話類(session class)和數(shù)據(jù)連接類。通過使用這種數(shù)據(jù)訪問層的模塊設(shè)計和模式劃分,使程序更加模塊化,便于開發(fā)和維護。4.3 各種類的主要作用1、實體類(持久類)的作用實體類對應(yīng)于一個表中的記錄數(shù)據(jù)的封裝,也就是該類的一個實例對應(yīng)于表中的一個記錄。而且,該類中的屬性和記錄中的字段是一一對應(yīng)的(domain entity),也可以與數(shù)據(jù)庫表中的
5、結(jié)構(gòu)不完全一一對應(yīng)(custom entity)。 本項目中的各個實體類請見下面所示。2、會話類的作用會話類對應(yīng)于對一個表中的所有記錄的操作(也即對實體)。主要為下面的幾種類型的操作(執(zhí)行上述任務(wù)的方法通常稱為“crud”方法,這是由各項任務(wù)的首字母組成的一個縮寫詞):1) 在數(shù)據(jù)庫中創(chuàng)建記錄(create);2) 查找并讀取數(shù)據(jù)庫中的記錄并把業(yè)務(wù)實體數(shù)據(jù)返回給調(diào)用程序(reader) ;3) 使用調(diào)用程序提供的修改后的業(yè)務(wù)實體數(shù)據(jù)更新數(shù)據(jù)庫中的記錄(update) ;4) 刪除數(shù)據(jù)庫中的記錄(delete)注意:本項目中的會話類主要采用基于hibernate中的session來實現(xiàn)的。3、數(shù)
6、據(jù)連接類的作用為了在后臺的數(shù)據(jù)庫的數(shù)據(jù)源發(fā)生變化的情況下,盡可能地減少對業(yè)務(wù)層、表示層的改動。對數(shù)據(jù)庫的連接本項目中采用j2ee平臺中常用的dao的設(shè)計模式來實現(xiàn)數(shù)據(jù)庫的連接。表示層業(yè)務(wù)處理層數(shù)據(jù)訪問層持久實體數(shù)據(jù)訪問邏輯數(shù)據(jù)連接數(shù)據(jù)源本項目中的數(shù)據(jù)連接類如下:4.4 dao模式簡介1、dao模式(1)dao是data access object的縮寫,他抽象從數(shù)據(jù)源讀取與操作數(shù)據(jù)的方法。(2)dao模式有兩個主要的作用1)抽象數(shù)據(jù)源這里的數(shù)據(jù)源是一個廣義的概念,泛指所有可能的數(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ù)庫的連接)抽象為一個類,從而利用數(shù)據(jù)訪問對象可以實現(xiàn)對不同數(shù)據(jù)庫類型和形式的數(shù)據(jù)資源進行訪問。這種模式出現(xiàn)的背景在于數(shù)據(jù)訪問的邏輯極大程度上取決于數(shù)據(jù)存儲的格式比如說關(guān)系型數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫、磁盤文件等。2、dao的具體實現(xiàn)完整的dao實現(xiàn)包括:1) 業(yè)務(wù)對象可
8、以是此模式的客戶端;2) dao接口定義出dao所需要完成的crud功能;3) dao接口的實現(xiàn)類;4) dao工廠是dao模式的核心,提供透明的底層數(shù)據(jù)訪問實現(xiàn);5) 數(shù)據(jù)源可以使各種數(shù)據(jù)庫、xml文件、純文件系統(tǒng)等;6) 值對象(po)或者數(shù)據(jù)傳輸對象(dto)用于把數(shù)據(jù)返回給客戶端。在本項目中,采用普通的javabean類來實現(xiàn)dao。3、基于hibernate框架的dao組件的設(shè)計由于本項目在數(shù)據(jù)訪問層的技術(shù)選用方面是采用hibernate框架,因此對數(shù)據(jù)庫的連接使用hibernate框架中的hibernate.cfg.xml來進行數(shù)據(jù)庫方面的參數(shù)的配置。本項目在dao組件層提供了一個
9、hibernatedaointerface接口以及對該接口實現(xiàn)類hibernatedaobean。當然,對本項目中的dao組件的設(shè)計,也可以采用分離的原則-將對用戶信息的數(shù)據(jù)訪問和對bbs信息的數(shù)據(jù)訪問設(shè)計為兩個不同的dao組件。4.5 值對象模式和傳輸對象模式在本項目中的應(yīng)用1、值對象(value object)前面在業(yè)務(wù)層組件設(shè)計中所涉及的各個業(yè)務(wù)實體類,以及在數(shù)據(jù)訪問層中所涉及的各個持久類,其實就是值對象。利用值對象可以封裝數(shù)據(jù)庫表或者其它業(yè)務(wù)數(shù)據(jù),同時對成批數(shù)據(jù)可以采用值對象的集合(如vector或者arraylist)來表示。2、傳輸對象模式-dto通過減少在分布式通信過程中所產(chǎn)生的
10、消息個數(shù)-通常這里所指的通信是在客戶端(瀏覽器)層和web服務(wù)器層或者web服務(wù)器層和數(shù)據(jù)庫服務(wù)層之間,從而提高數(shù)據(jù)交換的效率。在一個遠程調(diào)用中,一個單一值對象可以被用來取出一系列相關(guān)數(shù)據(jù)并提供給客戶。因此,所應(yīng)該注意的是:為了能夠使值對象成為dto,該值對象的類必須實現(xiàn)serializable接口public class bbsinfovo implements serializable3、基于hibernate的jopo對象由于本項目在數(shù)據(jù)訪問方面采用hibernate技術(shù)來實現(xiàn),而根據(jù)hibernate的o/r mapping的技術(shù),將數(shù)據(jù)庫表中的數(shù)據(jù)轉(zhuǎn)換為object-也就是我們的jo
11、po對象。因此,在本項目中還提供對jopo的設(shè)計。主要有下面的各個po類等。4.6 事務(wù)處理 1、jdbc中的事務(wù)處理方式1)缺省事務(wù)處理方式為了確保對數(shù)據(jù)操作的完整和一致,在程序設(shè)計時要充分考慮到事務(wù)處理方面的問題。在jdbc中怎樣將多個sql語句組合成一個事務(wù)?在jdbc中,打開一個連接對象connection時,缺省是auto-commit模式,每個sql語句都被當作一個事務(wù),即每次執(zhí)行一個語句,都會自動的得到事務(wù)確認。為了能將多個sql語句組合成一個事務(wù),要將auto-commit模式屏蔽掉。 2)自定義自己的事務(wù)處理要求在auto-commit模式屏蔽掉之后,如果不調(diào)用commit(
12、)方法,sql語句不會得到事務(wù)確認。在最近一次commit()方法調(diào)用之后的所有sql會在方法commit()調(diào)用時得到確認。 2、本項目中的事務(wù)處理的設(shè)計1)在本項目中將可以應(yīng)用l 基于hibernate框架中的事務(wù)處理的應(yīng)用在本項目中由于在數(shù)據(jù)訪問上采用了hibernate框架,因此在事務(wù)處理的具體實現(xiàn)方面,當然可以采用hibernate框架中的事務(wù)處理的支持。l 基于spring框架中的事務(wù)處理的應(yīng)用為了在事務(wù)處理方面能夠得到進一步的簡化,我們也可以應(yīng)用基于spring框架中的事務(wù)處理技術(shù)的實現(xiàn)-在 spring中對基于hibernate框架中的事務(wù)處理進行包裝,采用聲明方式的事務(wù)處理技
13、術(shù)的實現(xiàn)。2)本項目中最后實際所采用的事務(wù)處理的設(shè)計在設(shè)計方面,計劃將事務(wù)管理推遲到service組件的方法,而不是dao組件的方法。只有對業(yè)務(wù)邏輯方法添加事務(wù)才有實際的意義,對于dao方法(基本的crud操作)添加事務(wù)操作是沒有太大實際意義的。據(jù)此將采用基于spring框架中的聲明式的事務(wù)處理技術(shù)來實現(xiàn)本項目的事務(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 本項目的持久層采用hibernate開源框架技術(shù)1、持續(xù)性框架技術(shù)持續(xù)性框架一般提供一組軟件服務(wù),將“應(yīng)用”與其使用和操作的“數(shù)據(jù)源”分離開,隱藏訪問這些數(shù)據(jù)源的api的細節(jié),,這些api組件包括jdbc、jdo以及entity bean等。持續(xù)性框架通過統(tǒng)一的dao組件封裝這些具體的數(shù)據(jù)訪問邏輯。在各層次之間,一般是通過實現(xiàn)serializable接口的可序列化對象來傳遞對象化數(shù)據(jù)。主流的持續(xù)性框架一般會提供o/r mapping 功能,應(yīng)用o/r mapping的優(yōu)點在于能夠以面向?qū)ο蟮姆绞讲倏v數(shù)據(jù),
15、因此可以直接處理自定義數(shù)據(jù)實體的業(yè)務(wù)對象,我們根本不用操心sql語句以及底層存儲方式,這樣極大地簡化了代碼并提高了開發(fā)效率,對于日后維護擴展都帶來極大的便利?;诖?,在本項目的持久層實現(xiàn)中,將應(yīng)用hibernate開源框架技術(shù)。2、以系統(tǒng)中的注冊功能的實現(xiàn)說明具體的四層架構(gòu)4.9 本項目的持久層中的異常設(shè)計技術(shù)在本項目中為了能夠達到與特定的持久層實現(xiàn)技術(shù)無關(guān)的異常處理技術(shù),從而真正地實現(xiàn)服務(wù)層與數(shù)據(jù)訪問層的分離,進行異常的自定義設(shè)計。第4章 項目中的各個用例的主要業(yè)務(wù)流和時序圖目的是對本項目中的一些關(guān)鍵的業(yè)務(wù)流進行說明。1、用戶注冊 用戶需要通過注冊系統(tǒng)來將他們的有關(guān)個人信息登記到本網(wǎng)上商城系
16、統(tǒng)中,這些個人信息是用戶購物時所需要提供的。下面將介紹具體的業(yè)務(wù)需求及實現(xiàn)步驟。1注冊系統(tǒng)業(yè)務(wù)需求簡介(1)提供用戶界面給用戶輸入他們的name(姓名)、login name(登錄名)、password(密碼)、phone(電話號碼)、e-mail和registration fee(注冊費)。(2)提供用戶界面的輸入校驗(本系統(tǒng)計劃采用客戶端和服務(wù)器端雙向驗證的方式來校驗用戶的輸入)1) 所有字段不能為空,2) 登錄名和密碼不能少于6個字符。 3) 電話號碼必須按888-888-8888的格式輸入。 4) e-mail必須按aaa的格式輸入。5) 費用必須輸入數(shù)字。(3)用戶填完注冊信息,單擊
17、【提交】按鈕之后所有的用戶信息將會記錄到數(shù)據(jù)庫表中。(4)用戶注冊成功后系統(tǒng)將給出成功注冊的信息。2注冊系統(tǒng)業(yè)務(wù)及實現(xiàn)(1)用戶輸入個人信息后,系統(tǒng)進行頁面校驗。這里通過struts的validator框架來實現(xiàn)頁面校驗,返回具體的錯誤信息讓用戶修正。(2)用戶根據(jù)提示的錯誤信息輸入正確的信息。用戶輸入正確的信息,頁面校驗通過,action bean將會把用戶所輸入的保存在form bean中的用戶個人信息取出,存入到vo對象中,進而調(diào)用業(yè)務(wù)組件類中的方法實現(xiàn)將用戶個人信息存入到數(shù)據(jù)庫。 (3)用戶注冊成功后系統(tǒng)將給出成功注冊的信息。用戶個人信息存入到數(shù)據(jù)庫后,action form經(jīng)過act
18、ionmapping的forward方法將頁面消息輸出到頁面,在actionmessages對象中定義一個注冊成功的消息,真正的消息內(nèi)容在資源文件中,而在actionmessages對象中存入的是一個成功信息的關(guān)鍵詞。3實現(xiàn)注冊系統(tǒng)時序圖下圖是實現(xiàn)業(yè)務(wù)的時序圖,顯示了實現(xiàn)上述業(yè)務(wù)邏輯時的類之間的調(diào)用順序關(guān)系。2、用戶登錄本系統(tǒng)是通過登錄系統(tǒng)來實現(xiàn)安全管理,有些頁面(如購物車)只有用戶登錄后才能進入。下面將介紹具體的業(yè)務(wù)需求及實現(xiàn)步驟。1登錄系統(tǒng)業(yè)務(wù)需求簡介下面是登錄系統(tǒng)業(yè)務(wù)需求簡介。(1)創(chuàng)建用戶的登錄界面。(2)對用戶的用戶名和密碼進行校驗。(3)如用戶登錄失敗,則需要輸出錯誤信息。(4)如用戶登錄成功,則輸出成功信息,并保留用戶session,因而用戶登錄其他頁面(如shopping cart購物車)時不需要再次登錄。2登錄系統(tǒng)業(yè)務(wù)及實現(xiàn)(1)進入“登錄”界面頁面顯示層是通過login.jsp來實現(xiàn)的,業(yè)務(wù)邏輯是通過action bean- loginaction調(diào)用模型層來實現(xiàn)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務(wù)教師資格核心知識試題及答案
- 2024年寵物殭葬師職業(yè)發(fā)展試題及答案
- 動物健康數(shù)據(jù)的整合與利用策略試題及答案
- 多元化學習的試題及答案人力資源管理師
- 2025村委會房屋租賃合同范本下載(正式版)
- 2024年投資機會評估試題及答案研討
- 家庭教育知識試題及答案
- 2025年建筑外墻涂裝施工合同
- 2024年陪診師考試知識點探討與試題及答案
- 2025綜合布線系統(tǒng)設(shè)計與施工合同
- 糖尿病高滲性昏迷護理查房
- 選擇性必修2《法律與生活》(主觀題答題模版)高考政治答題技巧與模板構(gòu)建
- 短視頻企業(yè)號運營方案:通過原創(chuàng)內(nèi)容樹立品牌形象與價值觀
- 機械制造廠質(zhì)量管理手冊
- 航空數(shù)字化制造技術(shù)
- 化學課堂提問的原則及提問策略
- Python數(shù)據(jù)分析 課件 項目3、4 數(shù)組計算庫NumPy、數(shù)據(jù)分析庫pandas
- 職業(yè)道德與商業(yè)道德培訓
- 2024年煤礦各類牌板制作標準及使用規(guī)定附煤礦井下牌板模版及標準
- 上門按摩項目創(chuàng)業(yè)計劃書
- 高中物理牛頓第一定律說課課件
評論
0/150
提交評論