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