日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring 3.x MVC 图解MVC整体流程

發布時間:2024/4/15 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring 3.x MVC 图解MVC整体流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring mvc的生命周期

開始使用 spring mvc之前,我們必須需要了解下SPRING MVC的流程,如下圖:

?

在看下圖之前的一些說明: (下面介紹的HandlerMapping,HandlerAdapter,HandlerExceptionResovler,ViewResolver都有個order屬性,因為這些接口每一個都可以注冊多個實現,order代表他們的執行順序,order越小的越先執行,一般先執行的匹配到了后面的就不會執行了)

DispatcherServlet:???????? 整個Spring MVC的前端控制器,由它來接管來自客戶端的請求

HandlerMapping:? ?????????DispatcherServlet會通過它來處理客戶端請求到各個(Controller)處理器的映射

HandlerAdapter:?? ?????????HandlerMapping會根據它來調用Controller里需要被執行的方法

HandlerExceptionResolver:??? spring mvc處理流程中,如果有異常拋出,會交給它來進行異常處理

ViewResolver:????????????? HandlerAdapter會把Controller中調用返回值最終包裝成ModelAndView,ViewResolver會檢查其中的view,如果view是一個字符串,它就負責處理這個字符串并返回一個真正的View,如果view是一個真正的View則不會交給它處理,為什么view即可以是字符串又會是View呢下面會進行解釋

View:???????????????????????? 對應MVC 中的V, 此接口只有一個方法 render,用于視圖展現

ModelAndView??????????? ?對于解決上面介紹ViewResoler或者下面圖片的疑惑,這個類中的view這個屬性是 Object 類型的,它可以是一個視圖名也可以是一個實際的View,這點我們觀察其源碼可以很清楚的看出來

private Object view;

?

?public void setViewName(String viewName) {

  ?this.view = viewName;

}

?public String getViewName() {

  return (this.view instanceof String ? (String) this.view : null);

}

?public void setView(View view) {

  this.view = view;

?}

?public View getView() {

  return (this.view instanceof View ? (View) this.view : null);

?}?????

Spring mvc的流程圖

如果看不全或者看不清圖,請點擊以下鏈接,由于圖片太大,流程入口從中間上方的Client開始

http://pic002.cnblogs.com/images/2012/267998/2012010623530925.png

轉自:http://www.cnblogs.com/zhaoyang/archive/2012/01/07/2315403.html 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Spring 3.x MVC 图解MVC整体流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。