JAVA網(wǎng)上手機(jī)商店百寶箱的設(shè)計與實(shí)現(xiàn)(本科畢業(yè)論文)_第1頁
JAVA網(wǎng)上手機(jī)商店百寶箱的設(shè)計與實(shí)現(xiàn)(本科畢業(yè)論文)_第2頁
JAVA網(wǎng)上手機(jī)商店百寶箱的設(shè)計與實(shí)現(xiàn)(本科畢業(yè)論文)_第3頁
JAVA網(wǎng)上手機(jī)商店百寶箱的設(shè)計與實(shí)現(xiàn)(本科畢業(yè)論文)_第4頁
JAVA網(wǎng)上手機(jī)商店百寶箱的設(shè)計與實(shí)現(xiàn)(本科畢業(yè)論文)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、裝訂線長 春 大 學(xué) 畢業(yè)設(shè)計(論文)紙1 引 言1.1 網(wǎng)上手機(jī)商店的發(fā)展近年來,隨著internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費(fèi)者展示出一種新穎的購物理念。網(wǎng)上手機(jī)店是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供特價手機(jī)和新品上市兩類信息資源。所謂特價手機(jī)是指那些日期過久的手機(jī)或者是活動的手機(jī),會被放入到特價手機(jī)行列中;新品上市的信息,即這個星期或者這幾天某個手機(jī)廠商最新發(fā)布的手機(jī)信息等。網(wǎng)上手機(jī)購物系統(tǒng)具有強(qiáng)大的交互功能,可使商家和用戶方便的傳遞信息,完成電子交易。1.2 網(wǎng)

2、上手機(jī)店的現(xiàn)狀隨著社會的發(fā)展,網(wǎng)絡(luò)的普及,網(wǎng)上購物已成為在線業(yè)務(wù)的重要載體。網(wǎng)絡(luò)購物能夠繞過中介(如批發(fā)商、銷售商或經(jīng)銷商)建立與客戶的直接關(guān)系。還可以為用戶提供商品的詳細(xì)信息,用戶可以在線購買商品,確定自己的訂單。網(wǎng)上銷售為人們提供了更廣闊的環(huán)境:人們不受時間的限制,不受空間的限制,不受傳統(tǒng)購物的諸多限制,可以隨時隨地在網(wǎng)上交易。更廣闊的市場:在網(wǎng)上這個世界將會變得很小,一個商家可以面對全球的消費(fèi)者,而一個消費(fèi)者可以在全球的任何一家商家購物。更快速的流通和低廉的價格:電子商務(wù)減少了商品流通的中間環(huán)節(jié),節(jié)省了大量的開支,從而也大大降低了商品流通和交易的成本。更符合時代的要求:如今人們越來越追求

3、時尚、講究個性,注重購物的環(huán)境,網(wǎng)上購物,更能體現(xiàn)個性化的購物過程。1.3 網(wǎng)上手機(jī)店系統(tǒng)的構(gòu)建現(xiàn)在流行的網(wǎng)上購物系統(tǒng)不僅要有漂亮的網(wǎng)頁,更要有嚴(yán)謹(jǐn)?shù)囊?guī)劃。每一個細(xì)小的環(huán)節(jié)都很重要。這樣才能使得在電子交易時避免不必要錯誤發(fā)生。我將使用html、jsp等技術(shù)來編輯網(wǎng)頁,使用了struts技術(shù)對網(wǎng)頁之間的請求進(jìn)行相應(yīng)的控制,能夠更輕松更方便的管理客戶的請求和相應(yīng)的用戶管理。以及及時的將系統(tǒng)信息返回給展示頁面。由于傳統(tǒng)的管理信息系統(tǒng)的信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統(tǒng)的數(shù)據(jù)庫中,這種方法在數(shù)據(jù)量不大時有很多的應(yīng)用場合。當(dāng)數(shù)據(jù)量比較大,并且有較強(qiáng)的專業(yè)性時,錄入的費(fèi)用和出錯的可能性都

4、相應(yīng)上升。本系統(tǒng)通過運(yùn)用hibernate技術(shù)把數(shù)據(jù)庫和動態(tài)網(wǎng)頁連接,使得出錯和成本都相應(yīng)的降低。本文在實(shí)際應(yīng)用開發(fā)中解決方案是建立網(wǎng)站, 以及自己的數(shù)據(jù)庫,使得所需商品信息可以及時的保存、更新,以更好的及時了解商品買賣的情況。目前網(wǎng)上手機(jī)商場布局比較凌亂,操作和簡便性也有一定得局限性。因此有必要重新設(shè)計并且組織一個結(jié)構(gòu)清晰,操作簡單傻瓜式的一站式手機(jī)網(wǎng)上商城。因此經(jīng)過此次畢業(yè)設(shè)計簡單的將手機(jī)網(wǎng)上商城進(jìn)行了實(shí)現(xiàn)。共 39 頁 第 39 頁2 系統(tǒng)分析2.1可行性分析2.1.1經(jīng)濟(jì)可行性本手機(jī)網(wǎng)上商店采用了b/s結(jié)構(gòu),主要看重的是其異地瀏覽和信息采集的靈活性。無論在任何時間、任何地點(diǎn)、任何系統(tǒng),

