SpringMVC之簡介

二瓦戚、簡介

目錄:簡述、中心控制器丛塌、SpringMVC執(zhí)行原理

1.簡述

Spring MVC是Spring Framework的一部分较解,是基于Java實(shí)現(xiàn)MVC的輕量級Web框架。
SpringMVC官方文檔:https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#spring-web
Spring MVC的特點(diǎn)
①輕量級赴邻,簡單易學(xué)印衔。
②高效,基于請求響應(yīng)的MVC框架姥敛。
③與Spring兼容性好奸焙,無縫結(jié)合。
④約定優(yōu)于配置彤敛。
⑤功能強(qiáng)大:RESTful与帆、數(shù)據(jù)驗(yàn)證、格式化墨榄、本地化鲤桥、主題等。
⑥簡潔靈活渠概。
Spring的web框架圍繞DispatcherServlet(調(diào)度Servlet)設(shè)計茶凳。
DispatcherServlet的作用是將請求分發(fā)到不同的處理器。從Spring 2.5開始播揪,使用Java 5或者以上版本的用戶可以采用基于注解形式進(jìn)行開發(fā)贮喧,十分簡潔。
正因?yàn)镾pringMVC猪狈、簡單箱沦、便捷、易學(xué)雇庙,天生和Spring無縫集成(使用SpringIoC和AOP)谓形,使用約定優(yōu)于配置。能夠進(jìn)行簡單的junit測試疆前,支持Restful風(fēng)格寒跳,異常處理、本地化竹椒、國際化童太、數(shù)據(jù)驗(yàn)證 , 類型轉(zhuǎn)換、攔截器等等。

2.中心控制器

Spring的web框架圍繞DispatcherServlet設(shè)計书释。DispatcherServlet的作用是將請求分發(fā)到不同的處理器翘贮。從Spring 2.5開始,使用Java 5或者以上版本的用戶可以采用基于注解的controller聲明方式爆惧。
Spring MVC框架像許多其他MVC框架一樣狸页,以請求為驅(qū)動,圍繞一個中心Servlet分派請求及提供其它功能扯再,DispatcherServlet是一個實(shí)際的Servlet(它繼承自HttpServlet基類)肴捉。


Servlet與DispatcherServlet在SpringMVC中的作用

SpringMVC的原理如下圖所示

SpringMVC的原理圖

當(dāng)發(fā)起請求時被前置的控制器攔截到請求,根據(jù)請求參數(shù)生成代理請求叔收,找到請求對應(yīng)的實(shí)際控制器,控制器處理請求傲隶,創(chuàng)建數(shù)據(jù)模型饺律,訪問數(shù)據(jù)庫,將模型響應(yīng)給中心控制器跺株,控制器使用模型與視圖渲染視圖結(jié)果复濒,將結(jié)果返回給中心控制器,再將結(jié)果返回給請求者乒省。

3.SpringMVC執(zhí)行原理

SpringMVC的工作流程

圖為SpringMVC的一個較完整的流程圖巧颈,實(shí)線表示SpringMVC框架提供的技術(shù),不需要開發(fā)者實(shí)現(xiàn)袖扛,虛線表示需要開發(fā)者實(shí)現(xiàn)砸泛。
簡要分析執(zhí)行流程
①DispatcherServlet表示前置控制器,是整個SpringMVC的控制中心蛆封。用戶發(fā)出請求唇礁,DispatcherServlet接收請求并攔截請求。
假設(shè)請求的url為:http://localhost:8080/SpringMVC/hello惨篱,將url拆分成三部分:http://localhost:8080為服務(wù)器域名盏筐,SpringMVC部署在服務(wù)器上的Web站點(diǎn),hello表示控制器砸讳。通過分析琢融,如上url表示為:請求位于服務(wù)器localhost:8080上的SpringMVC站點(diǎn)的hello控制器。
②HandlerMapping為處理器映射簿寂。DispatcherServlet調(diào)用HandlerMapping漾抬,HandlerMapping根據(jù)請求url查找Handler。
③HandlerExecution表示具體的Handler常遂,其主要作用是根據(jù)url查找控制器奋蔚。
④HandlerExecution將解析后的信息傳遞給DispatcherServlet,如解析控制器映射等。
⑤HandlerAdapter表示處理器適配器泊碑,其按照特定的規(guī)則去執(zhí)行Handler坤按。
⑥Handler讓具體的Controller執(zhí)行。
⑦Controller將具體的執(zhí)行信息返回給HandlerAdapter馒过,如ModelAndView臭脓。
⑧HandlerAdapter將視圖邏輯名或模型傳遞給DispatcherServlet。
⑨DispatcherServlet調(diào)用視圖解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯視圖名腹忽。
⑩視圖解析器將解析的邏輯視圖名傳給DispatcherServlet来累。
?DispatcherServlet根據(jù)視圖解析器解析的視圖結(jié)果,調(diào)用具體的視圖窘奏。
?最終視圖呈現(xiàn)給用戶嘹锁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市着裹,隨后出現(xiàn)的幾起案子领猾,更是在濱河造成了極大的恐慌,老刑警劉巖骇扇,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摔竿,死亡現(xiàn)場離奇詭異,居然都是意外死亡少孝,警方通過查閱死者的電腦和手機(jī)继低,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稍走,“玉大人袁翁,你說我怎么就攤上這事⌒隽常” “怎么了梦裂?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盖淡。 經(jīng)常有香客問我年柠,道長,這世上最難降的妖魔是什么褪迟? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任冗恨,我火速辦了婚禮,結(jié)果婚禮上味赃,老公的妹妹穿的比我還像新娘掀抹。我一直安慰自己,他們只是感情好心俗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布傲武。 她就那樣靜靜地躺著蓉驹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揪利。 梳的紋絲不亂的頭發(fā)上态兴,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機(jī)與錄音疟位,去河邊找鬼瞻润。 笑死,一個胖子當(dāng)著我的面吹牛甜刻,可吹牛的內(nèi)容都是我干的绍撞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼得院,長吁一口氣:“原來是場噩夢啊……” “哼傻铣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祥绞,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤非洲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后就谜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡里覆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年丧荐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喧枷。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虹统,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出隧甚,到底是詐尸還是另有隱情车荔,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布戚扳,位于F島的核電站忧便,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏帽借。R本人自食惡果不足惜珠增,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望砍艾。 院中可真熱鬧蒂教,春花似錦、人聲如沸脆荷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梦皮,卻和暖如春炭分,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背届氢。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工欠窒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人退子。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓岖妄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親寂祥。 傳聞我的和親對象是個殘疾皇子荐虐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容