【正文】
(Crosscutting Concerns),在應用時將它們插入代碼中,使得代碼有良好的可重用性。 Spring 是一個輕型容器,其核心是 Bean 工廠,用以構(gòu)造我們所需要的 Model。浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 4 Spring 使用基本的 Java Bean 來完成以前只可能由 EJB 完成的事 情。如果在軟件開發(fā)中采用面向?qū)ο蟮姆绞竭M行設(shè)計,而使用的是關(guān)系數(shù)據(jù)庫,就可以選用 Hibernate 這 種框架來實現(xiàn)對象和關(guān)系之間的映射和數(shù)據(jù)的持久化。這樣就避免手工編寫訪問數(shù)據(jù)持久層的方法,可以大幅度減少開發(fā)時人工使用 SQL 和 JDBC 處理數(shù)據(jù)的時浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 5 間,降低了開發(fā)的難度。每個層在處理應用程序上都應該有一項明確的責任,而不應該在功能上與其它層混合,并且每個層要與其它層分開的,但要給他們之間放一個通信接口。 JSTL 包含兩個部分:標簽庫和 EL( Expression Language 表達式語言)語言。它還支持使用本地化資源束進行 JSP 頁面的國際化。本系統(tǒng)主要分為前臺部分和后臺部分,前臺部分主要實現(xiàn)的功能針對顧客使用,有顧客的注冊和登錄功能、個人信息維護功能、查看商品信息功能、搜索商品的功能 、購物車功能、收藏夾功能;后臺部分主要由商城的管理員使用,有管理商品信息功能、管理商品目錄功能、管理訂單信息功能、管理注冊會員功能。 ? 顧客可以靈活地檢索 所需的商品信息。 ? 顧客可管理自己的收藏夾(包括添加或刪除選購商品、放入購物車等操作)。 ? 管理員可以對商品目錄進行管理(新增、刪除、修改商品目錄信息)。如此搭建出一個穩(wěn)定的適于系統(tǒng)的應用開發(fā)運行環(huán)境。曾被JavaWorld 雜志評為最具創(chuàng)新的 Java 產(chǎn)品 (Most Inovative Java Product),同時它又是Sun 公司官方推薦的 Servlet 和 JSP 容器。 系統(tǒng)結(jié)構(gòu) 整個系統(tǒng)的架構(gòu)設(shè)計遵循 MVC 模式,將展示層、控制層、模型層(業(yè)務邏輯層)及持久層進行合理分離。這些具體任務合理地組織起來構(gòu)成總體任務。 浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 11 已登錄會員注 冊 登 陸查 看 搜 索 商品 信 息購 物 車 管 理個 人 信 息 管理收 藏 夾 管 理未注冊/未登錄顧客管理員商 品 目 錄 管 理商 品 管 理訂 單 管 理會 員 管 理B 2 C 數(shù) 據(jù) 庫 圖 41 B2C 系統(tǒng) 總體模塊 圖 功能模塊 B2C 系統(tǒng)大致可以劃分為 9 個功能模塊: 用戶 顧客注冊、登錄模塊 用戶 可以通過填寫注冊信息注冊成為會員, 會員登陸后可以進行個人信息管理和購物車等重要操作,未登錄或未注冊的顧客只能檢索 瀏覽商品信息 和購物車處理。 修改用戶名/ 昵稱 驗證密碼修改用戶名/ 昵稱成功修改密碼驗證密碼/ 新密碼修改密碼成功管理地址簿查看一個月內(nèi)訂單查看全部訂單取消訂單查看取消訂單添加新地址 修改地址 刪除地址是否為配送首要地址 圖 44 個人信息管理 模塊活動圖 購物車 /收藏夾 模塊 顧客未登錄時,選中商品可添加購物車;可對選中的商品進行修改購買數(shù)量、刪除;清空購物車等操作。 商品顯示列表進入商品管理模塊添加新商品修改商品 刪除商品 圖 47 商品管理模塊活動圖 商品目錄管理模塊 管理員可以查看商品 父目錄和子目錄 , 并且 可以 進行 新增、修改、刪除商品 父 /子目錄等操作。 ? 注冊用戶與地址欄為一對多關(guān)聯(lián):一個用戶可以有多個地址,而每個地址只能屬于一個用戶。 ? 商品目錄與商品為一對多關(guān)聯(lián):一個商品目錄可以有多個商品,而每個商品浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 18 只能屬于一個商品目錄 。 下圖為過濾器配置文件。 會員登錄時,首先在 中登錄,提交之后,登錄表單的內(nèi)容由 Struts 自動封裝到 UsersLoginForm 對象中,并提交到 Validator 進行表單有效性驗證,如果驗證失敗則返回 要求重新登錄,驗證成功就將 UsersLoginForm 對象提交給UsersLoginAction 進行處理,處理完成后將處理結(jié)果返回 并完成登錄 。 浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 25 地址修改 A d d r e s s C h a n g e A c t i o n地址刪除 A d d r e s s D e l e t e A c t i o n地址添加 A d d r e s s I n s e r t A c t i o n首要地址設(shè)置 A d d r e s s P r i m a r y A c t i o n地址欄顯示 A d d r e s s S h o w A c t i o n訂單取消 O r d e r D e l e t e A c t i o n昵稱/ 用戶名修改 UsersModifyProfileAction用戶密碼修改 U s e r C h a n g e P w d A c t i o n用戶地址修改請求我的賬戶瀏覽地址刪除請求地址添加請求首要地址設(shè)置請求結(jié)果展示返回地址欄顯示請求訂單取消請求昵稱/ 用戶名修改請求會員昵稱/ 用戶名訂單顯示管理密碼修改地址管理地址添加地址修改用戶密碼修改請求 圖 56 個人信息管理模塊圖 購物車 /收藏夾 模塊 未登錄會員即可進行購物車的管理;登錄會員才能進行收藏夾操作。 商品目錄刪除 C a t e g o r y D e l e t e A c t i o n 商品父目錄修改 CategoryEdit1Action 商品子目錄修改 C a t e g o r y E d i t A c t i o n 商品目錄添加 C a t e g o r y I n s e r t A c t i o n 商品目錄顯示管理 CategoryShowAction管理員商品目錄刪除請求商品目錄顯示管理商品父目錄修改請求商品子目錄修改請求商品目錄添加請求結(jié)果展示返回商品目錄顯示管理請求商品目錄添加商品父目錄修改商品子目錄修改 浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 27 圖 510 后臺 商品目錄管 模塊圖 后臺訂單管理模塊 訂單顯示 O r d e r A d m i n S h o w A c t i o n 訂單處理 O r d e r D e a l A c t i o n管理員訂單顯示請求訂單管理顯示結(jié)果展示返回訂單處理請求 圖 511 后臺 訂單管 模塊圖 訂單是由會員在購物后,成功提交訂單后產(chǎn)生的,從下單到結(jié)單中間還要經(jīng)過訂單受理和處理的過程。 圖 61 MySQL Query Browser 圖 2. 在 中進行開發(fā)與測試 ,配置 Tomcat 后開啟。 ListCategory l=(1)。 ((i), l1)。這時候點擊第一個商品的購買按鈕,將會轉(zhuǎn)至購物車頁面(圖 67);點擊收藏,跳轉(zhuǎn)至登陸頁面(圖 65) ;點擊第一個商品名稱或者圖片 ,跳轉(zhuǎn) 商品詳細介紹( 圖69)。amp。} int count=(sid)。 int PageSize = ()。} List ll = (sid, pid)。amp。amp。 商品顯示 JSP 頁面主要代碼: logic:notEmpty name=showdiscount 浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 30 logic:iterate id=r indexId=i name=showdiscount DIV class=itemDIV class=pic html:link action=/w/?prodid=${} html:img page=${} border=0 width=94height=125 / /html:link/DIVDIV class=Name html:link action=/w/?prodid=${}${ }/html:link /DIVLI STRIKEfmt:formatNumber value=${} pattern=, / /STRIKE/LILI ${ }折 /LILI fmt:formatNumber value=${*} pattern=, //LI/DIV/logic:iterate/logic:notEmpty 點擊左邊 “圖書 ”一欄,分頁顯示圖書這一類商品。i()。 中間分為左右 兩部分, 左邊為 商品類別, 點擊 可以瀏覽此類別的商品,右邊分別為 熱薦商品 和 打折專賣 ,都以 3 個為單位在首頁展示出來,可以進行查看 詳情操作。 后臺 會員 管理模塊 管理員登錄成功后,才能對各 會員 的信息進行管理操作。 浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 26 管理員 會員注冊登陸結(jié)果提示會員表單B e a nAdminLoginForm提交重新填寫AdminLoginAction提交返回提示信息 圖 58 后臺登錄模塊圖 后臺商品管理模塊 此模塊的頁面包括有瀏覽商品分類頁面 ,新增商品分類頁面,修改商品分類頁面 。 控制層 Struts 的實現(xiàn): 顧客請求均通過直接調(diào)用 Action 類的相應方法進行處理, Action 類中的方法在收到請求后,根據(jù)具體的請求調(diào)用 自己寫的方法或者 相應 DAO方法完成數(shù)據(jù)庫的訪問 與操作 ,并將檢索得到的結(jié)果返回給 Action, Action 將最終的處理結(jié)果保存到 request 對象中,由相應的 JSP 頁面展示出來。 浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 23 工程 包層次 結(jié)構(gòu) 圖 53 工程包層次結(jié)構(gòu)圖 說明: ? src 存放 JAVA 源代碼 ? bean 存放一些 FORM 用到的 JAVA 集合 ? hib 存放所有與數(shù)據(jù)庫操作相關(guān)的 DAO 類 ? struts 存放所有 Struts 的 FormBean、 Action 類及消息資源文件 ? b 存放所有后臺管理所用到的 JSP 頁面 ? CSS 存放 CSS 樣式表文件 ? image 存放應用中所有的圖片素材文件 ? JS 存放應用中所有的 JavaScript 腳本文件 ? upload 存放應用中所有上傳的圖片文件 詳細模塊設(shè)計 顧客注冊、登錄模塊 顧客只有通過注冊才 能成為會員,會員只有登錄后才能進行管理自己的 收藏夾 、訂單等操作。 數(shù)據(jù)表設(shè)計 表 51 注冊會員表 ( users) 字段名稱 數(shù)據(jù)類型 主鍵 是否允許為空 描述 USERS_ID BIGINT(20) √ 會員的 ID號 BONUSPOINT BIGINT(20) 外鍵 會員 積分 的 ID LOGONID VARCHAR(30) 登錄賬號 LOGONPASSWORD VARCHAR(45) √ 登錄密碼 USERTYPE CHAR(3) √ 用戶類別 :A為管理員; C為用戶 USERNAME VARCHAR(30) √ 昵稱 STATUS INTEGER √ 用戶是否可用 REGISTRATION TIMESTAMP √ 注冊時間 MEMBERCLASS CHAR(10) √ 用戶級別 表 52 地址 欄 表( address) 字段名稱 數(shù)據(jù)類型 主鍵 是否允許為空 描述 ADDRESS_ID BIGINT(20) √ 地址欄 ID號 USERS_ID BIGINT(20) 外鍵 會員的 ID號 USERNAME VARCHAR(30) √ 配送姓名 ISPRIMARY INTEGER 是否為主要地址 PROVINCE VARCHAR(30) 省 ZIPCODE VARCHAR(10) 郵編 SELFADDRESS VARCHAR(256) 配送地址 TEL VARCHAR(30) 固定電話 MOBILE VARCHAR(30) 移動電話 MARKFORDELETE INTEGER 刪除標記 表 53 商品表 ( product) 字段名稱 數(shù)據(jù)類型 主鍵 是否允許為空 描述 PRODUCT_ID BIGINT(20) √ 商品 的 ID號 CATEGORY_ID_PARENT BIGINT(20) 外鍵 商品類 別的 ID 浙江工業(yè)大學之江學院畢業(yè)設(shè)計(論文) 19 PRODUCTNAME VARCHAR(100) √ 商品名稱 PRICE DECIMAL(20,2) √ 商品價格