5、只要可以使用瀏覽器上網(wǎng),就都可以瀏覽網(wǎng)站。而且當(dāng)網(wǎng)站的升級維護(hù)時,只需更新服務(wù)器端的軟件就可以,這減輕了異地用戶系統(tǒng)維護(hù)與升級的成本。數(shù)據(jù)庫方面選用了mysql,它能夠處理大量數(shù)據(jù),同時保持?jǐn)?shù)據(jù)的完整性并提供許多高級管理功能。并且mysql是開源的軟件使得程序開發(fā)成本得到最大的節(jié)省。而且開發(fā)工具是開放的,不需要任何費(fèi)用,節(jié)省了開發(fā)成本。因此經(jīng)濟(jì)可行。2.1.2技術(shù)可行性從技術(shù)角度考慮,java網(wǎng)絡(luò)編程實(shí)用性很強(qiáng),相關(guān)書籍資料非常豐富,我們可以在學(xué)習(xí)中逐漸完善系統(tǒng)的開發(fā)。并且,隨著現(xiàn)代化的網(wǎng)絡(luò)技術(shù)的發(fā)展,眾多編程人員在論壇里相互交流經(jīng)驗(yàn),無形中形成了跨局域的團(tuán)隊互補(bǔ)團(tuán)隊合作,方便了我們在碰到技術(shù)

6、問題時候及時的獲得解決辦法,提高了工作效率。我們經(jīng)過比較之后選擇了java和mysql來開發(fā)這個系統(tǒng),首先java是目前最優(yōu)秀的網(wǎng)絡(luò)軟件開發(fā)語言,功能強(qiáng)大,簡單易學(xué),而mysql是完全免費(fèi)的,功能十分強(qiáng)大,針對中小企業(yè)能夠完全滿足要求。綜合以上原因,在技術(shù)上也是可行的。2.3 需求分析隨著計算機(jī)以及互聯(lián)網(wǎng)的普及,各家各戶都基本上購置了計算機(jī),網(wǎng)絡(luò)消費(fèi)也成為了當(dāng)今一種流行趨勢。因此網(wǎng)上手機(jī)商店這個時候的出現(xiàn)是一種必然。2.3.1系統(tǒng)目標(biāo)本系統(tǒng)以網(wǎng)絡(luò)瀏覽器為客戶端,通過對相應(yīng)網(wǎng)站的訪問進(jìn)而訪問本系統(tǒng),實(shí)現(xiàn)手機(jī)商店的網(wǎng)絡(luò)化。2.3.2系統(tǒng)具體功能(1)顧客可以方便的注冊與登錄;(2)顧客可以靈活地檢

7、索所需的商品信息及了解特價商品信息;(3)顧客可以方便的查看詳細(xì)的商品資料;(4)顧客可以方便的管理自己的購物車,包括添加或刪除選購商品,修改購買數(shù)量及在線下訂單等一些操作;(5)顧客可以反饋?zhàn)约旱囊庖娀蛄粞裕?6)商品管理員可以方便的管理商品及特價商品信息,包括新增,刪除,修改商品及特價商品;(7)訂單管理員可以方便的查看訂單,發(fā)貨與缺貨處理;(8)會員管理員可以方便的查看顧客反饋的信息以及具體的處理情況;(9)系統(tǒng)管理員可以方便的進(jìn)行系統(tǒng)用戶的管理,包括新增,刪除,修改系統(tǒng)用戶。4 開發(fā)工具簡介4.1運(yùn)行環(huán)境要求4.1.1 硬件環(huán)境要求(1)中央處理器:p3 以上;(2)內(nèi)存:512mb;

8、(3)硬盤空間:2g; (4)顯示器:分辨率要求1024*768或更高;(5)光盤驅(qū)動器、鍵盤和鼠標(biāo);(6)對于網(wǎng)絡(luò)操作要有與windows兼容的網(wǎng)絡(luò)和網(wǎng)絡(luò)服務(wù)器。4.1.2 軟件環(huán)境要求(1)操作系統(tǒng): microsoft windows98/2000/nt4.0/xp/vista;(2)數(shù)據(jù)庫系統(tǒng):mysql;(3)java環(huán)境:jvm虛擬機(jī)。4.2開發(fā)工具 eclipse 是一個開放源代碼的、基于 java 的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括 java 開發(fā)工具(java deve

9、lopment tools,jdt)。 eclipse最初是由ibm公司開發(fā)的替代商業(yè)軟件visual age for java的下一代ide開發(fā)環(huán)境,2001年11月貢獻(xiàn)給開源社區(qū),現(xiàn)在它由非營利軟件供應(yīng)商聯(lián)盟eclipse基金會(eclipse foundation)管理。 2003年,eclipse 3.0選擇osgi服務(wù)平臺規(guī)范為運(yùn)行時架構(gòu)。 2007年6月,穩(wěn)定版3.3發(fā)布。2008年6月發(fā)布代號為ganymede的3.4版。eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(ide)。最初主要用來java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機(jī)語言比如c+和python的開發(fā)

