積累,創(chuàng)造,分享!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            25 Posts :: 13 Stories :: 26 Comments :: 0 Trackbacks
          WAF是WEB APPLICATION FRAMWORK的簡稱,是SUN藍(lán)皮書例子程序中提出的應(yīng)用框架。它實現(xiàn)了MVC和其他良好的設(shè)計模式。 開發(fā)人員編寫的兩個xml配置文件定義了WAF的運作參數(shù)。Screendefinition.xml定義了一系列的屏幕(screen)。Mapping.xml則定義了某個動作之后應(yīng)該顯示的屏幕,但沒有指定屏幕到哪里拿數(shù)據(jù)。 用戶發(fā)出一個HTTP請求(*.screen),由TemplateSERVLET屏幕前端控制組件接收,它提取請求信息,設(shè)置request對象CurrentScreen屬性,再把請求發(fā)到模版JSP。模版JSP收到請求后,JSP中的Template標(biāo)簽察看這個當(dāng)前屏幕,并從屏幕定義文件(Screendefinition.xml)中獲取這個屏幕的具體參數(shù),再生成html返回給客戶。 假設(shè)返回給客戶的html中包括了html表單,用戶在輸入一定數(shù)據(jù)之后提交,發(fā)出一個HTTP請求(*.do)。這個請求被MainSERVLET接收,它提取請求信息,察看動作映射文件(mapping.xml),設(shè)置處理這個請求的動作對象(HTTPAction對象),交給requestprosessor對象處理。Requestprosessor對象調(diào)用動作對象完成任務(wù),如果需要進(jìn)一步處理,requestprosessor對象會調(diào)用WEBclientcontroler對象的事件處理機(jī)制。MainSERVLET在處理完請求之后,從屏幕流管理對象那里得到下一個屏幕,并把請求傳給這個屏幕的JSP文件。 值得一提的是WEBclientcontroler事件處理機(jī)制最終把HTTP請求的數(shù)據(jù)傳到了EJBAction對象那里處理。這樣HTTPAction對象和EJBAction對象形成了兩級處理機(jī)制,前一級與request對象緊密相關(guān),把數(shù)據(jù)封裝起來形成一個Event對象,再傳給了EJBAction對象,后者與Request對象無關(guān)。 這個方式可以形成一個session級別的數(shù)據(jù)處理機(jī)制。下圖顯示了這個方法。HTTPAction1對象處理一個請求,并把數(shù)據(jù)放到一個狀態(tài)SessionBean內(nèi),HTTPAction2也如此,當(dāng)HTTPAction3接收到HTTP請求之后,把控制傳給EJBAction, 后者獲取狀態(tài)SessionBean數(shù)據(jù),處理請求,成功后清控狀態(tài)SessionBean的內(nèi)容。這個機(jī)制非常適應(yīng)多個輸入頁面才能滿足一個業(yè)務(wù)的輸入數(shù)據(jù)的情況(比如購物車)。
          posted on 2005-08-11 15:34 nighthawk 閱讀(1040) 評論(1)  編輯  收藏

          Feedback

          # re: WAF框架 2008-01-23 20:26 路人甲
          好  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 进贤县| 邳州市| 绍兴市| 徐水县| 舟山市| 互助| 佛冈县| 秦皇岛市| 加查县| 西藏| 临泉县| 乌兰县| 翁牛特旗| 靖宇县| 井冈山市| 惠州市| 封开县| 社旗县| 汝南县| 报价| 星座| 达拉特旗| 兰溪市| 鲜城| 密云县| 灌阳县| 淅川县| 新巴尔虎右旗| 休宁县| 吕梁市| 潼南县| 左云县| 上思县| 景东| 佛山市| 旬邑县| 乌兰县| 太原市| 深州市| 辉县市| 独山县|