黑武士的領(lǐng)地
          ——黑武士是反微軟的JAVA陣營的流氓JAVA程序員
          posts - 26,comments - 4,trackbacks - 0

            模型-視圖-控制器(MVC)是80年代Smalltalk-80出現(xiàn)的一種軟件設(shè)計模式,現(xiàn)在已經(jīng)被廣泛的使用。

            1、模型(Model)

            模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù),或者業(yè)務(wù)邏輯.

            2、視圖(View)

            視圖是應(yīng)用程序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。

            3、控制器(controller)

            控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新model對象狀態(tài)。



            MVC 式的出現(xiàn)不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時它還提高了應(yīng)用系統(tǒng)的可維護性、可擴展性、可移植性和組件的可復(fù)用性

            早期的程序中,如果不注意對數(shù)功能和顯示的解耦合,常常會導(dǎo)致程序的復(fù)雜及難以維護。很多VB,Delphi等RAD程序都有這種問題。甚至現(xiàn)在的C#,Java有時候也會出現(xiàn)把業(yè)務(wù)邏輯寫在顯示模塊中的現(xiàn)象

            管MVC設(shè)計模式很早就提出,但在Web項目的開發(fā)中引入MVC卻是步履維艱。主要原因:一是在早期的Web項目的開發(fā)中,程序語言和HTML的分離一直難以實現(xiàn)。CGI程序以字符串輸出的形式動態(tài)地生成HTML內(nèi)容。后來隨著腳本語言的出現(xiàn),前面的方式又被倒了過來,改成將腳本語言書寫的程序嵌入在HTML內(nèi)容中。這兩種方式有一個相同的不足之處即它們總是無法將程序語言和HTML分離。二是腳本語言的功能相對較弱,缺乏支持MVC設(shè)計模式的一些必要的技術(shù)基礎(chǔ)。直到基于J2EE的JSP Model 2問世時才得以改觀。它用JSP技術(shù)實現(xiàn)視圖的功能,用Servlet技術(shù)實現(xiàn)控制器的功能,用JavaBean技術(shù)實現(xiàn)模型的功能

            JSP Model 1 與 JSP Model 2

            SUN在JSP出現(xiàn)早期制定了兩種規(guī)范,稱為Model1和Model2。雖然Model2在一定程度上實現(xiàn)了MVC,但是它的應(yīng)用用并不盡如人意


            JSP Model 1


            JSP Model 2

            model2 容易使系統(tǒng)出現(xiàn)多個Controller,并且對頁面導(dǎo)航的處理比較復(fù)雜

            有些人覺得model2仍不夠好,于是Craig R. McClanahan 2000年5月 提交了一個WEB framework給Java Community.這就是后來的Struts.

            2001年7月,Struts1.0,正式發(fā)布。該項目也成為了Apache Jakarta的子項目之一

            Struts 質(zhì)上就是在Model2的基礎(chǔ)上實現(xiàn)的一個MVC架構(gòu)。它只有一個中心控制器,他采用XML定制轉(zhuǎn)向的URL。采用Action來處理邏輯

          posted on 2005-08-01 08:29 黑武士 閱讀(137) 評論(0)  編輯  收藏 所屬分類: JAVA技術(shù)
          主站蜘蛛池模板: 东乡族自治县| 东方市| 廊坊市| 通榆县| 宁乡县| 灵石县| 泰安市| 平安县| 鹤庆县| 南澳县| 辰溪县| 石屏县| 金沙县| 镇原县| 佛学| 泾源县| 剑川县| 张掖市| 宝鸡市| 黔江区| 图们市| 尉犁县| 留坝县| 普定县| 寿宁县| 乐都县| 平和县| 洛浦县| 宿州市| 家居| 增城市| 阿鲁科尔沁旗| 长丰县| 琼海市| 赤城县| 洮南市| 长兴县| 金沙县| 壤塘县| 湟中县| 八宿县|