官术网_书友最值得收藏!

1.1.2 MVC模式

有時(shí)開發(fā)者也把Model2模式稱為"MVC"模式。"MVC"是Model、View、Controller這三個(gè)英文單詞的縮寫。

●"Model"代表的業(yè)務(wù)邏輯這塊由Java實(shí)現(xiàn)的組件。

●"View"則代表了表示界面,當(dāng)時(shí)主要是使用JSP技術(shù)來實(shí)現(xiàn),而現(xiàn)在還有筆者之前提到的FreeMarker、Velocity這些實(shí)現(xiàn)表示界面的視圖技術(shù)。

●"Controller"代表的是處理流程控制,主要功能是實(shí)現(xiàn)業(yè)務(wù)邏輯如何和表示界面相關(guān)聯(lián)的技術(shù)。

為了讓讀者不引起歧義,以后章節(jié)中都將Model2模式稱為MVC模式。由于MVC模式的提出,徹底解決了Model1模式的缺點(diǎn),很多開發(fā)人員開始使用這種模式來解決他們實(shí)際工作中碰到的各種各樣Web項(xiàng)目開發(fā)問題。也正是在這樣一個(gè)大背景下,誕生了Struts這個(gè)運(yùn)用MVC模式的Web項(xiàng)目開發(fā)框架。

從2003年開始,同類型的Web項(xiàng)目開發(fā)框架也開始出現(xiàn)在廣大開發(fā)者的視野中,由于Struts對新技術(shù)的支持不夠,一些Struts技術(shù)細(xì)節(jié)是否有必要實(shí)現(xiàn)的爭論,也讓開發(fā)者開始質(zhì)疑Struts的優(yōu)越性。

Struts的設(shè)計(jì)者也意識到Struts的一些局限性和缺點(diǎn),必須進(jìn)行重新設(shè)計(jì)和改良。因此在2006年和WebWork的設(shè)計(jì)者一起將這兩個(gè)框架合并在一起,形成了今天的Struts 2框架,這個(gè)框架是綜合了原有兩個(gè)舊框架的特點(diǎn),而又去除了很多它們的缺點(diǎn),特別是Struts的一些缺點(diǎn),比如支持的視圖技術(shù)太單一(只支持JSP),還有和Servlet關(guān)系太緊密,不適合現(xiàn)在的松耦合開發(fā)理念等。

Struts 2框架實(shí)際上也可以稱為WebWork的一個(gè)最新版本,它的MVC模式實(shí)現(xiàn)的方法更多是來自于WebWork而不是Struts, Struts框架其實(shí)還發(fā)展了另外一個(gè)分支框架Shale,這個(gè)框架的設(shè)計(jì)思想更多是來自于JSF,只不過通過Struts的基礎(chǔ)配置和代碼來實(shí)現(xiàn),由于JSF和Struts、WebWork的開發(fā)理念有很大的區(qū)別,JSF可以稱為Web化的Swing。

讓桌面應(yīng)用程序開發(fā)結(jié)構(gòu)在Web瀏覽器中實(shí)現(xiàn)出來,這點(diǎn)對現(xiàn)在的開發(fā)人員也很有吸引力,但是筆者認(rèn)為還是有些不能和Struts、WebWork相比的弱點(diǎn)(在后面的小節(jié)中將詳細(xì)敘述)。所以對于Struts的演變筆者更認(rèn)為Struts 2才是最正統(tǒng)的繼承,而Shale則只能算作一個(gè)比較好的補(bǔ)充而已。

在下一節(jié),將詳細(xì)概述Struts 2的特點(diǎn)及需要改進(jìn)的部分。

主站蜘蛛池模板: 海兴县| 象山县| 普安县| 九龙坡区| 麻江县| 临安市| 井陉县| 筠连县| 关岭| 莒南县| 班戈县| 孟津县| 黄山市| 邵武市| 成安县| 阿城市| 无为县| 庐江县| 大兴区| 永川市| 舞钢市| 云林县| 达孜县| 新津县| 石城县| 澳门| 韩城市| 会泽县| 辽阳市| 湘西| 常宁市| 岳池县| 雷山县| 芒康县| 丰原市| 塔城市| 多伦县| 高雄市| 张北县| 乐都县| 聂拉木县|