Wicket

目前存在的大多數Web框架對於服務端的狀態管理都僅僅提供了較弱的支持。

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

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

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

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

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

在效率和生產性方面,Wicket對JSP的優越性則猶如Java語言對C語言一樣。您使用Wicket可以實現的功能使用JSP也都可以實現。甚至於在內存和CPU消耗方面效率也非常的高。但是使用JSP開發應用程序則需要耗費您更多的時間。最後,因爲在JSP中進行狀態管理時使用了特別的方式,您可能發現不少的安全問題,也能看到到處蹦出來的錯誤。上面提及的大部分框架在這方面僅僅提供了有限的輔助。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章