人要有夢想

          為夢想努力

          導航

          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          留言簿(2)

          隨筆分類

          隨筆檔案

          閱讀排行榜

          評論排行榜

          常用鏈接

          統計

          j2ee

          最新評論

          架構之web framework- struts

          []?

          Martin.guo

          ?

          J2ee 架構中一般都要考慮 Web Framework 的選擇。很多人選擇比較流行的 Struts 。項目組中遇到過這樣的情況,有些人不熟悉 Struts ,而有些人又對 Struts 青睞有加。有沒有一個折中的辦法來滿足所有的人呢?

          ?

          我是這樣設計的:

          通過攔截提交到 ActionServlet 上的 http 請求,經過 Http Parse 來收集請求參數,以 Name-Value 的形式存放為請求值對象,并且放在請求線程相關的上下文中。這個時候你就可以在 Action 執行結束前的任何地方拿到這些請求數據了。

          ?

          在這個基礎上,我們保留了 Struts Action ,并且規定 Action execute 方法里不能出現任何跟業務相關的代碼 , 僅僅是負責頁面的流轉。

          ?

          那么業務怎么辦呢?我們定義了一個接口 Command, 它也只有一個方法 , 我們也取名字為 execute, 并且沒有任何參數和返回數值。該方法的職責就是執行業務邏輯。這個時候你就要問了。 Action 里抽離業務邏輯,怎么調用 Command 呢?請求提交的數據怎么給 Command ?Command 執行完后的業務數據怎么返回?

          ?

          我們設計了一個業務執行器,它的功能就是執行 Command 的業務邏輯實現 . 而把執行器的執行寫到了 Action 里面。這樣就隔離了頁面流轉和業務執行。 Action 的代碼顯的很簡練和模板化。

          ?

          由于請求數據是放在請求線程相關的上下文中,所以可以很方便的拿到。同時 Command 執行完畢的返回數據也是通過這個上下文返回給 Action 或者其他跟此請求線程相關的組件,說白一點就是此線程能夠跑到的任何代碼處都可以去跟上下文交互,存取線程相關的數據和服務。

          ?

          設計到此為止,已經可以回答開頭的問題了。

          ?

          對于熟悉 Struts 的人呢,可以積極放心的使用 Struts 標簽,使用 Formbean, 但有一點就是自己要把 FormBean 放到線程相關的上下文中,這樣你就可以在 Command 里面去拿出來工作了,同時 Command 執行完畢后,你就可以順手把返回數據填充到這個 FormBean 里面去了。跟你平時使用沒有太大區別。

          ?

          而對于不熟悉的人呢,你可能不喜歡寫 Struts 標簽,也可能不喜歡死板的 Formbean, 那么 OK ,你完全不用關心這些,你只要直接在 Command 里面去寫邏輯代碼就可以了。但有一點就是要,你要手工把返回的數據集合放到 request 里面去,然后到流轉的 JSP 里面取出來展示。

          ?

          OK ,皆大歡喜。

          ?

          ?

          msn:gdq123@hotmail.com

          posted on 2006-06-07 19:29 人要有夢想 閱讀(1179) 評論(3)  編輯  收藏 所屬分類: software architecture

          評論

          # re: 架構之Web Framework 2006-06-07 22:45 lizongbo

          command也有現成的,
          apache commons chains就是干這個的。
          struts的新版本就將使用 commons chains。

            回復  更多評論   

          # re: struts 2006-06-08 08:18 人要有夢想

          關鍵是對于不熟悉struts的人,可以不用關心什么formbean,使用傳統的方式就可以了。在Action里面也不會出現reqeust.getParameter()之類的東西了。可以直接寫業務邏輯以及JSP展示。  回復  更多評論   

          # re: struts 2006-06-09 00:00 極易缺陷管理系統

          極易缺陷管理系統
          http://www.jesoft.cn/posts/list/1.page  回復  更多評論   


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


          網站導航:
           
          主站蜘蛛池模板: 南部县| 绥江县| 齐齐哈尔市| 新野县| 河北省| 仙桃市| 屏东县| 启东市| 工布江达县| 赞皇县| 定襄县| 蕲春县| 淳化县| 姚安县| 德保县| 永寿县| 宁陕县| 邵阳县| 江口县| 酒泉市| 晋城| 壤塘县| 潜江市| 西乌珠穆沁旗| 全南县| 淳安县| 祁连县| 井研县| 望都县| 隆回县| 区。| 靖西县| 温宿县| 南昌县| 大埔区| 太康县| 通许县| 三台县| 永善县| 翁源县| 宜都市|