NO IMAGE

1.  什麼是mvc  – mvc是一種設計模式和設計思想

    model , view ,control .

    MVC是一個設計模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心部件:模型、檢視、控制器。它們各自處理自己的任務。

   總結MVC的處理過程,首先控制器接收使用者的請求,並決定應該呼叫哪個模型來進行處理,然後模型用業務邏輯來處理使用者的請求並返回資料,最後控制器用相應的檢視格式化模型返回的資料,並通過表示層呈現給使用者.

   最重要的一點是多個檢視能共享一個模型,正如我所提及的,現在需要用越來越多的方式來訪問你的應用程式。對此,其中一個解決之道是使用MVC,無論你的使用者想要Flash介面或是 WAP 介面;用一個模型就能處理它們。由於你已經將資料和業務規則從表示層分開,所以你可以最大化的重用你的程式碼了。
   MVC的缺點:

   a. 沒有明確的定義,難以理解

   b. 需要花費相當多的時間在設計上,去區分模型和控制器

   c. 需要管理相當多的檔案,所以不適用於規模太小的專案

 

2. 什麼是spring mvc , 優勢在哪裡 – 它是一個spring組織提出的框架,只需要簡單配置就能做到MVC

    Spring MVC 屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡。

    它可以自由使用不同的view展示層, 比如,你可以用spring自帶的web框架,也可以選用struts,jsp,tiles,Velocity等。Spring MVC 分離了控制器、模型物件、分派器以及處理程式物件的角色,這種分離讓它們更容易進行定製。

     spring 自帶的web框架:

     Spring 的 Web MVC 框架是圍繞 DispatcherServlet 設計的,它把請求分派給處理程式,同時帶有可配置的處理程式對映、檢視解析、本地語言、主題解析以及上載檔案支援。預設的處理程式是非常簡單的 Controller 介面,只有一個方法 ModelAndView handleRequest(request, response)。Spring 提供了一個控制器層次結構,可以派生子類。如果應用程式需要處理使用者輸入表單,那麼可以繼承 AbstractFormController。如果需要把多頁輸入處理到一個表單,那麼可以繼承 AbstractWizardFormController

   

 

3. sofa mvc 跟 spring mvc的差別  – 根據公司的現狀,把springmvc封裝成一整套框架,支援car的概念

    sofamvc 結合了公司現有的服務架構,引入了carDisparcher的概念,把springMVC整合到我們自己的系統中去。

    相同點:

          a. controller方面使用了spring的annotations程式設計,很方便

          b. 沿用了spring定義的很多元件

 

    不同點:

          a. 引入了carDisparcher ,在spring的servletDisparcher基礎上又多了一層

          b. 新增了template 元件,適用於view層的頁面展示與邏輯資料分開。比如CSS,JS等,只需要在template宣告即可,開發人員不必寫到介面,而是交與前段UI開發人員去完成

          c. 用jetty作為動態頁面伺服器,啟動速度快。 sofa平臺還提供了一個jettyWebStart,方便單元測試。

          d. sofa是參照SCA服務規範來設計的,SCA (Service Component Architecture)是為實現 SOA 而產生的一種規範。純粹面向服務啊。。。

 

    

4. 如何使用spring mvc, sofa mvc