.Net轉Java自學之路—SpringMVC框架篇一(簡述)

SpringMVC是Spring框架的一個模塊,SpringMVC和Spring無需經過中間層進行整合。SpringMVC是一個基於MVC設計模式的一個框架。前端

SpringMVC框架原理:設計模式

  客戶端發送一個request請求到SpringMVC的前端控制器(DispatcherServlet),DispatcherServlet接收用戶請求,而且響應;前端控制器根據request請求的URL經過處理器映射器(HandlerMapping)來請求查找Handler。處理器映射器返回的一個執行鏈(HandlerExceptionChain),該鏈中含有HandlerInterceptor(攔截器)、Handler,在該鏈中能夠由多個攔截器。前端控制器請求處理器適配器(HandlerAdapter)去執行Handler處理器(Controller),每個Handler處理器都對應一個處理器是配置。Handler處理器返回ModelAndView,就是模型和視圖的結合體。處理器適配器將ModelAndView返回前端控制器。前端控制器請求視圖解析器(ViewResoler)進行視圖解析,該視圖爲邏輯視圖,視圖解析器解析後返回View(物理視圖)。而後前端控制器將模型數據填充到request域,請求View視圖進行視圖渲染。app

  一、客戶端發送一個request請求到SpringMVC的前端控制器(DispatcherServlet)框架

  二、前端控制器請求HandlerMapping查找Handler。根據xml配置、註解進行查找。jsp

  三、處理器映射器HandlerMapping向前端控制器返回Handler。測試

  四、前端控制器調用處理器是配置去執行Handlerurl

  五、處理器適配器去執行Handler。spa

  六、Handler處理器執行完成後給處理器適配器返回ModelAndView設計

  七、處理器適配器像前端控制器返回ModelAndView。ModelAndView是SpringMVC框架的一個底層對象,包含Model和Viewxml

  八、前端控制器請求視圖解析器去進行視圖解析。根據邏輯視圖名解析成真正的視圖(JSP)。

  九、視圖解析器向前端控制器去執行視圖解析。

  十、前端控制器進行視圖渲染。視圖渲染就是模型數據填充到request域。模型數據就是在ModelAndView中。

  十一、前端控制器向客戶端響應結果。

組件:

  前端控制器DispatcherServlet:
    做用:接收請求,響應結果,至關於轉發器。
    有了DispatcherServlet減小了其餘組件之間的耦合度。

  處理器映射器HandlerMapping:
    做用:根據請求的URL查找Handler。

  處理器適配器HandlerAdapter:
    做用:按照特定規則執行Handler。

  處理器Handler:
    編寫Handler時須要按照HandlerAdapter的要求編寫,這樣適配器才能夠正確只能怪Handler。

  視圖解析器View resoler:
    做用:進行視圖解析,根據邏輯視圖名解析成真正的視圖(View)

  視圖View:
    View是一個接口,實現類支持不一樣的View類型。如:jsp、freemarker、pdf等。

SpringMVC和Struts2區別:

  一、SpringMVC是基於方法開發的;Struts2是基於類開發的。
    SpringMVC將url和controller方法進行映射。映射成功後SpringMVC生成一個Handler對象,對象只包含一個method。方法執行結束,形參數據銷燬。
    SpringMVC的controller開發更相似於service開發。

  二、SpringMVC能夠進行單例開發,而且建議使用單例開發,Struts2經過類的成語那變量接收參數,沒法使用單例,只能使用多例。

  三、經過實際測試,Struts2速度慢的緣由,在於使用了Struts標籤,若使用Struts建議使用JSTL。

相關文章
相關標籤/搜索