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 閱讀(191) 評論(0)  編輯  收藏
          主站蜘蛛池模板: 长春市| 潞城市| 乾安县| 清镇市| 南开区| 海丰县| 平山县| 渝中区| 台安县| 汝城县| 兴文县| 江阴市| 永春县| 青阳县| 铁岭县| 江源县| 容城县| 迁安市| 南充市| 洪雅县| 铅山县| 运城市| 天柱县| 诸城市| 孟村| 郸城县| 浦东新区| 松原市| 毕节市| 游戏| 周口市| 黄龙县| 五台县| 孝昌县| 聂拉木县| 松桃| 彩票| 唐山市| 五台县| 浦东新区| 三门县|