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

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

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

    隨筆 - 7, 文章 - 4, 評論 - 2, 引用 - 0
    數據加載中……

    Front Controller

    a. 問題

      MVC給出了一個整個應用的松散的耦合架構?,F在來看一下這樣一個經常發生的情況。在某一個應用中,用戶看到的視圖和他所做的操作密切相關。這是一些具有高度交互性的頁面,而這些頁面之間含有高度的依賴性。在沒有任何模式的時候,這個應用只是一個許多獨立的頁面的集合,維護和擴展變得異常困難。

      § 當一個頁面移動后,其他含有這個頁面鏈接的文件,都必須修改。

      § 當有一系列頁面需要口令保護時,許多配置文件需要修改,或者頁面需要包含新的標記。

      § 當一個頁面需要一個新的表示層時,頁面中的標記要被重新安排。

      當這個系統變得復雜時,這些問題將變得更糟。如果用MVC來解決的話,就變成一個如何管理控制器和視圖之間交互的問題。

      b. 建議的解決方法

      前臺控制模式可以解決這個問題。這個模式中,所有的請求都被傳送到一個對象中。這個主要的對象將處理所有的請求,決定以后顯示那一個視圖,以及實現必要的安全需求。對于把視圖顯示以及其他功能實現集中到一個主要的對象中,將使修改變得很容易,對應用的修改,可以在所有視圖中反映出來。

      c. 要點

      § 這個模式對于需要在多個含有動態數據的頁面之間進行復雜導航的系統來說,是很有效的。

      § 這個模式對于要在所有頁面中都包含模板,轉換等的應用來說,也是很有效的。

      § 由于視圖的選擇集中在前端控制器上,因此,視圖的導航變得更加容易理解和便于配置。

      § 視圖重用和變更會更加容易。

      § 視圖之間的復雜交互,使得控制器變得復雜。從而,當應用發展的時候,控制器將變得難以維護。不過,大部分情況下可以用XML映射來解決。

      § 實現應用要求的安全性檢驗變得很簡單。

      § 這個模式不適合小型的,只顯示靜態內容的應用。

      d. 樣例

      § RequestMappings.xml 文件映射了傳入的請求,處理器以及下一個頁面。



    useRequestHandler="true"
    requiresSecurityCheck="true" nextScreen="screen2.jsp">



    com.blah1.blah2.blah3.request1Handler








      以上這個文件是控制器的指定配置,控制器的代碼如下:

      § FrontControllerImpl.java 利用上面的XML實現了控制器

    // all required imports
    // exceptions to be caught appropriately wherever applicable

    public class FrontControllerImpl extends HttpServlet {

    // all required declarations, definitions
    private HashMap requestMappings;

    public void init() {
    // load the mappings from XML file into the hashmap
    }

    public void doPost(HttpServletRequest request,

    HttpServletResponse response)
    throws IOException, ServletException

    {
    doGet(request, response);
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException {
    String currentPage= request.getPathInfo();
    // get all mapping info for "currentPage" from the hashmap
    // if "securityCheckRequired = true", do the security check
    // if "useRequestHandler = true", pass on the incoming request to the specified handler
    // forward the results to the given "nextScreen"
    }
    }

      用這種方法實現的控制器將很容易維護,當應用有新的變動的時候,只要修改XML文件就能解決了。前臺控制模式將使在視圖和控制器之前有復雜交互的J2EE應用變得簡單。

    posted on 2005-01-30 12:52 jacky 閱讀(285) 評論(0)  編輯  收藏 所屬分類: Design Patten


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


    網站導航:
     
    主站蜘蛛池模板: 免费看美女被靠到爽| 久久久久亚洲AV成人片| 日韩电影免费在线观看网站| 2022年亚洲午夜一区二区福利| 成人免费视频软件网站| a级毛片免费高清视频| 亚洲色成人网一二三区| 免费国产成人高清在线观看麻豆 | 国产亚洲精彩视频| 亚洲AV乱码久久精品蜜桃 | 中文毛片无遮挡高潮免费| 日韩电影免费在线观看网址| 亚洲精品成人网站在线播放 | 亚洲欧洲国产视频| 亚洲一区二区精品视频| 国产免费久久精品99re丫y| 成在线人视频免费视频| 亚洲精品美女久久久久久久| 久久精品亚洲综合| 亚洲国产小视频精品久久久三级 | 亚洲精品国产成人中文| 三上悠亚亚洲一区高清| 日韩特黄特色大片免费视频| 久久久国产精品无码免费专区| 牛牛在线精品免费视频观看| 国产精品高清视亚洲精品| 久久青草亚洲AV无码麻豆| 免费国产人做人视频在线观看| 99视频全部免费精品全部四虎| 国产无遮挡又黄又爽免费网站| 日本亚洲欧美色视频在线播放| 亚洲精品成人网站在线播放| 亚洲妇熟XXXX妇色黄| 国产精品亚洲mnbav网站| 国产精品公开免费视频| 免费无码黄十八禁网站在线观看| 精品国产污污免费网站| 国产精品免费久久久久久久久| 美女被免费网站视频在线| 亚洲精品中文字幕| 亚洲国产乱码最新视频|