<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    爪哇一角

    共同探討STRUTS#HIBERNATE#SPRING#EJB等技術(shù)
    posts - 3, comments - 6, trackbacks - 0, articles - 99
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Struts,JSF,MVC等實(shí)現(xiàn)原理

    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ā)或者重定向
    主站蜘蛛池模板: 狠狠热精品免费观看| 亚洲成A∨人片在线观看无码| 亚洲中文字幕久久精品蜜桃| 精品国产污污免费网站aⅴ| 亚洲国产精品久久66| 91精品国产免费网站| 777亚洲精品乱码久久久久久| 一级毛片免费毛片一级毛片免费 | AV激情亚洲男人的天堂国语| 成年女人免费视频播放77777| 亚洲最大无码中文字幕| 午夜免费福利网站| 国产精品亚洲小说专区| 亚洲国产精品一区二区第四页| 日韩大片在线永久免费观看网站| 亚洲AV伊人久久青青草原| www在线观看播放免费视频日本| 亚洲午夜AV无码专区在线播放| jizz日本免费| 老司机亚洲精品影院无码| 在线看片韩国免费人成视频| 成人亚洲国产va天堂| 国产精品va无码免费麻豆| 免费一级毛片在线播放放视频| 亚洲线精品一区二区三区影音先锋| 两个人看的www免费视频中文| 亚洲va在线va天堂va不卡下载| 黄页网站在线看免费| 久久水蜜桃亚洲AV无码精品| 免费一级毛片不卡不收费| 在线观看人成视频免费无遮挡 | 久久狠狠躁免费观看| 亚洲最大黄色网站| 四虎在线播放免费永久视频| 久久免费香蕉视频| 亚洲日本国产精华液| 全部免费a级毛片| 免费国产叼嘿视频大全网站| 亚洲人成77777在线播放网站不卡| 又大又粗又爽a级毛片免费看| 中文字幕无码一区二区免费|