• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于移動互聯(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),將模型層、視圖層、控制層進行分離,極大的降低了各組件之間的耦合度,提高了代碼的重用性可維護性。文章討論了SpringMVC等后端技術(shù)框架,B/S三層技術(shù)架構(gòu)模式等架構(gòu)思想。同時采用層次化、組件化和面向?qū)ο蟮脑O(shè)計思想,盡量降低不同功能模塊之間的耦合粒度,以保證系統(tǒng)的可擴展性。

    關(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)勢,在計算機領(lǐng)域得到了迅速的發(fā)展。當(dāng)前,Web 系統(tǒng)已經(jīng)成功的應(yīng)用社會生活中的方方面面,這也成功的推動了IT 浪潮的發(fā)展,在看到IT技術(shù)企業(yè)所展現(xiàn)的巨大經(jīng)濟利潤之后,對于Web 系統(tǒng)的開發(fā)更為迫切。

    為了解決一類重復(fù)出現(xiàn)的問題,從而使代碼不斷使用形成一套重用的解決方案,人們引入了設(shè)計模式的概念。對于軟件開發(fā)過程中產(chǎn)生的冗余和重復(fù)的代碼,我們通過應(yīng)用例如:單例模式、觀察者模式、工廠模式等設(shè)計模式的思想,會在開發(fā)中提供一套全新的解決方案,使代碼達到高內(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)等框架進行具體業(yè)務(wù)的分析和搭建完成整個項目的提交。

    在SpringMVC框架中,DispatcherServlet(前端控制器)占據(jù)核心位置,一方面負責(zé)接收客戶端用戶的請求,另一方面它會與HandlerMapping(處理器映射器)進行交互,此過程中會根據(jù)XML配置和JAVA類中的注解產(chǎn)生執(zhí)行結(jié)果,之后由后端控制器與處理器映射器進行交互,將執(zhí)行結(jié)果的ModelAndView(模型和視圖)回拋給前端控制器進行解析和渲染視圖產(chǎn)生具體的View(視圖)返回給客戶端用戶。整個流程充分應(yīng)用各個組件的作用,工程師只需要進行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)用進行直接交互的渠道。在JavaWeb中,視圖層不僅支持HTML、XML、XHTML等基礎(chǔ)標(biāo)記語言,還支持JavaScript、Bootstrap等腳本、框架語言,甚至還可以支持JSP通過后臺動態(tài)生成頁面,作為實現(xiàn)真正的用戶交互功能的媒介,視圖層使得MVC架構(gòu)的Web應(yīng)用功能更加強大豐富。

    2.2 模型層(DAO)

    Model(模型),表示應(yīng)用數(shù)據(jù)和業(yè)務(wù)規(guī)則。模型層是真正用來實現(xiàn)各項功能的模塊,負責(zé)處理業(yè)務(wù)邏輯和業(yè)務(wù)規(guī)則,例如連接數(shù)據(jù)庫進行增刪改查操(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é)果填充至視圖中,進而把View視圖顯示給用戶,這一過程主要由Servlet完成。在SpringMVC中,對于客戶端提交的請求經(jīng)過DispatcherServlet分發(fā)之后到達控制器,在業(yè)務(wù)處理層處理之后會將結(jié)果進行封裝,從而產(chǎn)生一個Model,然后經(jīng)過View視圖層交互之后就會將Model進行展示。因此當(dāng)接收到用戶的請求時,它只是決定調(diào)用哪些Model層和View層去進行處理和返回執(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)便于團隊分工開發(fā)。

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

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

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

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

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

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

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

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

    如果僅使用簡單的MVC架構(gòu)進行開發(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)生成的資源進行緩存。

    適用條件:

    (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è)計變得更容易,改善程序的理解性的同時增強程序的可維護性,彌補目前程序開發(fā)技術(shù)的不足,給互聯(lián)網(wǎng)絡(luò)注入新的生機和活力。

    參考文獻:

    [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è)方向:電子信息工程。

    阿拉善左旗| 洪泽县| 克拉玛依市| 中山市| 凯里市| 尉氏县| 岚皋县| 木里| 云龙县| 鹰潭市| 团风县| 双流县| 桃源县| 石嘴山市| 麟游县| 罗甸县| 忻城县| 开远市| 雅安市| 新密市| 会同县| 澄迈县| 六枝特区| 阳泉市| 吴旗县| 将乐县| 英吉沙县| 常宁市| 安化县| 东兰县| 嘉兴市| 邢台县| 呼伦贝尔市| 黎城县| 定陶县| 建瓯市| 利川市| 灯塔市| 嘉黎县| 合阳县| 黔南|