《快樂買網(wǎng)上商城詳細(xì)設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《快樂買網(wǎng)上商城詳細(xì)設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書.docx(31頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
快樂買網(wǎng)上商城詳細(xì)設(shè)計(jì)說明書
0. 導(dǎo)言
0.1 目的
本文檔的目的是描述快樂買網(wǎng)上商城項(xiàng)目的詳細(xì)設(shè)計(jì),其主要內(nèi)容包括:
? 系統(tǒng)功能簡(jiǎn)介
? 系統(tǒng)詳細(xì)設(shè)計(jì)簡(jiǎn)述
? 在SSH框架下各個(gè)模塊的分層結(jié)構(gòu)
本文檔的預(yù)期讀者是:
? 設(shè)計(jì)人員
? 開發(fā)人員
? 項(xiàng)目管理人員
? 測(cè)試人員
0.2 范圍
該文檔定義了系統(tǒng)的各個(gè)模塊和模塊接口,但未確定單元的具體實(shí)現(xiàn),這部分內(nèi)容將在編碼實(shí)現(xiàn)中確定。
0.3 引用標(biāo)準(zhǔn)
[1] 《企業(yè)文檔格式標(biāo)準(zhǔn)》V1.1, XXX軟件有限公司。
[2] 《軟件詳細(xì)設(shè)計(jì)報(bào)告格式標(biāo)準(zhǔn)》V1.1,XXX軟件有限公司軟件工程過程化組織
0.4 參考資料
[1] 《實(shí)戰(zhàn)Struts》,Ted Husted,機(jī)械工業(yè)出版社
[2] 《Spring Live》,Matt Raible,
0.5 版本更新信息
本文檔版本更新記錄如表C-1所示:
表C-1 版本更新記錄
修改編號(hào)
修改日期
修改后版本
修改位置
修改內(nèi)容概述
000
2015-2-18
0.1
全部
初始發(fā)布版本
1. 系統(tǒng)設(shè)計(jì)概述
根據(jù)快樂買網(wǎng)上商城系統(tǒng)的概要設(shè)計(jì),系統(tǒng)分前臺(tái)業(yè)務(wù)和后臺(tái)業(yè)務(wù),
前臺(tái)業(yè)務(wù)是針對(duì)終端用戶使用,用戶注冊(cè)成網(wǎng)站會(huì)員后可以瀏覽商品,選購(gòu)商品,秒殺商品等。訪問個(gè)人中心還可以管理個(gè)人信息,購(gòu)物車和訂單。其功能模塊如下圖所示:
后臺(tái)業(yè)務(wù)是針對(duì)管理員用戶使用,管理員登錄后臺(tái)系統(tǒng)后可以對(duì)系統(tǒng)基本資料進(jìn)行管理,如商品管理,用戶管理,管理員賬戶管理,訂單管理,評(píng)價(jià)管理等。其功能模塊如下圖所示:
2. 詳細(xì)設(shè)計(jì)概述
本系統(tǒng)采用了SSH框架體系結(jié)構(gòu)的設(shè)計(jì),在整個(gè)開發(fā)過程中,盡可能采用復(fù)用的原則,例如使用工廠模式,JAVA反射機(jī)制達(dá)到統(tǒng)一數(shù)據(jù)庫(kù)操作,統(tǒng)一結(jié)果顯示等。
本文檔的詳細(xì)設(shè)計(jì)主要是按照SSH框架對(duì)視圖層JSP、控制器Struts、業(yè)務(wù)層Spring和持久層Hibernate進(jìn)行約定,為下一步的編碼提供基礎(chǔ)。
3. 詳細(xì)設(shè)計(jì)
系統(tǒng)前臺(tái)業(yè)務(wù)實(shí)現(xiàn)
3.1用戶注冊(cè)模塊
用戶注冊(cè)模塊負(fù)責(zé)前臺(tái)用戶成為網(wǎng)站會(huì)員,注冊(cè)成功的用戶信息添加到users表中
3.1.1 實(shí)現(xiàn)流程圖
3.1.2 輸入輸出規(guī)則
用戶注冊(cè)模塊輸入輸出規(guī)則
模塊名稱
用戶注冊(cè)
功能描述
用戶注冊(cè)成功后允許登錄系統(tǒng)并享有注冊(cè)用戶的權(quán)限
用戶角色
游客
模塊觸發(fā)條件
打開首頁(yè)選擇“立即注冊(cè)”
輸入規(guī)則
輸入用戶基本信息。要求符合格式,另外賬號(hào)不能重復(fù),郵箱不能重復(fù)
輸出結(jié)果
注冊(cè)成功后打開登錄界面
關(guān)鍵算法
1.查詢數(shù)據(jù)中是否存在相同的賬號(hào)和郵箱
2.格式驗(yàn)證
3.驗(yàn)證碼的生成和驗(yàn)證
數(shù)據(jù)庫(kù)操作
查詢用戶表,增加用戶信息
3.1.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
register.jsp
index.jsp
header.jsp
footer.jsp
UserAction.java
ValidateCodeServlet.java
IUserBiz.java
UserBizImpl.java
IUserDao.java
UserDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
注冊(cè)界面
register.jsp
登錄主頁(yè)面
首頁(yè)
index.jsp
前臺(tái)首頁(yè)面,包括header.jsp和footer.jsp,是為了網(wǎng)站統(tǒng)一風(fēng)格
頁(yè)面上端
header.jsp
復(fù)用頁(yè)面,記載用戶登錄信息及個(gè)人信息維護(hù)菜單以及網(wǎng)站Logo等信息
頁(yè)面尾端
footer.jsp
復(fù)用頁(yè)面,顯示廣告及友情鏈接信息
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
UserAction
register.jsp
execute() ()
成功:login.jsp
失?。簉egister.jsp
ValidateCodeServlet
register.jsp
doPost()
輸出驗(yàn)證碼
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IUserBiz.java
public void saveUser(Users user);
接收用戶對(duì)象,將用戶對(duì)象信息保存到數(shù)據(jù)庫(kù)
UserBizImpl.java
public void saveUser(Users user)
寫具體的HQL語句,調(diào)用Dao層方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IUserDao.java
IGenericDao
基類接口應(yīng)用泛型和反射機(jī)制,對(duì)數(shù)據(jù)的操作進(jìn)行統(tǒng)一處理,無需各持久層接口設(shè)計(jì)方法。
UserDaoImpl
IUserDao
AGenericHibernateDao
UserDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IUserDao接口
3.1.4 功能實(shí)現(xiàn)時(shí)序圖
3.2 用戶登錄模塊
用戶登錄是針對(duì)已注冊(cè)的用戶,登錄成功后,注冊(cè)用戶獲得購(gòu)物交易的相應(yīng)權(quán)限。
3.2.1 實(shí)現(xiàn)流程圖
3.2.2 輸入輸出規(guī)則
登錄模塊輸入輸出規(guī)則
模塊名稱
登錄
功能描述
用戶登錄系統(tǒng)以達(dá)到注冊(cè)用戶的系統(tǒng)權(quán)限
用戶角色
注冊(cè)用戶
模塊觸發(fā)條件
直接選擇登錄或在將商品加入購(gòu)物車時(shí)轉(zhuǎn)向登錄
輸入規(guī)則
按照注冊(cè)時(shí)輸入的用戶名和密碼及隨機(jī)驗(yàn)證碼。可以選擇兩周內(nèi)自動(dòng)登錄,則用戶名和密碼將存入cookie;如果不選將用戶對(duì)象存入session
輸出結(jié)果
登錄成功后打開首頁(yè),登錄用戶信息存放在cookie中或者是session中,用戶可以進(jìn)行購(gòu)買商品或?qū)ψ约旱男畔⑦M(jìn)行維護(hù)。
關(guān)鍵算法
1.查詢數(shù)據(jù)庫(kù)中用戶名和密碼
2.驗(yàn)證碼的生成和驗(yàn)證
3.兩周內(nèi)自動(dòng)登錄的選擇
4.根據(jù)用戶ID獲得用戶默認(rèn)收貨地址
數(shù)據(jù)庫(kù)操作
查詢用戶表
3.2.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
login.jsp
index.jsp
header.jsp
footer.jsp
UserAction.java
ValidateCodeServlet.java
IUserBiz.java
UserBizImpl.java
IReceiverBiz.java
RecieverBizImpl.java
IUserDao.java
UserDaoImpl.java
IReceiverDao.java
RecieverDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
登錄界面
login.jsp
登錄主頁(yè)面
首頁(yè)
index.jsp
前臺(tái)首頁(yè)面,包括header.jsp和footer.jsp,是為了網(wǎng)站統(tǒng)一風(fēng)格
頁(yè)面上端
header.jsp
復(fù)用頁(yè)面,記載用戶登錄信息及個(gè)人信息維護(hù)菜單以及網(wǎng)站Logo等信息
頁(yè)面尾端
footer.jsp
復(fù)用頁(yè)面,顯示廣告及友情鏈接信息
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
UserAction
login.jsp
UserLogin()
成功:index.jsp
失?。簂ogin.jsp
ValidateCodeServlet
login.jsp
doPost()
輸出驗(yàn)證碼
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IUserBiz.java
public Users CheckLogin(final String username,final String password);
接收用戶名和密碼查詢數(shù)據(jù)庫(kù)返回Users對(duì)象
UserBizImpl.java
public Users CheckLogin(final String username,final String password);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IUserDao.java
IGenericDao
基類接口應(yīng)用泛型和反射機(jī)制,對(duì)數(shù)據(jù)的操作進(jìn)行統(tǒng)一處理,無需各持久層接口設(shè)計(jì)方法。
UserDaoImpl.java
IUserDao
AGenericHibernateDao
UserDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IUserDao接口
3.2.4 功能實(shí)現(xiàn)時(shí)序圖
3.3 商品搜索-品牌檢索
用戶可以根據(jù)網(wǎng)站列出的鞋子品牌、款式進(jìn)行快速搜索鞋子。還可以根據(jù)商品名字進(jìn)行模糊搜素。另外可以根據(jù)尺碼、版型、顏色、品牌進(jìn)行綜合搜索。搜索到的鞋子以列表形式分頁(yè)顯示,可以對(duì)兩個(gè)及兩個(gè)以上鞋子進(jìn)行對(duì)比,可以查看某個(gè)鞋子的詳細(xì)信息。
本環(huán)節(jié)首先說明品牌搜索實(shí)現(xiàn)過程
3.3.1 品牌搜索實(shí)現(xiàn)流程圖
3.3.2 品牌搜索輸入輸出規(guī)則
商品品牌搜索顯示輸入輸出規(guī)則
模塊名稱
商品品牌搜索顯示
功能描述
根據(jù)商品品牌搜索鞋子
用戶角色
注冊(cè)用戶或游客
模塊觸發(fā)條件
打開網(wǎng)站首頁(yè)
輸入規(guī)則
用鼠標(biāo)單擊品牌鏈接
輸出結(jié)果
顯示同一品牌的所有鞋子列表
關(guān)鍵算法
1.品牌列表鏈接具備性別和品牌名稱參數(shù)
2.Action中獲取到性別及品牌名稱,根據(jù)性別和品牌名稱查找Shoes表
數(shù)據(jù)庫(kù)操作
查詢brands表和shoes表
3.3.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
left_menu.jsp
search.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
首頁(yè)左側(cè)品牌導(dǎo)航頁(yè)面
left_menu.jsp
列出品牌,款式及定制鏈接
搜索結(jié)果頁(yè)面
Search.jsp,其中包含search_result.jsp
根據(jù)前置條件將搜索結(jié)果列表顯示
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
ShoesAction
left_menu.jsp
SearchShoesByGenderBrand()
search_result.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public PageBean SearchShoesByGenderBrand(final String brandName,final String gender,final int currentPage,final int pageSize)
根據(jù)品牌名字,性別,當(dāng)前頁(yè)數(shù)和每頁(yè)記錄數(shù)查詢數(shù)據(jù)庫(kù)中鞋子信息返回分頁(yè)信息。
ShoesBizImpl.java
public PageBean SearchShoesByGenderBrand(final String brandName,final String gender,final int currentPage,final int pageSize)
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByPageBean()方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁(yè)信息的統(tǒng)一方法
public PageBean findByPageBean(final String hql,final Object[] param,final int currentpage,final int pageSize);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IShoesDao接口
3.3.4 功能實(shí)現(xiàn)時(shí)序圖
3.4 商品搜索-款式檢索
3.4.1 款式搜索實(shí)現(xiàn)流程圖
3.4.2 款式搜索輸入輸出規(guī)則
商品款式搜索顯示輸入輸出規(guī)則
模塊名稱
商品款式搜索顯示
功能描述
根據(jù)商品款式搜索鞋子
用戶角色
注冊(cè)用戶或游客
模塊觸發(fā)條件
打開網(wǎng)站首頁(yè)
輸入規(guī)則
用鼠標(biāo)單擊款式鏈接
輸出結(jié)果
顯示同一款式的所有鞋子列表
關(guān)鍵算法
1.款式列表鏈接具備款式名稱參數(shù)
2.Action中獲取到款式名稱,根據(jù)款式名稱查找Shoes表
數(shù)據(jù)庫(kù)操作
查詢types表和shoes表
3.4.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
left_menu.jsp
search.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
首頁(yè)左側(cè)品牌導(dǎo)航頁(yè)面
left_menu.jsp
列出品牌,款式及定制鏈接
搜索結(jié)果頁(yè)面
Search.jsp,其中包含search_result.jsp
根據(jù)前置條件將搜索結(jié)果列表顯示
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
ShoesAction
left_menu.jsp
SearchShoesByTypes()
search.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public PageBean SearchShoesByTypes(final String typename,final int currentPage,final int pageSize);
根據(jù)款式名稱,當(dāng)前頁(yè)數(shù)和每頁(yè)記錄數(shù)查詢數(shù)據(jù)庫(kù)中鞋子信息返回分頁(yè)信息。
ShoesBizImpl.java
public PageBean SearchShoesByTypes(final String typename,final int currentPage,final int pageSize);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByPageBean()方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁(yè)信息的統(tǒng)一方法
public PageBean findByPageBean(final String hql,final Object[] param,final int currentpage,final int pageSize);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IShoesDao接口
3.4.4 功能實(shí)現(xiàn)時(shí)序圖(同3.3.4)
3.5 商品搜索-根據(jù)商品名和產(chǎn)地模糊檢索
3.5.1 模糊搜索實(shí)現(xiàn)流程圖
3.5.2 模糊搜索輸入輸出規(guī)則
商品模糊搜索顯示輸入輸出規(guī)則
模塊名稱
商品名稱模糊搜索顯示
功能描述
根據(jù)商品名稱,產(chǎn)地搜索鞋子
用戶角色
注冊(cè)用戶或游客
模塊觸發(fā)條件
打開網(wǎng)站首頁(yè)
輸入規(guī)則
輸入商品名稱或產(chǎn)地關(guān)鍵字,并選擇男款還是女款
輸出結(jié)果
顯示包含名稱或產(chǎn)地關(guān)鍵字的所有鞋子列表
關(guān)鍵算法
1. 獲取表單鞋子名稱或產(chǎn)地關(guān)鍵字及性別
2. Action中獲取關(guān)鍵字和性別
3. 業(yè)務(wù)層根據(jù)關(guān)鍵字和性別查詢Shoes表
數(shù)據(jù)庫(kù)操作
查詢shoes表
3.5.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
header.jsp search.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
網(wǎng)站頭部獨(dú)立頁(yè)面
header.jsp
接收關(guān)鍵字和性別選擇
搜索結(jié)果頁(yè)面
Search.jsp,其中包含search_result.jsp
根據(jù)前置條件將搜索結(jié)果列表顯示
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
ShoesAction
header.jsp
FuzzySearch()
search.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public PageBean FuzzySearch(Object[] params,final int currentPage,final int pageSize);
根據(jù)鞋子名稱,產(chǎn)地關(guān)鍵字及性別,當(dāng)前頁(yè)數(shù)和每頁(yè)記錄數(shù)查詢數(shù)據(jù)庫(kù)中鞋子信息返回分頁(yè)信息。
ShoesBizImpl.java
public PageBean FuzzySearch(Object[] params,final int currentPage,final int pageSize);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByPageBean()方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁(yè)信息的統(tǒng)一方法
public PageBean findByPageBean(final String hql,final Object[] param,final int currentpage,final int pageSize);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IShoesDao接口
3.5.4 功能實(shí)現(xiàn)時(shí)序圖(同3.3.4)
3.6 商品搜索-根據(jù)尺碼,版型,顏色,品牌綜合檢索
3.6.1 綜合搜索實(shí)現(xiàn)流程圖
3.6.2 綜合搜索輸入輸出規(guī)則
商品綜合搜索顯示輸入輸出規(guī)則
模塊名稱
商品綜合搜索顯示
功能描述
根據(jù)鞋子尺碼,版型,顏色,品牌搜索鞋子
用戶角色
注冊(cè)用戶或游客
模塊觸發(fā)條件
打開網(wǎng)站首頁(yè)
輸入規(guī)則
輸入鞋子尺碼,版型,顏色,品牌
輸出結(jié)果
顯示符合綜合條件的所有鞋子列表
關(guān)鍵算法
1. 選擇鞋子尺碼,版型,顏色,品牌一個(gè)或多個(gè)條件
2. Action中獲取實(shí)際選擇的條件
3. 業(yè)務(wù)層根據(jù)選擇的條件查詢Shoes表
數(shù)據(jù)庫(kù)操作
查詢shoes表
3.6.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
search.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
網(wǎng)站頭部獨(dú)立頁(yè)面
Search.jsp
接收關(guān)鍵字和性別選擇
搜索結(jié)果頁(yè)面
Search.jsp,其中包含search_result.jsp
根據(jù)前置條件將搜索結(jié)果列表顯示
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
ShoesAction
search.jsp
execute()
search.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public List
FindShoesByObjects(String hql,Object[] params);
根據(jù)鞋子名稱,產(chǎn)地關(guān)鍵字及性別,當(dāng)前頁(yè)數(shù)和每頁(yè)記錄數(shù)查詢數(shù)據(jù)庫(kù)中鞋子信息返回分頁(yè)信息。
ShoesBizImpl.java
public List FindShoesByObjects(String hql,Object[] params);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByPageBean()方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁(yè)信息的統(tǒng)一方法
public PageBean findByPageBean(final String hql,final Object[] param,final int currentpage,final int pageSize);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IShoesDao接口
3.6.4 功能實(shí)現(xiàn)時(shí)序圖(同3.3.4)
3.7 商品詳情
3.7.1 商品詳情實(shí)現(xiàn)流程圖
3.7.2 商品詳情輸入輸出規(guī)則
商品詳情輸入輸出規(guī)則
模塊名稱
商品詳情顯示
功能描述
顯示指定鞋子的詳細(xì)信息
用戶角色
注冊(cè)用戶或游客
模塊觸發(fā)條件
打開商品列表頁(yè)
輸入規(guī)則
點(diǎn)擊鞋子圖片或商品名稱
輸出結(jié)果
顯示指定鞋子的詳細(xì)信息
關(guān)鍵算法
1. 鞋子列表中具有鞋子sid參數(shù)值
2. Action中獲取sid值
3. 在業(yè)務(wù)層中通過sid值獲取鞋子的詳細(xì)信息
數(shù)據(jù)庫(kù)操作
查詢shoes表
3.7.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
search_result.jsp
product_detail.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
鞋子列表頁(yè)面
search_result.jsp
顯示鞋子列表
鞋子詳情頁(yè)面
product_detail.jsp
顯示鞋子的詳細(xì)信息
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
ShoesAction
Search_result.jsp
FindBySid()
product_detail.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public Shoes FindById(final int sid);
根據(jù)鞋子id獲取鞋子對(duì)象
ShoesBizImpl.java
public Shoes FindById(final int sid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findById(sid)方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁(yè)信息的統(tǒng)一方法
public T findById(ID id);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IShoesDao接口
3.7.4 功能實(shí)現(xiàn)時(shí)序圖
3.8 添加購(gòu)物車
3.8.1 添加購(gòu)物車實(shí)現(xiàn)流程圖
3.8.2 添加購(gòu)物車輸入輸出規(guī)則
添加購(gòu)物車輸入輸出規(guī)則
模塊名稱
添加購(gòu)物車
功能描述
將鞋子添加到購(gòu)物車
用戶角色
注冊(cè)用戶
模塊觸發(fā)條件
登錄用戶打開商品詳情頁(yè)
輸入規(guī)則
選擇尺碼后添加到購(gòu)物車
輸出結(jié)果
打開購(gòu)物車頁(yè)面,顯示購(gòu)物車信息
關(guān)鍵算法
1.頁(yè)面判斷是否選擇尺碼和個(gè)人是否有默認(rèn)收貨地址
2.獲取鞋子編號(hào),尺碼和數(shù)量(默認(rèn)為1)
3. 添加到購(gòu)物車的Action中根據(jù)鞋子id,尺碼,購(gòu)買數(shù)量組合Shoesizes對(duì)象 ,shoesizes表中包含各鞋子對(duì)應(yīng)尺寸的庫(kù)存。
4. 如果鞋子沒有被刪除,并且?guī)齑媪看笥谫?gòu)買量,將鞋子信息添加到Map集合(購(gòu)物車 Cart ),并添加到session中
數(shù)據(jù)庫(kù)操作
查詢shoesizes表
3.8.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
product_detail.jsp
cart.jsp
cart_table.jsp
CartAction.java
IShoeSizesBiz.java
ShoeSizesBizImpl.java
IReceiverBiz.java
ReceiverBizImpl.java
IShoeSizesDao.java
ShoeSizesDaoImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
鞋子詳情頁(yè)面
product_detail.jsp
顯示鞋子的詳細(xì)信息
購(gòu)物車頁(yè)面
cart.jsp,其中包括cart_table.jsp
顯示購(gòu)物車的詳細(xì)信息
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
CartAction
product_detail.jsp
execute()
cart.jsp
CartAction
Product_detail.jsp
getDefaultAddress()
personal_center.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoeSizesBiz.java
public Shoesizes FindByShoesid(final int sid,final int count,final float sizes);
根據(jù)鞋子id,數(shù)量,尺寸獲取鞋子尺寸信息對(duì)象(包含庫(kù)存)
ShoeSizesBizImpl.java
public Shoesizes FindByShoesid(final int sid,final int count,final float sizes);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認(rèn)收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IShoeSizesDao.java
IGenericDao
根據(jù)條件參數(shù)獲取集合
public List findByObject(String hql,Object[] param);
ShoeSizesDaoImpl.java
IShoeSizesDao
AGenericHibernateDao
ShoeSizesDaoImpl
繼承AgenericHibernateDao類,實(shí)現(xiàn)IShoeSizesDao接口
IReceiverDao.java
IGenericDao
根據(jù)條件參數(shù)獲取集合
public List findByObject(String hql,Object[] param);
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl
繼承AgenericHibernateDao類,實(shí)現(xiàn)IReceiverDao接口
3.8.4 功能實(shí)現(xiàn)時(shí)序圖
3.9 刪除購(gòu)物車商品
3.9.1 刪除購(gòu)物車商品實(shí)現(xiàn)流程圖
3.9.2刪除購(gòu)物車商品輸入輸出規(guī)則
刪除購(gòu)物車商品輸入輸出規(guī)則
模塊名稱
刪除購(gòu)物車商品
功能描述
將鞋子從購(gòu)物車中刪除
用戶角色
注冊(cè)用戶
模塊觸發(fā)條件
登錄用戶在購(gòu)物車頁(yè)面選擇刪除商品
輸入規(guī)則
點(diǎn)擊“刪除商品”鏈接
輸出結(jié)果
顯示刪除商品后的購(gòu)物車信息頁(yè)面
關(guān)鍵算法
1. 獲取頁(yè)面隱藏域信息
2. 判斷當(dāng)前購(gòu)物車中有幾種商品(根據(jù)單個(gè)商品總價(jià))
3. 如果存在多種商品,通過js操作DOM對(duì)象刪除商品
4. 如果只剩下一種商品,則將購(gòu)物車清空,實(shí)際操作是將購(gòu)物車對(duì)象從session中刪除。
數(shù)據(jù)庫(kù)操作
無
3.9.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
cart.jsp
cart_table.jsp
OrderAction.java
無
無
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
購(gòu)物車頁(yè)面
cart.jsp,其中包括cart_table.jsp
顯示購(gòu)物車的詳細(xì)信息及相關(guān)js操作
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
OrderAction
cart_table.jsp
deleteCart()
index.jsp,清空購(gòu)物車后返回首頁(yè)
3.9.4 功能實(shí)現(xiàn)時(shí)序圖
不清空購(gòu)物車(略)
清空購(gòu)物車
3.10 結(jié)算購(gòu)物車商品
3.10.1 結(jié)算購(gòu)物車商品實(shí)現(xiàn)流程圖
3.10.2結(jié)算購(gòu)物車商品輸入輸出規(guī)則
結(jié)算購(gòu)物車商品輸入輸出規(guī)則
模塊名稱
結(jié)算購(gòu)物車商品
功能描述
確定購(gòu)物車中商品,提交結(jié)算
用戶角色
注冊(cè)用戶
模塊觸發(fā)條件
登錄用戶在購(gòu)物車頁(yè)面選擇“去結(jié)算”
輸入規(guī)則
點(diǎn)擊“去結(jié)算”鏈接
輸出結(jié)果
顯示購(gòu)物車所有商品結(jié)算信息和個(gè)人默認(rèn)收貨地址信息
關(guān)鍵算法
1. 獲取購(gòu)物車信息
2. 獲取個(gè)人默認(rèn)收貨地址信息
數(shù)據(jù)庫(kù)操作
查詢r(jià)eceives
3.10.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
cart.jsp
cart_table.jsp
OrderAction.java
IReceiverBiz.java
ReceiverBizImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
購(gòu)物車頁(yè)面
cart.jsp,其中包括cart_table.jsp
顯示購(gòu)物車的詳細(xì)信息及相關(guān)js操作
訂單頁(yè)面
ordersheet.jsp
訂單信息頁(yè)面(購(gòu)物車和收貨地址)
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
OrderAction
cart_table.jsp
execute()
ordersheet.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認(rèn)收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IReceiverDao.java
IGenericDao
根據(jù)條件參數(shù)獲取集合
public List findByObject(String hql,Object[] param);
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl
繼承AgenericHibernateDao類,實(shí)現(xiàn)IReceiverDao接口
3.10.4 功能實(shí)現(xiàn)時(shí)序圖
3.11直接購(gòu)買商品
3.11.1 直接購(gòu)買商品實(shí)現(xiàn)流程圖
3.11.2直接購(gòu)買商品輸入輸出規(guī)則
模塊名稱
直接購(gòu)買商品
功能描述
在商品詳情頁(yè)選擇直接購(gòu)買商品,功能類似添加到購(gòu)物車,只是直接購(gòu)買的商品不經(jīng)過購(gòu)物車頁(yè)面,直接到訂單頁(yè)
用戶角色
注冊(cè)用戶
模塊觸發(fā)條件
登錄用戶在詳情頁(yè)選擇“直接購(gòu)買”
輸入規(guī)則
選擇尺碼后點(diǎn)擊“直接購(gòu)買”鏈接
輸出結(jié)果
打開訂單頁(yè),顯示購(gòu)物車所有商品結(jié)算信息和個(gè)人默認(rèn)收貨地址信息
關(guān)鍵算法
1. 將商品添加到購(gòu)物車但不現(xiàn)實(shí)購(gòu)物車頁(yè)面
2. 獲取個(gè)人默認(rèn)收貨地址信息
數(shù)據(jù)庫(kù)操作
查詢shoesizes表和receives表
3.11.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
cart.jsp
cart_table.jsp
CartAction.java
IShoeSizesBiz.java
ShoeSizesBizImpl.java
IReceiverBiz.java
ReceiverBizImpl.java
IShoeSizesDao.java
ShoeSizesDaoImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
商品詳情頁(yè)面
product_detail.jsp
顯示商品詳情及“直接購(gòu)買”鏈接
訂單頁(yè)面
ordersheet.jsp
訂單信息頁(yè)面(購(gòu)物車和收貨地址)
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
CartAction
product_detail.jsp
Buynow()
ordersheet.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認(rèn)收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
IReceiverDao.java
IGenericDao
獲取分頁(yè)對(duì)象方法findByPageBean
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IReceiverDao接口
3.11.4 功能實(shí)現(xiàn)時(shí)序圖
3.12秒殺商品
3.12.1 秒殺商品實(shí)現(xiàn)流程圖
3.12.2秒殺商品輸入輸出規(guī)則
模塊名稱
秒殺商品
功能描述
有些商品在特定時(shí)期內(nèi)價(jià)格優(yōu)惠,用戶可以選擇搶在這期間提交訂單,俗成“秒殺”
用戶角色
注冊(cè)用戶
模塊觸發(fā)條件
登錄用戶在秒殺頁(yè)面“秒殺”
輸入規(guī)則
點(diǎn)擊“秒殺”鏈接
輸出結(jié)果
打開訂單頁(yè),顯示秒殺商品結(jié)算信息和個(gè)人默認(rèn)收貨地址信息
關(guān)鍵算法
1. 列出所有處于秒殺期間的商品
2. 判斷用戶的積分和商品秒殺所需積分
3. 獲取個(gè)人默認(rèn)收貨地址
數(shù)據(jù)庫(kù)操作
查詢shoesizes表,receives表,second_kills表
3.12.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
index.jsp
secondKillsLst.jsp secondKills.jsp
ordersheet.jsp
SecondKillsAction.java
OrderAction.java
ISecondKillsBiz.java
SecondKillsBizImpl.java
IReceiverBiz.java
ReceiverBizImpl.java
ISecondKillsDao.java
SecondKillsDaoImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
首頁(yè)
index.jsp
顯示“秒殺”鏈接,轉(zhuǎn)向秒殺商品頁(yè)面
秒殺有效商品顯示頁(yè)面
secondKillsLst.jsp
有效的,可以進(jìn)行秒殺的商品列表,分頁(yè)顯示
秒殺執(zhí)行頁(yè)面
secondKills.jsp
通過秒殺商品列表選擇某個(gè)商品,打開該商品的詳細(xì)信息和執(zhí)行秒殺操作
訂單頁(yè)面
ordersheet.jsp
執(zhí)行秒殺后轉(zhuǎn)向訂單頁(yè)
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
SecondKillsAction.java
index.jsp
execute()
secondKillsLst.jsp
SecondKillsAction.java
secondKillsLst.jsp
FindBySkid()
secondKills.jsp
OrderAction.java
secondKills.jsp
addSecondKill()
ordersheet.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
ISecondKillsBiz.java
//獲取有效秒殺商品
public PageBean findAvaliable(int currentpage,int pagesize);
//獲取單個(gè)秒殺商品對(duì)象
public SecondKills FidnById(int skid);
獲取有效秒殺商品在secondKillsLst.jsp中顯示,獲取單個(gè)秒殺商品對(duì)象是在secondKills.jsp中顯示
SecondKillsBizImpl.java
//獲取有效秒殺商品
public PageBean findAvaliable(int currentpage,int pagesize);
//獲取單個(gè)秒殺商品對(duì)象
public SecondKills FidnById(int skid);
寫具體的HQL語句訪問持久層findByPageBean和findByObject方法
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認(rèn)收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
ISecondKillsDao.java
IGenericDao
1.獲取分頁(yè)對(duì)象方法findByPageBean
2.根據(jù)條件獲取單個(gè)對(duì)象方法findByObject
SecondKillsDaoImpl.java
ISecondKillsDao
AGenericHibernateDao
SecondKillsDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)ISecondKillsDao接口
IReceiverDao.java
IGenericDao
獲取默認(rèn)對(duì)象方法findByObject
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IReceiverDao接口
3.12.4 功能實(shí)現(xiàn)時(shí)序圖
1)獲取秒殺商品列表
2)打開秒殺商品詳情頁(yè)
3)執(zhí)行秒殺
3.13定制商品(僅對(duì)一種商品)
3.13.1 定制商品實(shí)現(xiàn)流程圖
3.13.2定制商品輸入輸出規(guī)則
模塊名稱
定制商品
功能描述
本案例提供一種鞋子可以根據(jù)用戶自己喜好定制特定鞋子
用戶角色
注冊(cè)用戶
模塊觸發(fā)條件
登錄用戶在網(wǎng)站首頁(yè)“進(jìn)入專業(yè)定制首頁(yè)”
輸入規(guī)則
選擇鞋子各部分顏色,尺碼
輸出結(jié)果
打開訂單頁(yè),顯示定制商品信息和個(gè)人默認(rèn)收貨地址信息
關(guān)鍵算法
1. 根據(jù)定制鞋編號(hào)獲取可定制鞋信息
2.獲取個(gè)人默認(rèn)收貨地址
數(shù)據(jù)庫(kù)操作
查詢spcify_shoes表,receives表
3.13.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
index.jsp(left_menu.jsp)
specify_shoes_homepage.jsp specify_shoes.jsp
ordersheet.jsp
SpcifyShoesAction.java
CartAction.java
ISpcifySheosBiz.java
SpcifySheosBizImpl.java
ISpsSizesBiz.java
SpsSizesBizImpl.java
IReceiverBiz.java
ReceiverBizImpl.java
ISpcifySheosDao.java
SpcifySheosDaoImpl.java
ISpsSizesDao.java
SpsSizesDaoImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁(yè)面設(shè)計(jì)
界面
JSP
功能描述
首頁(yè)
index.jsp(left_menu.jsp)
顯示“定制”鏈接,轉(zhuǎn)向定制商品首頁(yè)
定制商品首頁(yè)面
specify_shoes_homepage.jsp
定制商品首頁(yè)面,jquery實(shí)現(xiàn)頁(yè)面效果
定制鞋頁(yè)面
specify_shoes.jsp
定制鞋子樣式,尺寸及數(shù)量
訂單頁(yè)面
ordersheet.jsp
執(zhí)行定制后轉(zhuǎn)向訂單頁(yè)
Action/Servlet設(shè)計(jì)
Action/Servlet
入口
方法
出口
SpcifyShoesAction.java
specify_shoes_homepage.jsp
FindBySpsid()
specify_shoes.jsp
CartAction.java
specify_shoes.jsp
execute()
ordersheet.jsp
業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
ISpcifySheosBiz.java
/ /獲取定制鞋對(duì)象
public SpcifyShoes FindBySpid(int spsid);
根據(jù)定制鞋編號(hào)獲得定制鞋對(duì)象
SpcifySheosBizImpl.java
/ /獲取定制鞋對(duì)象
public SpcifyShoes FindBySpid(int spsid);
寫具體的HQL語句訪問持久層findByObject方法
ISpsSizesBiz.java
public SpsSizes FindBySpsid(int spsid);
根據(jù)定制鞋編號(hào)獲得定制鞋尺寸對(duì)象
SpsSizesBizImpl.java
public SpsSizes FindBySpsid(int spsid);
寫具體的HQL語句訪問持久層findByObject方法
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認(rèn)收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計(jì)
持久層接口
基類接口
接口說明
ISpcifySheosDao.java
IGenericDao
獲取定制鞋對(duì)象方法findByObject
SpcifySheosDaoImpl.java
ISpcifySheosDao AGenericHibernateDao
SpcifySheosDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)ISpcifySheosDao接口
ISpsSizesDao.java
IGenericDao
獲取定制鞋尺寸對(duì)象方法findByObject
SpsSizesDaoImpl.java
ISpsSizesDao AGenericHibernateDao
SpsSizesDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)ISpsSizesDao接口
IReceiverDao.java
IGenericDao
獲取默認(rèn)對(duì)象方法findByObject
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl繼承AgenericHibernateDao類,實(shí)現(xiàn)IReceiverDao接口
3.13.4 功能實(shí)現(xiàn)時(shí)序圖
1)打開定制鞋頁(yè)面
2)打開定制鞋訂單頁(yè)
3.14生成訂單
3.14.1 生成訂單實(shí)現(xiàn)流程圖
3.14.2生成訂單輸入輸出規(guī)則
模塊名稱
生成訂單
功能描述
購(gòu)買
鏈接地址:http://weibangfood.com.cn/p-9477428.html