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

        ?

        基于移動互聯(lián)WEB開發(fā)的MVC模式研究

        2019-10-21 20:25:28孫林于海春李星宇
        科技風(fēng) 2019年23期

        孫林 于海春 李星宇

        摘 要:隨著網(wǎng)絡(luò)信息技術(shù)的發(fā)展,基于B/S的web分布式應(yīng)用體系架構(gòu)已經(jīng)被廣泛地應(yīng)用。MVC設(shè)計模式的出現(xiàn),將模型層、視圖層、控制層進(jìn)行分離,極大的降低了各組件之間的耦合度,提高了代碼的重用性可維護(hù)性。文章討論了SpringMVC等后端技術(shù)框架,B/S三層技術(shù)架構(gòu)模式等架構(gòu)思想。同時采用層次化、組件化和面向?qū)ο蟮脑O(shè)計思想,盡量降低不同功能模塊之間的耦合粒度,以保證系統(tǒng)的可擴(kuò)展性。

        關(guān)鍵詞:MVC模式;SpringMVC;軟件架構(gòu);WEB開發(fā)

        1 web應(yīng)用技術(shù)的起源和發(fā)展前景

        Web應(yīng)用發(fā)展的集中在分布式計算領(lǐng)域,Web 系統(tǒng)從開發(fā)出現(xiàn)以來,就以成本低、推廣易、靈活性高為優(yōu)勢,在計算機(jī)領(lǐng)域得到了迅速的發(fā)展。當(dāng)前,Web 系統(tǒng)已經(jīng)成功的應(yīng)用社會生活中的方方面面,這也成功的推動了IT 浪潮的發(fā)展,在看到IT技術(shù)企業(yè)所展現(xiàn)的巨大經(jīng)濟(jì)利潤之后,對于Web 系統(tǒng)的開發(fā)更為迫切。

        為了解決一類重復(fù)出現(xiàn)的問題,從而使代碼不斷使用形成一套重用的解決方案,人們引入了設(shè)計模式的概念。對于軟件開發(fā)過程中產(chǎn)生的冗余和重復(fù)的代碼,我們通過應(yīng)用例如:單例模式、觀察者模式、工廠模式等設(shè)計模式的思想,會在開發(fā)中提供一套全新的解決方案,使代碼達(dá)到高內(nèi)聚、松耦合的效果。

        2 MVC三層架構(gòu)分析

        MVC全名是Model View Controller,分別代表著模型層,視圖層和控制層。MVC和軟件開發(fā)的三層架構(gòu)有著極為密切的聯(lián)系,在web項目開發(fā)中使用三層架構(gòu)的總體布局,具體采用MVC模式的軟件設(shè)計風(fēng)格,通過SSM/SSH(Spring,SpringMVC,Mybatis/Hibernate)等框架進(jìn)行具體業(yè)務(wù)的分析和搭建完成整個項目的提交。

        在SpringMVC框架中,DispatcherServlet(前端控制器)占據(jù)核心位置,一方面負(fù)責(zé)接收客戶端用戶的請求,另一方面它會與HandlerMapping(處理器映射器)進(jìn)行交互,此過程中會根據(jù)XML配置和JAVA類中的注解產(chǎn)生執(zhí)行結(jié)果,之后由后端控制器與處理器映射器進(jìn)行交互,將執(zhí)行結(jié)果的ModelAndView(模型和視圖)回拋給前端控制器進(jìn)行解析和渲染視圖產(chǎn)生具體的View(視圖)返回給客戶端用戶。整個流程充分應(yīng)用各個組件的作用,工程師只需要進(jìn)行View視圖的渲染和處理器Handler的開發(fā),極大地減少了開發(fā)過程中的代碼量,降低了代碼的耦合度,各個模塊的業(yè)務(wù)之間相分工明確、相互聯(lián)系,使得開發(fā)周期大大縮減,推動了C/S(客戶端/服務(wù)端)架構(gòu)的迅速發(fā)展。

        2.1 視圖層(JSP)

        View視圖用來渲染模型。視圖層是用戶直接看到的Web應(yīng)用的界面,它為用戶提供了一個可視化的界面和操作空間,也是用戶與Web應(yīng)用進(jìn)行直接交互的渠道。在JavaWeb中,視圖層不僅支持HTML、XML、XHTML等基礎(chǔ)標(biāo)記語言,還支持JavaScript、Bootstrap等腳本、框架語言,甚至還可以支持JSP通過后臺動態(tài)生成頁面,作為實現(xiàn)真正的用戶交互功能的媒介,視圖層使得MVC架構(gòu)的Web應(yīng)用功能更加強(qiáng)大豐富。

        2.2 模型層(DAO)

        Model(模型),表示應(yīng)用數(shù)據(jù)和業(yè)務(wù)規(guī)則。模型層是真正用來實現(xiàn)各項功能的模塊,負(fù)責(zé)處理業(yè)務(wù)邏輯和業(yè)務(wù)規(guī)則,例如連接數(shù)據(jù)庫進(jìn)行增刪改查操(DAO)、動態(tài)生成頁面等交互功能。在使用DAO構(gòu)建模型層的同時,還可以配合緩沖池、緩存等技術(shù)手段來降低數(shù)據(jù)庫的訪問量,從而提升MVC框架應(yīng)用的穩(wěn)定性和并發(fā)查詢能力。

        2.3 控制器(Servlet)

        Controller(控制器)的核心功能主要分為兩部分。一方面解釋客戶端界面的輸入,調(diào)用Model模型中的方法,另一方面通過將模型數(shù)據(jù)和執(zhí)行結(jié)果填充至視圖中,進(jìn)而把View視圖顯示給用戶,這一過程主要由Servlet完成。在SpringMVC中,對于客戶端提交的請求經(jīng)過DispatcherServlet分發(fā)之后到達(dá)控制器,在業(yè)務(wù)處理層處理之后會將結(jié)果進(jìn)行封裝,從而產(chǎn)生一個Model,然后經(jīng)過View視圖層交互之后就會將Model進(jìn)行展示。因此當(dāng)接收到用戶的請求時,它只是決定調(diào)用哪些Model層和View層去進(jìn)行處理和返回執(zhí)行結(jié)果,但是控制器本身不會有任何輸入和輸出。

        2.4 MVC架構(gòu)優(yōu)勢分析

        (1)可以降低各模塊之間的耦合度;

        (2)實現(xiàn)各層之間的代碼復(fù)用;

        (3)有利于實現(xiàn)代碼的標(biāo)準(zhǔn)化;

        (4)有利于系統(tǒng)的動態(tài)模塊化更新;

        (5)便于團(tuán)隊分工開發(fā)。

        3 舊模式開發(fā)缺點(diǎn)

        不使用框架進(jìn)行Web應(yīng)用開發(fā)會造成以下幾個缺點(diǎn)。

        (1)HTML和JAVA代碼同時在JSP頁面中進(jìn)行編寫,增加開發(fā)周期,降低了代碼的可讀性;

        (2)在實現(xiàn)各模塊的業(yè)務(wù)邏輯時,由于代碼復(fù)雜混亂,對團(tuán)隊的分工開發(fā)造成困難;

        (3)后期對系統(tǒng)進(jìn)行運(yùn)維和功能擴(kuò)展時會非常麻煩。例如在JSP頁面進(jìn)行數(shù)據(jù)庫連接和操作,如果需要對數(shù)據(jù)庫進(jìn)行任何修改,都必須打開所有操作數(shù)據(jù)庫的JSP頁面進(jìn)行相應(yīng)的修改,當(dāng)頁面非常多的時候,工作量相當(dāng)大;

        (4)系統(tǒng)不容易調(diào)試,由于HTML、Java、JavaScript都混合在一起,而Java語言的運(yùn)行需要每次修改后都重新編譯運(yùn)行,因此必須要啟動服務(wù)器并調(diào)用 JSP頁面才能查看運(yùn)行效果。在進(jìn)行大型項目開發(fā)時,啟動速度慢,效率低下。

        當(dāng)Web應(yīng)用程序功能十分簡單時,如果再遵循MVC框架進(jìn)行開發(fā),那么就會導(dǎo)致原本的簡單系統(tǒng)反而變得復(fù)雜、冗余,會徒增多余操作,從而降低簡單系統(tǒng)的運(yùn)行效率。

        4 MVC架構(gòu)性能提升

        如果僅使用簡單的MVC架構(gòu)進(jìn)行開發(fā),毫無疑問,這個Web應(yīng)用的性能也是有瓶頸的,受到服務(wù)器內(nèi)存、CPU等性能和并發(fā)量等條件的約束。

        4.1 靜態(tài)緩存

        靜態(tài)緩存是指將MVC框架中的視圖層中的HTML、JSP中的HTML、JavaScript、圖片、視頻等靜態(tài)文件和資源通過緩存、增加響應(yīng)方式等方法,降低Web應(yīng)用和服務(wù)器的壓力,從而提高系統(tǒng)性能。

        (1)CDN技術(shù)。CDN全稱是ContentDeliveryNetwork,即內(nèi)容分發(fā)網(wǎng)絡(luò),通過部署邊緣鏡像服務(wù)器,智能調(diào)度算法等操作,使用戶就近訪問靜態(tài)資源,降低網(wǎng)絡(luò)擁塞,提升主站系統(tǒng)性能。

        (2)服務(wù)器內(nèi)存緩存。通過Varnish,實現(xiàn)服務(wù)器內(nèi)存緩存靜態(tài)資源功能,效率高。

        (3)Nginx內(nèi)存緩存。通過修改Nginx配置文件,實現(xiàn)Nginx的內(nèi)存緩存靜態(tài)資源功能,靈活性和效率都很高。

        4.2 動態(tài)緩存

        動態(tài)緩存是指將MVC中需要經(jīng)過模型層處理后的動態(tài)生成的資源進(jìn)行緩存。

        適用條件:

        (1)此動態(tài)資源被請求數(shù)量多;

        (2)此動態(tài)資源被修改次數(shù)少;

        (3)此動態(tài)資源對即時性要求低。

        例如在購物網(wǎng)站的場景中,每個店家的商品資源就可以使用動態(tài)緩存技術(shù),從而提升性能和穩(wěn)定性,抵抗高并發(fā)。每個店家的商品可能在同一時間內(nèi)被多次請求查看,將此動態(tài)資源放入動態(tài)緩存中,于是每次請求都不需要查詢數(shù)據(jù)庫,避免了大量的數(shù)據(jù)庫的IO操作。當(dāng)有商品被修改時,只需要重新請求一次數(shù)據(jù)庫,再做緩存即可。

        5 結(jié)論

        綜上所述,在JavaEE等web項目開發(fā)中,MVC設(shè)計模式的應(yīng)用在很大程度上減小了不同程序間的差異性,將錯亂復(fù)雜的程序設(shè)計變得更容易,改善程序的理解性的同時增強(qiáng)程序的可維護(hù)性,彌補(bǔ)目前程序開發(fā)技術(shù)的不足,給互聯(lián)網(wǎng)絡(luò)注入新的生機(jī)和活力。

        參考文獻(xiàn):

        [1]閆帥領(lǐng),徐蕾,趙亮,蘇冬梅.基于MVC模式的信息系統(tǒng)開發(fā)模式研究[J].科技與創(chuàng)新,2018(08):22-23.

        [2]張雪敏.淺議MVC設(shè)計模式在JavaWeb中的作用[J].科技風(fēng),2018(22):58-59.

        [3]于春娜,王晨升,楊光,郭世龍,劉豐.Web前端MVC框架的意義研究[J].產(chǎn)業(yè)與科技論壇,2014,13(01):52-53.

        作者簡介:孫林(1998-),男,專業(yè)方向:電子信息工程。

        青青草手机视频免费在线播放| 亚洲V日韩V精品v无码专区小说| 波霸影院一区二区| 国产美女高潮流的白浆久久| 亚洲日本精品国产一区二区三区| 国语对白做受xxxxx在| 人人妻人人澡人人爽人人精品电影 | 国产精品538一区二区在线| 免费观看又污又黄的网站| 久久一日本道色综合久久大香| 91人妻人人做人人爽九色| 久久天天躁夜夜躁狠狠85麻豆| 亚洲精品字幕| 欧美日韩一区二区三区色综合| 中文字幕一区二区网址| 一个人看的www片免费高清视频| 四川少妇大战4黑人| 在线观看一区二区女同| 国产精女同一区二区三区久| 999国产精品999久久久久久| 人人妻人人爽人人做夜欢视频九色| 国产女人体一区二区三区| 久久久熟女一区二区三区| av无码av天天av天天爽| 亚洲欧美国产日韩制服bt| 中文字幕一区二区三在线| 亚洲中文字幕人妻久久| 西西人体444www大胆无码视频| a级福利毛片| 亚洲免费一区二区av| 精品乱人伦一区二区三区| 日韩精品无码久久一区二区三| 91久久精品一二三区蜜桃| 日韩少妇人妻中文视频| 成人免费看片又大又黄| 亚洲韩国在线| 精品一区二区三区亚洲综合| 久久久久久亚洲av成人无码国产| 亚洲成人福利在线观看| 亚洲av午夜福利一区二区国产| 99久久久无码国产精品性|