SpringMVC基本概念

SpringMVC簡介

SpringMVC是目前最好的實現(xiàn)MVC設計模式的框架恳守,是Spring框架的一個分支產(chǎn)品在岂,已經(jīng)融合在Spring Web Flow里面范抓。
它以SpringIOC容器為基礎斟叼,并利用容器的特性來簡化它的配置识腿。
SpringMVC對MVC流程進行了封裝楞抡,屏蔽掉很多底層代碼,開放出接口竞慢,讓開發(fā)者可以更加輕松快捷的完成基于MVC模式的Web開發(fā)檬洞。

SpringMVC的靜態(tài)概念

dispatcherServlet

前端控制器添怔,是整個流程控制的核心,控制其他組件的執(zhí)行县遣,統(tǒng)一調(diào)度元旬,降低組件之間的耦合性体啰,相當于總指揮仅偎。
瀏覽器發(fā)出的請求正是通過dispatcherServlet進行了分發(fā),到達了一個合適的controller卷玉,來生產(chǎn)我們所需要的業(yè)務數(shù)據(jù)model哨颂,model再通過dispatcherServlet進行傳遞,傳遞給view來完成最終的頁面呈現(xiàn)相种。因此MVC將數(shù)據(jù)的業(yè)務邏輯和頁面實現(xiàn)分離其實核心就是通過dispatcherServlet來實現(xiàn)的威恼。

Controller

控制器(處理器)品姓,就是我們調(diào)用業(yè)務邏輯生成Model的地方

HandleAdapter

處理器適配器,首先Handler它其實就是Controller的一個表現(xiàn)形式箫措,在dispatcherServlet當中腹备,其實最終調(diào)用的controller是以Handler形式出現(xiàn)的,而不同的handleAdapter可以處理不同類型的handler斤蔓,dispatcherServlet根據(jù)Handler來找到支持它的handleAdapter植酥,通過handleAdapter去調(diào)用Handler的方法得到ModelAndView對象。

HandlerInterceptor

攔截器弦牡,它是一個接口友驮,可以在被攔截對象的兩側加入一些內(nèi)容,如果需要做一些攔截處理驾锰,可以來實現(xiàn)這個接口卸留。
它提供了在調(diào)用controller前,調(diào)用之后椭豫,以及在最終model發(fā)送到頁面完成呈現(xiàn)之后的處理方法耻瑟。

HandlerMapping

它是前端請求與controller之間映射關系的一種類,它的作用就是告訴DispatcherServlet這個請求到來之后由哪一個controller來響應赏酥,前端控制器通過HandlerMapping將不同的請求分發(fā)到不同的Handler
handleMapping根據(jù)請求URL找到對應的的Handler(Controller)喳整,以及這個Handler需要被包裹的handlerIntercepter,然后將它們構成一個執(zhí)行的鏈條裸扶。

HandlerExecutionChain

處理器執(zhí)行鏈框都,將攔截器與Handler(controller)一起形成執(zhí)行鏈條對象

ModelAndView

裝載了模型數(shù)據(jù)和視圖信息,作為Handler的處理結果姓言,返回給DispatcherServlet
有3種表現(xiàn)形式瞬项,Model、Map何荚、ModelAndView囱淋,不管是哪種,dispatcherServlet都會將其轉化為ModelAndView

ViewResolver

視圖解析器餐塘,根據(jù)配置找出需要的視圖對象妥衣,DispatcherServlet通過它將邏輯視圖解析成物理視圖,最終將渲染結果響應給客戶端

View

負責呈現(xiàn)頁面(Responsible for page rendering)

SpringMVC的動態(tài)概念

圖解一

訪問過程:首先請求達到了dispatcherServlet戒傻,然后dispatcherServlet將請求代理給了HandlerMapping税手,通過HandlerMapping去查找對應的controller以及對應的HandlerInterceptor,找到之后將controller和HandlerInterceptor形成執(zhí)行鏈條返回給dispatcherServlet需纳,dispatcherServlet通過HandlerAdapter調(diào)用Handler的方法芦倒,調(diào)用后生成模型數(shù)據(jù)ModelAndView,接著調(diào)用視圖解析器返回View對象不翩,然后ModelAndView作為模型數(shù)據(jù)被傳遞給view完成頁面呈現(xiàn)兵扬,最終響應給用戶麻裳。

圖解二

雖然SpringMVC涉及概念很多,但是真正需要我們做的卻很少器钟。

  • DispatcherServlet由springmvc內(nèi)部實現(xiàn)津坑,只需要配置即可
  • HandlerMapping同理,只需要配置RequestMapping傲霸,后續(xù)操作都已經(jīng)提供了實現(xiàn)
  • Controller需要我們自行編寫疆瑰,HandlerInterceptor如果需要就實現(xiàn)接口即可
  • HandlerAdapter由DispatcherServlet內(nèi)部調(diào)用,無需關心
  • ModelAndView是一個類昙啄,只需要向map一樣添加數(shù)據(jù)即可
  • ViewResolver只需要關心使用哪種類型的解析器即可穆役,都有默認的實現(xiàn)
  • View對應的真正視圖需要我們自行編寫,在Handler返回時只需要返回視圖名稱即可跟衅,渲染視圖的過程自動就完成了
工作模塊劃分
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末孵睬,一起剝皮案震驚了整個濱河市播歼,隨后出現(xiàn)的幾起案子伶跷,更是在濱河造成了極大的恐慌,老刑警劉巖秘狞,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叭莫,死亡現(xiàn)場離奇詭異,居然都是意外死亡烁试,警方通過查閱死者的電腦和手機雇初,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來减响,“玉大人靖诗,你說我怎么就攤上這事≈荆” “怎么了刊橘?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長颂鸿。 經(jīng)常有香客問我促绵,道長,這世上最難降的妖魔是什么嘴纺? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任败晴,我火速辦了婚禮,結果婚禮上栽渴,老公的妹妹穿的比我還像新娘尖坤。我一直安慰自己,他們只是感情好闲擦,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布慢味。 她就那樣靜靜地躺著僚祷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贮缕。 梳的紋絲不亂的頭發(fā)上辙谜,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音感昼,去河邊找鬼装哆。 笑死,一個胖子當著我的面吹牛定嗓,可吹牛的內(nèi)容都是我干的蜕琴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼宵溅,長吁一口氣:“原來是場噩夢啊……” “哼凌简!你這毒婦竟也來了?” 一聲冷哼從身側響起恃逻,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤雏搂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后寇损,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凸郑,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年矛市,在試婚紗的時候發(fā)現(xiàn)自己被綠了芙沥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡浊吏,死狀恐怖而昨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情找田,我是刑警寧澤歌憨,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站午阵,受9級特大地震影響躺孝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜底桂,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一植袍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧籽懦,春花似錦于个、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秀存。三九已至,卻和暖如春羽氮,著一層夾襖步出監(jiān)牢的瞬間或链,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工档押, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留澳盐,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓令宿,卻偏偏與公主長得像叼耙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子粒没,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345