翻譯:為什么是Wicket(二)

          Posted on 2007-06-07 16:47 Tommy Jian 閱讀(2908) 評論(1)  編輯  收藏 所屬分類: Wicket

          動機

              目前存在的大多數(shù)Web框架對于服務端的狀態(tài)管理都僅僅提供了較弱的支持。

              這就意味著在Web應用程序中存在著很多特殊的代碼來處理和維護繁復的狀態(tài)管理機制。雖然Wicket并不允許對服務端的狀態(tài)完全不考慮,但是它在狀態(tài)管理的簡便性和透明化方面做了很多的工作。

              在Wicket中,所有服務端的狀態(tài)都被納入了自動的管理。您始終不需要直接使用HttpSession對象或者類似的封裝對象去存儲狀態(tài)信息。相反,狀態(tài)信息已經(jīng)都與組件關聯(lián)起來,而在組件后端的數(shù)據(jù)模型都是傳統(tǒng)的Java對象(POJO)。Wicket在每個用戶會話期內(nèi)維護著頁面的映射表(Map)。這個頁面映射表(以及每個一面內(nèi)的組件層次)的目的在于使得框架隱藏了組件以及數(shù)據(jù)模型訪問的細節(jié)。您只需要處理簡單而熟悉的Java對象,而Wicket則處理諸如URL、會話期標識以及GET/POST請求的任務。

              您接著也會發(fā)現(xiàn)這種結(jié)構良好的服務端狀態(tài)使得解決令人恐懼的“后退按鈕問題”變得十分的容易。實際上,針對頁面內(nèi)組件數(shù)據(jù)模型的結(jié)構性變化帶來的數(shù)據(jù)過期,Wicket提供了通用而且健壯的解決方案,這個方案可以有效地對瀏覽器緩存頁面進行甄別和過期檢測。

              最后,Wicket在設計的時候就考慮與諸如JDO和Hibernate的普通Java對象(POJO)序列化框架協(xié)同工作。這一點使得構建數(shù)據(jù)驅(qū)動的Web應用程序顯得非常簡單。

              對于很多應用程序來說,必須在額外服務端狀態(tài)導致服務器負載增加和其帶來的好處之間進行權衡,服務端狀態(tài)管理可以降低開發(fā)成本、減少維護成本、加快對市場的響應時間以及生產(chǎn)高質(zhì)量的軟件。這里提出的基本觀點是:軟件是十分昂貴、復雜的,而來自于E-machines和Dell的服務器則相對便宜。

              在效率和生產(chǎn)性方面,Wicket對JSP的優(yōu)越性則猶如Java語言對C語言一樣。您使用Wicket可以實現(xiàn)的功能使用JSP也都可以實現(xiàn)。甚至于在內(nèi)存和CPU消耗方面效率也非常的高。但是使用JSP開發(fā)應用程序則需要耗費您更多的時間。最后,因為在JSP中進行狀態(tài)管理時使用了特別的方式,您可能發(fā)現(xiàn)不少的安全問題,也能看到到處蹦出來的錯誤。上面提及的大部分框架在這方面僅僅提供了有限的輔助。


              注:本文由Jonathan Locke編寫,相關權利由原作者承擔。

          Feedback

          # re: 翻譯:為什么是Wicket(二)  回復  更多評論   

          2007-08-12 11:49 by wicket
          http://www.wicket.com. 歡迎大家一起交流
          主站蜘蛛池模板: 荆州市| 武川县| 山阴县| 通许县| 东乡族自治县| 固始县| 苗栗县| 开江县| 台北市| 湖口县| 华容县| 钟祥市| 壤塘县| 理塘县| 武山县| 平顺县| 苏尼特右旗| 丹巴县| 东莞市| 临沭县| 偃师市| 灵丘县| 疏附县| 丹棱县| 荥阳市| 务川| 揭西县| 襄垣县| 芒康县| 安义县| 墨脱县| 勃利县| 太保市| 靖宇县| 大关县| 宽城| 石景山区| 扬州市| 日照市| 隆昌县| 个旧市|