新聞中心
生命周期:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、定日網(wǎng)站維護(hù)、網(wǎng)站推廣。
了解SimpleFramework的生命周期將十分有利于有效地使用 SimpleFramework。這個(gè)生命周期包含如下一些步驟:
應(yīng)用程序的加載
原有的請(qǐng)求及響應(yīng)過(guò)程
攔截Respone所生成的HTML
解析XML中的元數(shù)據(jù)
Handle的執(zhí)行
組件渲染
新的HTML響應(yīng)到瀏覽器
應(yīng)用程序的加載
基于SimpleFramework的應(yīng)用程序可通過(guò)定義web.xml文件內(nèi)的Filter加載,該文件可載入到任何基于 Java EE 的應(yīng)用服務(wù)器。SimpleFramework同時(shí)提供了一個(gè)Web應(yīng)用程序的入口類,當(dāng)然,這不是必須的,但繼承自AbstractWebApplication可以更快捷的搭建Web應(yīng)用程序。下面是一個(gè)典型的配置示例:
startup net.simpleframework.web.SimpleWebApplication 0 actionFilter actionFilter *.jsp net.simpleframework.web.page.PageEventAdapter
原有的請(qǐng)求及響應(yīng)過(guò)程
該請(qǐng)求及響應(yīng)過(guò)程,SimpleFramework并沒(méi)有參與,所以,從理論上講,是可以兼容任何基于Servlet的框架,比如:Struts、SpringMVC等。
攔截Respone所生成的HTML
當(dāng)響應(yīng)(Respone)流中產(chǎn)生HTML文檔,在還沒(méi)有flush到瀏覽器的時(shí)候,SimpleFramework會(huì)接管該HTML文檔,并解析。
解析XML中的元數(shù)據(jù)
SimpleFramework解析請(qǐng)求中含有XML文件的元信息定義,這些信息是SimpleFramework組件的基礎(chǔ)。
Handle的執(zhí)行
如果定義了HandleClass,SimpleFramework則負(fù)責(zé)調(diào)用該Handle,并把結(jié)果送給渲染器。
組件渲染
渲染器(Render)根據(jù)組件的定義及Handle的執(zhí)行結(jié)果,生成對(duì)應(yīng)的HTML或Javascript等瀏覽器元素,以上三個(gè)步驟可詳見(jiàn)組件請(qǐng)求響應(yīng)過(guò)程。
新的HTML響應(yīng)到瀏覽器
***,SimpleFramework把重新組合的HTML推到瀏覽器端。如果,瀏覽器端含有異步請(qǐng)求的腳本,則重復(fù)執(zhí)行如上步驟。
組件請(qǐng)求響應(yīng)過(guò)程:
當(dāng)請(qǐng)求發(fā)現(xiàn)有xml描述文件存在時(shí),Simple將獲取該請(qǐng)求資源的元信息和組件定義
Simple對(duì)響應(yīng)(Response)到瀏覽器的HTML進(jìn)行解析(Filter后處理),并產(chǎn)生HTML解析樹(shù)
根據(jù)請(qǐng)求資源的元信息,改寫(xiě)HTML解析樹(shù)。請(qǐng)求資源的元信息主要包含以下幾個(gè)方面(屬性):
resourceProvider(資源提供者),定義該請(qǐng)求資源所需的一些基本信息,這些信息將生成HTML所依賴的一些資源及屬性,比如js、樣式、meta標(biāo)簽等,在Simple的缺省資源提供者實(shí)現(xiàn)中,需要依賴propotype.js庫(kù)
importJavascript、importCSS,定義請(qǐng)求資源所需的js和css
importPage,導(dǎo)入其它xml描述文件
scriptEval,定義腳本解析規(guī)則,有三個(gè)值:none、first、always,none是不解析腳本,這個(gè)是缺省定義,可以加快請(qǐng)求資源的速度;first是在***次實(shí)例化組件定義時(shí)解析腳本;always是在每次請(qǐng)求時(shí)都要解析腳本,并實(shí)例化組件定義
scriptContent,定義預(yù)執(zhí)行的腳本
handleClass,定義該請(qǐng)求資源所觸發(fā)的后臺(tái)類
根據(jù)請(qǐng)求資源的組件定義,改寫(xiě)HTML解析樹(shù),主要包含以下幾個(gè)部分:
獲取組件所需要的資源(js、css、jar等),并添加到HTML解析樹(shù)或類路徑下(jar庫(kù))
運(yùn)行組件渲染器,渲染器有兩個(gè)核心功能:生成瀏覽器端渲染代碼和調(diào)用接口類(HandleClass)。渲染器有兩個(gè)主要實(shí)現(xiàn),一個(gè)是基于javascript的渲染器,作用是根據(jù)組件定義生成js代碼;一個(gè)是基于HTML的渲染器,作用是根據(jù)組件定義生成HTML代碼并添加到與HTML解析樹(shù)綁定的節(jié)點(diǎn)中
如下圖所示
本文標(biāo)題:基于組件的機(jī)制的工作原理-SimpleFramework
網(wǎng)站URL:http://www.5511xx.com/article/cojecee.html


咨詢
建站咨詢
