亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MVC架構(gòu)下的Servlet+JSP在電子商務(wù)網(wǎng)站開發(fā)中的研究

        2018-12-22 10:55:48匡蕾劉進鋒
        電腦知識與技術(shù) 2018年33期

        匡蕾 劉進鋒

        摘要:服務(wù)器端編程方式JSP和Servlet已經(jīng)成為當今開發(fā)電子商務(wù)應(yīng)用程序的首選方式。在應(yīng)用程序中的一些復(fù)雜問題例如緩存問題、持久性問題和系統(tǒng)響應(yīng)速度問題等可以借助MVC(Model-view-Controller)架構(gòu)加以緩解。該文在分析JSP,Servlet和MVC基本原理和交互過程的基礎(chǔ)上,以電子商務(wù)中的模塊為例,利用Servlet+JSP實現(xiàn)模塊設(shè)計,MVC架構(gòu)實現(xiàn)展示層和邏輯層分離,減少了模塊與模塊之間的耦合性,在某一模塊功能發(fā)生變化的時候不會迫使其他代碼改變。

        關(guān)鍵詞:電子商務(wù);Servlet;JSP;MVC框架

        中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)33-0265-03

        1 Web開發(fā)技術(shù)概述

        Web資源不再是靜態(tài)的更多的是動態(tài)的,當請求Web資源時,必須在帶有請求參數(shù)的服務(wù)器上運行程序并生成相應(yīng)地內(nèi)容與正在與系統(tǒng)通信的用戶進行持續(xù)交互,這會產(chǎn)生大量的數(shù)據(jù)。這些數(shù)據(jù)的復(fù)雜性可以借助框架加以緩解,如果沒有框架程序員的大部分時間都花在編碼標準服務(wù)上,如緩存,持久性和安全性。MVC三層架構(gòu)模型的一些功能是能夠輕松存儲訪問應(yīng)用程序的數(shù)據(jù)、保證數(shù)據(jù)的完整性、會話管理、用戶認證等操作。而服務(wù)器端編程語言有ASP.NET、JSP+Servlet,其主要功能都是向網(wǎng)站添加動態(tài)功能。JSP+Servlet技術(shù)是J2EE ( TM)平臺的基礎(chǔ),它提供Web客戶端和服務(wù)器端之間的連接,并且分離了Java代碼和HTML,對于構(gòu)建交互式Web應(yīng)用程序是非常好的選擇,并且已經(jīng)成為當今最流行的企業(yè)應(yīng)用程序服務(wù)器端編程方式。而ASP則在小型站點中占主導(dǎo)地位。

        2 MVC架構(gòu)介紹

        MVC架構(gòu)把交互系統(tǒng)組件分為模型、視圖、控制器三種:處理應(yīng)用程序數(shù)據(jù)的模型(Service層)、呈現(xiàn)用戶界面的視圖(Web層)以及處理用戶輸入的控件(DAO層)。

        1)業(yè)務(wù)邏輯層是由JavaBean、Servlet和推薦系統(tǒng)組成,JavaBean管理客戶端和服務(wù)器上運行的數(shù)據(jù)流,并調(diào)用相對應(yīng)的方法來封裝數(shù)據(jù)。Servlet從客戶端接收數(shù)據(jù)、處理數(shù)據(jù)并將其發(fā)送到數(shù)據(jù)訪問層進行存儲,業(yè)務(wù)邏輯層是系統(tǒng)的至關(guān)重要的一部分,擁有推薦系統(tǒng)的核心代碼。

        2)表示層是Web層方面的開發(fā),Web層由html+css+js+bootstrap+JSP組成,首先由html+css+js搭建靜態(tài)頁面,接著JSP校驗數(shù)據(jù)并把用戶信息傳給業(yè)務(wù)邏輯層。業(yè)務(wù)邏輯層的Service層將數(shù)據(jù)處理完成后呈現(xiàn)給用戶并觀察業(yè)務(wù)邏輯層進行更新。Web層是用戶能看到的最直觀的一層。

        3)數(shù)據(jù)訪問層是由大量的接口來實現(xiàn)訪問/操作數(shù)據(jù)的地方,實現(xiàn)處理數(shù)據(jù)的增刪改查,并把所有操作封裝成接口返回一個結(jié)果集供業(yè)務(wù)邏輯層調(diào)用,安全性較高。

        采用MVC設(shè)計思想完成三層體系結(jié)構(gòu)實現(xiàn)展示層和邏輯層分離,使得一個模型可以具有多個顯示視圖,當模型數(shù)據(jù)發(fā)生變化,控制器都會通知所有的視圖顯示的更新。同時實現(xiàn)了數(shù)據(jù)層與表示層的分離,在需要替換或更新某一模塊時不需要改動其他模塊。這樣一方面有助于設(shè)計在需求分析改變時可重復(fù)使用,減少再次設(shè)計的成本。另一方面減少類與類之間的耦合性,在某一模塊功能發(fā)生變化的時候不會迫使其他模塊代碼改變。

        3 Servlet交互過程

        Servlet 是由Sun公司提出的動態(tài)Web資源服務(wù)器開發(fā)技術(shù),Servlet通過HTTP協(xié)議與Web瀏覽器進行信息交互,交互完成后Servlet將生成響應(yīng)返回給Web服務(wù)器。首先瀏覽器通過用戶輸入的URL訪問Web服務(wù)器的資源,Web服務(wù)器在收到HTTP請求后進行分析:

        1)分析host請求當前請求是由哪臺虛擬主機發(fā)出的,如果沒有host請求則訪問缺省虛擬主機。

        2)分析GET請求頭要訪問的是該虛擬主機的哪個Web資源。

        3)在Web.xml中找到該Web資源的虛擬路徑,訪問該虛擬路徑對應(yīng)Servlet。

        使用這個模型可以同時處理很多請求,而只有在第一次請求Servlet時會創(chuàng)建一個新的Servlet實例,此后無需實例化任何新對象,創(chuàng)建出Servlet對象會一直駐留在內(nèi)存中為該Servlet訪問服務(wù)。

        后續(xù)訪問Servlet中的service(request,response)方法之前,確保Servlet中的初始化方法init()和代表請求的request對象、代表響應(yīng)的response對象已經(jīng)創(chuàng)建完成,request對象封裝著請求頭和請求體,但response對象此時是空的。Web瀏覽器有需要打給服務(wù)器的內(nèi)容在放在response對象中的響應(yīng)頭和響應(yīng)體中,接著服務(wù)器取出響應(yīng)頭和響應(yīng)體中的所有內(nèi)容并組織成HTTP響應(yīng)消息打給瀏覽器。瀏覽器解讀HTTP響應(yīng),根據(jù)HTTP響應(yīng)的內(nèi)容在界面上做一個展示,核心過程如圖1所示。

        4 JSP技術(shù)分析

        4.1 JSP技術(shù)簡介

        JSP+Servlet技術(shù)是J2EE (TM)平臺的基礎(chǔ),它提供Web客戶端和服務(wù)器端程序之間的連接。Servlet是在Java中嵌套HTML其本質(zhì)上是一段Java程序,獲得了Java語言的所有優(yōu)勢包括可移植性、可重用性和崩潰保護。JSP是Servlet技術(shù)的服務(wù)器端擴展,JSP引擎包含在Servlet引擎中,程序執(zhí)行之前JSP引擎將JSP頁面轉(zhuǎn)換/編譯為Servlet。目前JSP技術(shù)已成為創(chuàng)建動態(tài)Web網(wǎng)頁的主流開發(fā)技術(shù)之一,具有分離動態(tài)和靜態(tài)內(nèi)容、支持腳本和標簽、跨平臺、可使用重用組件和標簽的優(yōu)點。

        1)分離動態(tài)和靜態(tài)內(nèi)容:JSP頁面將應(yīng)用程序邏輯與內(nèi)容呈現(xiàn)分開,帶給瀏覽器呈現(xiàn)時又可以完美結(jié)合,使設(shè)計人員在不更改底層動態(tài)內(nèi)容的情況下更改整體頁面布局,靈活性高。

        2)支持腳本和標簽:JSP技術(shù)支持基于Java腳本元素和標簽,標簽允許以特定的形式將任意合法的Java代碼進行封裝。同時也可以使用自定義標簽庫,實現(xiàn)在不嵌套Java語言的前提下仍可以運行使用服務(wù)器端Java的功能。腳本可以在網(wǎng)頁中展示豐富的多媒體動態(tài)效果,另外JSP也可支持部分非基于Java編程的腳本語言。

        3)跨平臺:JSP是完全獨立于平臺的,無論是在Web頁面、Web服務(wù)器還是底層服務(wù)器都可創(chuàng)建JSP頁面。運行環(huán)境也是獨立的,Web服務(wù)器或啟用Web的應(yīng)用程序服務(wù)器上都可運行,并從任何瀏覽器訪問。

        4)重用組件和標簽:組件可以用于組件開發(fā)和頁面組合,這為程序的編寫節(jié)省了大量的時間,同時為用戶提供了Java和其他腳本語言的跨平臺功能和靈活性。

        4.2 JSP執(zhí)行過程

        當一個JSP頁面被客戶端訪問時,它被的JSP引擎解析、驗證、傳譯成一個Servlet并最終執(zhí)行,其中傳譯包括將自定義標簽轉(zhuǎn)換為Java代碼并設(shè)置腳本變量的過程。傳譯成Servlet后產(chǎn)生一個發(fā)送給客戶端瀏覽器的響應(yīng)。傳譯的過程分為三步如圖2所示:

        1)JSP引擎將來自客戶端的請求request傳給JSP頁面,首次傳譯時調(diào)用JSPInit()方法來準備頁面,傳譯階段通常會創(chuàng)建一個類去實現(xiàn)Javax.Servlet.Servlet接口來將JSP頁面變成Servlet源文件。

        2)接著將Servlet源程序文件翻譯成相應(yīng)的.class文件,裝載執(zhí)行該.class 文件。

        3)JSP頁面被傳譯成Servlet之后,JSP頁面根據(jù)給定HTTP的協(xié)議創(chuàng)建一個響應(yīng)對象或一些其他的對象來響應(yīng)客戶端。同時,JSP引擎可以隨時調(diào)用JSPDestroy()方法來回收JSP頁面所使用的所有資源結(jié)束其生命,這與Servlets的生命周期是一樣的。

        5 MVC架構(gòu)下JSP+Servlet實現(xiàn)

        MVC設(shè)計思想完成Web應(yīng)用程序開發(fā)時,JavaBean和Servlet組成了業(yè)務(wù)邏輯層(Service層),JavaBean管理客戶端和服務(wù)器上運行的數(shù)據(jù)流,并調(diào)用相對應(yīng)的方法來封裝數(shù)據(jù),Servlet從客戶端接收數(shù)據(jù)、處理數(shù)據(jù)并將其發(fā)送到數(shù)據(jù)訪問層進行存儲。業(yè)務(wù)邏輯層是系統(tǒng)的至關(guān)重要的一部分,上有表現(xiàn)層(Web層)下有數(shù)據(jù)訪問層(DAO層),如需改變視圖則改變表示層,如需改變數(shù)據(jù)則改變數(shù)據(jù)訪問層。JSP是Web層方面的開發(fā),Web層將Service層數(shù)據(jù)呈現(xiàn)給用戶,并觀察Service層進行更新,是用戶能看到的最直觀的一層。數(shù)據(jù)訪問層(DAO層)是由大量的接口來實現(xiàn)訪問/操作數(shù)據(jù)的地方,處理數(shù)據(jù)的增刪改查并把所有操作封裝成接口返回一個結(jié)果集供業(yè)務(wù)邏輯層調(diào)用,安全性較高,維護起來也更加方便。圖3展示了在線商城系統(tǒng)的基于 Jsp+Servlet+Java Bean 的J2EE 中 MVC 模式的實現(xiàn)過程,整個框架的作用過程為:①瀏覽器的請求被其中一個JSP接收,JSP頁面向程序流轉(zhuǎn)對應(yīng)的Servlet發(fā)送請求。②該Servlet與Java Bean進行通信以訪問信息。③Java Bean負責信息處理,并返回處理結(jié)果到Servlet;④請求處理完成后,控制流程將轉(zhuǎn)移到的JSP頁面。

        以圖4訂單模塊為例,當用戶點擊購買的按鈕時訪問MVC表示層的ShopServlet中的showIndent方法,并且?guī)е脩粝胍徺I的商品的id,showIndent方法列出訂單的基本信息,要求用戶提供購買數(shù)量和支付方式如圖4,用戶點擊購買后把商品存到request域中,重定向到表示層,表示層的ShopServlet中g(shù)o方法進行四步操作:

        1)表示層從request域中拿出訂單號+下單用戶名+下單圖書+下單時間+評論等需要插入indent表中的值。其中訂單金額不能從域中直接獲取到,需要go方法根據(jù)訂單單價*數(shù)量doublesum= Double.valueOf(bookPrice)*Integer.valueOf(num);實時計算出來。

        2)把訂單號+下單用戶名+下單圖書+下單時間+評論+訂單金額這些信息,調(diào)用表示層中的IndentService方法插入到數(shù)據(jù)庫,并從book表中扣除相對應(yīng)的庫存數(shù)量。

        3)IndentService調(diào)用數(shù)據(jù)訪問層的IndentDao的方法,對數(shù)據(jù)庫的Indent表和book表進行操作,且采用事務(wù)管理的方式,讓兩步操作處在同一個事務(wù)里面,事務(wù)具有原子性不可分割要么同時完成要么同時不完成,有一步操作中斷全部事務(wù)回滾。

        4)重定向回表示層。理想情況下用戶不應(yīng)該直接訪問JSP頁面,請求直接發(fā)送到Servlet。該Servlet負責處理請求的實際處理,然后將該控制轉(zhuǎn)移到適當?shù)腏SP頁面。 JSP頁面然后將顯示對用戶的響應(yīng),隨后的請求在用戶填寫表單并單擊提交按鈕之后再次被引導(dǎo)到一個Servlet進行處理。系統(tǒng)的用戶根本不應(yīng)該知道任何JSP頁面的存在。

        6 結(jié)束語

        本文采用 JSP+Servlet的MVC三層架構(gòu)技術(shù),實現(xiàn)了視圖層、邏輯層、數(shù)據(jù)層的分離,使得系統(tǒng)具有良好的擴展性,減少了類與類之間的耦合性。Servlet可訪問調(diào)用HTTP的庫,對于構(gòu)建交互式Web應(yīng)用程序是非常好的選擇。JSP具有分離動態(tài)和靜態(tài)內(nèi)容,支持腳本和標簽,跨平臺,可使用重用組件和標簽的優(yōu)點。因此,有利于大型項目開發(fā)管理。

        參考文獻:

        [1] 孫衛(wèi)琴. Tomcat 與 Java Web 開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2010.

        [2] 王文新.基于模型-視圖-控制器的 Web 應(yīng)用程序框架設(shè)計[J].信息與電子工程,2009,7(4):358-360.

        [3] 王棟.一種簡易 Web 服務(wù)器的設(shè)計與實現(xiàn)[J].電子科技,2016,29(1) : 121-123.

        [4] 李莉,高峰.WEB Service 技術(shù)綜述[J]. 信息系統(tǒng)工程,2014(1) : 36.

        [5] 胡輝. IOS 環(huán)境下使用 MVC 模式進行 APP 開發(fā)的設(shè)計思路探索[J].數(shù)字技術(shù)與應(yīng)用,2015(6) : 204-206.

        [6] 梁弼.基于MVC 的高??蒲谐晒芾硐到y(tǒng)的設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2011,21( 10) : 161 -163.

        [7] 馮玉萍. 基于MVC的設(shè)計與開發(fā)[J].科技風,2010(5):25.

        [8] 張志瑜. 論述PHP實現(xiàn)MVC框架[J].科技視界,2016(13):218-219.

        【通聯(lián)編輯:代影】

        免费的一级毛片| 国产成人精品亚洲日本在线观看| 亚洲av日韩av在线观看| 精品久久无码中文字幕| AV无码专区亚洲AVL在线观看| 亚洲精品中文字幕91| 国产日韩精品suv| 精品国内自产拍在线观看| 甲状腺囊实性结节三级| 国产精品第一区亚洲精品| av在线免费观看蜜桃| 国产一区二区三精品久久久无广告| a在线免费| av免费观看在线网站| 久久99热国产精品综合| 成人综合婷婷国产精品久久蜜臀| 91网站在线看| 一本之道加勒比在线观看| 无码国产精成人午夜视频一区二区| 美女视频黄的全免费视频网站| 午夜亚洲AV成人无码国产| 国产成人高清亚洲一区二区| 国产成人av无码精品| 日日碰狠狠躁久久躁| 中文字幕无码高清一区二区三区| 精品人妻码一区二区三区红楼视频| 人妻 偷拍 无码 中文字幕 | 亚洲黄色尤物视频| 青青草绿色华人播放在线视频| 人人妻人人澡人人爽人人精品浪潮 | 人人狠狠综合久久亚洲婷婷| 在线不卡中文字幕福利| 亚洲一区二区日韩专区| 精品亚洲成在人线av无码| 久久频这里精品99香蕉| 色婷婷在线一区二区三区| 大学生粉嫩无套流白浆| 人妻丰满熟妇AV无码区HD| 手机在线免费看av网站| 麻豆文化传媒精品一区观看| 天天综合亚洲色在线精品|