久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

傳統(tǒng)的Java Web MVC框架距離REST有多遠

 zhbing 2007-11-20

李琨

到目前為止,,傳統(tǒng)的Java Web MVC框架(Struts,、WebWork、Spring MVC,、etc.)還無法很好地支持REST風(fēng)格的架構(gòu)設(shè)計,。它們在設(shè)計之初時基本上都是圍繞著基于HTML表單的交互模式來設(shè)計的,View的粒度難以 達到單個頁面以下,。不能把響應(yīng)Ajax請求而返回的XML/JSON/純文本格式的數(shù)據(jù)簡單地認為是Web MVC框架中的View,,實際上這個時候這些數(shù)據(jù)的語義已經(jīng)與傳統(tǒng)的Web MVC架構(gòu)中的View的語義相距甚遠。

傳統(tǒng)的Web MVC框架一個最大的問題是它們看待URL的方式與REST有很大的差別,。REST把服務(wù)器端所有的URL都當(dāng)作是抽象的資源(相當(dāng)于是面向?qū)ο笤O(shè)計中的 接口),,雖然Web MVC也強調(diào)不應(yīng)該將硬編碼的URL(例如:http://www./yyy/zzz/abcd.jsp)直接暴露出來,而應(yīng)該通過某個 Controller來暴露,,將這個頁面配置為Controller的一個View,,但是Web MVC框架并沒有有意識地將URL當(dāng)作抽象的資源來看待和設(shè)計。

還有一個較為嚴重的問題是傳統(tǒng)的Web MVC框架基本上都只支持GET和POST兩種HTTP方法,,而不支持PUT和DELETE方法,,而Servlet API是支持上述所有的HTTP方法的(支持doPut和doDelete方法)。

舉個例子,Spring MVC所支持的HTTP方法封裝在 org.springframework.web.servlet.supportWebContentGenerator類中,,其中只有 METHOD_HEAD,、METHOD_GET、METHOD_POST幾個常量,,而沒有METHOD_PUT,、METHOD_DELETE,顯然其作者 并不認為有必要支持HTTP的PUT和DELETE方法,。

我沒有考察過Struts和WebWork,,估計結(jié)果應(yīng)該是一樣的,而且也沒有聽說過Strust和WebWork的作者有支持REST風(fēng)格架構(gòu)設(shè) 計的計劃,。JSF呢,?雖然Gavin King以前在某地說過JSF完全可以支持REST,上次見面我沒有仔細向他請教這個問題,,但是可以肯定的是JSF從來就沒有把支持REST風(fēng)格的架構(gòu)設(shè) 計作為他們的核心目標(biāo)之一,。

所以在這個方面,Java社區(qū)要比Ruby社區(qū)落后很多了,。目前只能脫離開傳統(tǒng)的Web MVC框架,,基于Servlet API來建造一個符合REST要求的新的服務(wù)器端架構(gòu)(當(dāng)然,Spring IoC,、Hibernate等框架仍然可以保留),。好在不需要我們親自來做這個事情,已經(jīng)有一些Java的服務(wù)器端框架可以支持REST了,。例如: Restlet(http://www.),。另外還有一些橫跨瀏覽器和服務(wù)器的設(shè)計模式可以利用,詳情見《Ajax模式與最佳實踐》,。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多