10、工具。eclipse的本身只是一個框架平臺,但是眾多插件的支持使得eclipse擁有其他功能相對固定的ide軟件很難具有的靈活性。許多軟件開發(fā)商以eclipse為框架開發(fā)自己的ide。eclipse 最初由oti和ibm兩家公司的ide產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。ibm提供了最初的eclipse代碼基礎(chǔ),包括platform、jdt 和pde。目前由ibm牽頭,圍繞著eclipse項(xiàng)目已經(jīng)發(fā)展成為了一個龐大的eclipse聯(lián)盟,有150多家軟件公司參與到eclipse項(xiàng)目中,其中包括borland、rational software、red hat及sybase等。eclipse是一

11、個開發(fā)源碼項(xiàng)目,它其實(shí)是 visual age for java的替代品,其界面跟先前的visual age for java差不多,但由于其開放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來越受人們關(guān)注。近期還有包括oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,并宣稱eclipse將來能成為可進(jìn)行任何語言開發(fā)的ide集大成者,使用者只需下載各種語言的插件即可。雖然大多數(shù)用戶很樂于將 eclipse 當(dāng)作 java ide 來使用,但 eclipse 的目標(biāo)不僅限于此。eclipse 還包括插件開發(fā)環(huán)境(plug-in development environment,p

12、de),這個組件主要針對希望擴(kuò)展 eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 eclipse 環(huán)境無縫集成的工具。由于 eclipse 中的每樣?xùn)|西都是插件,對于給 eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于 java 開發(fā)工具。盡管 eclipse 是使用 java 語言開發(fā)的,但它的用途并不限于 java 語言;例如,支持諸如 c/c+、cobol 和 eiffel 等編程語言的插件已經(jīng)可用,或預(yù)計會推出。eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理

13、系統(tǒng)?;趀clipse 的應(yīng)用程序的突出例子是ibm 的websphere studio workbench,它構(gòu)成了 ibm java 開發(fā)工具系列的基礎(chǔ)。例如,websphere studio application developer 添加了對 jsp、servlet、ejb、xml、web 服務(wù)和數(shù)據(jù)庫訪問的支持。4.3 java及相應(yīng)技術(shù)簡介4.3.1 java簡介java是由sun microsystems公司于1995年5月推出的java程序設(shè)計語言(以下簡稱java語言)和java平臺的總稱1。用java實(shí)現(xiàn)的hotjava瀏覽器(支持java applet)顯示了java的

14、魅力:跨平臺、動態(tài)的web、internet計算。從此,java被廣泛接受并推動了web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持java applet。另一方面,java技術(shù)也不斷更新。java平臺由java虛擬機(jī)(java virtual machine)和java 應(yīng)用編程接口(application programming interface、簡稱api)構(gòu)成。java 應(yīng)用編程接口為java應(yīng)用提供了一個獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺上安裝一個java平臺之后,java應(yīng)用程序就可運(yùn)行?,F(xiàn)在java平臺已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣java程序可

15、以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的java平臺基于java1.4,最近版本為java1.7。java分為三個體系javase(java2 platform standard edition,java平臺標(biāo)準(zhǔn)版),javaee(java 2 platform,enterprise edition,java平臺企業(yè)版),javame(java 2 platform micro edition,java平臺微型版) 2。4.3.2 jdbc定義 jdbc(java data base connectivity,java數(shù)據(jù)庫連接)是一

16、種用于執(zhí)行sql語句的java api,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用java語言編寫的類和接口組成種關(guān)系數(shù)據(jù)發(fā)送sql語句就是一件很容易的事。換言之,有了jdbc api,就不必為訪問sybase數(shù)據(jù)庫專門寫一個程序,為訪問oracle數(shù)據(jù)庫又專門寫一個程序,或?yàn)樵L問informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用jdbc api寫一個程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送sql調(diào)用。同時,將java語言和jdbc結(jié)合起來使程序員不必為不同的平臺編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺上運(yùn)行,這也是java語言“編寫一次,處處運(yùn)行”的優(yōu)勢5。java數(shù)據(jù)庫連接體

17、系結(jié)構(gòu)是用于java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。jdbc對java程序員而言是api,對實(shí)現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為api,jdbc為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫廠商及。jdbc為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的api,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 java api 編寫數(shù)據(jù)庫應(yīng)用程序,同時,jdbc也是個商標(biāo)名。 有了jdbc,向各第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫的連接提供了標(biāo)準(zhǔn)方法。jdbc使用已有的sql標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn),如odbc之間的橋接。jdbc實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的

18、接口。 java 具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是 java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對話的方法。而 jdbc 正是作為此種用途的機(jī)制。 jdbc 擴(kuò)展了 java 的功能。例如,用 java 和 jdbc api 可以發(fā)布含有 applet 的網(wǎng)頁,而該 applet 使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫。企業(yè)也可以用 jdbc 通過 intranet 將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計算機(jī)有 windows、 macintosh 和unix 等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用j

