版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、裝訂線長(zhǎng) 春 大 學(xué) 畢業(yè)設(shè)計(jì)(論文)紙1 引 言1.1 網(wǎng)上手機(jī)商店的發(fā)展近年來(lái),隨著internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來(lái),越來(lái)越多的商家在網(wǎng)上建起在線商店,向消費(fèi)者展示出一種新穎的購(gòu)物理念。網(wǎng)上手機(jī)店是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供特價(jià)手機(jī)和新品上市兩類信息資源。所謂特價(jià)手機(jī)是指那些日期過久的手機(jī)或者是活動(dòng)的手機(jī),會(huì)被放入到特價(jià)手機(jī)行列中;新品上市的信息,即這個(gè)星期或者這幾天某個(gè)手機(jī)廠商最新發(fā)布的手機(jī)信息等。網(wǎng)上手機(jī)購(gòu)物系統(tǒng)具有強(qiáng)大的交互功能,可使商家和用戶方便的傳遞信息,完成電子交易。1.2 網(wǎng)
2、上手機(jī)店的現(xiàn)狀隨著社會(huì)的發(fā)展,網(wǎng)絡(luò)的普及,網(wǎng)上購(gòu)物已成為在線業(yè)務(wù)的重要載體。網(wǎng)絡(luò)購(gòu)物能夠繞過中介(如批發(fā)商、銷售商或經(jīng)銷商)建立與客戶的直接關(guān)系。還可以為用戶提供商品的詳細(xì)信息,用戶可以在線購(gòu)買商品,確定自己的訂單。網(wǎng)上銷售為人們提供了更廣闊的環(huán)境:人們不受時(shí)間的限制,不受空間的限制,不受傳統(tǒng)購(gòu)物的諸多限制,可以隨時(shí)隨地在網(wǎng)上交易。更廣闊的市場(chǎng):在網(wǎng)上這個(gè)世界將會(huì)變得很小,一個(gè)商家可以面對(duì)全球的消費(fèi)者,而一個(gè)消費(fèi)者可以在全球的任何一家商家購(gòu)物。更快速的流通和低廉的價(jià)格:電子商務(wù)減少了商品流通的中間環(huán)節(jié),節(jié)省了大量的開支,從而也大大降低了商品流通和交易的成本。更符合時(shí)代的要求:如今人們?cè)絹?lái)越追求
3、時(shí)尚、講究個(gè)性,注重購(gòu)物的環(huán)境,網(wǎng)上購(gòu)物,更能體現(xiàn)個(gè)性化的購(gòu)物過程。1.3 網(wǎng)上手機(jī)店系統(tǒng)的構(gòu)建現(xiàn)在流行的網(wǎng)上購(gòu)物系統(tǒng)不僅要有漂亮的網(wǎng)頁(yè),更要有嚴(yán)謹(jǐn)?shù)囊?guī)劃。每一個(gè)細(xì)小的環(huán)節(jié)都很重要。這樣才能使得在電子交易時(shí)避免不必要錯(cuò)誤發(fā)生。我將使用html、jsp等技術(shù)來(lái)編輯網(wǎng)頁(yè),使用了struts技術(shù)對(duì)網(wǎng)頁(yè)之間的請(qǐng)求進(jìn)行相應(yīng)的控制,能夠更輕松更方便的管理客戶的請(qǐng)求和相應(yīng)的用戶管理。以及及時(shí)的將系統(tǒng)信息返回給展示頁(yè)面。由于傳統(tǒng)的管理信息系統(tǒng)的信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統(tǒng)的數(shù)據(jù)庫(kù)中,這種方法在數(shù)據(jù)量不大時(shí)有很多的應(yīng)用場(chǎng)合。當(dāng)數(shù)據(jù)量比較大,并且有較強(qiáng)的專業(yè)性時(shí),錄入的費(fèi)用和出錯(cuò)的可能性都
4、相應(yīng)上升。本系統(tǒng)通過運(yùn)用hibernate技術(shù)把數(shù)據(jù)庫(kù)和動(dòng)態(tài)網(wǎng)頁(yè)連接,使得出錯(cuò)和成本都相應(yīng)的降低。本文在實(shí)際應(yīng)用開發(fā)中解決方案是建立網(wǎng)站, 以及自己的數(shù)據(jù)庫(kù),使得所需商品信息可以及時(shí)的保存、更新,以更好的及時(shí)了解商品買賣的情況。目前網(wǎng)上手機(jī)商場(chǎng)布局比較凌亂,操作和簡(jiǎn)便性也有一定得局限性。因此有必要重新設(shè)計(jì)并且組織一個(gè)結(jié)構(gòu)清晰,操作簡(jiǎn)單傻瓜式的一站式手機(jī)網(wǎng)上商城。因此經(jīng)過此次畢業(yè)設(shè)計(jì)簡(jiǎn)單的將手機(jī)網(wǎng)上商城進(jìn)行了實(shí)現(xiàn)。共 39 頁(yè) 第 39 頁(yè)2 系統(tǒng)分析2.1可行性分析2.1.1經(jīng)濟(jì)可行性本手機(jī)網(wǎng)上商店采用了b/s結(jié)構(gòu),主要看重的是其異地瀏覽和信息采集的靈活性。無(wú)論在任何時(shí)間、任何地點(diǎn)、任何系統(tǒng),
5、只要可以使用瀏覽器上網(wǎng),就都可以瀏覽網(wǎng)站。而且當(dāng)網(wǎng)站的升級(jí)維護(hù)時(shí),只需更新服務(wù)器端的軟件就可以,這減輕了異地用戶系統(tǒng)維護(hù)與升級(jí)的成本。數(shù)據(jù)庫(kù)方面選用了mysql,它能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)的完整性并提供許多高級(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),無(wú)形中形成了跨局域的團(tuán)隊(duì)互補(bǔ)團(tuán)隊(duì)合作,方便了我們?cè)谂龅郊夹g(shù)
6、問題時(shí)候及時(shí)的獲得解決辦法,提高了工作效率。我們經(jīng)過比較之后選擇了java和mysql來(lái)開發(fā)這個(gè)系統(tǒng),首先java是目前最優(yōu)秀的網(wǎng)絡(luò)軟件開發(fā)語(yǔ)言,功能強(qiáng)大,簡(jiǎn)單易學(xué),而mysql是完全免費(fèi)的,功能十分強(qiáng)大,針對(duì)中小企業(yè)能夠完全滿足要求。綜合以上原因,在技術(shù)上也是可行的。2.3 需求分析隨著計(jì)算機(jī)以及互聯(lián)網(wǎng)的普及,各家各戶都基本上購(gòu)置了計(jì)算機(jī),網(wǎng)絡(luò)消費(fèi)也成為了當(dāng)今一種流行趨勢(shì)。因此網(wǎng)上手機(jī)商店這個(gè)時(shí)候的出現(xiàn)是一種必然。2.3.1系統(tǒng)目標(biāo)本系統(tǒng)以網(wǎng)絡(luò)瀏覽器為客戶端,通過對(duì)相應(yīng)網(wǎng)站的訪問進(jìn)而訪問本系統(tǒng),實(shí)現(xiàn)手機(jī)商店的網(wǎng)絡(luò)化。2.3.2系統(tǒng)具體功能(1)顧客可以方便的注冊(cè)與登錄;(2)顧客可以靈活地檢
7、索所需的商品信息及了解特價(jià)商品信息;(3)顧客可以方便的查看詳細(xì)的商品資料;(4)顧客可以方便的管理自己的購(gòu)物車,包括添加或刪除選購(gòu)商品,修改購(gòu)買數(shù)量及在線下訂單等一些操作;(5)顧客可以反饋?zhàn)约旱囊庖娀蛄粞裕?6)商品管理員可以方便的管理商品及特價(jià)商品信息,包括新增,刪除,修改商品及特價(jià)商品;(7)訂單管理員可以方便的查看訂單,發(fā)貨與缺貨處理;(8)會(huì)員管理員可以方便的查看顧客反饋的信息以及具體的處理情況;(9)系統(tǒng)管理員可以方便的進(jìn)行系統(tǒng)用戶的管理,包括新增,刪除,修改系統(tǒng)用戶。4 開發(fā)工具簡(jiǎn)介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ū)動(dòng)器、鍵盤和鼠標(biāo);(6)對(duì)于網(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ù)庫(kù)系統(tǒng):mysql;(3)java環(huán)境:jvm虛擬機(jī)。4.2開發(fā)工具 eclipse 是一個(gè)開放源代碼的、基于 java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 java 開發(fā)
9、工具(java development tools,jdt)。 eclipse最初是由ibm公司開發(fā)的替代商業(yè)軟件visual age for java的下一代ide開發(fā)環(huán)境,2001年11月貢獻(xiàn)給開源社區(qū),現(xiàn)在它由非營(yíng)利軟件供應(yīng)商聯(lián)盟eclipse基金會(huì)(eclipse foundation)管理。 2003年,eclipse 3.0選擇osgi服務(wù)平臺(tái)規(guī)范為運(yùn)行時(shí)架構(gòu)。 2007年6月,穩(wěn)定版3.3發(fā)布。2008年6月發(fā)布代號(hào)為ganymede的3.4版。eclipse是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(ide)。最初主要用來(lái)java語(yǔ)言開發(fā),但是目前亦有人通過插件使其作為其他計(jì)算機(jī)語(yǔ)言比如
10、c+和python的開發(fā)工具。eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得eclipse擁有其他功能相對(duì)固定的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ā)展成為了一個(gè)龐大的eclipse聯(lián)盟,有150多家軟件公司參與到eclipse項(xiàng)目中,其中包括borland、rational software、red hat及sybas
11、e等。eclipse是一個(gè)開發(fā)源碼項(xiàng)目,它其實(shí)是 visual age for java的替代品,其界面跟先前的visual age for java差不多,但由于其開放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來(lái)越受人們關(guān)注。近期還有包括oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,并宣稱eclipse將來(lái)能成為可進(jìn)行任何語(yǔ)言開發(fā)的ide集大成者,使用者只需下載各種語(yǔ)言的插件即可。雖然大多數(shù)用戶很樂于將 eclipse 當(dāng)作 java ide 來(lái)使用,但 eclipse 的目標(biāo)不僅限于此。eclipse 還包括插件開發(fā)環(huán)境(plug-in development e
12、nvironment,pde),這個(gè)組件主要針對(duì)希望擴(kuò)展 eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 eclipse 環(huán)境無(wú)縫集成的工具。由于 eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所。這種平等和一致性并不僅限于 java 開發(fā)工具。盡管 eclipse 是使用 java 語(yǔ)言開發(fā)的,但它的用途并不限于 java 語(yǔ)言;例如,支持諸如 c/c+、cobol 和 eiffel 等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)會(huì)推出。eclipse 框架還可用來(lái)作為與軟件開發(fā)無(wú)關(guān)的其他應(yīng)用程序
13、類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。基于eclipse 的應(yīng)用程序的突出例子是ibm 的websphere studio workbench,它構(gòu)成了 ibm java 開發(fā)工具系列的基礎(chǔ)。例如,websphere studio application developer 添加了對(duì) jsp、servlet、ejb、xml、web 服務(wù)和數(shù)據(jù)庫(kù)訪問的支持。4.3 java及相應(yīng)技術(shù)簡(jiǎn)介4.3.1 java簡(jiǎn)介java是由sun microsystems公司于1995年5月推出的java程序設(shè)計(jì)語(yǔ)言(以下簡(jiǎn)稱java語(yǔ)言)和java平臺(tái)的總稱1。用java實(shí)現(xiàn)的hotjava瀏覽器(支持java app
14、let)顯示了java的魅力:跨平臺(tái)、動(dòng)態(tài)的web、internet計(jì)算。從此,java被廣泛接受并推動(dòng)了web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持java applet。另一方面,java技術(shù)也不斷更新。java平臺(tái)由java虛擬機(jī)(java virtual machine)和java 應(yīng)用編程接口(application programming interface、簡(jiǎn)稱api)構(gòu)成。java 應(yīng)用編程接口為java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)java平臺(tái)之后,java應(yīng)用程序就可運(yùn)行?,F(xiàn)在java平臺(tái)已經(jīng)嵌入了幾乎所有的操作
15、系統(tǒng)。這樣java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的java平臺(tái)基于java1.4,最近版本為java1.7。java分為三個(gè)體系javase(java2 platform standard edition,java平臺(tái)標(biāo)準(zhǔn)版),javaee(java 2 platform,enterprise edition,java平臺(tái)企業(yè)版),javame(java 2 platform micro edition,java平臺(tái)微型版) 2。4.3.2 jdbc定義 jdbc(java data base connectivity,
16、java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行sql語(yǔ)句的java api,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問,它由一組用java語(yǔ)言編寫的類和接口組成種關(guān)系數(shù)據(jù)發(fā)送sql語(yǔ)句就是一件很容易的事。換言之,有了jdbc api,就不必為訪問sybase數(shù)據(jù)庫(kù)專門寫一個(gè)程序,為訪問oracle數(shù)據(jù)庫(kù)又專門寫一個(gè)程序,或?yàn)樵L問informix數(shù)據(jù)庫(kù)又編寫另一個(gè)程序等等,程序員只需用jdbc api寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送sql調(diào)用。同時(shí),將java語(yǔ)言和jdbc結(jié)合起來(lái)使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是java語(yǔ)言“編寫一次,處處運(yùn)行”的優(yōu)勢(shì)
17、5。java數(shù)據(jù)庫(kù)連接體系結(jié)構(gòu)是用于java應(yīng)用程序連接數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法。jdbc對(duì)java程序員而言是api,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接的服務(wù)提供商而言是接口模型。作為api,jdbc為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫(kù)廠商及。jdbc為工具/數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的api,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠用純 java api 編寫數(shù)據(jù)庫(kù)應(yīng)用程序,同時(shí),jdbc也是個(gè)商標(biāo)名。 有了jdbc,向各第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接提供了標(biāo)準(zhǔn)方法。jdbc使用已有的sql標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫(kù)連接標(biāo)準(zhǔn),如odbc之間的橋接。jdbc實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡(jiǎn)單、嚴(yán)
18、格類型定義且高性能實(shí)現(xiàn)的接口。 java 具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。所需要的只是 java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。而 jdbc 正是作為此種用途的機(jī)制。 jdbc 擴(kuò)展了 java 的功能。例如,用 java 和 jdbc api 可以發(fā)布含有 applet 的網(wǎng)頁(yè),而該 applet 使用的信息可能來(lái)自遠(yuǎn)程數(shù)據(jù)庫(kù)。企業(yè)也可以用 jdbc 通過 intranet 將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中(即使這些職員所用的計(jì)算機(jī)有 windows、 macintosh 和unix 等各種不同的操作系統(tǒng))。隨著越
19、來(lái)越多的程序員開始使用java 編程語(yǔ)言,對(duì)從 java 中便捷地訪問數(shù)據(jù)庫(kù)的要求也在日益增加。 mis 管理員們都喜歡 java 和 jdbc 的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫(kù),并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫(kù)管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡(jiǎn)化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù), java 和jdbc 可為外部客戶提供獲取信息更新的更好方法。4.4 mvc簡(jiǎn)介mvc三層架構(gòu)也稱mvc模式,主要是將程序開發(fā)分為model層
20、(數(shù)據(jù)持久層)、view(界面表示層)、control層(控制層)這三個(gè)層面,并將這三個(gè)層面分開來(lái),形成了一個(gè)立體的架構(gòu)6。三個(gè)層次之間的主要交互,如圖4-1所示。view層control層model層圖4-1 mvc模式三層架構(gòu)4.4.1 mvc模型介紹 mvc英文即model-view-controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照model、view、controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層模型層、視圖層、控制層7。(1)視圖(view)代表用戶交互界面,對(duì)于web應(yīng)用來(lái)說,可以概括為html界面,但有可能為xhtml、xml和applet。隨著應(yīng)用的復(fù)
21、雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個(gè)應(yīng)用可能有很多不同的視圖,mvc設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請(qǐng)求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型(model)處理。比如一個(gè)訂單的視圖只接受來(lái)自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請(qǐng)求傳遞給控制和模型。 (2)模型(model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對(duì)其它層來(lái)說是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)可以說是mvc最主要的核心。目前流行的ejb模型就是一個(gè)典型的應(yīng)用例子,它從應(yīng)用技術(shù)實(shí)現(xiàn)的角度對(duì)模型做了
22、進(jìn)一步的劃分,以便充分利用現(xiàn)有的組件,但它不能作為應(yīng)用設(shè)計(jì)模型的框架。它僅僅告訴你按這種模型設(shè)計(jì)就可以利用某些技術(shù)組件,從而減少了技術(shù)上的困難。業(yè)務(wù)模型還有一個(gè)很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對(duì)象的數(shù)據(jù) 保存(持續(xù)化)。比如將一張訂單保存到數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)獲取訂單。我們可以將這個(gè)模型單獨(dú)列出,所有有關(guān)數(shù)據(jù)庫(kù)的操作只限制在該模型中。(3)控制(controller)可以理解為從用戶接收請(qǐng)求, 將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求。控制層并不做任何的數(shù)據(jù)處理
23、。例如,用戶點(diǎn)擊一個(gè)連接,控制層接受請(qǐng)求后, 并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個(gè)模型可能對(duì)應(yīng)多個(gè)視圖,一個(gè)視圖可能對(duì)應(yīng)多個(gè)模型8。4.4.2 mvc設(shè)計(jì)模式的實(shí)現(xiàn) (1)視圖。是模型的表示,它提供用戶交互界面。使用多個(gè)包含單顯示頁(yè)面的用戶部件,復(fù)雜的web頁(yè)面可以展示來(lái)自多個(gè)數(shù)據(jù)源的內(nèi)容,并且網(wǎng)頁(yè)人員,美工能獨(dú)自參與這些web頁(yè)面的開發(fā)和維護(hù)。(2)控制。為了能夠控制和協(xié)調(diào)每個(gè)用戶跨越多個(gè)請(qǐng)求的處理,控制機(jī)制應(yīng)該以集中的方式進(jìn)行管理。應(yīng)用程序的控制器集中從客戶端接收請(qǐng)求,決定執(zhí)行什么商業(yè)邏輯功能,然后將產(chǎn)生下一步用戶界面的責(zé)任
24、委派給一個(gè)適當(dāng)?shù)囊晥D組件。用控制器提供一個(gè)控制和處理請(qǐng)求的集中入口點(diǎn),它負(fù)責(zé)接收、截取并處理用戶請(qǐng)求;并將請(qǐng)求委托給分發(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)的動(dòng)作。模型是你所有的商業(yè)邏輯代碼片段所在。業(yè)務(wù)處理對(duì)象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模型,并且把響應(yīng)提交到合適的視圖組件以產(chǎn)生響應(yīng)。業(yè)務(wù)實(shí)體對(duì)象可以通過定義屬性描述客戶端表單數(shù)據(jù)。通過業(yè)務(wù)實(shí)體對(duì)象實(shí)現(xiàn)了對(duì)視圖和模型之間交互的支持。實(shí)現(xiàn)時(shí)把"做什么"(業(yè)務(wù)處理)和"如何做"(業(yè)務(wù)實(shí)體)分離。這樣可以實(shí)
25、現(xiàn)業(yè)務(wù)邏輯的重用8。4.5 mysql 概述 mysql是一個(gè)精巧的sql數(shù)據(jù)庫(kù)管理系統(tǒng),雖然它不是開放源代碼的產(chǎn)品,但在某些情況下你可以自由使用。由于它的強(qiáng)大功能、靈活性、豐富的應(yīng)用編程接口(api)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特別是與apache和php/perl結(jié)合,為建立基于數(shù)據(jù)庫(kù)的動(dòng)態(tài)網(wǎng)站提供了強(qiáng)大動(dòng)力。mysql是一個(gè)真正的多用戶、多線程sql數(shù)據(jù)庫(kù)服務(wù)器。sql(結(jié)構(gòu)化查詢語(yǔ)言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)語(yǔ)言。mysql是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysql和很多不同的客戶程序和庫(kù)組成。sql是一種標(biāo)準(zhǔn)化
26、的語(yǔ)言,它使得存儲(chǔ)、更新和存取信息更容易。例如,你能用sql語(yǔ)言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲(chǔ)顧客信息,同時(shí)mysql也足夠快和靈活以允許你存儲(chǔ)記錄文件和圖像。 mysql 主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰@樣一個(gè)sql服務(wù)器,它能處理與任何可不昂貴硬件平臺(tái)上提供數(shù)據(jù)庫(kù)的廠家在一個(gè)數(shù)量級(jí)上的大型數(shù)據(jù)庫(kù),但速度更快,mysql就開發(fā)出來(lái)。自1996年以來(lái),我們一直都在使用mysql,其環(huán)境有超過 40 個(gè)數(shù)據(jù)庫(kù),包含 10,000個(gè)表,其中500多個(gè)表超過7百萬(wàn)行,這大約有100 個(gè)吉字節(jié)(gb)的關(guān)鍵應(yīng)用數(shù)據(jù)。 mysql建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管
27、mysql仍在開發(fā)中,但它已經(jīng)提供一個(gè)豐富和極其有用的功能集13。4.6 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ù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使用。客戶機(jī)上只要安裝一個(gè)瀏覽器(browser),如netscape navigator或internet explorer,服務(wù)器安裝oracle、sybase、informix或 sql server等數(shù)據(jù)庫(kù)。瀏覽器通過web server 同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。b/s結(jié)構(gòu)的使用越
28、來(lái)越多,特別是由需求推動(dòng)了ajax技術(shù)的發(fā)展,它的程序也能在客戶端電腦上進(jìn)行部分處理,從而大大的減輕了服務(wù)器的負(fù)擔(dān);并增加了交互性,能進(jìn)行局部實(shí)時(shí)刷新。4.6.1 b/s結(jié)構(gòu)的優(yōu)點(diǎn)b/s結(jié)構(gòu)最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件。只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端零維護(hù)。系統(tǒng)的擴(kuò)展非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個(gè)用戶名和密碼,就可以使用了。甚至可以在線申請(qǐng),通過公司內(nèi)部的安全認(rèn)證(如ca證書)后,不需要人的參與,系統(tǒng)可以自動(dòng)分配給用戶一個(gè)賬號(hào)進(jìn)入系統(tǒng)。4.7 hibernate技術(shù)概述在項(xiàng)目中使用hibernate框架,非常關(guān)鍵的一點(diǎn)就是要了解hibern
29、ate的核心接口。hibernate接口位于業(yè)務(wù)層和持久化層,如圖4-2所示。圖4-2 hibernate核心接口的層次架構(gòu)關(guān)系hibernate的核心接口一共有5個(gè),分別為:session、sessionfactory、transaction、query和configuration。這5個(gè)核心接口在任何開發(fā)中都會(huì)用到。通過這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。 session接口:session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的crud操作(crud的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見的sql語(yǔ)句。)。但需要注意的是session對(duì)象是非線程安全的。同時(shí),hibernat
30、e的session不同于jsp應(yīng)用中的httpsession。這里當(dāng)使用session這個(gè)術(shù)語(yǔ)時(shí),其實(shí)指的是hibernate中的session,而以后會(huì)將httpsesion對(duì)象稱為用戶session。sessionfactory接口:sessionfactroy接口負(fù)責(zé)初始化hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建session對(duì)象。這里用到了工廠模式。需要注意的是sessionfactory并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)sessionfactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)sessionfactory。configurat
31、ion接口:configuration接口負(fù)責(zé)配置并啟動(dòng)hibernate,創(chuàng)建sessionfactory對(duì)象。在hibernate的啟動(dòng)的過程中,configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建sessionfactory對(duì)象。transaction接口:transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。query和criteria接口:query和criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢。它可以使用hql語(yǔ)言或sql語(yǔ)句兩種表達(dá)方式。4.8 struts技術(shù)概述struts 是一組相互協(xié)作的類、servle
32、t 和 jsp 標(biāo)記組成的一個(gè)可重用的 mvc2 設(shè)計(jì)。這個(gè)定義表示struts是一個(gè)框架,而不是一個(gè)庫(kù),但 struts框架也包含了豐富的標(biāo)記庫(kù)和獨(dú)立于該框架工作的實(shí)用程序類。4.8.1 struts 概覽(1)client browser(客戶瀏覽器) 來(lái)自客戶瀏覽器的每個(gè) http 請(qǐng)求創(chuàng)建一個(gè)事件。web 容器將用一個(gè)http響應(yīng)作出響應(yīng)。(2)controller(控制器)控制器接收來(lái)自瀏覽器的請(qǐng)求,并決定將這個(gè)請(qǐng)求發(fā)往何處。 就 struts而言,控制器是以servlet 實(shí)現(xiàn)的一個(gè)命令設(shè)計(jì)模式。struts-config.xml 文件配置控制器命令。(3)業(yè)務(wù)邏輯 業(yè)務(wù)邏輯更新模
33、型的狀態(tài),并幫助控制應(yīng)用程序的流程。就 struts而言,這是通過作為實(shí)際業(yè)務(wù)邏輯“瘦”包裝的action 類完成的。(4)model(模型)的狀態(tài) 模型表示應(yīng)用程序的狀態(tài)。業(yè)務(wù)對(duì)象更新應(yīng)用程序的狀態(tài)。actionformbean在會(huì)話級(jí)或請(qǐng)求級(jí)表示模型的狀態(tài),而不是在持久級(jí)。jsp 文件使用 jsp 標(biāo)記讀取來(lái)自 actionformbean的信息。(5)view(視圖) 視圖就是一個(gè) jsp 文件。其中沒有流程邏輯,沒有業(yè)務(wù)邏輯,也沒有模型信息 只有標(biāo)記。標(biāo)記是使struts 有別于其他框架(如 velocity)的因素之一。4.8.2 struts中的controller(控制器)命令設(shè)
34、計(jì)模式的實(shí)現(xiàn): struts 的控制器將事件(事件通常是 http post)映射到類的一個(gè) servlet。actionservlet (command)創(chuàng)建并使用 action 、actionform 和actionforward。 通過struts-config.xml 文件配置該 command。從而擴(kuò)展 action 和actionform來(lái)解決特定的問題??梢酝ㄟ^擴(kuò)展 actionservlet 來(lái)添加 command 功能。在struts框架中控制器組件由三個(gè)部分構(gòu)成:(1)消息控制模塊:用戶所有的提交請(qǐng)求都發(fā)往消息控制模塊,在由消息總線模塊根據(jù)視圖映射模塊找到消息處理模塊來(lái)執(zhí)行
35、處理邏輯。消息控制模塊接收所有用戶的請(qǐng)求,并根據(jù)請(qǐng)求視圖找到處理。strtus中通過actionservlet和requestprocessor類來(lái)完成。(2)消息處理模塊:該模塊執(zhí)行該消息的邏輯處理,因此通常由用戶擴(kuò)展實(shí)現(xiàn)。struts中通過action類來(lái)實(shí)現(xiàn)。(3)視圖映射模塊:控制器邏輯和視圖邏輯之間的結(jié)合是通過配置模塊和配置文件建立其的鏈接。struts中配置模塊通過moduleconfig類來(lái)完成,而配置文件由struts-config.xml文件提供。4.8.3 struts中的view(視圖)視圖組件通過jsp組件實(shí)現(xiàn)的。struts框架對(duì)視圖組件進(jìn)行了擴(kuò)展和封裝。struts
36、對(duì)視圖的擴(kuò)展提供了一組擴(kuò)展服務(wù)器標(biāo)簽用來(lái)提供視圖顯示以及傳遞數(shù)據(jù)到處理緩沖,而處理緩沖由actionform的擴(kuò)展類來(lái)實(shí)現(xiàn)。struts框架利用actionform bean來(lái)實(shí)現(xiàn)視圖與控制器之間的數(shù)據(jù)的交互,維持會(huì)話級(jí)或請(qǐng)求級(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未來(lái)j2ee數(shù)據(jù)訪問模
37、型;一些擴(kuò)展框架如hibernate;(2)模型中狀態(tài)的級(jí)別 會(huì)話級(jí)或請(qǐng)求級(jí):actionform bean來(lái)維持 ;持久級(jí):模型組件來(lái)維持。5 系統(tǒng)總體設(shè)計(jì)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個(gè)層次:模型層(model)、視圖層(view)、控制層(controller)。5.1.1 模型層模型層(model)主要負(fù)責(zé)系統(tǒng)的各種數(shù)據(jù),由于本畢業(yè)設(shè)計(jì)管理系統(tǒng)的數(shù)據(jù)存儲(chǔ)量比較大,所以本系統(tǒng)利用mysql 作為數(shù)據(jù)庫(kù)管理系統(tǒng)。5.1.2 視圖層視圖層(view)主要負(fù)責(zé)前臺(tái)的展示和獲取前臺(tái)信息等工作,
38、比如手機(jī)的功能展示等等,這里使用了jsp技術(shù)結(jié)合ajax技術(shù)來(lái)實(shí)現(xiàn)所有用戶要求的。5.1.3 控制層控制層(controller)的功能是控制器接收用戶的請(qǐng)求,然后調(diào)用某個(gè)模塊來(lái)處理用戶的請(qǐng)求,在控制器的控制下,再將處理的結(jié)果交給某個(gè)視圖進(jìn)行格式化輸出給用戶。5.2 系統(tǒng)結(jié)構(gòu)劃分系統(tǒng)總體用例圖,如圖 5-1所示。 圖51系統(tǒng)總體用例圖5.3 模塊劃分系統(tǒng)模塊劃分,如圖52所示。百機(jī)會(huì)-網(wǎng)上手機(jī)商店登錄注冊(cè)模塊瀏覽檢索模塊購(gòu)物車模塊后臺(tái)登錄模塊反饋留言模塊訂單管理模塊商品管理模塊特價(jià)商品管理系統(tǒng)用戶管理會(huì)員管理模塊圖52模塊分布圖6 系統(tǒng)詳細(xì)設(shè)計(jì)6.1 數(shù)據(jù)庫(kù)的設(shè)計(jì)6.1.1 系統(tǒng)數(shù)據(jù)庫(kù)物理模型
39、圖系統(tǒng)數(shù)據(jù)庫(kù)物理模型,如圖6-1所示。圖6-1數(shù)據(jù)庫(kù)物理模型圖6.1.2 數(shù)據(jù)庫(kù)和數(shù)據(jù)表的設(shè)計(jì)“網(wǎng)上手機(jī)店”數(shù)據(jù)庫(kù),包含會(huì)員級(jí)別,注冊(cè)會(huì)員,手機(jī)類別,手機(jī),購(gòu)物車選購(gòu),購(gòu)物車,訂單,留言,系統(tǒng)用戶等幾個(gè)數(shù)據(jù)表,其中“會(huì)員級(jí)別表”是用來(lái)存儲(chǔ)會(huì)員等級(jí),包括id號(hào),級(jí)別名稱,優(yōu)惠百分比;“注冊(cè)會(huì)員表”包括id號(hào),登錄賬號(hào),登錄密碼,真實(shí)姓名,聯(lián)系電話,聯(lián)系地址,郵政編碼,注冊(cè)日期,最近登錄日期,登錄次數(shù),電子郵箱;“手機(jī)類別表”存儲(chǔ)包括id號(hào),類別名稱,類別描述;“手機(jī)表”存儲(chǔ)包括id號(hào),商品類別id,商品名稱,商品價(jià)格,商品型號(hào),商品特價(jià),商品圖片,商品描述,生產(chǎn)廠家,出廠日其,有無(wú)特價(jià);“購(gòu)物車
40、表”包含id號(hào),會(huì)員id,總金額,購(gòu)物車狀態(tài);“訂單表”包含id號(hào),會(huì)員id,購(gòu)物車id,訂單編號(hào),訂單日期,訂單狀態(tài);“留言表”包含id號(hào),會(huì)員id,管理員id,留言標(biāo)題,留言內(nèi)容,留言日期,留言回復(fù),回復(fù)日期;“系統(tǒng)用戶表”id號(hào),管理員類型,管理員真實(shí)姓名,管理員登錄賬號(hào),管理員登錄密碼。6.1.3 各數(shù)據(jù)表設(shè)計(jì)與實(shí)現(xiàn)(1)會(huì)員級(jí)別,如表6-1所示。表6-1會(huì)員級(jí)別表字段名稱數(shù)據(jù)類型描述idint(4)id號(hào)levelnamechar(20)級(jí)別名稱favourableint(4)優(yōu)惠百分比(2)注冊(cè)會(huì)員表,如表6-2所示。表6-2 注冊(cè)會(huì)員表字段名稱數(shù)據(jù)類型描述idint(4)id號(hào)m
41、emberlevelint(4)會(huì)員級(jí)別idloginnamechar(12)登錄賬號(hào)loginpwdchar(12)登錄密碼membernamechar(20)真是姓名phonechar(15)聯(lián)系電話addressnvarchar(100)聯(lián)系地址zipchar(10)郵政編碼regdatedatetime(0)注冊(cè)時(shí)間lastdatedatetime(0)最近登錄時(shí)間logintimesint(4)登錄次數(shù)emailnvarchanr(100)電子郵箱(3)手機(jī)類別表,如表6-3所示。表6-3 手機(jī)類別表字段名稱數(shù)據(jù)類型描述idint(4)手機(jī)類別idcatenamenchar(40)類
42、別名稱catedesctext(0)類別描述(4)手機(jī)表,如表6-4所示。表6-4 手機(jī)表字段名稱數(shù)據(jù)類型描述idint(4)id號(hào)categoryint(4)手機(jī)類別idmernamenchar(40)手機(jī)名稱pricedecimal(8)手機(jī)價(jià)格spricedecimal(8)手機(jī)特價(jià)mermodelnchar(40)手機(jī)型號(hào)picturenvarchar(100)手機(jī)圖片merdesctext(0)手機(jī)描述manufacturenchar(60)生產(chǎn)廠家leavefactorydatedatetime(0)出廠日期specialint(4)有無(wú)特價(jià) (5)購(gòu)物車選購(gòu)表,如表6-5所示。
43、表6-5 購(gòu)物車選購(gòu)表字段名稱數(shù)據(jù)類型描述idint(4)id號(hào)cartint(4)購(gòu)物車idmerchandiseint(4)手機(jī)idnumberint(4)手機(jī)數(shù)量pricedecimal(4)手機(jī)價(jià)格moneydecimal(4)金額(6)購(gòu)物車表,如表6-6所示。表6-6 購(gòu)物車表字段名稱數(shù)據(jù)類型描述idint(4)id號(hào)memberint(4)會(huì)員idmoneydecimal(9)總金額cartsatusint(4)購(gòu)物車狀態(tài)(7)訂單表,如表6-7所示。表6-7 訂單表字段名稱數(shù)據(jù)類型描述idint(4)id號(hào)membersint(4)會(huì)員idcartint(4)購(gòu)物車idorde
44、rnonchar(20)訂單編號(hào)orderdatedatetime(0)訂單日期orderstatusint(4)訂單狀態(tài) (8) 留言表,如表6-8所示。 表6-8 留言表 字段名稱數(shù)據(jù)類型描述membersint(4)會(huì)員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號(hào)admintypei
45、nt(4)管理員類型adminnamechar(12)管理員真實(shí)姓名loginnmaechar(12)管理員登錄賬號(hào)loginpwdchar(12)管理員登錄密碼6.2 工程設(shè)計(jì)對(duì)于本網(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
46、,經(jīng)過兩個(gè)步驟,hibernate和struts集合開發(fā)框架就大體的加入到了工程中。(3)工程結(jié)構(gòu),如圖6-2所示。 圖6-2 工程結(jié)構(gòu)圖6.3 模塊設(shè)計(jì)6.3.1 顧客登錄(1)模塊功能 顧客可以通過填寫注冊(cè)信息注冊(cè)成為會(huì)員,會(huì)員登錄后才能進(jìn)行購(gòu)物車的管理以及意見的反饋,未登錄的會(huì)員或者為注冊(cè)的顧客只能檢索與瀏覽商品信息。(2)界面效果,如圖6-3所示 。圖6-3 登錄注冊(cè)模塊(3)模塊主要代碼及詳解當(dāng)會(huì)員登錄的時(shí)候,首先在default.jsp中填寫登錄表單,填寫完畢提交之后,defaul.jsp中登錄表單的內(nèi)容由struts自動(dòng)封裝到memloginform對(duì)象中,并送交validato
47、r進(jìn)行表單有效性驗(yàn)證,如果驗(yàn)證失敗則返回default.jsp要求用戶重新填寫表單直到通過驗(yàn)證,否則就將memloginform對(duì)象送給loginaction的login方法進(jìn)行處理,處理完成后將處理結(jié)果反饋給default.jsp并完成登錄。 /* 會(huì)員登錄代碼 */public member memlogin(string loginname, string loginpwd) throws exception session session = mysessionfactory.getsession();transaction tx = null;member mem = null;tr
48、ystring hql = "select a from member as a where a.loginname=:loginname and a.loginpwd=:loginpwd"query query = session.createquery(hql);query.setstring("loginname", loginname);query.setstring("loginpwd", loginpwd);query.setmaxresults(1);tx = session.begintransaction();mem
49、 = (member)query.uniqueresult();mem.setlogintimes(integer.valueof(mem.getlogintimes().intvalue()+1);mem.setlastdate(new date();session.update(mem);mit();catch(exception ex)if(tx!=null)tx.rollback();("在執(zhí)行memserviceimpl類中的memlogin方法時(shí)出錯(cuò)n");ex.printstacktrace();finallymysessionfacto
50、ry.closesession();return mem;6.3.2 手機(jī)檢索瀏覽模塊(1)模塊功能顧客可以根據(jù)不同的手機(jī)種類瀏覽手機(jī)的信息,也可以輸入關(guān)鍵字進(jìn)行手機(jī)檢索。(2)程序效果,如圖6-4所示。圖6-4 手機(jī)檢索以及瀏覽模塊(3)模塊主要代碼及詳解用戶的請(qǐng)求,例如查看手機(jī)。均通過調(diào)用meraction類的相應(yīng)方法進(jìn)行處理,meraction類中的方法在收到請(qǐng)求后,根據(jù)具體的請(qǐng)求調(diào)用merservice接口中的相應(yīng)dao方法完成數(shù)據(jù)庫(kù)的訪問,并將檢索得到的結(jié)果返回給meraction,meraction則將最終的處理結(jié)果保存到request對(duì)象中,由相應(yīng)的jsp頁(yè)面帶回并展示給用戶。/
51、*處理分類查詢手機(jī)請(qǐng)求*/public actionforward searchmer(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) list merlist = null;merservice service = new merserviceimpl();int pageno = 1; /頁(yè)號(hào)int pagesize = 15; /每頁(yè)記錄數(shù)int totals = 0; /記錄總數(shù)int totalpages = 0; /總頁(yè)數(shù)if (key!
52、=null)key = new string(key.getbytes("iso8859-1"),"gb2312");request.setattribute("key", key);if(haswhere)hql = hql + " and a.mername like '%"+key+"%'"hql1 = hql1 + " and a.mername like '%"+key+"%'"action = action +
53、"key="+key+"&"elsehql = hql + " where a.mername like '%"+key+"%'"hql1 = hql1 + " where a.mername like '%"+key+"%'"action = action + "&key="+key+"&"request.setattribute("action", acti
54、on);merlist = service.browsemer(pagesize,pageno,hql);totals = service.countrecord(hql1);6.3.3 購(gòu)物車模塊(1)模塊功能顧客需要輸入注冊(cè)賬號(hào)與密碼登錄后便可以使用購(gòu)物車以及對(duì)其進(jìn)行相應(yīng)的管理,如將選中的手機(jī)放入購(gòu)物車,修改選購(gòu)手機(jī)的數(shù)量,刪除購(gòu)物車中的手機(jī),在線下訂單以及查看訂單等。(2) 程序效果,如圖6-5所示。圖6-5 購(gòu)物車模塊圖(3) 模塊主要代碼及詳解用戶請(qǐng)求,例如購(gòu)物車查看。都是通過直接調(diào)用了cartaction類的相應(yīng)方法進(jìn)行處理,cartaction類中的方法在收到請(qǐng)求后,根據(jù)具體的請(qǐng)求調(diào)用cartservice接口中的相應(yīng)dao方法完成數(shù)據(jù)庫(kù)的訪問,并將檢索得到的結(jié)果返回給cartaction,cartaction則將最終的結(jié)果保存到request對(duì)象中,由相應(yīng)的jsp頁(yè)面帶回并展示給用戶。/* 裝載指定會(huì)員的購(gòu)物車 */public cart loadcart(member member) throws exception session session = mysessionfactory.getsession();transaction tx = null;cart cart
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人家庭溝通制度
- 數(shù)碼產(chǎn)品租賃合同(2篇)
- 2024年物業(yè)設(shè)施管理合同3篇
- 2025年平頂山貨運(yùn)駕駛員從業(yè)資格證考試題庫(kù)答案
- 2025年林芝貨運(yùn)從業(yè)資格證模擬考試下載
- 2025年懷化經(jīng)營(yíng)性道路客貨運(yùn)輸駕駛員從業(yè)資格考試
- 《催眠治療》課件
- 2024年教育設(shè)施融資租賃擔(dān)保合同示例2篇
- 2025年?yáng)|莞a2駕駛證貨運(yùn)從業(yè)資格證模擬考試
- 2024年版礦業(yè)開發(fā)合同
- 2023年實(shí)訓(xùn)報(bào)告汽車維修(7篇)
- 環(huán)境毒理學(xué)智慧樹知到答案章節(jié)測(cè)試2023年沈陽(yáng)農(nóng)業(yè)大學(xué)
- 義務(wù)教育體育與健康課程標(biāo)準(zhǔn)(2022年版)
- 【新課標(biāo)】二年級(jí)下冊(cè)道德與法治第10課《清新空氣是個(gè)寶》PPT教學(xué)課件(第一課時(shí))
- 2023年關(guān)于申請(qǐng)籌備X縣區(qū)游泳協(xié)會(huì)的報(bào)告
- 設(shè)備維修工績(jī)效考核表
- 成立項(xiàng)目部紅頭文件完整資料
- LY/T 1923-2020室內(nèi)木質(zhì)門
- GB/T 3672.1-2002橡膠制品的公差第1部分:尺寸公差
- GB/T 15900-1995化學(xué)試劑偏重亞硫酸鈉(焦亞硫酸鈉)
- GB/T 12615.3-2004封閉型平圓頭抽芯鉚釘06級(jí)
評(píng)論
0/150
提交評(píng)論