Sun River
          Topics about Java SE, Servlet/JSP, JDBC, MultiThread, UML, Design Pattern, CSS, JavaScript, Maven, JBoss, Tomcat, ...
          posts - 78,comments - 0,trackbacks - 0

          J2EE 五層邏輯模型和常見 Framework

          ?

          ?

          ???????????????????? ?————————————————

          ????????????????????? |????????????????????????? 客戶端層 ????????????????????|??????? 用戶交互, UI 實現

          ??????????????????????| Browser,WirelessDevice,WebService |??? Http, Soap 協議 (SOP 體系 )

          ????????????????????? ————————————————

          ?

          ??????????????????????————————————————

          ????????????????????? |?????????????????????????? ? 表現層 ????????????????????? |?? 集中登錄,會話管理

          ??????????????????????|?Struts,Jsf,Webwork,Tapstry,?Velocity | 內容創建,格式,傳送

          ????????????????????? ————————————————

          ?

          ???????????????????????————————————————

          ?????????????????????? |?????????????????????? 業務服務層 ???????????? ?????? |?? 業務邏輯 , 事務 , 數據 , 服務

          ???????????????????????| SessionEJB Spring Jdoframework) |?SessionEjb POJO Service

          ??????????????????????? ————————————————

          ?

          ???????????????????????————————————————

          ???????????????????????|??????????????????????????? 集中層 ?????????????????????? |? 資源適配器,遺留 / 外部系統 ?

          ???????????????????????|Jms,Jdbc,Connnector,External Service? |????? ? 規則引擎,工作流

          ???????????????????????————————————————

          ???????????????????????( 持久化 EntityBean,Hibernate,iBatis,Jdo,Dao,TopLink etc.)??????

          ?

          ????????????????????????————————————————

          ????????????????????????|?????????????????????????? 資源層 ??????????????????????????? | 資源,數據庫,外部服務

          ????????????????????????| DataBase,Resource,External Service???| ( 大型主機, B2B 集中系統 )

          ????????????????????????————————————————

          ?

          當然一個常見典型的 J2EE 系統可能是這樣的

          ?

          客戶端 —— 表現層 —— 業務層 ?—— 持久層 —— 數據庫 ??

          FireFox + Velocity + Struts + Spring + Hibernate + MySql + Tomcat + Eclipse

          我比較習慣用開源產品。強烈支持開源 !! *.*

          ???????????????????????????????????????????????????????????

          作為一個程序員,常常打交道的是中間層 ( 表現層,業務層,集成層 )

          每個層常用的技術簡單的介紹如下:


          表現層 (Present Tier)


          Intercepting Filter ——
          用于對請求的預處理和后處理

          ?

          ??? 攔截過濾器攔截輸入的請求和輸出的響應,并加入了一個過濾器。 Filter 可以通過配置加入和取消 ( 象在 web.xml 中加入 ServletFilter) ,這樣多個過濾器還可以不沖突地組合使用。當預處理以及 / 或者 (filter 雖然后 response 參數,但有時候 filter 不做處理 ) 后處理完成后,這組過濾器種的最后一個把控制器交給原來的目標對象。對于 request 來說,這個目標對象通常是前端控制器,但也可能是一個視圖。在 Struts 中, Action 的執行方法中參數由 request, response, actionMapping,actionForm 等等組成。而在 Webwork 中, Action 不用去依賴于任何 Web 容器,不用和那些 JavaServlet 復雜的請求( Request )、響應 (Response) 關聯在一起。對請求( Request )的參數 (Param) ,可以使用攔截器框架自動調用一些 get() set() 方法設置到對應的 Action 的字段中。所以 Action excute() 方法沒有任何參數,也不存在 FormBean 。正是這種攔截器,使得 Action 變得非常簡單, Action 不用繼承 servlet ,不依賴 servlet 容器,實現了請求響應與 Action 之間的解耦,而且可以很方便的在 action 中不依賴 web 容器進行單元測試。

          ?

          Front Controller —— 集中控制請求處理

          ?

          ??? 前端控制器是一個容器,用來裝載表現層的共同處理邏輯 ( 如果不采用這個控制器,邏輯代碼就會錯誤的放在視圖里 ) 。控制器負責處理請求,進行內容的獲取,安全性,視圖管理,導航等操作,并委派一個分配器組件分派視圖。

          ?

          Application Controller —— 實現操作和視圖管理的集中化,模塊化

          ?

          ??? 應用控制器集中了控制,數據獲取,視圖和命令處理的調用。前端控制器為輸入的請求提供了一個集中的訪問點和控制器,而應用控制器則負責找出并調用命令,并且還要找出并分派視圖。比如 Struts 中的 ActionServlet,Webwork 種的 ServletDispatcher 等。

          posted on 2006-11-16 13:18 Sun River 閱讀(189) 評論(0)  編輯  收藏
          主站蜘蛛池模板: 喜德县| 正阳县| 寻乌县| 西乌珠穆沁旗| 荥经县| 黔东| 扎鲁特旗| 延长县| 玉屏| 天水市| 商南县| 安顺市| 内黄县| 双城市| 平凉市| 辉县市| 长泰县| 孝义市| 邵阳市| 敦化市| 八宿县| 天长市| 陵川县| 武宁县| 甘泉县| 花莲市| 青浦区| 汕头市| 永胜县| 通道| 乌审旗| 开原市| 西乌珠穆沁旗| 达州市| 赤水市| 石棉县| 双牌县| 温州市| 涞源县| 沧源| 惠州市|