Tapestry的service(來自javaeye)
Tapestry的service
關鍵字: Tapestry這是Tapestry框架的核心部分。Tapestry框架面向組件的開發方式,使得我們不再操心Servlet底層細節和URL中質詢參數的結構。
Tapestry用于Servlet的底層對象
為了更好地理解Tapestry的service運作過程,我們首先需要熟悉一下Tapestry service中常用的核心對象。
1. IRequestCycle對象
該對象用于控制一個單一的請求周期。一旦客戶段瀏覽器發出請求,Tapestry將做以下處理。
通過IEngineService對象響應URL;
決定響應頁面;
釋放所有資源。
在這個過程中,IRequestCycle對象還會處理:
異常操作;
加載頁面模板;
跟蹤頁面屬性的變化并儲存頁面狀態;
緩存頁面對象。
2.IRageRecorder對象
該對象用于觀察一個頁面及該頁面Tapestry屬性(頁面屬性和組件屬性)的變化,在請求周期內儲存頁面狀態,并在下一個請求周期到來之前,將頁面已經發生變化的狀態回復到初始值。
通過實現IRageRecorder接口,可以自定義頁面狀態持久化策略,可以將頁面狀態存儲內存,客戶端cookies文件系統或數據庫中。
3.IPageSource對象
通過頁面規范從緩存池中加載頁面對象,如果IPageSource對象在緩存池中找不到頁面對象,或者加載的對象不可用,那么IPageLoader對象的實例就會創建頁面對象的實例(包括頁面所調用的組件)。
4.IPageLoader對象
創建頁面對象的實例。
5.IEngine對象
Tapestry應用程序的核心對象的生命周期與HttpSession相同,每個單一客戶端擁有自己的engine對象。Engine對象用于向頁面和組件提供Tapestry的核心service.
6.IEngineService對象
Tapestry 的核心service通過IEngine對象相頁面和組件提供Service.service的作用是構建URL編碼以響應請求,或解析請求中包含的URL。
7.WebRequest對象
包含了當前請求的所有信息。這個對象本質上是對HttpServletRequest的封裝。
8.WebResponse對象
控制客戶端響應,并創建輸出流。這個對象本質上是對HttpServiceResponse的封裝。
9.WebContext對象
對ServletContext的封裝。
10.WebSession對象
對HttpSession的封裝。
原文地址:http://flierlh.javaeye.com/blog/120253
posted on 2008-04-25 18:35 liujg 閱讀(162) 評論(0) 編輯 收藏 所屬分類: Tapestry