熊欣
(中共大渡口區(qū)委黨校,重慶 400084)
上世紀(jì)九十年代,Internet 和瀏覽器的發(fā)展正向推動(dòng)了Java Web 技術(shù)的革新。而它也為電商平臺(tái)的開發(fā)提供了技術(shù)支撐。這種科技化、自動(dòng)化的交易方式發(fā)展至今,顯現(xiàn)了巨大的商業(yè)價(jià)值。它把以前面對(duì)面洽談、紙上交談的交易方式逐步變成了由電子商務(wù)平臺(tái)直接操縱的數(shù)字化活動(dòng)方式。從上世紀(jì)九十年代末開始,歐洲,北美洲,亞洲等地的國(guó)家就陸續(xù)發(fā)表了電子商務(wù)發(fā)展的綱要,由此引導(dǎo)電商在全球范圍內(nèi)的健康、有序發(fā)展。
Java Web,是用Java 技術(shù)來解決Web 網(wǎng)站的技術(shù)棧。web 包括兩個(gè)部分:服務(wù)器端和客戶端。Java 在Client 客戶端的應(yīng)用有Java Applet,該技術(shù)在目前的網(wǎng)站開發(fā)中使用較少;Java 在Web 服務(wù)器端的應(yīng)用就相對(duì)廣些,比如Servlet、JSP、MVC 框架等等。Java 技術(shù)對(duì)Web 服務(wù)器的發(fā)展注入了強(qiáng)大的動(dòng)力,而Java Web 技術(shù)又為電商平臺(tái)的發(fā)展提供了無限可能。
網(wǎng)絡(luò)發(fā)展日新月異,電商行業(yè)從上世紀(jì)的第一筆網(wǎng)購(gòu)訂單到如今的數(shù)千億的訂單,變化不可謂不大。在信息技術(shù)迅猛發(fā)展的時(shí)代歷程中,互聯(lián)網(wǎng)不僅為電子商務(wù)的萌芽——發(fā)展——成熟的各階段提供了可靠的技術(shù)支持,還為無數(shù)企業(yè)商家?guī)硇碌纳虣C(jī),創(chuàng)造新的價(jià)值,帶來新的體驗(yàn)。電子商務(wù)這種新時(shí)代的產(chǎn)物,完全顛覆了實(shí)體商家的想象,以勢(shì)如破竹之勢(shì)在各個(gè)行業(yè)占領(lǐng)一席之地。
Java Web 技術(shù)發(fā)展大致分為以下幾個(gè)階段:
在Servlet 技術(shù)誕生之前用戶使用的瀏覽器只能向Web 服務(wù)器請(qǐng)求靜態(tài)資源,比如最常見的靜態(tài)網(wǎng)頁(yè)頁(yè)面html。然而隨著Internet 的發(fā)展,瀏覽器急需滿足各類用戶的不同請(qǐng)求,動(dòng)態(tài)地處理這些請(qǐng)求并將其反饋給對(duì)應(yīng)用戶。為了解決這種動(dòng)態(tài)處理的需求,Servlet 應(yīng)運(yùn)而生。
現(xiàn)行的Servlet 概念存在兩種版本,一種是狹義的解釋它是Java 支持的接口;一種是廣義的解釋它是一個(gè)實(shí)現(xiàn)類[2]。而被廣泛采用的理解是第二種,廣義的定義。客戶端遞送的超文本傳輸協(xié)議請(qǐng)求一般需要得到及時(shí)的響應(yīng),而這個(gè)響應(yīng)過程便是由Servlet 來操作。
在Servlet 體系中,存在一個(gè)重要概念叫過濾器,它的主要功能就是對(duì)調(diào)用Servlet 的過程進(jìn)行攔截。它對(duì)開發(fā)電商平臺(tái)起著畫龍點(diǎn)睛的作用。實(shí)際開發(fā)時(shí)可以阻止游客直接訪問需要驗(yàn)證身份才能進(jìn)入的頁(yè)面,保障了平臺(tái)后臺(tái)管理系統(tǒng)的安全。
JSP 技術(shù)是建立在Servlet 規(guī)范之上的動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)技術(shù)[3]。JSP 頁(yè)面與HTML 頁(yè)面最主要的區(qū)別就是JSP 頁(yè)面融合了HTML 的長(zhǎng)處,使得靜態(tài)網(wǎng)頁(yè)代碼和Java 代碼可以同存于JSP 頁(yè)面中,用特殊的符號(hào)隔開做區(qū)別。
JSP Model 模型主要分為兩種,JSP Modle1 模型是JSP 技術(shù)與JavaBean 技術(shù)相結(jié)合的技術(shù)[4]。而JSP Modle2 模型采用了三種技術(shù)結(jié)合的技術(shù),在第一種模型的基礎(chǔ)上添加了Servlet 技術(shù)。Servlet 頁(yè)面主要是在JSP 原頁(yè)面中提取出來的流程控制代碼。JSP Model2 模型的工作原理如圖2.2 所示:
三層架構(gòu)是指軟件系統(tǒng)的整體設(shè)計(jì)分層:業(yè)務(wù)邏輯層、數(shù)據(jù)持久化層和表現(xiàn)層。而MVC 設(shè)計(jì)模式只體現(xiàn)在表現(xiàn)層中,即將表現(xiàn)層又分為模型、視圖和控制器。所以在上面Model2 模式下對(duì)JavaBean 分割后形成了三層架構(gòu)與MVC 的全新的JavaWeb 開發(fā)模式。
MVC 設(shè)計(jì)模式在上世紀(jì)末誕生,它按功能對(duì)軟件的模塊進(jìn)行歸類。由于MVC 模式中的功能模塊相互獨(dú)立,本平臺(tái)采用MVC 模式進(jìn)行系統(tǒng)的搭建可以使平臺(tái)在研發(fā)完成后具有如下特點(diǎn):1.可維護(hù)性強(qiáng):后期平臺(tái)的運(yùn)營(yíng)人員可以根據(jù)層次分明的包層源代碼對(duì)平臺(tái)進(jìn)行維護(hù);2.可拓展性高:根據(jù)不同包層對(duì)應(yīng)的類不同,可以將平臺(tái)后期想要增加的功能或設(shè)計(jì)快速地進(jìn)行擴(kuò)展補(bǔ)充;3.可復(fù)用性強(qiáng):由各模塊相互獨(dú)立的特點(diǎn)決定。MVC 設(shè)計(jì)模式主要有三個(gè)模塊,如圖2.3 所示:
所謂“需求分析”,就是系統(tǒng)分析人員針對(duì)所開發(fā)的系統(tǒng)軟件提出問題,解決問題的過程。在這個(gè)過程中我們必須弄懂開發(fā)平臺(tái)的目的,要使用哪些技術(shù),要實(shí)現(xiàn)什么功能,是否具備可行性,最終要呈現(xiàn)怎樣的效果。以下以普通的電商平臺(tái)開發(fā)為例:
1.安全性分析
出于對(duì)系統(tǒng)的安全考慮,在前期需求分析階段要討論出使用什么技術(shù)保障后臺(tái)管理系統(tǒng)的安全?;贘ava Web 技術(shù),常用的基礎(chǔ)安全性策略是設(shè)置Filter 過濾器。該過濾器主要用于平臺(tái)登錄設(shè)置,可以阻止用戶通過輸入對(duì)應(yīng)的網(wǎng)頁(yè)地址進(jìn)入攔截頁(yè)面。用戶登錄系統(tǒng)時(shí)對(duì)用戶的身份進(jìn)行識(shí)別,判斷賬戶是否激活,判斷角色類別,判斷賬號(hào)密碼是否匹配。當(dāng)用戶輸入賬號(hào)和密碼時(shí),系統(tǒng)先判斷該賬號(hào)在注冊(cè)24 小時(shí)內(nèi)是否已激活,若已激活且密碼匹配,則根據(jù)用戶的角色類別進(jìn)入不同的系統(tǒng)頁(yè)面。
2.需求分析
近幾年,隨著互聯(lián)網(wǎng)的迅速崛起,傳統(tǒng)的銷售模式遭遇挑戰(zhàn),越來越多的商家開始由單一的線上銷售轉(zhuǎn)為線上與線下相結(jié)合的模式進(jìn)行銷售,向消費(fèi)者展示出別致新奇的購(gòu)物方式。隨著電商平臺(tái)的廣泛出現(xiàn)在大眾生活中,技術(shù)也更多地轉(zhuǎn)向B2C模式。建立一個(gè)電商平臺(tái)至少應(yīng)滿足如下需求:
· 操作界面功能清晰、一目了然。
· 商品的分類合理簡(jiǎn)潔,用戶可以按照類別欄篩選不同商品。
· 網(wǎng)站首頁(yè)輪播圖播放當(dāng)月熱賣主推商品,可適當(dāng)投放廣告。
· 用戶可進(jìn)行注冊(cè)、登錄、信息修改等基礎(chǔ)操作。
· 使用字模糊查找相關(guān)特產(chǎn)。
· 提供簡(jiǎn)單安全的驗(yàn)證模式,用戶必須登錄后才能購(gòu)買特產(chǎn)。
· 方便快捷的購(gòu)物功能。
· 用戶權(quán)限不交叉,各行其是。
· 設(shè)計(jì)完備的后臺(tái)管理系統(tǒng),以便隨時(shí)管理網(wǎng)站的各種數(shù)據(jù)信息。
· 安全穩(wěn)定的運(yùn)行環(huán)境、及時(shí)準(zhǔn)確的響應(yīng)方法。
1.系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)
大型網(wǎng)站系統(tǒng)架構(gòu)都是隨著功能增加而不斷進(jìn)步的,所有的初衷都是為了滿足需求分析得出的系統(tǒng)目標(biāo)。一開始訪問量不高,功能單一時(shí),單個(gè)軟件就可以達(dá)到目標(biāo)。但是后來隨著訪問量逐漸增加,業(yè)務(wù)要求越來越多,單體軟件已不能滿足開發(fā)需求,因此各種集群化部署、內(nèi)存數(shù)據(jù)庫(kù)等技術(shù)應(yīng)運(yùn)而生[7]。
系統(tǒng)架構(gòu)主要包括4 層,它們分別為底層、配置層、工具層和門戶層。其中底層主要為系統(tǒng)架構(gòu)上層提供支持;配置層具有連接功能,為底層提供數(shù)據(jù)服務(wù)等;工具層顧名思義為各層的功能實(shí)現(xiàn)做橋梁,哪層需要工具集或者插件,它便要提供;門戶層就是用戶與系統(tǒng)交涉的中介,一般來說在編寫門戶層的頁(yè)面時(shí)要注意界面美觀,功能簡(jiǎn)潔到位,體驗(yàn)感好。
2.數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)
在進(jìn)行數(shù)據(jù)庫(kù)板塊的設(shè)計(jì)時(shí)使用數(shù)據(jù)字典可以從結(jié)構(gòu)上清晰的分析相關(guān)功能。數(shù)據(jù)字典主要用于對(duì)需求分析階段要求的數(shù)據(jù)做出一定的解釋。其中要遵循的規(guī)則是各個(gè)數(shù)據(jù)的定義按照統(tǒng)一的標(biāo)準(zhǔn)得出[7]。
在設(shè)計(jì)數(shù)據(jù)庫(kù)之前,需要明確項(xiàng)目涉及哪些實(shí)體,各包含哪些屬性,實(shí)體之間的關(guān)系是如何的,因此用E-R 圖描述較為方便。E-R 模型即實(shí)體―聯(lián)系模型。它主要用于需求分析之后,數(shù)據(jù)庫(kù)設(shè)計(jì)之前的中間環(huán)節(jié)分析。研究E-R 模型有助于歸納每個(gè)實(shí)體的相關(guān)屬性、優(yōu)化相關(guān)現(xiàn)實(shí)數(shù)據(jù)[8]。數(shù)據(jù)庫(kù)中常用數(shù)據(jù)表來映射邏輯模型中的關(guān)聯(lián)情況以及儲(chǔ)存相關(guān)數(shù)據(jù)信息。數(shù)據(jù)表中的一個(gè)字段映射表達(dá)關(guān)系中的一個(gè)屬性,一條記錄映射表達(dá)關(guān)系中的一個(gè)元組,整體結(jié)構(gòu)映射表達(dá)關(guān)系的整體框架,它們都是一一對(duì)應(yīng)的關(guān)系,層次分明,邏輯清晰。
在數(shù)據(jù)庫(kù)連接池技術(shù)誕生之前,每次JDBC 編程時(shí)創(chuàng)建和斷開Connection 對(duì)象都會(huì)浪費(fèi)少許的時(shí)間和IO 資源。除此之外,Java 程序還得把與連接相關(guān)的對(duì)象加載入內(nèi)存中以降低開銷。若某個(gè)Web 應(yīng)用程序在某一高峰時(shí)段有上萬(wàn)人同時(shí)訪問,則此時(shí)數(shù)據(jù)庫(kù)內(nèi)部就要進(jìn)行上萬(wàn)次關(guān)于連接的操作。數(shù)據(jù)庫(kù)連接池的出現(xiàn)極大地減輕了數(shù)據(jù)庫(kù)的連接壓力。它支持Web 應(yīng)用程序直接使用之前建立的數(shù)據(jù)庫(kù)連接,而不用每次訪問時(shí)重新建立。應(yīng)用程序本身省去中間與數(shù)據(jù)庫(kù)驅(qū)動(dòng)協(xié)作的過程,底層數(shù)據(jù)庫(kù)也不用與應(yīng)用程序的用戶進(jìn)行交流。因此引入JDBC 技術(shù)以后,驅(qū)動(dòng)模塊的代碼編寫完成后普適性更高。
3.功能模塊設(shè)計(jì)與實(shí)現(xiàn)
一個(gè)基本的電商平臺(tái)至少應(yīng)該包含以下幾個(gè)功能模塊:登錄注冊(cè):平臺(tái)用戶要實(shí)現(xiàn)購(gòu)買功能需要先注冊(cè),注冊(cè)完成并成功激活后登錄網(wǎng)站。系統(tǒng)首先會(huì)驗(yàn)證輸入框內(nèi)的信息與數(shù)據(jù)庫(kù)是否匹配,然后判斷是否激活,若未激活則返回登錄頁(yè)面且提示用戶進(jìn)行激活,成功激活則登錄成功。購(gòu)物模塊:用戶進(jìn)入平臺(tái)首頁(yè)瀏覽商品,若要加購(gòu),系統(tǒng)捕捉此時(shí)用戶的登錄狀態(tài),未登錄的通過重定向技術(shù)將頁(yè)面跳轉(zhuǎn)至登錄頁(yè)面,已登錄的則成功加入購(gòu)物車。結(jié)算模塊:用戶想要結(jié)算購(gòu)物車的物品,必須是在登錄狀態(tài)下,進(jìn)入結(jié)算中心,勾選要結(jié)算的商品,進(jìn)行訂單確認(rèn),若訂單確認(rèn)后未支付訂單,用戶也可以根據(jù)自己的實(shí)際情況取消訂單;確認(rèn)訂單后進(jìn)入支付環(huán)節(jié)支付購(gòu)物金額。
一個(gè)強(qiáng)大的電商平臺(tái),不僅要有美觀可操作性強(qiáng)的前臺(tái)頁(yè)面,還應(yīng)該有功能齊全的后臺(tái)管理系統(tǒng),只有將后臺(tái)數(shù)據(jù)牢牢抓住,才能及時(shí)調(diào)整平臺(tái)銷售策略,針對(duì)用戶的購(gòu)買記錄精準(zhǔn)推薦好物。后臺(tái)管理系統(tǒng)主要包含四大功能塊:
(1)商品管理:添加商品、編輯商品、刪除商品、查詢商品
(2)銷售榜單:下載銷售數(shù)據(jù)
(3)公告管理:添加公告、查詢公告、刪除公告、編輯公告
(4)訂單管理:刪除訂單、查詢訂單后臺(tái)管理系統(tǒng)的實(shí)現(xiàn)主要依賴于數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行增刪改查等操作。如購(gòu)物車的實(shí)現(xiàn):用戶點(diǎn)擊購(gòu)買,系統(tǒng)獲取商品的id,調(diào)用service 層方法,根據(jù)id 查找商品,然后獲得session、從session 中獲取購(gòu)物車對(duì)象、如果購(gòu)物車為null,說明沒有商品存儲(chǔ)在購(gòu)物車中,創(chuàng)建出購(gòu)物車接下來便是向購(gòu)物車中添加商品、如果商品數(shù)量不為空,則商品數(shù)量+1,否則添加新的商品信息。