




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、編號黑龍江生物科技職業(yè)學(xué)院畢 業(yè) 論 文論 文 題 目:基于Struts+Hibernate+Ajax電子商城系統(tǒng)所屬系 (專業(yè)): 信息工程系 (計算機應(yīng)用技術(shù))班 級 (學(xué) 號): 應(yīng)用07-4 (200761010401)論 文 作 者: 毛愛輝 指 導(dǎo) 教 師: 張金柱 完 成 時 間: 10 年 06 月 2 日畢 業(yè) 論 文 鑒 定 書一、指導(dǎo)教師評語(指導(dǎo)教師填寫)二、畢業(yè)論文成績 指導(dǎo)教師簽字: 年 月 日目 錄一 引 言4二 相關(guān)知識和技術(shù)背景5三 系統(tǒng)需求分析7四 系統(tǒng)概要設(shè)計10五 系統(tǒng)詳細設(shè)計16六 系統(tǒng)實現(xiàn)29結(jié)論31致謝33摘要:人們將傳統(tǒng)的商店轉(zhuǎn)移到了網(wǎng)上,模擬一
2、般商店的經(jīng)營模式,形成了各式各樣的網(wǎng)上電子商城。本系統(tǒng)針對現(xiàn)在的發(fā)展趨勢,以Struts框架和Hibernate框架為基礎(chǔ)進行應(yīng)用開發(fā),并使用Ajax的技術(shù)實現(xiàn)異步通信的機制。Struts和Hibernate為本電子商城系統(tǒng)的開發(fā)提供了現(xiàn)成的通用的框架。將Ajax技術(shù)運用到Web應(yīng)用中來,相當于用戶和服務(wù)器之間加了一個中間層。現(xiàn)在將這些技術(shù)整合起來,使得系統(tǒng)在各方面都能達到要求,并有利于系統(tǒng)的維護和升級。系統(tǒng)分為前臺部分和后臺部分,前臺部分主要實現(xiàn)的功能有顧客的注冊和登錄功能、查看商品信息功能、搜索商品的功能、購物車功能、反饋意見或留言功能,修改登錄會員的資料;后臺部分主要實現(xiàn)商品管理員管理商
3、品信息及特價商品信息、訂單管理員管理訂單信息、會員管理員管理顧客的情況及查看顧客的反饋信息、系統(tǒng)管理員可以對管理員進行管理。關(guān)鍵詞: 網(wǎng)上電子商城系統(tǒng);Struts框架;Hibernate框架;Ajax技術(shù);MVC模式一 引 言因特網(wǎng)的迅猛發(fā)展正以前所未有的深度和廣度影響和改變著人們各個方面的生活,越來越多的人開始意識到因特網(wǎng)所蘊含的巨大經(jīng)濟價值和無窮商機,并積極投身于電子商務(wù)活動。實際上,電子商務(wù)是一些商業(yè)行為的電子化,例如網(wǎng)上商店、網(wǎng)上貿(mào)易等。就網(wǎng)上電子商城來說,在應(yīng)用方面具有一定的影響力和成功性。網(wǎng)上電子商城的崛起對傳統(tǒng)的商品流通體系產(chǎn)生了強烈的沖擊,有效地縮短了商品流通發(fā)行環(huán)節(jié),將廣大
4、顧客、銷售商、開發(fā)商緊密地結(jié)合在一起,大大提高了商品流通率。電子商務(wù)的網(wǎng)上實踐,是從網(wǎng)上銷售開始的,“網(wǎng)上商店”打破了傳統(tǒng)的銷售形式商店,將商店和網(wǎng)絡(luò)結(jié)合;是一種典型的電子商務(wù)網(wǎng)站運用?!熬W(wǎng)上商店”實際上是運行在Web服務(wù)器中的一個Web運用程序?!熬W(wǎng)上商店”模擬一般的商店的經(jīng)營模式。電子商務(wù)將成為二十一世紀人類信息世界的核心,也是網(wǎng)絡(luò)應(yīng)用的發(fā)展方向,具有無法預(yù)測的增長前景。電子商務(wù)還將構(gòu)筑二十一世紀新型的經(jīng)濟貿(mào)易框架。大力發(fā)展電子商務(wù),對于國家以信息化帶動工業(yè)化的戰(zhàn)略,實現(xiàn)跨越式發(fā)展,增強國家競爭力,具有十分重要的戰(zhàn)略意義。主要體現(xiàn)在各種網(wǎng)上電子商城的開發(fā),包括涉及查看商品、定制商品、購物車
5、等內(nèi)容。網(wǎng)上商城遍布各個行業(yè),各大城市,目前國內(nèi)外知名的網(wǎng)站,包括淘寶網(wǎng)、網(wǎng)易等大型網(wǎng)上購物網(wǎng)站?;蛘叻謮K的網(wǎng)上購物網(wǎng)站,比如說網(wǎng)上書店、網(wǎng)上電子城等等,形形色色的網(wǎng)上購物系統(tǒng)競相產(chǎn)生,使得電子商務(wù)得到了一定的發(fā)展。本系統(tǒng)以Struts框架和Hibernate框架為基礎(chǔ)進行應(yīng)用開發(fā),并加以Ajax的技術(shù)實現(xiàn)異步通信的機制。Struts和Hibernate為本電子商城系統(tǒng)的開發(fā)提供了現(xiàn)成的通用的框架,Struts框架提供全套MVC模式的代碼,極大地節(jié)省了時間;Hibernate框架完成數(shù)據(jù)持久化的重任,將數(shù)據(jù)庫的操作提升到一個面向?qū)ο蟮膶用嫔蟻怼jax技術(shù)運用到Web應(yīng)用中來,相當于用戶和服
6、務(wù)器之間加了一個中間層。將這些技術(shù)整合起來的時候,使該系統(tǒng)在健壯性、代碼重用和可擴充方面上了一個新的臺階,有利于系統(tǒng)的維護和升級。本文共分為六部分。第一部分為引言,介紹課題的背景以及研究的意義等;第二部分介紹了相關(guān)知識,簡要的介紹了J2EE, Struts框架, Hibernate框架,Ajax技術(shù)等。第三部分提出了系統(tǒng)需求分析,并使用用例圖確定了系統(tǒng)的各個功能模塊。第四部分根據(jù)以上需求作出系統(tǒng)的概要設(shè)計。第五部分是系統(tǒng)的詳細設(shè)計部分,包含了數(shù)據(jù)庫設(shè)計,架構(gòu)設(shè)計以及詳細的模塊設(shè)計。第六部分為系統(tǒng)的實現(xiàn)部分,主要描述了系統(tǒng)的環(huán)境配置,主要代碼以及系統(tǒng)的界面。二 相關(guān)知識和技術(shù)背景(一) J2EE
7、概述J2EE(Java 2 Platform, Enterprise Edition)是SUN 公司定義的一個開發(fā)分布式企業(yè)級應(yīng)用的規(guī)范。它提供了一個多層次的分布式應(yīng)用模型和一系列開發(fā)技術(shù)規(guī)范。多層次分布式應(yīng)用模型是指根據(jù)功能把應(yīng)用邏輯分成多個層次,每個層次支持相應(yīng)的服務(wù)器和組件,組件在分布式服務(wù)器的組件容器中運行,容器間通過相關(guān)的協(xié)議進行通信,實現(xiàn)組件間的相互調(diào)用。遵從這個規(guī)范的開發(fā)者將得到行業(yè)的廣泛支持,使企業(yè)級應(yīng)用的開發(fā)變得簡單、快速。J2EE為搭建具有可伸縮性、靈活性、易維護性的商務(wù)系統(tǒng)提供了良好的機制。(二) MVC設(shè)計模式與Struts架構(gòu)MVC(Model-View-Contro
8、ller)模式是現(xiàn)在世界上非常流行的一種設(shè)計模式。MVC包括三類對象,Model是應(yīng)用對象,View是它在屏幕上的表示,Controller定義用戶界面對用戶輸入的響應(yīng)方式。在JSP開發(fā)中最常使用的Model 2實際上就符合MVC模式。在Model 2體系結(jié)構(gòu)中,Servlet首先攔截客戶端請求,此Servlet也被稱為控制器Servlet。此Servlet處理請求的初始處理過程,決定要顯示的下一個JSP頁面。Struts架構(gòu)是Model 2體系結(jié)構(gòu)的擴展,它包括一個控制器Servlet、JSP頁面和應(yīng)用程序的商業(yè)邏輯Bean。Controller層在Struts架構(gòu)中,主要的控制組件是Act
9、ionServlet和ActionMapping。View層這部分由JSP技術(shù)實現(xiàn)。通過Struts提供的標記庫html、Bean、Logic以及Template來創(chuàng)建JSP表單,并實現(xiàn)了和Model部分的ActionForm的映射,完成對用戶數(shù)據(jù)的封裝。Model層Struts由Action和ActionForm對象組成,Action對象封裝著具體的處理邏輯,由它來調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交給合適的View組件。(三)O/R映射與Hibernate架構(gòu)在信息系統(tǒng)的開發(fā)過程中,由于絕大多數(shù)業(yè)務(wù)模型都涉及到關(guān)系數(shù)據(jù)庫,在采用Java作為信息系統(tǒng)的開發(fā)語言時,傳統(tǒng)Web應(yīng)用開發(fā)方法是直接用J
10、DBC與數(shù)據(jù)庫交互??紤]到Java的面向?qū)ο笮院完P(guān)系型數(shù)據(jù)庫的關(guān)系型結(jié)構(gòu)相差甚遠,因此很有必要引入一種在對象與關(guān)系型數(shù)據(jù)庫之間的直接映射機制,這種映射應(yīng)該是最大量地使用配置文檔,以便今后業(yè)務(wù)邏輯更改后是盡可能地修改映射文件而不是Java源代碼,因此出現(xiàn)了O/R映射模式。有很多開源項目都使用Java實現(xiàn)了這個O/R映射,而Hibernate是其中最為優(yōu)秀的實現(xiàn)架構(gòu)之一。由于Hibernate實現(xiàn)了O/R映射,現(xiàn)在模型部分使用持續(xù)化對象類而不再是冗長的JDBC語句,從而使得模型部分得到極大的簡化。(四) Struts與Hibernate的整合集成Struts架構(gòu)與Hibernate架構(gòu)的方法是利用
11、Struts架構(gòu)作為系統(tǒng)的整體基礎(chǔ)架構(gòu),它負責了MVC的分離,而在Struts架構(gòu)的模型部分,利用Hibernate架構(gòu)來提供持續(xù)層支持。具體做法是首先分析系統(tǒng)的需求,并利用面向?qū)ο蟮姆治龇椒▉硖岢鲆粋€完整的領(lǐng)域模型(最好用UML表示出來),將這些領(lǐng)域模型采用Java語言實現(xiàn)出基本的Java對象(POJO)。然后寫出基本的DAO接口,并給出Hibernate的DAO實現(xiàn)(同時給出POJO與數(shù)據(jù)庫之間的映射文檔),在業(yè)務(wù)類BO中,調(diào)用采用Hibernate架構(gòu)實現(xiàn)的DAO類來實現(xiàn)Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問,最后在Struts架構(gòu)的控制器部分的Action中調(diào)用BO來完成業(yè)務(wù)邏輯。這樣,就
12、利用DAO模式來實現(xiàn)了Struts架構(gòu)與Hibernate架構(gòu)的無縫集成。(五) JavaScript語言概述JavaScript是一中基于對象(Object)和事件驅(qū)動(Event Driven)并具有安全性能的腳本語言。使用它的目的是與HTML超文本標記語言、Java腳本語言(Java小程序)一起實現(xiàn)在一個Web頁面中鏈接多個對象,與Web客戶交互的作用。從而可以開發(fā)客戶端的應(yīng)用程序等。它是嵌入或調(diào)入在標準的HTML語言中實現(xiàn)的。JavaScript語言可以做到響應(yīng)使用者的需求時間(form的輸入),而不用任何的網(wǎng)絡(luò)來回傳輸資料,所以當一位使用者輸入一項資料時,它不用經(jīng)過傳給服務(wù)器端(se
13、rver)處理,再傳回來的過程,而直接可以被客戶端(client)應(yīng)用的程序所處理。它的出現(xiàn)彌補了HTML語言的缺陷,是Java與HTML折中的選擇。(六 ) AJAX技術(shù)AJAX是“Asynchronous JavaScript and XML” (異步JavaScript和XML)的縮寫,是一種運用JavaScript和可擴展標記語言(XML),在網(wǎng)絡(luò)瀏覽器和服務(wù)器之間傳送或接收數(shù)據(jù)的技術(shù),是Web2.0的核心之一。AJAX不是一項全新的技術(shù),它是一道包括JavaScript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest在內(nèi)的大雜燴。它使用XHTML和CSS標
14、準化呈現(xiàn),使用DOM實現(xiàn)動態(tài)顯示和交互,使用XML和XSTL進行數(shù)據(jù)交換與處理,使用XMLHttpRequest進行異步數(shù)據(jù)讀取,最后用JavaScript綁定和處理所有數(shù)據(jù)。AJAX的工作原理相當于在用戶和服務(wù)器之間加了一個中間層,使用戶請求與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負擔的工作轉(zhuǎn)交給客戶端,利用客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔。三 系統(tǒng)需求分析(一)系統(tǒng)模塊介紹網(wǎng) 上 電 子 商 城 系 統(tǒng)前 臺 部 分后 臺 部 分顧 客 注 冊 登 錄查 看 商 品 信 息搜 索 商 品 信 息顧 客 購 物 車顧 客 反 饋 意 見管 理 商 品 信 息管 理 訂 單
15、 信 息管 理 會 員 和 留言管 理 管 理 員本系統(tǒng)主要分為前臺部分和后臺部分,前臺部分主要實現(xiàn)的功能針對顧客使用,有顧客的注冊和登錄功能、查看商品信息功能、搜索商品的功能、購物車功能、反饋意見或留言功能;后臺部分主要由商城的管理員使用,分別為實現(xiàn)商品管理員管理商品信息及特價商品信息、訂單管理員管理訂單信息、會員管理員管理顧客的情況及產(chǎn)看顧客的反饋信息、系統(tǒng)管理員可以對管理員進行管理。這里的模塊主要按照使用者不同進行分配。圖3-1 本系統(tǒng)的前臺部分和后臺部分模塊它們各自的功能如下所述:1) 前臺部分l 前臺部分主要包括以下幾個方面,顧客的注冊登錄,顧客查看商品信息,搜索商品信息,查看購物車
16、,刪除購物車,修改購物車,確認下訂單操作,查看留言反饋信息,增加留言信息,修改顧客自己的信息等。這里的使用對象主要是顧客。l 首先顧客可以方便地注冊與登錄。若還未注冊的顧客只能進行商品的查看,不能購物;未注冊的顧客可進入注冊頁面進行注冊,然后可以選擇不同的會員級別,有不同的打折率。但是若顧客不符合要求或是有重大表現(xiàn),后臺的管理員可以對其會員級別進行調(diào)整。l 顧客可以靈活地檢索所需的商品信息及了解特價商品信息??刹捎藐P(guān)鍵字搜索。l 顧客可以方便地查看詳細的商品資料。l 顧客可管理自己的購物車(包括添加或刪除選購商品、修改商品購買數(shù)量及在線下訂單等操作)。l 顧客還可以反饋自己的意見或留言。2)
17、后臺部分l 后臺部分,管理員必須登錄才能進行管理,管理員根據(jù)不同的權(quán)限可以進行相應(yīng)的操作。l 商品管理員可以方便地管理商品及特價商品信息(新增、刪除、修改商品信息及特價商品信息)。l 訂單管理員可以查看訂單、發(fā)貨與缺貨處理。l 會員管理員可以查看顧客的注冊信息以及調(diào)整會員的級別,還可以查看顧客的反饋信息及具體的處理情況,進行回復(fù)。l 系統(tǒng)管理員可以進行管理員的管理(新增、刪除、修改管理員信息)。(二) 確定用戶需求要求不同類型的用戶擁有不同的功能,具體用戶類型包括:后臺管理員(商品管理員、訂單管理員、會員管理員、系統(tǒng)管理員),顧客(未注冊或未登錄用戶,登錄用戶)。用例圖如下(圖3-2,圖3-3
18、):圖3-2 后臺管理員用例圖圖3-3 前臺顧客用例圖(三)需求規(guī)定3.1運行環(huán)境需求1) 設(shè)備一臺具備Microsoft Windows XP系統(tǒng)計算機2) 支持軟件(1)開發(fā)工具平臺:Windows XPWEB SERVER:Tomcat 5.0數(shù)據(jù)庫:MySQL 5.0相關(guān)類庫:struts、hibernate、Ajax等四 系統(tǒng)概要設(shè)計(一) 總體設(shè)計1.1.1 環(huán)境配置此系統(tǒng)都基于JDK1.5開發(fā)并測試,采用Tomcat 5.0做Web服務(wù)器,并在基于MyEclipse 6.0的平臺上開發(fā)并測試運行,數(shù)據(jù)庫采用關(guān)系數(shù)據(jù)庫MySQL 5.0。如此搭建出一個穩(wěn)定的適于系統(tǒng)的應(yīng)用開發(fā)運行環(huán)
19、境。Java開發(fā)包J2SDK(Java 2 Software Development Kit)是基于Java軟件開發(fā)的前提。J2SDK簡稱JDK,JDK1.5仍是目前的主打。Tomcat是一個免費的開源的Serlvet容器,它是Apache基金會的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。曾被JavaWorld雜志評為最具創(chuàng)新的Java產(chǎn)品(Most Inovative Java Product),同時它又是Sun公司官方推薦的Servlet和JSP容器。Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。MyEclipse是Ecl
20、ipse的插件,集成了對Spring、Struts、Hibernate等主流Java EE組件開發(fā)插件的支持,大大簡化了Java EEj應(yīng)用的開發(fā)。MySQL是由MySQL AB公司開發(fā)、發(fā)布并支持的全世界最流行的開源SQL數(shù)據(jù)庫管理系統(tǒng),目前最新版本為MySQL5.0,對存儲過程、觸發(fā)器和視圖有了很好的支持,成為開源數(shù)據(jù)庫之首選。1.1.2 系統(tǒng)結(jié)構(gòu)此系統(tǒng)在通訊機制上以傳統(tǒng)的同步通信為主,在需要更新局部數(shù)據(jù)或處理一些簡單的數(shù)據(jù)傳遞時采用異步通信。整個系統(tǒng)的架構(gòu)設(shè)計遵循MVC模式,將展示層、控制層、模型層(業(yè)務(wù)邏輯層)及持久層進行合理分離。視圖層(View)將采用JSP頁面、HTML頁面、Ac
21、tionForm Bean、Displaytag、Struts-menu來實現(xiàn)。控制層(Controller)用于提供應(yīng)用的控制,對提交的不同請求,根據(jù)要求轉(zhuǎn)發(fā)到適當?shù)奶幚斫M件去,主要有ActionServlet(中央控制器)和struts-config.xml(配置文件)。模型層(Model)用于存儲數(shù)據(jù)并且讓其它組件能容易的訪問和更新,由各Action類、AjaxBean類、BaseLog類、BaseAction類組成。數(shù)據(jù)庫訪問層(DAO,Data Access Object)主要包括各DAO接口和各DAO接口的實現(xiàn)。Hibernate中間件(ORM,Object Relational
22、Mapping)有hibernate.cfg.xml(配置文件)、SessionFactory類、ORM映射文件和實體類。用戶主要與視圖層接觸,進行對頁面的請求訪問,等待回應(yīng)。視圖層同步請求編碼過濾器,訪問控制層,再通過模型層訪問數(shù)據(jù)庫,返回相應(yīng)數(shù)據(jù),由控制層響應(yīng),由視圖層顯示。視圖層的異步通信則通過AJAX組件JSON-RPC,直接通過模型層來訪問數(shù)據(jù)庫,又由模型層響應(yīng)異步通行AJAX組件,顯示在視圖層。V 視圖層C 控制層M 模型層DAO 數(shù)據(jù)庫訪問層ORM Hibernate中間件DB MySQL數(shù)據(jù)庫編碼過濾器異步通信AJAX組件用 戶圖4-1 此系統(tǒng)MVC分層架構(gòu)示意圖1.1.3 總
23、體模塊總體設(shè)計是把總體任務(wù)分解為許多基本的、具體的任務(wù)。這些具體任務(wù)合理地組織起來構(gòu)成總體任務(wù)。其基本任務(wù)是將系統(tǒng)劃分成模塊,決定每個模塊的功能,決定模塊的調(diào)用關(guān)系,決定模塊的界面及模塊間信息的傳遞。已 登 錄 會 員注冊、登錄查看、搜索商品信息購物車管理顧客留言修改會員資料未登錄會員或未注冊顧客商品管理員系統(tǒng)管理員會員管理員訂單管理員商品種類管理商品和特價商品管理會員信息管理會員留言信息管理訂單信息管理管理員信息管理此 數(shù)據(jù)庫總體設(shè)計過程首先尋找實現(xiàn)目標系統(tǒng)的各種不同的方案。通常,設(shè)計出初步的軟件結(jié)構(gòu)后還要多方改進,從而得到更合理的結(jié)構(gòu),進行必要的數(shù)據(jù)庫設(shè)計。圖4-2 此系統(tǒng)總體模塊圖1.2
24、 功能模塊此系統(tǒng)大致可以劃分為11個功能模塊:1.2.1 顧客注冊、登錄模塊顧客可以通過填寫注冊信息注冊成為會員,會員登錄后才能進行購物車的管理與意見反饋,未登錄的會員或未注冊的顧客只能檢索與瀏覽商品信息。顧客注冊時可以選擇不同的會員級別,有不同的打折率。但是若顧客不符合要求或是有重大表現(xiàn),后臺的管理員可以對其會員級別進行調(diào)整。在注冊信息時,系統(tǒng)會對注冊信息進行有效性的驗證,有效才會注冊成功。圖4-3 顧客注冊、登錄模塊活動圖1.2.2 商品檢索、瀏覽模塊顧客可以直接查看商品的全部信息(如商品名稱、商品圖片、商品型號、商品價格、生產(chǎn)廠商、生產(chǎn)日期等),也可以根據(jù)不同的商品種類瀏覽商品信息,也可
25、以透過輸入關(guān)鍵字對商品進行檢索,查看其信息。圖4-4 商品檢索、瀏覽模塊活動圖1.2.3 特價商品檢索、瀏覽模塊類似于商品檢索、瀏覽模塊,顧客可以直接查看特價商品的全部信息(如商品名稱、商品圖片、商品型號、商品價格、商品特價、生產(chǎn)廠商、生產(chǎn)日期等),也可以根據(jù)不同的商品種類瀏覽特價商品信息,也可以透過輸入關(guān)鍵字對特價商品進行檢索,查看其信息。圖4-5 商品檢索、瀏覽模塊活動圖1.2.4 購物車模塊顧客經(jīng)過登錄后便可以進行購物車的管理,將選中的商品增加到購物車中、修改選購商品的數(shù)量、刪除購物車中的商品、查看購買商品的總價、在線下訂單及訂單查看等操作。圖4-6 購物車模塊活動圖1.2.5 會員反饋
26、信息、留言模塊顧客登錄成功后,進入留言信息填寫頁面,可發(fā)表自己的意見或留言,經(jīng)驗證有效方可提交。也可進入查看別人的留言或管理員的回復(fù)。圖4-7 顧客反饋信息、留言模塊活動圖1.2.6 后臺登錄模塊后臺管理員輸入賬號密碼可以在后臺登錄,登錄驗證模塊根據(jù)輸入的賬號密碼識別不同角色的管理員,然后進入不同的后臺管理模塊,賬號密碼輸入錯誤后給出錯誤提示并要求重新輸入。圖4-8 后臺登錄模塊活動圖1.2.7 商品管理模塊商品管理員可以查看商品種類和信息,可以新增、修改、刪除商品的種類,同樣可以查看商品和特價商品,對其進行新增、修改、刪除商品和特價商品的信息等操作。圖4-9 商品、特價商品管理模塊活動圖1.
27、2.8 訂單管理模塊訂單管理員登錄后,可以根據(jù)日期范圍、訂單完成狀態(tài)、訂單編號等取得訂單列表與查看某訂單的詳情,也可以修改訂單的完成狀態(tài)及訂單中的商品或數(shù)量,還可以刪除訂單本身及訂單中的商品。圖4-10 訂單管理模塊活動圖1.2.9 會員管理模塊會員管理員登錄后,可以根據(jù)注冊時間范圍、會員級別及會員ID取得會員列表,然后對某個會員可以進行詳細資料的查看、會員級別的調(diào)整與刪除會員的操作;也可以根據(jù)留言時間范圍、回復(fù)狀態(tài)及會員ID取得留言列表,然后對某個留言進行內(nèi)容查看、回復(fù)與刪除操作。圖4-11 會員管理模塊活動圖1.2.10 系統(tǒng)管理員管理模塊系統(tǒng)管理員登錄后,可以根據(jù)管理員列表進行管理員詳細
28、資料的查看、新增管理員、修改管理員信息以及刪除管理員操作。圖4-12 系統(tǒng)管理員管理模塊活動圖1.2.11 退出系統(tǒng)模塊在前臺部分和后臺部分都設(shè)置了退出系統(tǒng)模塊。在前臺部分,會員退出系統(tǒng)后,仍可以瀏覽、檢索商品的操作。在后臺部分,管理員退出系統(tǒng),即回到管理員登錄頁面。五 系統(tǒng)詳細設(shè)計(一) 數(shù)據(jù)庫設(shè)計1.1概念數(shù)據(jù)模型設(shè)計圖5-1 此系統(tǒng)的概念數(shù)據(jù)模型CDM圖從圖5-1可看出各數(shù)據(jù)表之間的各種關(guān)聯(lián)關(guān)系,各關(guān)聯(lián)關(guān)系將會在Hibernate的映射文件中體現(xiàn)出來。l 會員級別與注冊會員為一對多關(guān)聯(lián):一個會員級別可以有多個注冊會員,而一個會員只能屬于一中會員級別。l 商品類別與商品為一對多關(guān)聯(lián):一個商
29、品類別可以有多個商品,而一個商品只能屬于一種商品類別。l 注冊會員與訂單為一對多關(guān)聯(lián):一個會員可以有多張訂單,而一張訂單只能屬于一個會員。l 購物車與商品為多對多關(guān)聯(lián):一個購物車可以有多個商品,而一個商品也可以放入多個購物車,在數(shù)據(jù)庫的物理實現(xiàn)上,通過連接表“購物車商品選購表”實現(xiàn)購物車與商品的多對多關(guān)聯(lián)。l 訂單與購物車為一對一關(guān)聯(lián):一張訂單與一個下訂單的購物車相對應(yīng)。l 注冊會員與留言為一對多關(guān)聯(lián):一個會員可以有多個留言,而一個留言只能屬于一個會員。l 系統(tǒng)管理員與留言為一對多關(guān)聯(lián):一個管理員可以回復(fù)多個留言,而一個留言只能由一個管理員回復(fù)。1.2 數(shù)據(jù)表設(shè)計表5-1 會員級別表(Memb
30、erLevel)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint會員級別的ID號LevelNamechar(20)級別名稱Favourableint優(yōu)惠百分比表5-2 注冊會員表(Member)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint會員的ID號Memberlevelint外鍵會員級別的IDLoginNamechar(12)登錄賬號LoginPwdchar (12)登錄密碼MemberNamechar (20)真實姓名Phonechar (15)聯(lián)系電話Addressnvarchar(100)聯(lián)系地址Zipchar (10)郵政編碼RegDatedatetime注冊日期LastDateda
31、tetime最近登錄日期LoginTimesint登錄次數(shù)EMailnvarchar(100)電子郵箱表5-3 商品類別表(Category)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint商品類別的ID號CateNamenchar(40)類別名稱CateDesctext類別描述表5-4 商品表(Merchandise)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint商品的ID號Categoryint外鍵商品類別的IDMerNamenchar(40)商品名稱Pricedecimal(8,2)商品價格SPricedecimal(8,2)商品特價MerModelnchar(40)商品型號Picture
32、nvarchar(100)商品圖片MerDesctext商品描述Manufacturernchar(60)生產(chǎn)廠家LeaveFactoryDatedatetime生產(chǎn)日期Specialint有無特價(0:無,1:有)表5-5 購物車表(Cart)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint購物車的ID號Memberint外鍵會員IDMoneydecimal(9,2)總金額CartStatusint購物車狀態(tài)表5-6 購物車商品選購表(CartSelectedMer)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint選購ID號Cartint外鍵購物車IDMerchandiseint外鍵商品IDNu
33、mberint商品數(shù)量Pricedecimal(8,2)商品價格Moneydecimal(9,2)金額表5-7 訂單表(Orders)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint訂單ID號Memberint外鍵會員IDCartint外鍵購物車IDOrderNOnchar(20)訂單編號OrderDatedatetime訂單日期OrderStatusint訂單狀態(tài)表5-8 系統(tǒng)管理員表(Admin)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint系統(tǒng)管理員ID號AdminTypeint管理員類型AdminNamechar(12)管理員真實姓名LoginNamechar(12)管理員登錄賬號Log
34、inPwdchar(12)管理員登錄密碼(管理員類型分為4種:1商品管理員,2訂單管理員,3會員管理員,4系統(tǒng)管理員)表5-9 留言表(LeaveWord)字段名稱數(shù)據(jù)類型主鍵是否允許為空描述IDint留言ID號Memberint外鍵會員IDAdminint外鍵管理員IDTitlenchar(40)留言標題Contenttext留言內(nèi)容LeaveDatedatetime留言日期AnswerContenttext回復(fù)內(nèi)容AnswerDatedatetime回復(fù)日期1.3 架構(gòu)設(shè)計1.3.1 常量類Constants設(shè)計此系統(tǒng)中的所有消息key以靜態(tài)屬性的形式存放到常量類Constants中,所有
35、需要用到消息key的地方通過調(diào)用Constants的相應(yīng)屬性實現(xiàn),這有利于消息key的統(tǒng)一維護和管理。package com.base;/* 常量類 */public class Constants public static String ADMIN_LOSTNAME_KEY = "admin.lostName"public static String ADMIN_LOSTPWD_KEY = "admin.lostPwd"public static String ADMIN_LOGINERROR_KEY = "admin.loginerror
36、"將本系統(tǒng)中的所有消息內(nèi)容以鍵值對的形式存放于消息資源文件ApplicationTperties中,實現(xiàn)消息內(nèi)容的統(tǒng)一維護與管理,也便于應(yīng)用國際化實現(xiàn)。1.3.2 帶日志功能的基類設(shè)計創(chuàng)建一個帶日志功能的基類BaseLog.java,簡化Log4j在JavaBean中的應(yīng)用,繼承基類BaseLog的所有JavaBean均享受父類的日志功能。然后創(chuàng)建一個帶有日志功能的基類BaseAction.java,簡化Log4j在Struts Action中的應(yīng)用,繼承基類BaseAction的所有Action均享受父類的日志功能。1.3.3 應(yīng)用配置文件在Web應(yīng)用描述文
37、件web.xml中配置中文過濾器、Struts標簽庫組件、Struts中央控制器ActionServlet及默認的歡迎文件列表等。<!-配置Struts中央控制器-> <servlet> <servlet-name>action</servlet-name> <servlet-class></servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-conf
38、ig.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <lo
39、ad-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>1.3.4 Struts配置文件在Struts配置文件struts-config.xml中主要配置:l 配置ActionForm Beanl<form-beans > <form-b
40、ean name="loginForm" type="com.struts.form.LoginForm" /> <form-bean name="adminForm" type="com.struts.form.AdminForm" /> <form-bean name="cateForm" type="com.struts.form.CateForm" /> <form-bean name="merForm" typ
41、e="com.struts.form.MerForm" /> <form-bean name="memLoginForm" type="com.struts.form.MemLoginForm" /> <form-bean name="memberForm" type="com.struts.form.MemberForm" /> </form-beans>l 配置全局轉(zhuǎn)發(fā)關(guān)系l 配置Action映射l 配置消息資源 <message-resour
42、ces parameter="com.struts.ApplicationResources" />l 配置Struts-menu插件 <plug-in className="net.sf.navigator.menu.MenuPlugIn"> <set-property property="menuConfig" value="/WEB-INF/menu-config.xml"/> </plug-in>l 配置Validator插件<plug-in classNam
43、e="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in>圖5-2 struts-config.xml配置文件的Design圖1.3.5 Hibernate配置文件在Hibernate配置文件中主要配置有:l 配置JDBC連接l 解決HQL查詢中直接使
44、用中文的問題l 配置C3P0連接池l 在控制臺顯示SQL語句l 注冊O(shè)RM 映射文件<mapping resource="com/ORM/Memberlevel.hbm.xml" /><mapping resource="com/ORM/Merchandise.hbm.xml" /><mapping resource="com/ORM/Admin.hbm.xml" /><mapping resource="com/ORM/Orders.hbm.xml" /><m
45、apping resource="com/ORM/Cartselectedmer.hbm.xml" /><mapping resource="com/ORM/Cart.hbm.xml" /><mapping resource="com/ORM/Leaveword.hbm.xml" /><mapping resource="com/ORM/Category.hbm.xml" /><mapping resource="com/ORM/Member.hbm.xml
46、" />1.3.6 工程包層次結(jié)構(gòu)圖5-3工程包層次結(jié)構(gòu)圖說明:m src存放JAVA源代碼m base存放一些基本類與常量類m filter存放編碼過濾器m ORM存放Hibernate的實體類及ORM映射文件m service存放所有與數(shù)據(jù)庫操作相關(guān)的DAO類m struts存放所有Struts的FormBean、Action類及消息資源文件m Admin存放所有后臺管理所用到的JSP頁面m CSS存放CSS樣式表文件m images存放應(yīng)用中所有的圖片素材文件m JS存放應(yīng)用中所有的JavaScript腳本文件m Picture存放應(yīng)用中所有上傳的圖片文件1.4 詳細模塊
47、設(shè)計1.4.1 顧客注冊、登錄模塊顧客只有通過注冊菜能成為會員,會員只有登錄后才能進行管理自己的購物車、訂單及留言等操作。圖5-4顧客注冊、登錄模塊圖控制層Struts的實現(xiàn):顧客將注冊的表單提交之后,reg.jsp表單的內(nèi)容由Struts自動封裝到memberFrom對象中,并送交Validator進行表單有效性驗證,如果驗證失敗則返回reg.jsp要求顧客重新填寫,驗證成功就將memberForm對象提交給MemAction的reg方法進行處理,處理完后將提示信息返回reg.jsp并完成注冊。會員登錄時,首先在default.jsp中登錄,提交之后,登錄表單的內(nèi)筒有Struts自動封裝到m
48、emLoginForm對象中,并提交到Validator進行表單有效性驗證,如果驗證失敗則返回default.jsp要求重新登錄,驗證成功就將memLoginForm對象提交給LoginAction的login方法進行處理,處理完成后將處理結(jié)果返回default.jsp并完成登錄。1.4.2 商品和特價商品檢索、瀏覽模塊顧客與會員可以根據(jù)不同的商品種類瀏覽商品信息,也可以輸入關(guān)鍵字進行商品檢索??刂茖覵truts的實現(xiàn):顧客請求均通過直接調(diào)用MerAction類的相應(yīng)方法進行處理,MerAction類中的方法在收到請求后,根據(jù)具體的請求調(diào)用MerService接口中的相應(yīng)DAO方法完成數(shù)據(jù)庫的
49、訪問,并將檢索得到的結(jié)果返回給MerAction,MerAction將最終的處理結(jié)果保存到request對象中,由相應(yīng)的JSP頁面展示出來。圖5-5商品和特價商品檢索、瀏覽模塊圖1.4.3 購物車模塊會員輸入賬號與密碼登錄后便可進行購物車的管理了。圖5-6購物車模塊圖1.4.4 會員反饋信息、留言模塊顧客在未成功登錄時,只能查看現(xiàn)有的留言及回復(fù)信息,會員成功登錄后菜能進行留言。圖5-7會員反饋信息、留言模塊圖1.4.5 后臺登錄模塊后臺管理員按職責與權(quán)限的不同共分為4種,共用同一個后臺登錄模塊,系統(tǒng)根據(jù)輸入的賬號和密碼來確定管理員的身份,以決定該管理員的操作權(quán)限。圖5-8后臺登錄模塊圖1.4.
50、6 后臺商品和特價商品管理模塊商品管理員成功登錄后,才能進行商品的管理操作。圖5-9后臺商品和特價商品管模塊圖此模塊的頁面包括有瀏覽商品分類頁面adminCate.jsp,新增商品分類頁面adminAddCate.jsp,修改商品分類頁面adminModiCate.jsp,瀏覽商品頁面adminMer.jsp,新增商品頁面adminAddMer.jsp,修改商品頁面adminModiMer.jsp,查看商品頁面adminViewMer.jsp,瀏覽特價商品頁面adminSMer.jsp,新增特價商品頁面adminAddSMer.jsp,修改特價商品頁面adminModiSMer.jsp,查看特
51、價商品頁面adminViewSMer.jsp。1.4.7 后臺訂單管理模塊圖5-10后臺訂單管模塊圖訂單是由會員在購物后,成功提交訂單后產(chǎn)生的,從下單到結(jié)單中間還要經(jīng)過訂單受理和處理的過程。訂單管理員成功登錄后,才能進行訂單的管理操作。1.4.8 后臺會員管理模塊會員管理員成功登錄后,才能進行對會員和留言的管理操作。圖5-11后臺會員管模塊圖1.4.9 后臺系統(tǒng)管理員管理模塊系統(tǒng)管理員登錄成功后,才能對各管理員的信息進行管理操作。圖5-12后臺管理員管模塊圖六 系統(tǒng)實現(xiàn)(一)環(huán)境配置1. 安裝配置JDK1.5,JDK1.5的系統(tǒng)環(huán)境設(shè)置。2. 運行Tomcat5.0開啟Tomcat,并進入其首
52、頁測試http:/localhost:8080:3. 啟動MySQL首先在服務(wù)中將MySQL啟動,再進入其可視界面管理工具MySQL Query Browser。圖6-1 MySQL Query Browser圖4. 最后在Myeclipse6.0中進行開發(fā)與測試圖6-2 MyEclipse界面圖1.5 主要代碼1. 顧客注冊、登錄模塊的展示層主要由注冊頁面reg.jsp和登錄頁面default.jsp組成。登錄頁面default.jsp的驗證: <!驗證是否登錄是否正確的JavaScript -><script language="javascript"
53、>if('<html:errors property="loginError"/>'.length!=0)alert('<html:errors property="loginError"/>');</script></logic:messagesPresent>2. 使用Ajax實現(xiàn)會員注冊有效性驗證在會員注冊中,將會員登錄的文本框的onblur事件處理函數(shù)指定為checkLoginName(),然后在JavaScript的checkLoginName()方法中通過J
54、SON-RPC組件調(diào)用服務(wù)器端AjaxBean的chkLoginName(String loginName)方法實現(xiàn)登錄名的有效性檢查。在reg.jsp中的checkLoginName()方法:/登錄帳號有效性檢查function checkLoginName()var lname = document.all.loginName.value;if(lname !=null)&&(lname.length>0)&&(!jsonrpc.ajax.chkLoginName(lname)alert('對不起,該登錄帳號已被占用,請重新輸入!');
55、document.all.loginName.focus();3. 會員登錄表單MemLoginForm.java,default.jsp中登錄表單的內(nèi)容由Struts自動封裝到memLoginForm對象中。private String loginPwd;private String loginName;public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) return null;public void reset(ActionMapping mapping, HttpServletRequest request)4. 持久層Hibernate的實現(xiàn),Hibernate負責處理會員與會員級別的關(guān)聯(lián)關(guān)系及相關(guān)的數(shù)據(jù)庫DAO操作。會員與會員級別的多對一單向關(guān)聯(lián)在Member.hbm.xml中配置: <!-映射Member到Mem
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025軟考網(wǎng)絡(luò)管理員考試動向觀察試題
- 企業(yè)戰(zhàn)略中的智能化思維試題及答案
- 追求卓越的個人品牌建設(shè)計劃
- 2024年湖北省應(yīng)急管理廳下屬事業(yè)單位真題
- 網(wǎng)絡(luò)監(jiān)控最佳實踐與技巧試題及答案
- 2024年贛州職業(yè)技術(shù)學(xué)院招聘筆試真題
- 小班音樂欣賞活動的豐富性計劃
- 網(wǎng)絡(luò)流量分析仕途的試題及答案
- 計算機編程的未來趨勢分析試題及答案
- 吉林省長春市實驗繁榮學(xué)校2025屆七下數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 風電專業(yè)考試題庫帶答案
- 艾滋病職業(yè)防護培訓(xùn)
- 教學(xué)反思不足之處和改進措施簡短
- 舒適化醫(yī)療麻醉
- 露營地合伙人合同協(xié)議書范本
- 2024年315消費者權(quán)益保護知識競賽題庫及答案(完整版)
- 2024秋期國家開放大學(xué)《可編程控制器應(yīng)用實訓(xùn)》一平臺在線形考(形成任務(wù)1)試題及答案
- 2023年高考真題-地理(河北卷) 含答案
- DB50-T 1649-2024 餐飲業(yè)菜品信息描述規(guī)范
- GB/T 17775-2024旅游景區(qū)質(zhì)量等級劃分
- 山東省東營市2024年中考英語真題(含答案)
評論
0/150
提交評論