【正文】
rnate,創(chuàng)建 SessionFactory 實(shí)例。(3)Session 接口:負(fù)責(zé)保存、更新、刪除、加載和查詢持久化對(duì)象,充當(dāng)持久化管理。(5)Query 接口:執(zhí)行數(shù)據(jù)庫(kù)查詢,充當(dāng) Hibernate 查詢器。Criteria 查詢對(duì)查詢條件進(jìn)行了面向?qū)ο蠓庋b,符合編程人員的思維方式,不過 HQL(Hibernate Query Language)查詢提供了更加豐富的和靈活的查詢特性,因此 Hibernate 將 HQL 查詢方式立為官方推薦的標(biāo)準(zhǔn)查詢方式,HQL 查詢?cè)诤w Criteria 查詢的所有功能的前提下,提供了類似標(biāo)準(zhǔn) SQL 語(yǔ)句的查詢方式,同時(shí)也提供了更加面向?qū)ο蟮姆庋b。用 JSP 開發(fā)的 Web 應(yīng)用是跨平臺(tái)的,即能在 Linux 下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。網(wǎng)頁(yè)還能通過 tags 和 scriptlets 訪問存在于服務(wù)端的資源的應(yīng)用邏輯。 Web 服務(wù)器在遇到訪問 JSP 網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同 JSP 文件中的 HTML 代碼一起返回給客戶。 JSP 與 Java Servlet 一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML 文本,因此客戶端只要有瀏覽器就能瀏覽。 服 務(wù) 器 在 頁(yè) 面 被 客 戶 端 請(qǐng) 求 以 后 對(duì) 這 些 Java 代 碼 進(jìn) 行 處 理 ,然 后 將 生 成 的 HTML 頁(yè) 面 返 回 給 客 戶 端 的 瀏 覽 器 。 JSP具 備 了 Java 技 術(shù) 的 簡(jiǎn) 單 易 用 , 完 全 的 面 向 對(duì) 象 , 具 有 平 臺(tái) 無(wú) 關(guān) 性 且 安 全 可 靠 , 主要 面 向 因 特 網(wǎng) 的 所 有 特 點(diǎn) 。除了系統(tǒng)之外,代碼不用做任何更改?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。( 3)強(qiáng)大的可伸縮性。( 4)多樣化和功能強(qiáng)大的開發(fā)工具支持。 本章小結(jié)本章介紹了開發(fā)過程中使用的相關(guān)技術(shù)。在 Struts 框架中,業(yè)務(wù)邏輯由Javabean 來(lái)實(shí)現(xiàn),視圖層由 JSP 頁(yè)面和 ActionForm bean 組成,控制器由 ActionServlet和 Action 類實(shí)現(xiàn)。HQL(Hibernate Query Language)語(yǔ) 言 使 用 戶 可 用 對(duì) 象 直 接 對(duì) 數(shù) 據(jù) 庫(kù) 訪 問 , 而 不 用 面 對(duì) 一個(gè) 個(gè) 表 , 更 符 合 面 向 對(duì) 象 編 程 人 員 的 思 維 方 式 。第 3 章 體育商城網(wǎng)站的系統(tǒng)分析需求分析是軟件開發(fā)的第一步,是對(duì)用戶需求的定義,對(duì)軟件系統(tǒng)的描述。 體育商城網(wǎng)站需求分析隨著經(jīng)濟(jì)的發(fā)展,企業(yè)在市場(chǎng)上面對(duì)著越來(lái)越大的競(jìng)爭(zhēng)壓力,為了盡可能獲得更多的客戶群,提高企業(yè)業(yè)績(jī),他們絞盡腦汁推出新的營(yíng)銷方式。正因?yàn)槊媾R著前所未有的壓力,并且伴隨著互聯(lián)網(wǎng)的發(fā)展,許多商家選擇了網(wǎng)絡(luò)營(yíng)銷模式,即電子商務(wù),這種營(yíng)銷方式已經(jīng)為眾多企業(yè)帶來(lái)了豐厚的利潤(rùn),取得了成功!隨著電子商城的發(fā)展,營(yíng)銷產(chǎn)品的種類也得到進(jìn)一步細(xì)分。在這個(gè)系統(tǒng)中核心要考慮的問題是前臺(tái)顧客訪問商城、購(gòu)買商品、以及后臺(tái)系統(tǒng)管理員管理商城系統(tǒng)等的業(yè)務(wù)過程,分為兩個(gè)主要部分:(1) 前臺(tái)子系統(tǒng):此模塊面向的是廣大顧客,顧客可由此登錄商城主頁(yè),進(jìn)行商品瀏覽、會(huì)員注冊(cè)、購(gòu)買商品、購(gòu)物車管理、訂單管理、對(duì)產(chǎn)品進(jìn)行評(píng)價(jià)、下載文件等操作。 體育商城網(wǎng)站的用例分析 Actor 及其描述Actor 指的是系統(tǒng)的參與者,是具體用例的驅(qū)動(dòng)者。注冊(cè)用戶是系統(tǒng)的主要參與者,主要活動(dòng)有共享考研經(jīng)驗(yàn),發(fā)布出售考研資料,查詢資料,查詢考研經(jīng)驗(yàn)以及用戶個(gè)人信息的維護(hù)和對(duì)出售資料信息的維護(hù)。但由于權(quán)限的限制,未注冊(cè)用戶只能訪問有限的操作。注冊(cè)用戶注冊(cè)查詢商品管理購(gòu)物車下載文件查看留言登錄系 統(tǒng) 前 臺(tái) 用 例游客瀏覽商品發(fā)表留言圖 前臺(tái)系統(tǒng)用例圖(1) 檢索、瀏覽商品所有用戶可進(jìn)行檢索、瀏覽商品的操作,該用例包括發(fā)表留言,即對(duì)商品進(jìn)行評(píng)價(jià),但只有當(dāng)用戶登錄后才可進(jìn)行評(píng)價(jià)。具體用例如表 所示。具體用例如表 所示。具體用例如表 所示。具體用例描述如表 所示表 管理購(gòu)物車用例描述用例編號(hào) UC005用例描述 注冊(cè)會(huì)員可對(duì)購(gòu)物車進(jìn)行管理參與者 注冊(cè)用戶前置條件 用戶登陸成功后置條件 系統(tǒng)提供資源供用戶下載基本流程⑴用戶將選中商品放入購(gòu)物車⑵在購(gòu)物車中選擇要購(gòu)買的的商品⑶提交訂單候選流程 如果用戶未登錄,提示登陸并跳轉(zhuǎn)到登陸頁(yè)面 系統(tǒng)后臺(tái)用例分析系統(tǒng)后臺(tái)主要包含了管理商品、管理文件、管理訂單、管理會(huì)員和管理系統(tǒng)員等用例,后臺(tái)系統(tǒng)用例圖如圖 所示。具體用例描述如表 所示。具體用例描述如表 所示。具體用例描述如表 所示。具體用例描述如表 所示。查看商品時(shí)序圖如圖 所示。最后由 類根據(jù)配置文件將處理結(jié)果返回到 頁(yè)面中。注冊(cè)用戶d e f a u l t . j s pO r d e r A c t i o n . j a v a O r d e r S e r v i c e I m p l . j a v a**1 . 訂單管理2 . v i e w O r d e r ( )7 . r e t u r nM e r S e r v i c e I m p l . j a v a5 . l o a d M e r ( )6 . r e t u r n m e rO r d e r I n f o . j s p3 . b r o w s e O r d e r M e r ( )4 . r e t u r n l i s t圖 瀏覽訂單時(shí)序圖 本章小結(jié)本章對(duì)體育商城網(wǎng)站進(jìn)行了需求分析,從市場(chǎng)的需求和開發(fā)技術(shù)可行性的角度上看都是可行的,然后對(duì)系統(tǒng)各用例進(jìn)行了分析,主要非為了前臺(tái)用例和系統(tǒng)后臺(tái)管理用例,并利用用例表對(duì)各用例功能進(jìn)行了詳細(xì)闡述。第 4 章 體育商城網(wǎng)站的系統(tǒng)設(shè)計(jì)本系統(tǒng)采用 Struts 框架,利用其組件的模塊化,靈活性和重用性等優(yōu)點(diǎn),簡(jiǎn)化了基于 MVC 的 web 應(yīng)用程序的開發(fā)。此框架自帶的組件,例如 Validator、Menu 組件等都大大減少了開發(fā)量,使用這些組件可直接生成表單驗(yàn)證和菜單的功能。并且因?yàn)榫哂?ORM 對(duì)象,在對(duì)數(shù)據(jù)庫(kù)操作時(shí),可以面向?qū)ο蟛僮?。每個(gè)模塊包含若干功能,得到系統(tǒng)功能模塊圖如圖 所示。為方便用戶查找自己想要的商品,其中商品瀏覽可分為普通商品瀏覽和特價(jià)商品瀏覽,并且可根據(jù)商品的類別進(jìn)行瀏覽,在商品詳情中還設(shè)有客戶評(píng)價(jià)功能。用戶注冊(cè)需要填寫姓名、電話、地址等詳細(xì)信息。當(dāng)選擇好商品后,將其放入購(gòu)物車,放入購(gòu)物車但還未提交的商品,也可從購(gòu)物車中刪除。為了使用戶得到更多的產(chǎn)品信息知識(shí),設(shè)置了文件下載功能,在此顧客可在申請(qǐng)成為注冊(cè)用戶后下載資源文件中的文檔、視頻等。為限制管理員的權(quán)限,本系統(tǒng)將管理員權(quán)限分為 5 種,每個(gè)管理員只能擁有一種權(quán)限。當(dāng)注冊(cè)用戶購(gòu)買商品,提交訂單后,訂單管理員可進(jìn)行查看訂單、受理訂單、結(jié)單、刪除訂單的操作。為提供最新的信息給顧客,文件管理員會(huì)及時(shí)上傳有關(guān)產(chǎn)品的最新文檔和視頻等。 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)本網(wǎng)站在通信機(jī)制上以傳統(tǒng)的同步通信為主,在需要更新局部數(shù)據(jù)或處理一些簡(jiǎn)單數(shù)據(jù)傳遞時(shí)則采用異步通信。商城系統(tǒng)分層架構(gòu)示意圖 如下:視圖層 :J S P 頁(yè)面 、 H T M L 頁(yè)面 、 A c t i o n F o r m B e a n編碼過濾器控制層 :A c t i o n S e r v l e t ( 中央控制器 )S t r u t s c o n f i g . x m l ( 配置文件 )同步請(qǐng)求業(yè)務(wù)層 :各 A c t i o n 類 、 A j a x B e a n 類 、B a s e A c t i o n 類異步通信 A J A X 組件 J S O N R P C異步通信數(shù)據(jù)庫(kù)訪問 ( D A O ) 層 :各 D A O 接口 , 如 : F i l e S e r v i c e 接口各 D A O 接口的實(shí)現(xiàn) , 如 F i l e S e r v i c e I m p l 類H i b e r n a t e 中間件 ( O R M ):H i b e r n a t e . c f g . x m l ( 配置文件 )S e s s i o n F a c t o r y 類 、 O R M 映射文件 , 如 :F i l e . h b m . x m l 等 , 實(shí)體類如 : F i l e . j a v a 等M y S Q L 數(shù)據(jù)庫(kù) ( D B ):各數(shù)據(jù)庫(kù)表 , 如 :M e m b e r ( 會(huì)員表 ) 、 F i l e s h a r e ( 文件表 )同步響應(yīng)用戶圖 商城系統(tǒng) MVC 分層架構(gòu)圖表示層負(fù)責(zé)與系統(tǒng)用戶進(jìn)行交互,主要是為用戶顯示頁(yè)面,接受用戶操作命令,向下層傳遞參數(shù),主要由 jsp 文件以及 struts 標(biāo)簽庫(kù)組成。業(yè)務(wù)邏輯層主要負(fù)責(zé)完成用戶所指定的業(yè)務(wù)邏輯以及調(diào)用數(shù)據(jù)庫(kù)訪問層。這樣劃分層次,使軟件系統(tǒng)結(jié)構(gòu)清晰,邏輯相互獨(dú)立,實(shí)現(xiàn)了松散耦合。用戶數(shù)據(jù)庫(kù)查詢商品選購(gòu)商品放入購(gòu)物車提交訂單填寫個(gè)人信息圖 商城主業(yè)務(wù)流程圖本文除了提供購(gòu)買商品的主業(yè)務(wù)以外,還添加了附加的功能。用戶可在商品詳情頁(yè)面對(duì)商品進(jìn)行評(píng)價(jià),以供他人參考。 數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù) ER 圖設(shè)計(jì)ER 模型是數(shù)據(jù)庫(kù)概要設(shè)計(jì)中廣泛采用的方法。根據(jù)系統(tǒng)的需求分析,我們從中抽取出用戶、管理員、訂單、文件、留言等實(shí)體。N商品類別 商品1注冊(cè)會(huì)員有N 1 1留言 發(fā)表N有會(huì)員級(jí)別1屬于N1購(gòu)物車存放N管理員回復(fù)N11訂單提交N文件上傳 1N如圖 數(shù)據(jù)庫(kù) ER 圖 數(shù)據(jù)庫(kù)表設(shè)計(jì) 管理員表 Admin管理員表的表名為 admin,用于存儲(chǔ)管理員的基本信息。其中 ID 字段作為主鍵,每新增一個(gè)管理員,ID 自增 1。為了不讓后臺(tái)管理的職責(zé)集中于一人,細(xì)化后臺(tái)管理員的權(quán)限,本文設(shè)置了 AdminType 字段,此字段為管理員類型,在本設(shè)計(jì)中共有 5 種管理員類型 1,2,3,4,5,分別對(duì)應(yīng)了商品管理員、訂單管理員、會(huì)員管理員、系統(tǒng)管理員和文件管理員。表 管 理 員 各 字 段 設(shè) 計(jì) 表字段 類型 主鍵 外鍵 可否為空 說明ID INT 是 否 否 管理員 ID 號(hào)AdminType INT 否 否 是 管理員類型AdminName CHAR(12) 否 否 是 管理員姓名LoginName CHAR(12) 否 否 是 登錄名LoginPwd CHAR(12) 否 否 是 登錄密碼 訂單表 orders訂單表的表名為 orders,用于存儲(chǔ)訂單信息。訂單主要由顧客下單產(chǎn)生,所以與會(huì)員表有著緊密的聯(lián)系,設(shè)置外鍵會(huì)員 ID 號(hào) Member 使兩表在物理上形成一定關(guān)系。字段訂單編號(hào)為隨機(jī)產(chǎn)生的 13 位數(shù)字。訂單表的各字段設(shè)計(jì)如表 所示。因?yàn)樾枰谫?gòu)物車表中獲取會(huì)員信息,故設(shè)置購(gòu)物車 ID 號(hào)為外鍵作為索引,使此表與購(gòu)物車表相關(guān)聯(lián)。購(gòu)物車商品選購(gòu)表如表 所示。當(dāng)顧客購(gòu)買物品、查看購(gòu)物車時(shí)將訪問該表。購(gòu)物車表的各字段設(shè)計(jì)如表 所示。此表的字段較少,主要作為商品表的關(guān)聯(lián)表。商品類別表的各字段設(shè)計(jì)如表 所示。設(shè)置文件編號(hào) ID 為主鍵方便索引查找。由程序控制取得文件大小、文件格式等文件信息。表 文件各字段設(shè)計(jì)表字段 類型 索引 可否為空 說明ID INT 是 否 文件編號(hào)FileName VARCHAR(40) 否 否 文件名FilePath VARCHAR(100) 否 否 文件路徑FileSize INT 否 否 文件大小FileFormat VARCHAR(10) 否 否 文件格式 留言表 leaveword留言表的表名為 leaveword,用于存儲(chǔ)留言信息。此表中沒有設(shè)置外鍵,故沒有與其他表在物理上形成關(guān)聯(lián)。只有在會(huì)員登錄后才能進(jìn)行留言,留言信息將通過程序?qū)崿F(xiàn)顯示會(huì)員信息;同時(shí),會(huì)員只能對(duì)某件商品進(jìn)行留言,故商品信息也會(huì)在留言信息中出現(xiàn)。留言內(nèi)容采用的是小文本類型 TEXT當(dāng)留言表的各字段設(shè)計(jì)如表 所示。此表?yè)碛休^多的字段,因?yàn)樯坛切枰敿?xì)的會(huì)員信息。在顯示會(huì)員信息時(shí),需要調(diào)用會(huì)員等級(jí)表的信息,故應(yīng)在會(huì)員表和會(huì)員等級(jí)表間建立聯(lián)系,在表中設(shè)置會(huì)員等級(jí) ID 號(hào)為外鍵,這樣在顯示會(huì)員信息時(shí)即可查找會(huì)員等級(jí)表的會(huì)員等級(jí)信息。會(huì)員表的各字段設(shè)計(jì)如表 所示。此字段只擁有三個(gè)字段,分別為主鍵 ID 號(hào)、級(jí)別名稱和折扣。會(huì)員級(jí)別表的各字段設(shè)計(jì)如表 所示。此表也擁有較多的字段,因?yàn)橐M可能詳細(xì)地向用戶呈現(xiàn)商品信息,使用戶可以更準(zhǔn)確地根據(jù)商品信息選擇適當(dāng)?shù)漠a(chǎn)品。字段 Special 用于判斷商品是否為特價(jià)商品,當(dāng)取值為 0 時(shí),表明非特價(jià)商品;當(dāng)取值為 1 時(shí),則是特價(jià)商品。商品表的各字段設(shè)計(jì)如表 所示。在本網(wǎng)站中,這些 Action 負(fù)責(zé)處理頁(yè)面提交上來(lái)的業(yè)務(wù)請(qǐng)求,調(diào)用 中相應(yīng)的接口對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問。接口設(shè)計(jì)如表 所示。在功能設(shè)計(jì)中詳細(xì)描述了前臺(tái)系統(tǒng)和后臺(tái)系統(tǒng)的主要功能。業(yè)務(wù)流程設(shè)計(jì)描述了商城主要業(yè)務(wù)購(gòu)買商品,用購(gòu)買商品流程圖清晰地表述了購(gòu)買商品的過程。接口設(shè)計(jì)用表的形式展示了用于操作數(shù)據(jù)庫(kù)的接口。 軟件開發(fā)平臺(tái) 數(shù)據(jù)庫(kù)本系統(tǒng)采用的是 MySQL 數(shù)