秦佳
摘要??? 網(wǎng)上書(shū)店系統(tǒng)旨在推動(dòng)在線(xiàn)圖書(shū)銷(xiāo)售電子商務(wù)的發(fā)展,拓寬書(shū)籍的流通渠道,降低知識(shí)傳播所需的代價(jià)。該系統(tǒng)基于MVC模型,結(jié)合JavaEE技術(shù)實(shí)現(xiàn)網(wǎng)上書(shū)店系統(tǒng)平臺(tái)的構(gòu)筑。本文從系統(tǒng)分析,系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)現(xiàn)等方面具體論述了網(wǎng)上書(shū)店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),完全遵照軟件工程原理及思想。
【關(guān)鍵詞】MVC模型 網(wǎng)上書(shū)店 J2EE技術(shù)
1 網(wǎng)上書(shū)店系統(tǒng)分析
1.1 背景及意義
近年來(lái),電子商務(wù)處于熱潮,極大的便捷了人們的生活。書(shū)籍,是人們知識(shí)與經(jīng)驗(yàn)的重要來(lái)源,可它本身攜帶性較差,且受限于特定地點(diǎn),人們要到專(zhuān)門(mén)的書(shū)店去購(gòu)買(mǎi)書(shū)籍。所以為了促進(jìn)知識(shí)的傳播,拓寬書(shū)籍的流通渠道,讓圖書(shū)也搭上電子商務(wù)這輛快車(chē),使人類(lèi)的智慧能夠在世界各個(gè)角落生根發(fā)芽,網(wǎng)上書(shū)店系統(tǒng)應(yīng)運(yùn)而生。這一系統(tǒng)旨在使人們獲取知識(shí)所付出的代價(jià)能夠越來(lái)越低,并使閱讀成為每個(gè)人的習(xí)慣。
1.2 相關(guān)技術(shù)及介紹
1.2.1 MVC開(kāi)發(fā)模式
MVC開(kāi)發(fā)模式:MVC開(kāi)發(fā)模式是一種程序設(shè)計(jì)概念,它將外觀設(shè)計(jì)和實(shí)際業(yè)務(wù)邏輯設(shè)計(jì)相區(qū)分,使程序更加便于擴(kuò)展與維護(hù)。
MVC將應(yīng)用程序分解為3個(gè)部分:模型、視圖和控制器。
(1)Mode(l模型):其實(shí)是一些模型對(duì)象,代表應(yīng)用中的數(shù)據(jù)。特別是具有檢索、插入和更新數(shù)據(jù)庫(kù)信息功能的模型類(lèi)。它是應(yīng)用程序的動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),獨(dú)立于用戶(hù)界面。
(2)View(視圖):視圖是呈現(xiàn)給用戶(hù)的信息,一般是一個(gè)HTML網(wǎng)頁(yè)。
(3)Controller(控制器):控制器接受輸入并且將其轉(zhuǎn)換為模型或視圖的命令。它本身并不能實(shí)現(xiàn)任何操作,可以觸發(fā)模型與視圖相關(guān)事件,比如返回模型的數(shù)據(jù)或是將HTML文檔呈遞給視圖。
1.2.2 J2EE技術(shù)
J2EE是一系列技術(shù)標(biāo)準(zhǔn)所組成的平臺(tái),它通過(guò)使用組件極大簡(jiǎn)化了應(yīng)用系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)。本篇主要用到的技術(shù)有以下幾種:
(1)JSP:JSP技術(shù)是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),它能夠根據(jù)不同的用戶(hù)動(dòng)態(tài)呈現(xiàn)不同的內(nèi)容,比如根據(jù)用戶(hù)登錄的狀態(tài),可以呈現(xiàn)登錄頁(yè)面或注冊(cè)頁(yè)面,這種動(dòng)態(tài)頁(yè)面技術(shù)有別于之前靜態(tài)的HTML頁(yè)面,現(xiàn)在被廣泛的應(yīng)用在Web應(yīng)用開(kāi)發(fā)中。
(2)Servlet:Servlet被包含在Java的API中,所以Servlet也是一個(gè)Java類(lèi)。它也是動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)的一種,但是相比JSP來(lái)說(shuō),輸出動(dòng)態(tài)HTML比較繁瑣復(fù)雜,所以一般用Servet進(jìn)行邏輯設(shè)計(jì),JSP進(jìn)行頁(yè)面設(shè)計(jì)。
(3)JavaBean:JavaBean是用Java編寫(xiě)的組件,組件好比一個(gè)封裝容器,程序員不需要知道內(nèi)部構(gòu)造就可以使用組件,JavaBean能實(shí)現(xiàn)許多功能,一般有可視化JavaBean、不可視化JavaBean。在本文中使用了不可視化JavaBean來(lái)進(jìn)行數(shù)據(jù)庫(kù)的連接等操作。
2 網(wǎng)上書(shū)店系統(tǒng)設(shè)計(jì)
2.1 總體設(shè)計(jì)
該系統(tǒng)采用B/S架構(gòu),主要由網(wǎng)站前臺(tái)和網(wǎng)站后臺(tái)構(gòu)成,其中前臺(tái)功能有登錄、瀏覽商品、下訂單、購(gòu)物車(chē)和退出登錄。后臺(tái)功能有商品管理、訂單管理和驗(yàn)證登錄。
2.2 詳細(xì)設(shè)計(jì)
MVC設(shè)計(jì)模式結(jié)合J2EE技術(shù),將網(wǎng)站前臺(tái)和網(wǎng)站后臺(tái)設(shè)計(jì)分別對(duì)應(yīng)到MVC設(shè)計(jì)模式的三個(gè)部分:前臺(tái)對(duì)應(yīng)視圖,后臺(tái)對(duì)應(yīng)模型和控制器。
在本系統(tǒng)的設(shè)計(jì)中,使用JavaBean組件為模型,處理用戶(hù)提交的各種數(shù)據(jù);JSP頁(yè)面為視圖,提供一個(gè)供用戶(hù)用于交互的界面;Servlet為控制器,在用戶(hù)觸發(fā)事件后,將數(shù)據(jù)送往模型進(jìn)行處理,并將處理結(jié)果返回給視圖用于更新。
基于MVC設(shè)計(jì)模式的網(wǎng)上書(shū)店系統(tǒng),其整個(gè)流程大致如下:首先Web瀏覽器向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器收到用戶(hù)請(qǐng)求后調(diào)用servlet。這個(gè)控制器Servlet根據(jù)用戶(hù)提交的不同業(yè)務(wù)(如增減商品)調(diào)用相應(yīng)的JavaBean處理用戶(hù)的請(qǐng)求。在JavaBean中進(jìn)行數(shù)據(jù)庫(kù)相關(guān)操作,或?qū)崿F(xiàn)其他業(yè)務(wù)。處理結(jié)果由充當(dāng)橋梁的JavaBean返回給Servlet,由Servlet轉(zhuǎn)發(fā)處理結(jié)果到視圖JSP。服務(wù)器讀取JSP頁(yè)面中的內(nèi)容,將最終的結(jié)果以HTML的方式回顯給客戶(hù)端瀏覽器進(jìn)行顯示。
3 網(wǎng)上書(shū)店系統(tǒng)實(shí)現(xiàn)
3.1 MVC系統(tǒng)模型技術(shù)實(shí)現(xiàn)
下面就從技術(shù)實(shí)現(xiàn)的角度分析MVC模型的實(shí)現(xiàn),通過(guò)代碼結(jié)構(gòu)分析功能實(shí)現(xiàn)的細(xì)節(jié)。
首先大致了解一下業(yè)務(wù)流程:用戶(hù)要登錄系統(tǒng),進(jìn)入登錄界面。若驗(yàn)證通過(guò)則進(jìn)入購(gòu)物大廳界面,若錯(cuò)誤則返回登錄界面。在購(gòu)物大廳選擇要購(gòu)買(mǎi)的書(shū)籍后,進(jìn)入購(gòu)物車(chē)界面。用戶(hù)在購(gòu)物車(chē)界面可以根據(jù)需求,選擇增加或刪除商品數(shù)量,也可以返回購(gòu)物大廳繼續(xù)購(gòu)買(mǎi)。確定要購(gòu)買(mǎi)的商品后,用戶(hù)可以提交訂單,進(jìn)入顯示訂單界面。購(gòu)買(mǎi)完畢,用戶(hù)可以選擇退出登錄,進(jìn)入退出界面。
接下來(lái)具體分析各個(gè)功能的實(shí)現(xiàn):
(1)前臺(tái)功能實(shí)現(xiàn):前臺(tái)功能主要包括各個(gè)界面的設(shè)計(jì),也就是呈現(xiàn)給用戶(hù)的界面設(shè)計(jì)。以下界面主要采用流行前端技術(shù)組合:HTML+CSS+Bootstrap編寫(xiě)。
登錄:由Login.jsp這個(gè)JSP視圖頁(yè)面負(fù)責(zé)登錄界面的實(shí)現(xiàn)。
瀏覽商品:由Welcome.jsp這個(gè)JSP視圖負(fù)責(zé)商品展示界面的實(shí)現(xiàn),商品信息來(lái)自Dao。DAO(Data Access Object)是一個(gè)數(shù)據(jù)訪(fǎng)問(wèn)接口。數(shù)據(jù)訪(fǎng)問(wèn),對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取。夾在業(yè)務(wù)邏輯與數(shù)據(jù)庫(kù)資源中間。它將需要顯示的信息(如書(shū)籍圖片、價(jià)格等)從數(shù)據(jù)庫(kù)中取出,交給視圖顯示。
購(gòu)物車(chē):由ShowCart.jsp負(fù)責(zé)顯示購(gòu)物車(chē)。提供進(jìn)行商品管理的按鈕(如增減商品的按鈕),供用戶(hù)與系統(tǒng)進(jìn)行交互。
下訂單:由ShowOrder.jsp負(fù)責(zé)顯示訂單。顯示用戶(hù)信息與購(gòu)買(mǎi)信息,供用戶(hù)進(jìn)行確定。退出登錄:由Logout.jsp負(fù)責(zé)顯示退出登錄界面。使用Bootstrap中的巨幕組件,提高人機(jī)交互界面的美觀性。
(2)后臺(tái)功能實(shí)現(xiàn):
商品管理:
由AddServlet.java、DeleteServlet.java、ClearServlet.java和UpdateServlet.java四個(gè)類(lèi)分別實(shí)現(xiàn)商品的增、刪、清除與更新。
訂單管理:由管理員對(duì)提交的訂單進(jìn)行處理。
驗(yàn)證登錄:由Vaildate.java類(lèi)對(duì)用戶(hù)名和密碼進(jìn)行驗(yàn)證。
3.2 MVC代碼結(jié)構(gòu)
模型層(Model):
Book.java,Cart.java。
視圖層(View):
Login.jap,Welcome.jsp,ShowCart.jsp,ShowOrder.jsp,Logout.jsp。
控制層(Controller):
AddServlet.java,DeleteServlet.java,ClearServlet.java,UpdateServlet.java。
參考文獻(xiàn)
[1]賈志誠(chéng),王云.JSP程序設(shè)計(jì):慕課版[M].北京:人民郵電出版社,2016.