19、ava 編程語言,對從 java 中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。 mis 管理員們都喜歡 java 和 jdbc 的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對于商務(wù)上的銷售信息服務(wù), java 和jdbc 可為外部客戶提供獲取信息更新的更好方法。4.4 mvc簡介mvc三層架構(gòu)也稱mvc模式,主要是將程序開發(fā)分為model層(數(shù)據(jù)持久層)、view

20、(界面表示層)、control層(控制層)這三個層面,并將這三個層面分開來,形成了一個立體的架構(gòu)6。三個層次之間的主要交互,如圖4-1所示。view層control層model層圖4-1 mvc模式三層架構(gòu)4.4.1 mvc模型介紹 mvc英文即model-view-controller,即把一個應(yīng)用的輸入、處理、輸出流程按照model、view、controller的方式進(jìn)行分離,這樣一個應(yīng)用被分成三個層模型層、視圖層、控制層7。(1)視圖(view)代表用戶交互界面,對于web應(yīng)用來說,可以概括為html界面,但有可能為xhtml、xml和applet。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理

21、也變得具有挑戰(zhàn)性。一個應(yīng)用可能有很多不同的視圖,mvc設(shè)計模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型(model)處理。比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型。 (2)模型(model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計可以說是mvc最主要的核心。目前流行的ejb模型就是一個典型的應(yīng)用例子,它從應(yīng)用技術(shù)實(shí)現(xiàn)的角度對模型做了進(jìn)一步的劃分,以便充分利

22、用現(xiàn)有的組件,但它不能作為應(yīng)用設(shè)計模型的框架。它僅僅告訴你按這種模型設(shè)計就可以利用某些技術(shù)組件,從而減少了技術(shù)上的困難。業(yè)務(wù)模型還有一個很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對象的數(shù)據(jù) 保存(持續(xù)化)。比如將一張訂單保存到數(shù)據(jù)庫,從數(shù)據(jù)庫獲取訂單。我們可以將這個模型單獨(dú)列出,所有有關(guān)數(shù)據(jù)庫的操作只限制在該模型中。(3)控制(controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶點(diǎn)擊一個連接

23、,控制層接受請求后, 并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應(yīng)多個視圖,一個視圖可能對應(yīng)多個模型8。4.4.2 mvc設(shè)計模式的實(shí)現(xiàn) (1)視圖。是模型的表示,它提供用戶交互界面。使用多個包含單顯示頁面的用戶部件,復(fù)雜的web頁面可以展示來自多個數(shù)據(jù)源的內(nèi)容,并且網(wǎng)頁人員,美工能獨(dú)自參與這些web頁面的開發(fā)和維護(hù)。(2)控制。為了能夠控制和協(xié)調(diào)每個用戶跨越多個請求的處理,控制機(jī)制應(yīng)該以集中的方式進(jìn)行管理。應(yīng)用程序的控制器集中從客戶端接收請求,決定執(zhí)行什么商業(yè)邏輯功能,然后將產(chǎn)生下一步用戶界面的責(zé)任委派給一個適當(dāng)?shù)囊晥D組件

24、。用控制器提供一個控制和處理請求的集中入口點(diǎn),它負(fù)責(zé)接收、截取并處理用戶請求;并將請求委托給分發(fā)者類,根據(jù)當(dāng)前狀態(tài)和業(yè)務(wù)操作的結(jié)果決定向客戶呈現(xiàn)的視圖。(3)模型。mvc系統(tǒng)中的模型從概念上可以分為兩類系統(tǒng)的內(nèi)部狀態(tài)和改變系統(tǒng)狀態(tài)的動作。模型是你所有的商業(yè)邏輯代碼片段所在。業(yè)務(wù)處理對象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模型,并且把響應(yīng)提交到合適的視圖組件以產(chǎn)生響應(yīng)。業(yè)務(wù)實(shí)體對象可以通過定義屬性描述客戶端表單數(shù)據(jù)。通過業(yè)務(wù)實(shí)體對象實(shí)現(xiàn)了對視圖和模型之間交互的支持。實(shí)現(xiàn)時把做什么(業(yè)務(wù)處理)和如何做(業(yè)務(wù)實(shí)體)分離。這樣可以實(shí)現(xiàn)業(yè)務(wù)邏輯的重用8。4.5 mysql 概述 mysql是一個精巧的sq

25、l數(shù)據(jù)庫管理系統(tǒng),雖然它不是開放源代碼的產(chǎn)品,但在某些情況下你可以自由使用。由于它的強(qiáng)大功能、靈活性、豐富的應(yīng)用編程接口(api)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特別是與apache和php/perl結(jié)合,為建立基于數(shù)據(jù)庫的動態(tài)網(wǎng)站提供了強(qiáng)大動力。mysql是一個真正的多用戶、多線程sql數(shù)據(jù)庫服務(wù)器。sql(結(jié)構(gòu)化查詢語言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫語言。mysql是以一個客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個服務(wù)器守護(hù)程序mysql和很多不同的客戶程序和庫組成。sql是一種標(biāo)準(zhǔn)化的語言,它使得存儲、更新和存取信息更容易。例如,你能用sql語言為一個網(wǎng)

26、站檢索產(chǎn)品信息及存儲顧客信息,同時mysql也足夠快和靈活以允許你存儲記錄文件和圖像。 mysql 主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰@樣一個sql服務(wù)器,它能處理與任何可不昂貴硬件平臺上提供數(shù)據(jù)庫的廠家在一個數(shù)量級上的大型數(shù)據(jù)庫,但速度更快,mysql就開發(fā)出來。自1996年以來,我們一直都在使用mysql,其環(huán)境有超過 40 個數(shù)據(jù)庫,包含 10,000個表,其中500多個表超過7百萬行,這大約有100 個吉字節(jié)(gb)的關(guān)鍵應(yīng)用數(shù)據(jù)。 mysql建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管mysql仍在開發(fā)中,但它已經(jīng)提供一個豐富和極其有用的功能集13。4.6

27、 b/s模式介紹b/s結(jié)構(gòu):(browser/server,瀏覽器/服務(wù)器模式):是web興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,web瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用??蛻魴C(jī)上只要安裝一個瀏覽器(browser),如netscape navigator或internet explorer,服務(wù)器安裝oracle、sybase、informix或 sql server等數(shù)據(jù)庫。瀏覽器通過web server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。b/s結(jié)構(gòu)的使用越來越多,特別是由需求推動了ajax技術(shù)的發(fā)展,它的程序也能在客戶端電腦上

28、進(jìn)行部分處理,從而大大的減輕了服務(wù)器的負(fù)擔(dān);并增加了交互性,能進(jìn)行局部實(shí)時刷新。4.6.1 b/s結(jié)構(gòu)的優(yōu)點(diǎn)b/s結(jié)構(gòu)最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件。只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護(hù)。系統(tǒng)的擴(kuò)展非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個用戶名和密碼,就可以使用了。甚至可以在線申請,通過公司內(nèi)部的安全認(rèn)證(如ca證書)后,不需要人的參與,系統(tǒng)可以自動分配給用戶一個賬號進(jìn)入系統(tǒng)。4.7 hibernate技術(shù)概述在項(xiàng)目中使用hibernate框架,非常關(guān)鍵的一點(diǎn)就是要了解hibernate的核心接口。hibernate接口位于業(yè)務(wù)層和持久化層,如圖4-2

29、所示。圖4-2 hibernate核心接口的層次架構(gòu)關(guān)系hibernate的核心接口一共有5個,分別為:session、sessionfactory、transaction、query和configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。 session接口:session接口負(fù)責(zé)執(zhí)行被持久化對象的crud操作(crud的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的sql語句。)。但需要注意的是session對象是非線程安全的。同時,hibernate的session不同于jsp應(yīng)用中的httpsession。這里當(dāng)使用

30、session這個術(shù)語時,其實(shí)指的是hibernate中的session,而以后會將httpsesion對象稱為用戶session。sessionfactory接口:sessionfactroy接口負(fù)責(zé)初始化hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建session對象。這里用到了工廠模式。需要注意的是sessionfactory并不是輕量級的,因?yàn)橐话闱闆r下,一個項(xiàng)目通常只需要一個sessionfactory就夠,當(dāng)需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個sessionfactory。configuration接口:configuration接口負(fù)責(zé)配置并啟動hibernat

31、e,創(chuàng)建sessionfactory對象。在hibernate的啟動的過程中,configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建sessionfactory對象。transaction接口:transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計編寫自己的底層事務(wù)處理代碼。query和criteria接口:query和criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用hql語言或sql語句兩種表達(dá)方式。4.8 struts技術(shù)概述struts 是一組相互協(xié)作的類、servlet 和 jsp 標(biāo)記組成的一個可重用的 mvc2 設(shè)計。這個定義表示st

32、ruts是一個框架,而不是一個庫,但 struts框架也包含了豐富的標(biāo)記庫和獨(dú)立于該框架工作的實(shí)用程序類。4.8.1 struts 概覽(1)client browser(客戶瀏覽器) 來自客戶瀏覽器的每個 http 請求創(chuàng)建一個事件。web 容器將用一個http響應(yīng)作出響應(yīng)。(2)controller(控制器)控制器接收來自瀏覽器的請求,并決定將這個請求發(fā)往何處。 就 struts而言,控制器是以servlet 實(shí)現(xiàn)的一個命令設(shè)計模式。struts-config.xml 文件配置控制器命令。(3)業(yè)務(wù)邏輯 業(yè)務(wù)邏輯更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。就 struts而言,這是通過作為實(shí)

33、際業(yè)務(wù)邏輯“瘦”包裝的action 類完成的。(4)model(模型)的狀態(tài) 模型表示應(yīng)用程序的狀態(tài)。業(yè)務(wù)對象更新應(yīng)用程序的狀態(tài)。actionformbean在會話級或請求級表示模型的狀態(tài),而不是在持久級。jsp 文件使用 jsp 標(biāo)記讀取來自 actionformbean的信息。(5)view(視圖) 視圖就是一個 jsp 文件。其中沒有流程邏輯,沒有業(yè)務(wù)邏輯,也沒有模型信息 只有標(biāo)記。標(biāo)記是使struts 有別于其他框架(如 velocity)的因素之一。4.8.2 struts中的controller(控制器)命令設(shè)計模式的實(shí)現(xiàn): struts 的控制器將事件(事件通常是 http po

34、st)映射到類的一個 servlet。actionservlet (command)創(chuàng)建并使用 action 、actionform 和actionforward。 通過struts-config.xml 文件配置該 command。從而擴(kuò)展 action 和actionform來解決特定的問題??梢酝ㄟ^擴(kuò)展 actionservlet 來添加 command 功能。在struts框架中控制器組件由三個部分構(gòu)成:(1)消息控制模塊:用戶所有的提交請求都發(fā)往消息控制模塊,在由消息總線模塊根據(jù)視圖映射模塊找到消息處理模塊來執(zhí)行處理邏輯。消息控制模塊接收所有用戶的請求,并根據(jù)請求視圖找到處理。str

35、tus中通過actionservlet和requestprocessor類來完成。(2)消息處理模塊:該模塊執(zhí)行該消息的邏輯處理,因此通常由用戶擴(kuò)展實(shí)現(xiàn)。struts中通過action類來實(shí)現(xiàn)。(3)視圖映射模塊:控制器邏輯和視圖邏輯之間的結(jié)合是通過配置模塊和配置文件建立其的鏈接。struts中配置模塊通過moduleconfig類來完成,而配置文件由struts-config.xml文件提供。4.8.3 struts中的view(視圖)視圖組件通過jsp組件實(shí)現(xiàn)的。struts框架對視圖組件進(jìn)行了擴(kuò)展和封裝。struts對視圖的擴(kuò)展提供了一組擴(kuò)展服務(wù)器標(biāo)簽用來提供視圖顯示以及傳遞數(shù)據(jù)到處理緩

36、沖,而處理緩沖由actionform的擴(kuò)展類來實(shí)現(xiàn)。struts框架利用actionform bean來實(shí)現(xiàn)視圖與控制器之間的數(shù)據(jù)的交互,維持會話級或請求級的模型的狀態(tài)。服務(wù)器標(biāo)簽主要包括:html視圖標(biāo)簽 logic邏輯流程控制標(biāo)簽 bean數(shù)據(jù)緩沖讀取標(biāo)簽4.8.4 struts中的model(模型)(1)struts框架中并沒有定義特定的模型組件,而是希望由用戶自己決定選擇合理的模型組件。j2ee中可用的模型組件包括:javabean 用戶定義組件; ejb 組件,由ejb容器實(shí)現(xiàn)組件; jdo未來j2ee數(shù)據(jù)訪問模型;一些擴(kuò)展框架如hibernate;(2)模型中狀態(tài)的級別 會話級或請

37、求級:actionform bean來維持 ;持久級:模型組件來維持。5 系統(tǒng)總體設(shè)計5.1 系統(tǒng)解決方案本手機(jī)網(wǎng)上商店網(wǎng)站采用的是基于網(wǎng)絡(luò)的browser/server(瀏覽器/服務(wù)器)結(jié)構(gòu)的軟件實(shí)現(xiàn),系統(tǒng)的實(shí)現(xiàn)分為3個層次:模型層(model)、視圖層(view)、控制層(controller)。5.1.1 模型層模型層(model)主要負(fù)責(zé)系統(tǒng)的各種數(shù)據(jù),由于本畢業(yè)設(shè)計管理系統(tǒng)的數(shù)據(jù)存儲量比較大,所以本系統(tǒng)利用mysql 作為數(shù)據(jù)庫管理系統(tǒng)。5.1.2 視圖層視圖層(view)主要負(fù)責(zé)前臺的展示和獲取前臺信息等工作,比如手機(jī)的功能展示等等,這里使用了jsp技術(shù)結(jié)合ajax技術(shù)來實(shí)現(xiàn)所有用

38、戶要求的。5.1.3 控制層控制層(controller)的功能是控制器接收用戶的請求,然后調(diào)用某個模塊來處理用戶的請求,在控制器的控制下,再將處理的結(jié)果交給某個視圖進(jìn)行格式化輸出給用戶。5.2 系統(tǒng)結(jié)構(gòu)劃分系統(tǒng)總體用例圖,如圖 5-1所示。 圖51系統(tǒng)總體用例圖5.3 模塊劃分系統(tǒng)模塊劃分,如圖52所示。百機(jī)會-網(wǎng)上手機(jī)商店登錄注冊模塊瀏覽檢索模塊購物車模塊后臺登錄模塊反饋留言模塊訂單管理模塊商品管理模塊特價商品管理系統(tǒng)用戶管理會員管理模塊圖52模塊分布圖6 系統(tǒng)詳細(xì)設(shè)計6.1 數(shù)據(jù)庫的設(shè)計6.1.1 系統(tǒng)數(shù)據(jù)庫物理模型圖系統(tǒng)數(shù)據(jù)庫物理模型,如圖6-1所示。圖6-1數(shù)據(jù)庫物理模型圖6.1.2

39、 數(shù)據(jù)庫和數(shù)據(jù)表的設(shè)計“網(wǎng)上手機(jī)店”數(shù)據(jù)庫,包含會員級別,注冊會員,手機(jī)類別,手機(jī),購物車選購,購物車,訂單,留言,系統(tǒng)用戶等幾個數(shù)據(jù)表,其中“會員級別表”是用來存儲會員等級,包括id號,級別名稱,優(yōu)惠百分比;“注冊會員表”包括id號,登錄賬號,登錄密碼,真實(shí)姓名,聯(lián)系電話,聯(lián)系地址,郵政編碼,注冊日期,最近登錄日期,登錄次數(shù),電子郵箱;“手機(jī)類別表”存儲包括id號,類別名稱,類別描述;“手機(jī)表”存儲包括id號,商品類別id,商品名稱,商品價格,商品型號,商品特價,商品圖片,商品描述,生產(chǎn)廠家,出廠日其,有無特價;“購物車表”包含id號,會員id,總金額,購物車狀態(tài);“訂單表”包含id號,會員

40、id,購物車id,訂單編號,訂單日期,訂單狀態(tài);“留言表”包含id號,會員id,管理員id,留言標(biāo)題,留言內(nèi)容,留言日期,留言回復(fù),回復(fù)日期;“系統(tǒng)用戶表”id號,管理員類型,管理員真實(shí)姓名,管理員登錄賬號,管理員登錄密碼。6.1.3 各數(shù)據(jù)表設(shè)計與實(shí)現(xiàn)(1)會員級別,如表6-1所示。表6-1會員級別表字段名稱數(shù)據(jù)類型描述idint(4)id號levelnamechar(20)級別名稱favourableint(4)優(yōu)惠百分比(2)注冊會員表,如表6-2所示。表6-2 注冊會員表字段名稱數(shù)據(jù)類型描述idint(4)id號memberlevelint(4)會員級別idloginnamechar(

41、12)登錄賬號loginpwdchar(12)登錄密碼membernamechar(20)真是姓名phonechar(15)聯(lián)系電話addressnvarchar(100)聯(lián)系地址zipchar(10)郵政編碼regdatedatetime(0)注冊時間lastdatedatetime(0)最近登錄時間logintimesint(4)登錄次數(shù)emailnvarchanr(100)電子郵箱(3)手機(jī)類別表,如表6-3所示。表6-3 手機(jī)類別表字段名稱數(shù)據(jù)類型描述idint(4)手機(jī)類別idcatenamenchar(40)類別名稱catedesctext(0)類別描述(4)手機(jī)表,如表6-4所示

42、。表6-4 手機(jī)表字段名稱數(shù)據(jù)類型描述idint(4)id號categoryint(4)手機(jī)類別idmernamenchar(40)手機(jī)名稱pricedecimal(8)手機(jī)價格spricedecimal(8)手機(jī)特價mermodelnchar(40)手機(jī)型號picturenvarchar(100)手機(jī)圖片merdesctext(0)手機(jī)描述manufacturenchar(60)生產(chǎn)廠家leavefactorydatedatetime(0)出廠日期specialint(4)有無特價 (5)購物車選購表,如表6-5所示。 表6-5 購物車選購表字段名稱數(shù)據(jù)類型描述idint(4)id號cart

43、int(4)購物車idmerchandiseint(4)手機(jī)idnumberint(4)手機(jī)數(shù)量pricedecimal(4)手機(jī)價格moneydecimal(4)金額(6)購物車表,如表6-6所示。表6-6 購物車表字段名稱數(shù)據(jù)類型描述idint(4)id號memberint(4)會員idmoneydecimal(9)總金額cartsatusint(4)購物車狀態(tài)(7)訂單表,如表6-7所示。表6-7 訂單表字段名稱數(shù)據(jù)類型描述idint(4)id號membersint(4)會員idcartint(4)購物車idordernonchar(20)訂單編號orderdatedatetime(0)

44、訂單日期orderstatusint(4)訂單狀態(tài) (8) 留言表,如表6-8所示。 表6-8 留言表 字段名稱數(shù)據(jù)類型描述membersint(4)會員idadminint(4)管理員idtitlenchar(4)留言標(biāo)題contenttext(60)留言內(nèi)容leavedatedatetime(0)留言日期answercontent text(0)回復(fù)內(nèi)容answerdatedatetime(0)回復(fù)日期(9)系統(tǒng)用戶表,如表6-9所示。 表6-9 系統(tǒng)用戶表字段名稱數(shù)據(jù)類型描述idint(4)id號admintypeint(4)管理員類型adminnamechar(12)管理員真實(shí)姓名lo

45、ginnmaechar(12)管理員登錄賬號loginpwdchar(12)管理員登錄密碼6.2 工程設(shè)計對于本網(wǎng)上手機(jī)商店,所有工程均使用eclipse創(chuàng)建,調(diào)試,開發(fā)以及部署執(zhí)行的,具體步驟如下:(1)建立工程在eclipse中,file-new-web project,命名為phones。(2)添加框架插件選中當(dāng)前工程,右鍵myeclipse-add hibernate capabilitids 和 右鍵myeclipse-add struts capabilitids,經(jīng)過兩個步驟,hibernate和struts集合開發(fā)框架就大體的加入到了工程中。(3)工程結(jié)構(gòu),如圖6-2所示。 圖

46、6-2 工程結(jié)構(gòu)圖6.3 模塊設(shè)計6.3.1 顧客登錄(1)模塊功能 顧客可以通過填寫注冊信息注冊成為會員,會員登錄后才能進(jìn)行購物車的管理以及意見的反饋,未登錄的會員或者為注冊的顧客只能檢索與瀏覽商品信息。(2)界面效果,如圖6-3所示 。圖6-3 登錄注冊模塊(3)模塊主要代碼及詳解當(dāng)會員登錄的時候,首先在default.jsp中填寫登錄表單,填寫完畢提交之后,defaul.jsp中登錄表單的內(nèi)容由struts自動封裝到memloginform對象中,并送交validator進(jìn)行表單有效性驗(yàn)證,如果驗(yàn)證失敗則返回default.jsp要求用戶重新填寫表單直到通過驗(yàn)證,否則就將memlogin

47、form對象送給loginaction的login方法進(jìn)行處理,處理完成后將處理結(jié)果反饋給default.jsp并完成登錄。 /* 會員登錄代碼 */public member memlogin(string loginname, string loginpwd) throws exception session session = mysessionfactory.getsession();transaction tx = null;member mem = null;trystring hql = select a from member as a where a.loginname=:l

48、oginname and a.loginpwd=:loginpwd;query query = session.createquery(hql);query.setstring(loginname, loginname);query.setstring(loginpwd, loginpwd);query.setmaxresults(1);tx = session.begintransaction();mem = (member)query.uniqueresult();mem.setlogintimes(integer.valueof(mem.getlogintimes().intvalue(

49、)+1);mem.setlastdate(new date();session.update(mem);mit();catch(exception ex)if(tx!=null)tx.rollback();(在執(zhí)行memserviceimpl類中的memlogin方法時出錯n);ex.printstacktrace();finallymysessionfactory.closesession();return mem;6.3.2 手機(jī)檢索瀏覽模塊(1)模塊功能顧客可以根據(jù)不同的手機(jī)種類瀏覽手機(jī)的信息,也可以輸入關(guān)鍵字進(jìn)行手機(jī)檢索。(2)程序效果,如圖6-4所示。圖6-4

50、手機(jī)檢索以及瀏覽模塊(3)模塊主要代碼及詳解用戶的請求,例如查看手機(jī)。均通過調(diào)用meraction類的相應(yīng)方法進(jìn)行處理,meraction類中的方法在收到請求后,根據(jù)具體的請求調(diào)用merservice接口中的相應(yīng)dao方法完成數(shù)據(jù)庫的訪問,并將檢索得到的結(jié)果返回給meraction,meraction則將最終的處理結(jié)果保存到request對象中,由相應(yīng)的jsp頁面帶回并展示給用戶。/*處理分類查詢手機(jī)請求*/public actionforward searchmer(actionmapping mapping, actionform form,httpservletrequest reque

51、st, httpservletresponse response) list merlist = null;merservice service = new merserviceimpl();int pageno = 1; /頁號int pagesize = 15; /每頁記錄數(shù)int totals = 0; /記錄總數(shù)int totalpages = 0; /總頁數(shù)if (key!=null)key = new string(key.getbytes(iso8859-1),gb2312);request.setattribute(key, key);if(haswhere)hql = hql

52、 + and a.mername like %+key+%;hql1 = hql1 + and a.mername like %+key+%;action = action + key=+key+&;elsehql = hql + where a.mername like %+key+%;hql1 = hql1 + where a.mername like %+key+%;action = action + &key=+key+&;request.setattribute(action, action);merlist = service.browsemer(pagesize,pageno,h

53、ql);totals = service.countrecord(hql1);6.3.3 購物車模塊(1)模塊功能顧客需要輸入注冊賬號與密碼登錄后便可以使用購物車以及對其進(jìn)行相應(yīng)的管理,如將選中的手機(jī)放入購物車,修改選購手機(jī)的數(shù)量,刪除購物車中的手機(jī),在線下訂單以及查看訂單等。(2) 程序效果,如圖6-5所示。圖6-5 購物車模塊圖(3) 模塊主要代碼及詳解用戶請求,例如購物車查看。都是通過直接調(diào)用了cartaction類的相應(yīng)方法進(jìn)行處理,cartaction類中的方法在收到請求后,根據(jù)具體的請求調(diào)用cartservice接口中的相應(yīng)dao方法完成數(shù)據(jù)庫的訪問,并將檢索得到的結(jié)果返回給cartaction,cartaction則將最終的結(jié)果保存到request對象中,由相應(yīng)的jsp頁面帶回并展示給用戶。/* 裝載指定會員的購物車 */public cart loadcart(member member) throws exception session session = mysessionfactory.getsession();transaction tx = null;car

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論