Posted on 2010-06-10 15:37
非洲小白臉 閱讀(357)
評論(0) 編輯 收藏 所屬分類:
框架文章
JSF六個(gè)底層原理:
--重建組件樹:jsf應(yīng)用里的jsp頁面被表示成一個(gè)組件樹。在這個(gè)階段里,通過重建這棵樹開始LifeCycle處理過程。每個(gè)組件樹都有一個(gè)在整個(gè)應(yīng)用程序范圍里唯一的標(biāo)識(shí)符,此標(biāo)識(shí)符是所請求URI的路徑信息部分
--應(yīng)用請求值:在這個(gè)階段,使用請求里的當(dāng)前值來更新每個(gè)組件的本地值,這些值可能來自請求參數(shù),請求的包頭及cookie。在這個(gè)階段的處理中,組件可以往事件隊(duì)列里加入某些事件,這些事件可在隨后的處理階段處理
--處理驗(yàn)證:當(dāng)每個(gè)組件的本地值被更新后,在此階段中LifeCycle對象會(huì)驗(yàn)證這些值的合法性。要求驗(yàn)證的組件必須提供驗(yàn)證邏輯的實(shí)現(xiàn)。作
為選擇,開發(fā)人員可以為一個(gè)組件注冊0個(gè)或者多個(gè)驗(yàn)證器。如果發(fā)現(xiàn)外部驗(yàn)證器,那么還會(huì)應(yīng)用這些外部驗(yàn)證器里的驗(yàn)證邏輯來驗(yàn)證本地值。
--更新模型值:只有當(dāng)組件樹中所有的組件的本地值都通過驗(yàn)證后,才有可能到達(dá)該階段。在這個(gè)階段中,LifeCycle更新呢應(yīng)用的模型數(shù)據(jù)。組件在這個(gè)節(jié)點(diǎn)也可以排列事件。
--調(diào)用應(yīng)用:在這個(gè)階段,JSF實(shí)現(xiàn)處理所有應(yīng)用層次的時(shí)間。
--呈現(xiàn)響應(yīng):在這個(gè)階段,JSF實(shí)現(xiàn)將相應(yīng)發(fā)揮客戶端。
JSF的生命周期:
恢復(fù)視圖--應(yīng)用請求值--處理驗(yàn)證--呈現(xiàn)響應(yīng)--調(diào)用應(yīng)用程序--更新模型值
JSF的工作方式:
JSF應(yīng)用是通過處理由頁面中組件處罰的事件來工作的。這些事件是由用戶的動(dòng)作引起的。(JSF是事件驅(qū)動(dòng)的)
--創(chuàng)建FacesContext
--把控制權(quán)交給LifeCycle
--分六個(gè)階段處理FacesContext
ajax原理:
-----一個(gè)異步無刷新的技術(shù),主要是通過在客戶端瀏覽器內(nèi)置的XMLHttpRequest對象,發(fā)送和接收請求。
XMLHttpRequest對象先把請求發(fā)送給瀏覽器中內(nèi)置的ajax引擎,通過引擎轉(zhuǎn)發(fā)給對應(yīng)的服務(wù)器,并且引擎還要負(fù)責(zé)接收服務(wù)器的返回,
和服務(wù)器進(jìn)行交互,即時(shí)獲取服務(wù)器的狀態(tài)。還要負(fù)責(zé)把服務(wù)器的返回發(fā)送給客戶端。客戶端通過XMLHttpRequest對象對返回結(jié)果進(jìn)行解析
Http原理:
----最常見的網(wǎng)絡(luò)傳輸協(xié)議。速度快,無狀態(tài)。
----不管客戶端用什么頻率去請求服務(wù)器的資源,服務(wù)器只會(huì)去響應(yīng),而不會(huì)去保存客戶端的任何狀態(tài)
Struts原理:
----web服務(wù)器啟動(dòng)的時(shí)候讀取web.xml文檔,創(chuàng)建ActionServlet對象。
----當(dāng)客戶端請求發(fā)起是,ActionServlet攔截請求,截取特定的請求,獲取請求的名稱。
----然后讀取Struts讀取配置文件,根據(jù)請求的名稱讀取相關(guān)信息,保存在moduleConfig對象中
----找到其中的ActionMapping和path屬性,來進(jìn)行請求是否匹配的判斷
----如果發(fā)現(xiàn)有對應(yīng)的path,則將請求轉(zhuǎn)到對應(yīng)的Action,并且創(chuàng)建ActionForm對象,獲取從請求中傳遞來的參數(shù),將參數(shù)保存在ActionForm中,調(diào)用Action的execute方法
----ActionServlet接收Action處理完業(yè)務(wù)邏輯返回的結(jié)果---ActionForward對象
----然后在配置文件找到對應(yīng)的forward路徑,將顯示轉(zhuǎn)發(fā)或者重定向到找到的路徑。
Servlet MVC原理:
----服務(wù)器啟動(dòng)的時(shí)候讀取web.xml,創(chuàng)建servlet對象。
----當(dāng)客戶端發(fā)起請求的時(shí)候,servlet負(fù)責(zé)攔截指定的請求,根據(jù)請求的方式是get還是post調(diào)用對象的doGet或者doPost方法。
----doGet,doPost中通過request或者response控制頁面的轉(zhuǎn)發(fā)或者重定向