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

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

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

    Sung in Blog

               一些技術文章 & 一些生活雜碎
    MVC web 框架

    Spring包括一個強大而且高度可配置的MVC web 框架。

    Spring的MVC model類似于Struts。在多線程服務對象這點上,Spring的Controller類似于Struts Action,只有一個實例處理所有客戶的請求。然而,我們相信Spring的MVC比起Struts有很多優點,例如:


      Spring在controllers,JavaBean,models和views提供了一個非常清晰的劃分。

      Spring的MVC是非常靈活的。不像Struts,它強制你的Action和Form對象進入固化的層次之中(因而你迫使你使用Java的實體繼承),Spring MVC完全是基于接口的。而且,通過插入你自己的接口幾乎Spring MVC 框架的所有部分都是可配置的。當然我們也提供了方便的類作為實現選擇。

      Spring MVC是真正的view無關的。你不會被強制使用JSP,如果你不想那么做的話。你可以使用Velocity,XSLT或其他view技術。如果你想要使用自定義的view機制——例如,你自己的模板語言——你可以簡單實現Spring的View接口并且把它集成進來。

      和其他對象一樣,Spring的Controllers是通過IoC配置的。著使得它們易于測試,并且完美地和其他由Spring管理的對象集成。

      Web層變成了業務對象層之上的薄薄一層。這鼓勵了好的習慣。Struts和其他專門的web框架讓你去實現你自己的業務對象;Spring提供了你應用程序所有層的集成。

    如在Struts 1.1中所見的,你可以有和你在Spring MVC 應用程序中所需要的一樣多的dispatcher servlets。

    下面的例子展示了一個簡單的Spring Controller如何能夠訪問定義在應用程序context中的業務對象。這個controller在它的handleRequest()方法中執行了Google搜索:

    代碼:

    public class GoogleSearchController
          implements Controller {

       private IGoogleSearchPort google;

       private String googleKey;

       public void setGoogle(IGoogleSearchPort google) {
          this.google = google;
       }

       public void setGoogleKey(String googleKey) {
          this.googleKey = googleKey;
       }

       public ModelAndView handleRequest(
                HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
          String query = request.getParameter("query");
          GoogleSearchResult result =
             // Google property definitions omitted...

             // Use google business object
             google.doGoogleSearch(this.googleKey, query,
                start, maxResults, filter, restrict,
                safeSearch, lr, ie, oe);

          return new ModelAndView("googleResults", "result", result);
       }
    }

    這段代碼使用的prototype中,IGoogleSearchPort是一個GLUE web services代理,由Spring FActoryBean返回。然而,Spring把controller從底層web service庫中分離出來。接口可以使用普通的Java對象,test stub,mock對象或者如下面要討論的EJB代理實現。這個contorller不包括資源查找;除了支持它的web交互的必要代碼之外沒有別的什么了。

    Spring還提供了數據綁定,forms,wizards和更復雜的工作流的支持。

    對Spring MVC 框架的優秀簡介是Thomas Risberg的Spring MVC 教程(http://www.springframework.org/docs/MVC-step-by-step/Spring-MVC-step-by-step.html)。還可以參見“Web MVC with the Spring Framework”(http://www.springframework.org/docs/web_mvc.html)。

    如果你樂于使用你鐘情的MVC框架,Spring的分層架構使得你能夠使用Spring的其他部分而不用MVC層。我們有使用Spring做中間層管理和數據訪問,但是在web層使用Struts,WebWork或者Tapestry的用戶。
    posted on 2005-10-26 16:07 Sung 閱讀(389) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 在线观看人成视频免费无遮挡| 国产亚洲精品拍拍拍拍拍| 免费91麻豆精品国产自产在线观看 | 大学生美女毛片免费视频| 免费观看成人久久网免费观看| 在线91精品亚洲网站精品成人| 亚洲中字慕日产2021| 久久精品国产亚洲AV果冻传媒 | 国产亚洲漂亮白嫩美女在线| 亚洲乱码卡一卡二卡三| 亚洲综合在线观看视频| 亚洲色成人WWW永久网站| 亚洲国产成人乱码精品女人久久久不卡| 青春禁区视频在线观看直播免费 | 亚洲人成精品久久久久| 国产成人毛片亚洲精品| 日本不卡视频免费| 最新猫咪www免费人成| 黄色片在线免费观看| 精品女同一区二区三区免费站| 日韩内射激情视频在线播放免费 | 亚洲成网777777国产精品| 国产精品国产免费无码专区不卡 | 色五月五月丁香亚洲综合网| 亚洲视频在线观看2018| 亚洲伊人久久大香线蕉影院| 激情内射亚洲一区二区三区| 亚洲久本草在线中文字幕| 久久91亚洲精品中文字幕| 国精无码欧精品亚洲一区| 国产aⅴ无码专区亚洲av麻豆 | h视频在线免费观看| 国产成人高清精品免费观看| 2022免费国产精品福利在线| 岛国岛国免费V片在线观看| 一级美国片免费看| 中文字幕免费观看视频| 国产免费无码一区二区| 久久这里只精品国产免费10| 热re99久久6国产精品免费| 91免费在线播放|