版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本科生畢業(yè)論文(設(shè)計(jì))基于 jsp 的網(wǎng)絡(luò)商店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)姓名學(xué)號(hào)專業(yè)指導(dǎo)教師2011 年 5 月 20 日摘要隨著國(guó)內(nèi) internet 使用人數(shù)的增加,利用internet 進(jìn)行網(wǎng)絡(luò)購(gòu)物并以銀行卡付款的消費(fèi)方式已漸流行,市場(chǎng)份額也在快速增長(zhǎng),電子商務(wù)逐漸成為業(yè)界熱議的一個(gè)焦點(diǎn)話題,相關(guān)的電子商務(wù)網(wǎng)站也層出不窮,因此電子商務(wù)蘊(yùn)含巨大商機(jī),具有廣闊的發(fā)展前景。本論文首先分析了網(wǎng)絡(luò)商店的地位和現(xiàn)狀,然后介紹了開發(fā)此系統(tǒng)所用到的“模型-視圖-控制器”模式。此系統(tǒng)采用ssh(spring + struts2 + hibernate)框架進(jìn)行搭建,使用 java 語言,oracle 數(shù)據(jù)庫(kù)和 to
2、mcat 服務(wù)器。主要實(shí)現(xiàn)后臺(tái)的會(huì)員管理,公告管理,留言管理,管理員服務(wù),商品管理,站點(diǎn)信息管理,積分管理和訂單管理等功能。本系統(tǒng)主要解決以下問題:1. 以管理員的身份實(shí)現(xiàn)對(duì)商品信息的管理,以及對(duì)購(gòu)物網(wǎng)站的日常維護(hù)。2. 使用 log4j 技術(shù)對(duì)所有用戶的操作進(jìn)行自動(dòng)記錄,并把記錄文件保存入硬盤文件。3. 實(shí)現(xiàn)根據(jù)商品的多條屬性查詢,使結(jié)果更精確。 關(guān)鍵詞:mvc;ssh;log4j;網(wǎng)絡(luò)商店abstractwith the increase number of the internet using in domestic, the use of internet for online sho
3、pping and bank card payments gradually popular consumption, and market share is also growing rapidly, e-commerce has become a focus of the industrys hot topics, besides, the related e-commerce web sites are endless. so e-commerce of huge business opportunities and broad prospects for development.the
4、sis analyzes firstly the status and existent problems of online store and then introduces the “model-view-controller” mode used to build this site. the analysis and design of the entire network application platform including the system adopts the ssh technology. ssh is short for spring+struts2+hiber
5、nate. and this system uses java programming language and oracle database and tomcat server to run the core modules of members management, announced management, message management, administrator services, commodity management, site information management, integration management and order management i
6、n backend.the problems settled in this system are as follows:1. as an administrator to realize the product information management, and maintenance of shopping sites.2. log4j technology records and saves all users operations automatically into the hard disk file.3. to achieve search product informati
7、on with many product attributes, so that more precise.key words: mvc, ssh, log4j, online store目錄1 引言 .11.1 課題背景 .11.2 使用的開發(fā)測(cè)試平臺(tái)及相關(guān)技術(shù)分析 .11.2.1 mvc 模式.11.2.2 ssh 框架.21.2.3 log4j 日志處理.32 系統(tǒng)概要設(shè)計(jì) .42.1 需求分析 .42.1.1 系統(tǒng)用戶需求 .42.1.2 系統(tǒng)功能需求.42.1.3 本系統(tǒng)的頂層用例圖 .52.2 原型法 .52.3 系統(tǒng)總體設(shè)計(jì) .62.3.1 系統(tǒng)業(yè)務(wù)流程 .62.3.2 會(huì)員管理
8、功能模塊 .72.3.3 公告管理功能模塊 .72.3.4 留言管理功能模塊 .82.3.5 管理員服務(wù)功能模塊 .82.3.6 商品管理功能模塊 .92.3.7 站點(diǎn)信息管理功能模塊 .92.3.8 積分管理功能模塊 .102.3.9 訂單管理功能模塊 .102.4 數(shù)據(jù)庫(kù)分析與設(shè)計(jì) .112.4.1 數(shù)據(jù)庫(kù)的定義 .122.4.2 表定義 .123 系統(tǒng)詳細(xì)設(shè)計(jì) .153.1 主要功能模塊詳細(xì)設(shè)計(jì) .153.1.1 會(huì)員查詢頁面.153.1.2 發(fā)布新公告及公告管理頁面 .153.1.3 商品留言頁面 .173.1.4 添加管理員、禁用管理員和修改密碼頁面 .183.1.5 商品添加、修改
9、和下架頁面 .203.1.6 logo 更改和服務(wù)條款管理頁面.223.1.7 積分規(guī)則查看、設(shè)置和兌換規(guī)則設(shè)置頁面 .233.1.8 訂單管理頁面 .254 系統(tǒng)實(shí)現(xiàn) .274.1 系統(tǒng)搭建及初始化配置 .274.1.1 搭建 struts2 開發(fā)環(huán)境 .274.1.2 搭建 hibernate 開發(fā)環(huán)境.284.2 創(chuàng)建包目錄結(jié)構(gòu) .284.2.1 共通包構(gòu)成 .284.2.2 業(yè)務(wù)包構(gòu)成 .284.2.3 持久化層包構(gòu)成 .294.3 struts 模塊的實(shí)現(xiàn).294.4 hibernate 模塊的實(shí)現(xiàn).304.4.1 編寫 pojo 類 .304.4.2 編寫并配置映射文件 .314.
10、4.3 編寫 session 工廠.314.5 log4j 日志處理.324.6 圖片處理 .335 系統(tǒng)測(cè)試 .355.1 測(cè)試工具 .355.2 測(cè)試用例 .356 結(jié)論 .37參考文獻(xiàn) .38致 謝 .391 引言科技在發(fā)展,人們的生活觀念也在跟著逐漸變化,現(xiàn)在網(wǎng)上購(gòu)物 因其諸多優(yōu)點(diǎn)慢慢的成為人們的主流購(gòu)物方式,而大學(xué)生消費(fèi)群在其中占很大比例,因此在接下來的幾年都是電子商務(wù)的蓬勃發(fā)展期。而開發(fā)網(wǎng)上購(gòu)物平臺(tái)是對(duì)這一產(chǎn)業(yè)的技術(shù)支持。本文正是基于此利用成熟的mvc 模式開發(fā),使用 ssh 框架以及 log4j 處理日志等技術(shù)豐富完善網(wǎng)絡(luò)商店購(gòu)物管理系統(tǒng)的安全性及擴(kuò)展性能。從而使其在實(shí)際應(yīng)用中具
11、有良好的商業(yè)價(jià)值。1 1. .1 1 課課題題背背景景現(xiàn)今的中國(guó),電子商務(wù)的發(fā)展勢(shì)頭很兇猛。據(jù) 2010 年 cnnic 最新的中國(guó)互聯(lián)網(wǎng)發(fā)展?fàn)顩r調(diào)查顯示,中國(guó)網(wǎng)民規(guī)模達(dá)到 4.2 億;網(wǎng)民每周上網(wǎng)時(shí)長(zhǎng)繼續(xù)增加,人均周上網(wǎng)時(shí)長(zhǎng)達(dá)到 19.8 個(gè)小時(shí),并且大部分網(wǎng)絡(luò)應(yīng)用我國(guó)網(wǎng)民的互聯(lián)網(wǎng)應(yīng)用表現(xiàn)出商務(wù)化程度迅速提高,娛樂化傾向繼續(xù)保持溝通和信息工具價(jià)值加深的特點(diǎn).2010 年上半年,大部分網(wǎng)絡(luò)應(yīng)用在網(wǎng)民中更加普及各類網(wǎng)絡(luò)應(yīng)用的用戶規(guī)模持續(xù)擴(kuò)大。其中,商務(wù)類應(yīng)用表現(xiàn)尤其突出,網(wǎng)上支付,網(wǎng)絡(luò)購(gòu)物和網(wǎng)上銀行半年用戶增長(zhǎng)率均在 30%左右,遠(yuǎn)遠(yuǎn)超過其他類網(wǎng)絡(luò)應(yīng)用社交網(wǎng)站。因此開發(fā)這套系統(tǒng)應(yīng)該具有廣闊的市場(chǎng)
12、前景。1 1. .2 2 使使用用的的開開發(fā)發(fā)測(cè)測(cè)試試平平臺(tái)臺(tái)及及相相關(guān)關(guān)技技術(shù)術(shù)分分析析本系統(tǒng)均采用目前流行成熟的技術(shù)開發(fā),具體開發(fā)環(huán)境如下:表 1-1 開發(fā)環(huán)境操作系統(tǒng)windows 7開發(fā)語言java,jsp,css,html,xml開發(fā)工具eclipse,dreamweaver測(cè)試工具junit數(shù)據(jù)庫(kù)oracle 11g使用框架struct2,spring,hibernate服務(wù)器tomcat6.01 1. .2 2. .1 1 m mv vc c 模模式式mvc 結(jié)構(gòu)是model-view-controller的縮寫,中文翻譯為模型-視圖-控制器。mvc應(yīng)用程序總是由這三個(gè)部分組成。
13、模型(model)是封裝數(shù)據(jù)對(duì)象,用來封裝和顯示數(shù)據(jù)對(duì)象;視圖(view)是作為模型的顯示,它表示數(shù)據(jù)對(duì)象的當(dāng)前狀態(tài);控制器(controller)定義對(duì)用戶的輸入執(zhí)行相應(yīng)操作的接口,它用來操作模型和數(shù)據(jù)對(duì)象。使用 mvc 模式可以提高系統(tǒng)的可靠性,適應(yīng)性以及可維護(hù)性,可以快速部署,同時(shí)能降低軟件開發(fā)的生命周期。其工作機(jī)制如圖 1-1 所示。圖 1-1 mvc 工作機(jī)制圖1 1. .2 2. .2 2 s ss sh h 框框架架ssh 是 struts,spring,hibernate 的縮寫。是當(dāng)前流行的三層架構(gòu):表述層,業(yè)務(wù)邏輯層和數(shù)據(jù)庫(kù)層。strutsstruts:用以響應(yīng)用戶的 ac
14、tion,對(duì)應(yīng)到相應(yīng)的類進(jìn)行處理,需要對(duì)應(yīng)的包。現(xiàn)在企業(yè)開發(fā)使用的版本為 struts2。struts2 中大量使用攔截器來處理用戶的請(qǐng)求,從而允許用戶的業(yè)務(wù)邏輯控制器與servlet api 分離。struts2 框架的大概處理流程如下:1. 加載 filterdispatcher 類2. 讀取struts2配置文件中的action類3. 客戶端發(fā)送請(qǐng)求4. filterdispatcher 從 struts 配置文件中讀取與之相對(duì)應(yīng)的action5. 啟用攔截器6. 回調(diào) action 的 execute()方法7. 通過 execute 方法將信息返回到filterdispatcher8
15、. filterdispatcher 根據(jù)配置查找響應(yīng)信息,決定將跳轉(zhuǎn)到哪個(gè)jsp 頁面9. 響應(yīng)用戶請(qǐng)求hibernatehibernate:用來把實(shí)體類對(duì)應(yīng)到數(shù)據(jù)庫(kù),用于實(shí)現(xiàn)與數(shù)據(jù)庫(kù)之間的交互。提供增刪改查的基本操作的實(shí)現(xiàn)。需要 hibernate 對(duì)應(yīng)的包以及 mysql 的 jdbc 驅(qū)動(dòng)包。創(chuàng)建hibernate 應(yīng)用程序的準(zhǔn)備:1. 創(chuàng)建數(shù)據(jù)庫(kù)2. 創(chuàng)建 hibernate 配置文件 hibernate.cfg.xml3. 創(chuàng)建 package4. 編寫 hibernate 映射文件5. 編寫 pojo 文件6. 編寫 hibernate 工具類7. 編寫測(cè)試類springspri
16、ng:管理 struts, xml 配置文件中為 struts 的 action 進(jìn)行值注入。1 1. .2 2. .3 3 l lo og g4 4j j 日日志志處處理理log4j 是 apache 的一個(gè)開放源代碼項(xiàng)目,通過使用 log4j,可以控制日志信息輸送的目的地是控制臺(tái)、文件、gui 組件、甚至是套接口服務(wù)器、nt 的事件記錄器、unix syslog 守護(hù)進(jìn)程等;也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級(jí)別,能夠更加細(xì)致地控制日志的生成過程。最方便的是,上面提到的功能可以通過一個(gè)配置文件來靈活地進(jìn)行配置,而不需要修改應(yīng)用的代碼。2 系統(tǒng)概要設(shè)計(jì)本章將從該網(wǎng)絡(luò)商店
17、的后臺(tái)信息管理對(duì)該項(xiàng)目進(jìn)行了總體分析說明。暫不考慮前臺(tái)業(yè)務(wù)流程的邏輯實(shí)現(xiàn),僅考慮其功能。后臺(tái)信息管理主要包括會(huì)員管理,公告管理,留言管理,管理員服務(wù),商品管理,站點(diǎn)信息管理,積分管理和訂單管理等功能。2.12.1 需求分析需求分析系統(tǒng)需求分析是軟件開發(fā)人員根據(jù)用戶描述說明,對(duì)用戶業(yè)務(wù)活動(dòng)進(jìn)行分析,明確在用戶的業(yè)務(wù)環(huán)境中軟件系統(tǒng)應(yīng)該“做什么”。下面就對(duì)網(wǎng)絡(luò)商店購(gòu)物系統(tǒng)的需求說明進(jìn)行分析。.1 系統(tǒng)用戶需求系統(tǒng)用戶需求下面是需求分析中的用戶需求:1. 友好的用戶管理界面。2. 對(duì)注冊(cè)用戶以及普通管理員進(jìn)行管理。3. 實(shí)現(xiàn)商品的增刪改查等功能。4. 對(duì)用戶的留言有最高管理權(quán)限。5.
18、實(shí)現(xiàn)站點(diǎn)中的公告及網(wǎng)站的基本功能。6. 能處理用戶的訂單。 .2 系統(tǒng)功能需求系統(tǒng)功能需求下面介紹用戶對(duì)程序功能的需求和程序的功能流程:1. 管理員分為超級(jí)管理員和普通管理員,超級(jí)管理員具有管理普通管理員的權(quán)限。2. 管理員可以管理(增、刪、查)公告。3. 管理員可以管理(增、刪、查)所以注冊(cè)用戶信息,但不可管理用戶密碼等私人信息,只可對(duì)其權(quán)限進(jìn)行管理。4. 管理員可以管理(增、刪、改、查)商品信息。5. 管理員可以管理(增、刪、改、查)留言信息。6. 管理員可以管理(增、刪、改、查)訂單信息。7. 管理員可以對(duì)站點(diǎn)進(jìn)行日常維護(hù)。8. 后臺(tái)管理系統(tǒng)的搜索引擎采用模糊匹配的模式,
19、并且可以選擇多條搜索條件進(jìn)行檢索。.3 本系統(tǒng)的本系統(tǒng)的頂層用例圖頂層用例圖圖 2-1 網(wǎng)絡(luò)商店購(gòu)物系統(tǒng)頂層用例圖2 2. .2 2 原原型型法法 本系統(tǒng)采用原型法開發(fā)。快速原型模型的第一步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,用戶或客戶對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開發(fā)軟件的需求。通過逐步調(diào)整原型使其滿足客戶的要求,開發(fā)人員可以確定客戶的 真正需求是什么;第二步則在第一步的基礎(chǔ)上開發(fā)客戶滿意的軟件產(chǎn)品。顯然,快速原型方法可以克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來的開發(fā)風(fēng)險(xiǎn),具有顯著的效果。 快速原型的關(guān)鍵在于盡可能快速地建造出軟件原型,一旦確定了客戶的真
20、正需求,所建造的原型將被丟棄。因此,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求。原型化軟件開發(fā)要突出一個(gè)“快”字。采用瀑布模型時(shí),軟件的需求分析也可以在用戶和系統(tǒng)分析員之間往復(fù)討論,使之逐步趨于完善。但這種討論終究是 “紙上談兵”。而原型系統(tǒng)則是“真槍實(shí)彈”,能夠使用戶立刻與想象中的目標(biāo)系統(tǒng)作出比較。軟件開發(fā)人員向用戶提供一個(gè)“樣品 ” ,用戶向開發(fā)為人員迅速做出“反饋 ” ,這就是原型軟件開發(fā)的優(yōu)越性。圖 2-2 原型法2 2. .3 3 系系統(tǒng)統(tǒng)總總體體設(shè)設(shè)計(jì)計(jì)根據(jù)需求分析,網(wǎng)絡(luò)商店購(gòu)物管理系統(tǒng)共可分為如下八個(gè)功能模塊:會(huì)員管理、公告管理、留言
21、管理、管理員服務(wù)、商品管理、站點(diǎn)信息管理、積分管理和訂單管理。下面對(duì)每個(gè)功能模塊進(jìn)行具體分析。.1 1 系統(tǒng)業(yè)務(wù)流程系統(tǒng)業(yè)務(wù)流程圖 2-3 系統(tǒng)功能邏輯結(jié)構(gòu)圖.2 2 會(huì)員管理功能模塊會(huì)員管理功能模塊管理員可以根據(jù)條件查詢出會(huì)員信息結(jié)果,然后可以對(duì)所選會(huì)員進(jìn)行注銷操作。圖 2-4 會(huì)員管理用例圖.3 公告管理功能模塊公告管理功能模塊管理員可以發(fā)布新的公告,并可以對(duì)公告進(jìn)行管理,根據(jù)發(fā)布的公告主題或發(fā)布時(shí)間查詢公告,然后可以對(duì)具體公告進(jìn)行修改,刪除操作。圖 2-5 公告管理用例圖.4 留言管理功能模塊留言管理功能模塊管理員可以管理任何商
22、品留言,而會(huì)員和游客只能管理自己的商品留言。圖 2-6 留言管理用例圖.5 管理員服務(wù)功能模塊管理員服務(wù)功能模塊超級(jí)管理員可以添加管理員,根據(jù)會(huì)員 id 查詢管理員,然后可以禁用所選會(huì)員,并且可以修改管理員密碼;而普通管理員只具有查看信息,修改密碼權(quán)限。圖 2-7 管理員服務(wù)用例圖.6 商品管理功能模塊商品管理功能模塊管理員可以對(duì)商品信息進(jìn)行管理,包括新品發(fā)布,商品信息修改,商品下架,統(tǒng)計(jì)庫(kù)存,商品搜索;商品搜索可以根據(jù)關(guān)鍵字查詢或特征查詢。圖 2-8 商品管理用例圖.7 站點(diǎn)信息管理功能模塊站點(diǎn)信息管理功能模塊管理員可以修改站點(diǎn)的 logo 和
23、服務(wù)條款的管理。圖 2-9 站點(diǎn)信息管理用例圖.8 積分管理功能模塊積分管理功能模塊管理員可以管理積分規(guī)則設(shè)置和兌換規(guī)則設(shè)置;對(duì)每一項(xiàng)規(guī)則具有制定,修改和刪除操作權(quán)限。圖 2-10 積分管理用例圖.9 訂單管理功能模塊訂單管理功能模塊管理員可以根據(jù)條件查詢出訂單信息,然后可以對(duì)訂單進(jìn)行管理,并且可以導(dǎo)出訂單;其中導(dǎo)出訂單可以是單個(gè)導(dǎo)出和批量導(dǎo)出。圖 2-11 訂單管理用例圖2 2. .4 4 數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)分分析析與與設(shè)設(shè)計(jì)計(jì)數(shù)據(jù)庫(kù)的設(shè)計(jì)是該網(wǎng)絡(luò)商店購(gòu)物管理系統(tǒng)的核心內(nèi)容,依據(jù)需要,系統(tǒng)定義了常用視圖、索引和序列。用戶對(duì)于數(shù)據(jù)庫(kù)的需求具體體現(xiàn)在各種信息的提供、保存
24、、更新和查詢上,這就要求數(shù)據(jù)庫(kù)的結(jié)構(gòu)能充分滿足各種信息的輸入和輸出上。本系統(tǒng) 所采用的數(shù)據(jù)庫(kù)是 oracle 11g,能滿足系統(tǒng)的需求。.1 數(shù)據(jù)庫(kù)的定義數(shù)據(jù)庫(kù)的定義圖 2-12 數(shù)據(jù)庫(kù)表間關(guān)系圖.2 表定義表定義在數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,是將商品的屬性與圖片區(qū)分開,總共將商品分為五大類:食品(food)、書籍(book)、文具(stationery)、數(shù)碼電子(electronics)、生活用品(dailypro)。下面只列出食品表。具體涉及的各個(gè)表屬性如下:表 2-1 食品表(food)邏輯名字段名數(shù)據(jù)類型長(zhǎng)度空值備注商品編號(hào)proidchar13not null
25、主鍵商品名稱pronamevarchar220not null類別分類編號(hào)sub_typenumber8not null價(jià)格pricenumber7,2not null保質(zhì)期validdaysvarchar28not null庫(kù)存量amountnumber5not null生產(chǎn)日期prodatedatenot null生產(chǎn)廠家producervarchar22000not null銷量sale_amountnumber20not null上架日期reg_timedatenot null表 2-2 商品圖片表(products_pictures)邏輯名字段名數(shù)據(jù)類型長(zhǎng)度空值備注商品編號(hào)proid
26、char13not null主鍵大圖片big_picvarchar2100中圖片mid_picvarchar2100小圖片small_picblob表 2-3 會(huì)員信息表(member)邏輯名字段名數(shù)據(jù)類型長(zhǎng)度空值備注會(huì)員 idmember_idchar10not null主鍵會(huì)員名member_namevarchar220not null密碼member_passwordchar9not null電子郵箱member_emailvarchar230not null真實(shí)姓名true_namevarchar220not null密碼保護(hù)問題pwd_quevarchar230not null密碼保
27、護(hù)問題答案pwd_ansvarchar220not null會(huì)員狀態(tài)statusdatenot null表 2-4 公告信息表(notice)邏輯名字段名數(shù)據(jù)類型長(zhǎng)度空值備注公告編號(hào)notice_idnumber9,0not null主鍵公告名稱notice_titlevarchar230not null公告內(nèi)容notice_contentvarchar2300not null發(fā)布日期notice_timedatenot null表 2-5 訂單表(t_order)邏輯名字段名數(shù)據(jù)類型長(zhǎng)度空值備注訂單編號(hào)order_idchar10not null主鍵訂單日期order_timedatenot
28、 null訂購(gòu)者buyer_idvarchar220not null郵寄地址send_addrvarchar2100not null訂單狀態(tài)order_statuschar6not null總價(jià)all_pricenumber7,2電話tellvarchar218not null手機(jī)號(hào)cellphonevarchar218not null其他信息other_infovarchar2300表 2-6 管理員表(admin)邏輯名字段名數(shù)據(jù)類型長(zhǎng)度空值備注管理員名admin_idchar9not null主鍵密碼admin_passwordchar10not null權(quán)限admin_privileg
29、echar6not null狀態(tài)admin_statuschar6not null其他信息other_infovarchar23003 系統(tǒng)詳細(xì)設(shè)計(jì)3 3. .1 1 主主要要功功能能模模塊塊詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)詳細(xì)介紹網(wǎng)絡(luò)商店購(gòu)物管理系統(tǒng)各個(gè)功能模塊的描述信息,以及各個(gè)功能之間的關(guān)系,系統(tǒng)爭(zhēng)對(duì)不同用戶的需要作出相應(yīng)的回應(yīng),懂得各個(gè)頁面的跳轉(zhuǎn)方向。3 3. .1 1.1.1 會(huì)員查詢頁面會(huì)員查詢頁面管理員可以根據(jù)會(huì)員的倆個(gè)屬性:會(huì)員id 和會(huì)員名,進(jìn)行對(duì)會(huì)員的檢索,同時(shí)對(duì)檢索出來的會(huì)員的權(quán)限進(jìn)行操作。圖 3-1 會(huì)員查詢頁面遷移圖下面為會(huì)員查詢頁面圖 3-2 會(huì)員查詢頁面.2 發(fā)布
30、新公告及公告管理頁面發(fā)布新公告及公告管理頁面管理員可以發(fā)布新主題的公告,并且可以根據(jù)公告主題或發(fā)布時(shí)間檢索已經(jīng)發(fā)布的公告,然后可以對(duì)這些公告進(jìn)行管理。圖 3-3 發(fā)布新公告頁面遷移圖圖 3-4 發(fā)布新公告頁面圖 3-5 公告管理頁面遷移圖圖 3-6 公告管理頁面.3 商品留言頁面商品留言頁面管理員可以根據(jù)商品的種類或商品的名稱對(duì)商品進(jìn)行檢索,然后可以查看商品的留言,并可以對(duì)那些留言進(jìn)行管理。圖 3-7 商品留言頁面遷移圖圖 3-8 商品留言頁面.4 添加管理員、禁用管理員和修改密碼頁面添加管理員、禁用管理員和修改密碼頁面此項(xiàng)功能只有超級(jí)管理員有權(quán)限。其可以對(duì)普通
31、管理員進(jìn)行添加、禁用、修改密碼等操作。圖 3-9 添加管理員頁面遷移圖圖 3-10 添加管理員頁面圖 3-11 禁用管理員頁面遷移圖圖 3-12 禁用管理員頁面圖 3-13 修改密碼頁面遷移圖圖 3-14 修改密碼頁面.5 商品添加、修改和下架頁面商品添加、修改和下架頁面管理員可以對(duì)各類商品信息進(jìn)行管理。圖 3-15 商品添加頁面遷移圖圖 3-16 商品添加頁面進(jìn)行商品信息修改時(shí),必須先根據(jù)條件查詢出所需要的商品信息。然后才可對(duì)其進(jìn)行管理。圖 3-17 商品查詢頁面遷移圖圖 3-18 商品查詢頁面圖 3-19 商品信息修改頁面圖 3-20 商品下架頁面.6 lo
32、gologo 更改和服務(wù)條款管理頁面更改和服務(wù)條款管理頁面管理員可以更新網(wǎng)絡(luò)商店的logo 以及網(wǎng)絡(luò)商店的一些服務(wù)條款。圖 3-21 logo 更改頁面遷移圖圖 3-22 logo 更改頁面圖 3-23 服務(wù)條款管理頁面遷移圖圖 3-24 服務(wù)條款管理頁面.7 積分規(guī)則查看、設(shè)置和兌換規(guī)則設(shè)置頁面積分規(guī)則查看、設(shè)置和兌換規(guī)則設(shè)置頁面管理員可以查看會(huì)員的積分,同時(shí)可以設(shè)置積分規(guī)則和兌換規(guī)則。圖 3-25 積分規(guī)則查看頁面遷移圖圖 3-26 積分規(guī)則設(shè)置頁面遷移圖圖 3-27 積分規(guī)則查看頁面圖 3-28 積分規(guī)則設(shè)置頁面圖 3-29 兌換規(guī)則頁面遷移圖圖 3-30 兌換規(guī)則設(shè)置頁
33、面.8 訂單管理頁面訂單管理頁面管理員可以根據(jù)訂單的任何一個(gè)屬性查詢訂單,查看其狀態(tài)并對(duì)訂單進(jìn)行管理。圖 3-31 訂單管理頁面遷移圖圖 3-32 訂單查詢頁面4 系統(tǒng)實(shí)現(xiàn)4 4. .1 1 系系統(tǒng)統(tǒng)搭搭建建及及初初始始化化配配置置系統(tǒng)選用的服務(wù)器是tomcat6.0,后臺(tái)數(shù)據(jù)庫(kù)選用的是oracle。系統(tǒng)的開發(fā)工具選用的是 eclipse 。4 4. .1 1. .1 1 搭搭建建 s st tr ru ut ts s2 2 開開發(fā)發(fā)環(huán)環(huán)境境總體上概述來說,首先需要從apache 官網(wǎng)上下載的struts2 的所有組件后解壓,然后將其 jar 包及其依賴包導(dǎo)入web-inf/l
34、ib 目錄下,最后還要在web.xml 中配置,最后創(chuàng)建 struts2 的核心配置文件strut.xml。lib 目錄下的 jar 包如下圖所示:圖 4-1 struts2 所需的 jar 包web.xml 的核心配置代碼如下: struts2 org.apache.struts2.dispatcher.filterdispatcher struts2 /* strut.xml 的核心配置代碼如下: 4 4. .1 1. .2 2 搭搭建建 h hi ib be er rn na at te e 開開發(fā)發(fā)環(huán)環(huán)境境與搭建 struts2 環(huán)境類似,搭建hibernate3 開發(fā)環(huán)境需要先從hi
35、bernate 首頁上下載 hibernate 開發(fā)組件,解壓后將必須的jar 包(hibernate3.jar、commons-collections.jar 等總計(jì)八個(gè))導(dǎo)入項(xiàng)目,最后在工程的src 目錄中創(chuàng)建hibernate 的配置文件。hibernate 的配置文件可以為屬性文件(perties)或者是 xml 文件(hibernate.cfg.xml),相比之下,xml 配置方式更為常見。本平臺(tái)的原始配置文件的核心配置代碼如下: jdbc:oracle:thin:localhost:1521:orcl scott tigerorg.hibernate.di
36、alect.oracledialect oracle.jdbc.driver.oracledriver4 4. .2 2 創(chuàng)創(chuàng)建建包包目目錄錄結(jié)結(jié)構(gòu)構(gòu)網(wǎng)絡(luò)商店購(gòu)物管理系統(tǒng)都是以工廠的模式進(jìn)行創(chuàng)建的,由實(shí)體工廠、抽象工廠、實(shí)現(xiàn)類三部分組成。4 4. .2 2. .1 1 共共通通包包構(gòu)構(gòu)成成表 4-1 共通包結(jié)構(gòu)表分類包名說明mon.dao放置 dao 共通接口的包mon.dao.impl放置 dao 共通類的包mon.util放置工具類的包共通包mon.exception放置自定義例外類的包4 4. .2 2. .2 2 業(yè)業(yè)務(wù)務(wù)包包構(gòu)構(gòu)成成表 4-2 業(yè)務(wù)包結(jié)構(gòu)表分類包名說明backend.
37、xmlaction 配置文件,國(guó)際化messagebackend.form放置表單類的包backend.action放置 action 的包backend.business放置業(yè)務(wù)接口類的包backend.impl放置業(yè)務(wù)實(shí)現(xiàn)類的包backend.business.pojos放置各表的pojo 類的包backend.dao放置 dao 接口的包業(yè)務(wù)包backend.dao.impl放置 dao 實(shí)現(xiàn)類的包4 4. .2 2. .3 3 持持久久化化層層包包構(gòu)構(gòu)成成表 4-3 持久化層包結(jié)構(gòu)表分類包名說明backend.hibernate.cfg.file放置 hibernate 配置文件的包b
38、ackend.hibernate.hbm.file放置映射文件的包持久化層包backend.hibernate.util放置 hibernate 工具類的包4 4. .3 3 s st tr ru ut ts s 模模塊塊的的實(shí)實(shí)現(xiàn)現(xiàn)struts 主要處理用戶輸入的表單信息,實(shí)現(xiàn)用戶與站點(diǎn)間的交互,動(dòng)態(tài)生成用戶所需要的信息。下面為本系統(tǒng)的struts.xml 的配置方法: /backend/pages/common/management.jsp/index.jsp4 4. .4 4 h hi ib be er rn na at te e 模模塊塊的的實(shí)實(shí)現(xiàn)現(xiàn)當(dāng) hibernate 配置成功之后
39、,用戶可實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的交互,下面介紹本系統(tǒng)與數(shù)據(jù)庫(kù)連接的方法(以管理員admin 為范例)。.1 編寫編寫 pojopojo 類類在 backend.hibernate.pojos 及其下級(jí)目錄下創(chuàng)建表 admin 對(duì)應(yīng)的 pojo 類admin.java,其他與此類似,該類必須包含admin 對(duì)象的所有屬性,這些屬性必須與其在數(shù)據(jù)庫(kù) admin 表中的屬性一一對(duì)應(yīng)。下面為admin 的 pojo 類(注:屬性的getter 和setter 方法僅列舉adminid 屬性):public class admin /* 管理員id */private string adminid
40、 = null;/* 管理員密碼 */private string password = null;/* 管理員權(quán)限 */private string priviledge = null;/* 管理員狀態(tài) */private string status = null;/* 備注信息 */private string otherinfo = null;/* * 無參構(gòu)造 */public admin() public admin(string adminid, string password, string priviledge, string status, string note)this.
41、setadminid(adminid);this.setpassword(password);this.setpriviledge(priviledge);this.setstatus(status);this.setotherinfo(note);/getters and setterspublic string getadminid() return adminid;public void setadminid(string adminid) this.adminid = adminid;.2 編寫并配置映射文件編寫并配置映射文件在 backend.hibernate.hb
42、m.file 目錄下創(chuàng)建數(shù)據(jù)表admin 對(duì)應(yīng) pojo 類的hibernate 映射文件 admin.hbm.xml 并配置。具體配置信息如下:.3 編寫編寫 sessionsession 工廠工廠在 backend.hibernate.util 目錄下創(chuàng)建session 工廠類 hibernateutil.java,該類提供了獲得當(dāng)前session 和關(guān)閉 session 的方法,其核心代碼如下所示。 (注:省略了異常的拋出、捕獲與處理代碼)public class hibernateutil private static sessionfactory sessionfac
43、tory; /* 持有一個(gè)單態(tài)的session實(shí)例. */ private static final threadlocal threadlocal = new threadlocal(); /* 持有一個(gè)單態(tài)的configuration實(shí)例. */ private static final configuration cfg = new configuration(); private static string config_file_location = backend/hibernate/cfg/file/hibernate.cfg.xml;static try sessionfact
44、ory = new configuration().configure(config_file_location) .buildsessionfactory(); catch (throwable ex) / make sure you log the exception, as it might be swallowed system.err.println(initial sessionfactory creation failed. + ex);throw new exceptionininitializererror(ex); public static sessionfactory
45、getsessionfactory() return sessionfactory; /* * 獲得當(dāng)前的session實(shí)例. * return session * throws hibernateexception */ public static session currentsession() throws hibernateexception session session = (session) threadlocal.get(); /if (session = null) if(session=null|session.isopen()=false) if (sessionfact
46、ory = null) try cfg.configure(config_file_location); sessionfactory = cfg.buildsessionfactory(); catch (exception e) system.err.println(% error creating sessionfactory % + e.getmessage(); session = sessionfactory.opensession(); threadlocal.set(session); return session; 4 4. .5 5 l lo og g4 4j j 日日志志
47、處處理理本系統(tǒng)要求將所有用戶的操作記錄到硬盤文件,因此需要將 commons-logging-1.0.4.jar,commons-logging.jar 和 log4j-1.2.11.jar 這三個(gè) jar 文件拷貝到 lib 目錄下,同時(shí)創(chuàng)建 perties 文件,放到 src 目錄下面,其具體配置如下:#設(shè)置輸出級(jí)別和目的地log4j.rootlogger=debug,console#輸出到控制臺(tái)log4j.appender.console=org.apache.log4j.consoleappender#輸出的樣式log4j.appender.console.layou
48、t=org.apache.log4j.ttcclayout#設(shè)置特定包的級(jí)別和目的地#log4j.logger.包名=級(jí)別,目的地log4j.logger.backend.bulletin.business.impl=debug,appender1log4j.logger.backend.bulletin.dao.impl=debug,ment.business.impl=debug,ment.dao.impl=debug,mon.dao.impl=debug,appender1log4j.logger.backend.goods.business.impl=debug,appender1lo
49、g4j.logger.backend.goods.dao.impl=debug,appender1log4j.logger.backend.login.business.impl=debug,appender1log4j.logger.backend.login.dao.impl=debug,appender1log4j.logger.backend.member.business.impl=debug,appender1log4j.logger.backend.member.dao.impl=debug,appender1log4j.logger.backend.order.business
50、.impl=debug,appender1log4j.logger.backend.order.dao.impl=debug,appender1log4j.logger.backend.siteinfo.business.impl=debug,appender1log4j.logger.backend.siteinfo.dao.impl=debug,appender1log4j.logger.backend.staff.business.impl=debug,appender1log4j.logger.backend.staff.dao.impl=debug,appender1#輸出到文件lo
51、g4j.appender.appender1=org.apache.log4j.dailyrollingfileappender#設(shè)置每天產(chǎn)生日志的命名規(guī)則log4j.appender.appender1.datepattern=.yyyy-mm-dd#設(shè)置日志消息輸出到shopcart.html中l(wèi)og4j.appender.appender1.file=c:/shopcartbackend.html#設(shè)置將日志消息追加到指定文件中l(wèi)og4j.appender.appender1.append=true#設(shè)置日志消息輸出的最低層次log4j.appender.appender1.thresh
52、old=info#輸出的樣式log4j.appender.appender1.layout=org.apache.log4j.htmllayout#將struts和hibernate的debug和info信息去掉.opensymphony.xwork2=warn.apache.struts2=warnmons=warn.hibernate=warnlog4j.logger.freemarker.cache=warn.sf.ehcache=warn4 4. .6 6 圖圖片片處處理理對(duì)于商品圖片,本系統(tǒng)的處理方式是:將商品的小圖片轉(zhuǎn)
53、化成 blob 形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,而對(duì)中圖和大圖,只將其路徑存儲(chǔ)在數(shù)據(jù)庫(kù)中,這樣有利于提高系統(tǒng)的性能。具體實(shí)現(xiàn)代碼如下:/ 小圖if(smallpic != null)string temp = null; file filetempsmall = new file(destdir + foodpicture.getsmallpic(); if(filetempsmall.exists() filetempsmall.deleteonexit(); try / 由struts上傳文件時(shí)獲得的臨時(shí)文件*.tmp創(chuàng)建臨時(shí)圖片temp = fileserviceimpl.uploadfile(sm
54、allpic, destdir, smallpicfilename.substring(smallpicfilename.lastindexof(.); catch (appexception e) e.printstacktrace();return input; catch (exception e) e.printstacktrace();return input; / 中圖if(midpic != null) file filetempmid = new file(destdir + foodpicture.getmidpic(); if(filetempmid.exists() fi
55、letempmid.delete(); try / 上傳圖片至服務(wù)器string realpath = fileserviceimpl.uploadfile(midpic, destdir +midimgs,midpicfilename.substring(midpicfilename.lastindexof(.);foodpicture.setmidpic(imagesmidimgs + realpath.substring(realpath.lastindexof(); catch (appexception e) e.printstacktrace();return input; cat
56、ch (exception e) e.printstacktrace();return input; / 大圖if(bigpic != null) file filetempbig = new file(destdir + foodpicture.getbigpic(); if(filetempbig.exists() filetempbig.delete(); try / 上傳圖片至服務(wù)器string realpath = fileserviceimpl.uploadfile(bigpic, destdir + bigimgs,bigpicfilename.substring(bigpicf
57、ilename.lastindexof(.);foodpicture.setbigpic(imagesbigimgs + realpath.substring(realpath.lastindexof();5 系統(tǒng)測(cè)試5 5. .1 1 測(cè)測(cè)試試工工具具本系統(tǒng)采用junit 對(duì)所寫代碼進(jìn)行測(cè)試,junit 是由 erich gamma 和 kent beck 開發(fā)的開源測(cè)試框架eclipse 集成了這個(gè)框架。junit 之所以流行并為廣大的開發(fā)人員所推崇,一是因?yàn)樗鼘?shí)戰(zhàn)性強(qiáng),功能強(qiáng)大,二是因?yàn)樗鼘?shí)在簡(jiǎn)單。一個(gè)產(chǎn)品或框架要能有生命力,最好都具備這樣的特點(diǎn)。簡(jiǎn)單地講這個(gè)框架提供了許多斷言(asse
58、rt)方法,允許你設(shè)置測(cè)試的規(guī)則,如:assertequals()、assertnull()、assertnotsame()、asserttrue()等方法,一個(gè)測(cè)試用例包括了多個(gè)斷言,當(dāng)運(yùn)行測(cè)試用例后, junit 運(yùn)行器會(huì)報(bào)告哪些斷言沒有通過,開發(fā)人員就可順藤摸瓜搞個(gè)水落石出了。而傳統(tǒng)的測(cè)試方法需要將期望的結(jié)果用諸如system.out.println()等語句將過程信息打印到控制臺(tái)或日志中,由開發(fā)人員觀察輸出信息以判斷是否正確,現(xiàn)在這種 觀察的工作由 junit 的那些 assertxxx()方法自動(dòng)完成。5 5. .2 2 測(cè)測(cè)試試用用例例本例以會(huì)員管理這一功能模塊進(jìn)行測(cè)試,其測(cè)試代碼
59、如下(此處僅列出一個(gè)會(huì)員屬性的測(cè)試方法):public class testmemberdaoimpl extends testcase private session session=null; protected void setup() throws exception super.setup();this.session=hibernateutil.currentsession();this.session.begintransaction();protected void teardown() throws exception super.teardown();public void testdeletemember001() string userinfo=null; memberdaoimpl memberdao=new memberdaoimpl(); boole
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版辦公家具展會(huì)租賃與銷售合作合同3篇
- 二零二五年度武漢東湖風(fēng)景區(qū)旅游開發(fā)合同3篇
- 二零二五年度藝術(shù)品共同創(chuàng)作與展覽合同2篇
- 二零二五版房屋租賃合同免責(zé)及維修保障3篇
- 二零二五版燈光照明工程設(shè)計(jì)咨詢合同2篇
- 二零二五版班組分包消防設(shè)施分包服務(wù)合同樣本3篇
- 二零二五版新媒體行業(yè)勞動(dòng)合同制度及知識(shí)產(chǎn)權(quán)保護(hù)協(xié)議2篇
- 二零二五年空調(diào)銷售與綠色消費(fèi)倡導(dǎo)合同3篇
- 二零二五年度鋼管模板租賃環(huán)保要求及價(jià)格評(píng)估合同3篇
- 二零二五版網(wǎng)絡(luò)安全威脅情報(bào)共享與預(yù)警服務(wù)合同范本3篇
- 2025-2030年中國(guó)糖醇市場(chǎng)運(yùn)行狀況及投資前景趨勢(shì)分析報(bào)告
- 八年級(jí)散文閱讀專題訓(xùn)練-八年級(jí)語文上冊(cè)知識(shí)梳理與能力訓(xùn)練
- 2024年杭州市中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024-2025學(xué)年人教版八年級(jí)數(shù)學(xué)上冊(cè)期末測(cè)試模擬試題(含答案)
- 《環(huán)境感知技術(shù)》2024年課程標(biāo)準(zhǔn)(含課程思政設(shè)計(jì))
- GB/T 45079-2024人工智能深度學(xué)習(xí)框架多硬件平臺(tái)適配技術(shù)規(guī)范
- 2024年安徽省銅陵市公開招聘警務(wù)輔助人員(輔警)筆試自考練習(xí)卷二含答案
- 國(guó)家安全教育高教-第六章堅(jiān)持以經(jīng)濟(jì)安全為基礎(chǔ)
- 水處理藥劑采購(gòu)項(xiàng)目技術(shù)方案(技術(shù)方案)
- 2024年城市環(huán)衛(wèi)一體化服務(wù)合同
- 工地春節(jié)安全培訓(xùn)
評(píng)論
0/150
提交評(píng)論