<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    cocoon的文檔中有這樣一段話(huà):
    Traditional Web applications try to model the control flow of a Web application by modeling the application as a finite state machine (FSM). In this model, the Web application is composed of multiple states, but the application can be only in one state at a time. Any request received by the application transitions it into a different state. During such a transition, the application may perform various side-effects, such as updating objects either in memory or in a database. Another important side-effect of such a transition is that a Web page is sent back to the client browser.

        Servlet模型提供的正是一個(gè)最基本的基于IO的FSM模型:應(yīng)用程序的狀態(tài)變量存儲(chǔ)在session中,應(yīng)用程序根據(jù)用戶(hù)請(qǐng)求更新session中 變量的值。這里一個(gè)隱含的假設(shè)是session中的變量是不相關(guān)的,因?yàn)閟ervlet模型中沒(méi)有提供任何機(jī)制來(lái)同時(shí)操縱一組相關(guān)變量,例如我們?cè)? session中存放了三個(gè)變量name, title, data, 如果我們希望刪除這三個(gè)變量,我們必須通過(guò)三次獨(dú)立的函數(shù)調(diào)用來(lái)完成,servlet模型本身并不知道這三者之間的關(guān)聯(lián)關(guān)系。
        當(dāng)web應(yīng)用程序逐漸變的復(fù)雜起來(lái),這個(gè)最簡(jiǎn)單的FSM模型就顯得力不從心了。因此發(fā)展出了MVC模型(Model-View-Controller), 這是對(duì)有限狀態(tài)機(jī)的一個(gè)精細(xì)化。首先我們識(shí)別出session,request中的變量之間存在相關(guān)性,而且變量之間的地位也是不平等的,某些變量的改變 將直接導(dǎo)致另外一些變量的改變。因此變量根據(jù)相關(guān)性被聚合起來(lái),構(gòu)成很多對(duì)象。應(yīng)用程序的狀態(tài)不再由一個(gè)個(gè)獨(dú)立的變量構(gòu)成,而是由具有更豐富語(yǔ)義的對(duì)象構(gòu) 成。在大的結(jié)構(gòu)方面,一些基本的對(duì)象被分離出來(lái),構(gòu)成一個(gè)核心,即model層, 而外圍的變量被分割在不同的view中。 在流行的struts和webwork等MVC框架中,變量的聚合都定義在action層, 各個(gè)相關(guān)的action并沒(méi)有匯聚成一個(gè)具有獨(dú)立意義的對(duì)象,似乎僅僅做到了model層和view層的分離,在model層內(nèi)部并沒(méi)有建立合適的模型, 即struts和webwork等建立的MVC模型中隱含假定整個(gè)model層內(nèi)部是沒(méi)有結(jié)構(gòu)的(注,我對(duì)struts和webwork的了解限于簡(jiǎn)單介 紹文檔,這里的說(shuō)法可能并不準(zhǔn)確)。一些更加精細(xì)的MVC架構(gòu)直接支持model層的分解,即model層由一系列不相關(guān)的對(duì)象構(gòu)成,每個(gè)對(duì)象具有從屬于 自己的action。沿著這個(gè)復(fù)雜性發(fā)展的級(jí)列繼續(xù)下去,我們可以知道,當(dāng)對(duì)象之間的交互變得更加復(fù)雜的時(shí)候,我們需要框架本身能夠直接支持model層 對(duì)象之間的相關(guān)性。最簡(jiǎn)單的控制關(guān)系是樹(shù)形結(jié)構(gòu),即父節(jié)點(diǎn)控制子節(jié)點(diǎn),父節(jié)點(diǎn)銷(xiāo)毀的時(shí)候子節(jié)點(diǎn)自動(dòng)銷(xiāo)毀。這樣就構(gòu)成所謂的HMVC (Hierarchical MVC)模型。在這個(gè)模型中,model層由一系列的對(duì)象組成,而且這些對(duì)象被分割到不同的package中,組成一個(gè)樹(shù)形結(jié)構(gòu).
    主站蜘蛛池模板: 亚洲国产精品成人综合色在线| 在线免费观看污网站| 国产精品日本亚洲777| 亚洲欧洲精品在线| 中文字幕亚洲一区二区va在线| 最近中文字幕无免费视频| 最近免费中文字幕MV在线视频3| 国产精品亚洲专区无码牛牛| 亚洲国产成人精品无码区在线秒播| 亚洲综合网站色欲色欲| 国产在线观看www鲁啊鲁免费| 无码国产精品一区二区免费式影视| 在线视频网址免费播放| 老司机福利在线免费观看| 亚洲卡一卡二卡乱码新区| 亚洲成人精品久久| 亚洲色婷婷综合久久| 亚洲国产综合人成综合网站| 日韩免费高清视频| 99re热免费精品视频观看| 一级毛片在线观看免费| 女同免费毛片在线播放| 国产99精品一区二区三区免费| 大桥未久亚洲无av码在线| 亚洲精品国产精品| 亚洲中文字幕久久久一区| 亚洲香蕉久久一区二区三区四区| 亚洲高清视频在线播放| 久久久久亚洲AV片无码下载蜜桃| 婷婷亚洲综合五月天小说| 亚洲欧洲免费视频| 亚洲国产香蕉碰碰人人| 亚洲伦另类中文字幕| 亚洲AV无码久久精品色欲| 久久久久久久久亚洲| 亚洲精品国产成人专区| 97亚洲熟妇自偷自拍另类图片| 亚洲三级电影网站| 久久亚洲AV无码精品色午夜麻豆| 麻豆亚洲av熟女国产一区二| 亚洲欧洲日产专区|