乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      簡(jiǎn)易 MVC框架 棄坑

       昵稱16619343 2019-02-10

      MVC

      模型視圖控制器模型 這是中文名稱

      原先是為桌面應(yīng)用建立的框架,后來(lái)轉(zhuǎn)變成為B/S模型。

      經(jīng)典圖如下

      說(shuō)一下CGI,是使用CGI 和apache進(jìn)行連接,當(dāng)發(fā)生一個(gè)請(qǐng)求的時(shí)候,進(jìn)入apache,即web server,由web server執(zhí)行事先編輯好的CGI程序,由CGI程序讀取databases,由CGI程序把讀取到的dtatBases整合,返回給webserver 再由webserver返回給瀏覽器,實(shí)現(xiàn)了該協(xié)議的由php-cgi,但是繼續(xù),每次收到一個(gè)請(qǐng)求都會(huì)fork一個(gè)進(jìn)程,把cgi進(jìn)行改良,產(chǎn)生了fast-cgi,即,每次處理完成以后,不在清除掉這個(gè)進(jìn)程,而是保留這個(gè)進(jìn)程。再往后出現(xiàn)了php-fpm,為fastCGI的實(shí)現(xiàn),提供了進(jìn)程管理的功能。其中php-fpm是可以單獨(dú)執(zhí)行的,不具有靜態(tài)的文件處理功能,此時(shí)加上apahce,用于對(duì)靜態(tài)文件進(jìn)行處理,由于站點(diǎn)過(guò)多,在加上nginx進(jìn)行反向代理,實(shí)現(xiàn)負(fù)載均衡。php-fpm是可以單獨(dú)執(zhí)行的。最后,apache和nginx都可以實(shí)現(xiàn)負(fù)載均衡,不過(guò)由于nginx是事件驅(qū)動(dòng)的所以使用nginx用來(lái)做反向代理偏多

      另外,還有一種是異步機(jī)制,屬于Node.js,即,當(dāng)事件發(fā)生的時(shí)候,入棧,然后,有一個(gè)事件環(huán),進(jìn)行循環(huán)處理,其中,事件環(huán)為單線程的。此為異步

      Node中也有對(duì)象機(jī)制,即,先發(fā)出命名好的事件,事件觸發(fā)之前注冊(cè)好的監(jiān)聽(tīng)器,在Node.js下,需要繼承EventEmitter類,并實(shí)例化生成。

      PS:事件 != 異步,是在異步函數(shù)執(zhí)行完成以后觸發(fā)事件,基于事件通信的回調(diào)機(jī)制。

      即,后臺(tái)程序不需要任何修改,只需要使用不同的視圖,用來(lái)呈現(xiàn)出不同的頁(yè)面。

      mvc有兩個(gè)版本,在早期當(dāng)中,jsp頁(yè)面融合了控制器和視圖的功能。即,開(kāi)發(fā)出一堆jsp頁(yè)面,然后一堆java bean,當(dāng)用戶訪問(wèn)的時(shí)候,訪問(wèn)jsp的時(shí)候,由tomcat生成對(duì)象,送入java bean中進(jìn)行執(zhí)行,由java bean負(fù)責(zé)業(yè)務(wù)處理,包括數(shù)據(jù)庫(kù)的讀取,然后返回給瀏覽器。這里呢,jsp負(fù)責(zé)控制器和視圖,java bean負(fù)責(zé)業(yè)務(wù)處理。

      第二個(gè) mvc 只是把jsp和java bean分開(kāi)了。

      在第二個(gè)版本當(dāng)中,視圖和模型徹底分離。

      栗子如下,一個(gè)數(shù)據(jù)展示界面,從一張表中把數(shù)據(jù)讀取,然后展示到頁(yè)面上,其中頁(yè)面展示為視圖V,從數(shù)據(jù)庫(kù)取得數(shù)據(jù)是模型層M,控制器C是把瀏覽器接收到的請(qǐng)求,執(zhí)行模型層M,執(zhí)行,然后組合視圖V,最后把數(shù)據(jù)返回給客戶端。

      圖如下

      首先,HTTP協(xié)議發(fā)出請(qǐng)求,然后控制器接收請(qǐng)求,控制器接收請(qǐng)求以后,發(fā)送給,模型層處理,模型層,把數(shù)據(jù)提交給邏輯層,邏輯層和持久層進(jìn)行連接,持久層用于和數(shù)據(jù)庫(kù),進(jìn)行一對(duì)一,一對(duì)多,多對(duì)多關(guān)系映射,取出數(shù)據(jù)以后,把數(shù)據(jù)返回給邏輯層,進(jìn)行業(yè)務(wù)處理,處理完成以后,返回給模型層,模型層,拿到數(shù)據(jù),返回給控制層,控制層,拿到數(shù)據(jù),控制器,進(jìn)行組裝視圖層,把組裝好的視圖層,轉(zhuǎn)換成為瀏覽器可以接收的HTML數(shù)據(jù),然后最后再把數(shù)據(jù)返回給瀏覽器。

      上方是MVC的數(shù)據(jù)的流的經(jīng)過(guò)

      特點(diǎn),高重用性,低耦合,快速開(kāi)發(fā),便捷部署。

      MVC架構(gòu)

      MVC模塊有以上模塊,為核心控制器,過(guò)濾器,攔截器,視圖管理器,模型管理器。

      核心控制器

      MVC框架入口,接收和反饋HTTP請(qǐng)求。

      過(guò)濾器

      用戶過(guò)濾HTTP請(qǐng)求。

      攔截器

      對(duì)進(jìn)出,進(jìn)入的數(shù)據(jù)進(jìn)行攔截

      模型管理器

      例如session,線程池等

      視圖管理工具

      對(duì),視圖進(jìn)行管理。

      提供多種語(yǔ)言的視圖

      輔助工具

      例如,文件管理,對(duì)象管理。

      數(shù)據(jù)流

      數(shù)據(jù)流是先通過(guò)核心控制器,然后,流到過(guò)濾器,進(jìn)行表單的過(guò)濾,再流入攔截器,對(duì)不通過(guò)的登錄進(jìn)行內(nèi)攔截,業(yè)務(wù)代碼寫(xiě)在模型層中,對(duì)業(yè)務(wù)進(jìn)行處理,處理完成以后,返回給控制器,視圖管理器中由jsp文件,對(duì)jsp文件進(jìn)行渲染,返回給客戶端

      大致總結(jié)

      這是一個(gè)目前的大致總結(jié),首先有一個(gè)核心控制器,數(shù)據(jù)進(jìn)入以后,再次進(jìn)入攔截器,過(guò)濾器,過(guò)濾器,和攔截器,對(duì)于用戶訪問(wèn)web資源是否具有權(quán)限進(jìn)行驗(yàn)證,然后再次進(jìn)入模型層取出數(shù)據(jù),此時(shí)通知視圖層進(jìn)行數(shù)據(jù)更新,最后把視圖層進(jìn)行返回。

      統(tǒng)一都注冊(cè)在控制器中。包括視圖管理類,模型管理類。

      每次發(fā)生改變的時(shí)候,通過(guò)調(diào)用管理類的方式來(lái)管理模型和視圖,并且加載進(jìn)入內(nèi)存。

      對(duì)于訪問(wèn)資源來(lái)說(shuō),放置到過(guò)濾器和攔截器中。

      對(duì)于業(yè)務(wù)邏輯處理放入模型層中。

      對(duì)于視圖層和模型層來(lái)說(shuō),每次控制器通知模型數(shù)據(jù)更改以后,觸發(fā)一個(gè)事件,響應(yīng)到視圖管理類中,視圖管理類對(duì)于視圖進(jìn)行渲染,即生成HTML文件,把生成的HTML文件的URL直接返回給控制器,控制器再次返回給瀏覽器。

      大致總結(jié)

      對(duì)于MVC來(lái)說(shuō),首先有兩個(gè)管理類,即,視圖管理類和模型管理類,注冊(cè)在控制器中,控制器基于servlet,每次發(fā)生請(qǐng)求的時(shí)候,控制器接收到請(qǐng)求,然后傳遞給攔截器,和過(guò)濾器,攔截器和過(guò)濾器,用于進(jìn)行身份驗(yàn)證,和訪問(wèn)資源的驗(yàn)證,然后通過(guò)管理類暴露在外的接口,調(diào)用模型層,以及書(shū)寫(xiě)在模型層中業(yè)務(wù)代碼,包括數(shù)據(jù)庫(kù)的讀取,模型層數(shù)據(jù)更新以后,通過(guò)觀察者模式,通知視圖層的管理類,對(duì)視圖中的數(shù)據(jù)進(jìn)行渲染成為HTML文件,由JSP文件直接渲染成為HTML文件,涉及到編譯原理的一些知識(shí),最后把生成的URL直接返回給控制器,控制器拿到URL,把URL返回給瀏覽器。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多