- JavaWeb整合開發(fā)實(shí)例精通:Struts+Hibernate+Spring
- 閆術(shù)卓 吳峻申
- 768字
- 2018-12-31 14:45:32
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)的部分。
- Getting Started with Citrix XenApp? 7.6
- Intel Galileo Essentials
- Learning DHTMLX Suite UI
- 全棧自動(dòng)化測試實(shí)戰(zhàn):基于TestNG、HttpClient、Selenium和Appium
- PySide 6/PyQt 6快速開發(fā)與實(shí)戰(zhàn)
- iOS自動(dòng)化測試實(shí)戰(zhàn):基于Appium、Python與Pytest
- Learning Apache Cassandra
- C專家編程
- Swift 4從零到精通iOS開發(fā)
- Java EE 7 with GlassFish 4 Application Server
- 軟件工程與UML案例解析(第三版)
- Learning Redux
- Leaflet.js Essentials
- C#程序開發(fā)參考手冊
- Qt編程快速入門