什么是SpringMVC劲弦?
SpringMVC是Spring家族中提供的一個(gè)實(shí)現(xiàn)Web MVC設(shè)計(jì)模式的輕量級(jí)Wed框架,他與Struts2一樣君编,都屬于MVC框架(Model View Controller拆火,是模型(model)-視圖(view)-控制器(controller)的縮寫歧譬,),但是只不過Struts2是老框架循未,已經(jīng)被淘汰了嘲叔。SpringMVC主要完成C(控制器)的作用最仑,但是器性能筆Strust2好很多姨拥。
作用:從請(qǐng)求中接受傳入的參數(shù);將底層傳回的參數(shù)結(jié)果返回前臺(tái)頁面進(jìn)行展示足陨。
SpringMVC具有什么特點(diǎn)?
- 是Spring框架的一部分娇未,可以方便的使用Spring框架的其他功能
- 靈活性好墨缘,易于與其他框架集成
- 提供了一個(gè)前端控制器DispatcherServlet,使開發(fā)人員更加方便忘蟹,無需自己開發(fā)前端控制器對(duì)象
- 可以自動(dòng)的綁定用戶輸入飒房,可以正確的進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換
- 內(nèi)置了常見的校驗(yàn)器,可以校驗(yàn)用戶輸入媚值,如果輸入不正確會(huì)自動(dòng)重定向到輸入表單
- 支持國家化可以根據(jù)用戶位置顯示多國語言
- 支持多種試圖技術(shù),它支持jsp护糖,Velocity和FreeMark的視圖技術(shù)
- 使用基于xml配置文件褥芒,在編譯后,不需要重新編譯程序
SpringMVC的工作流程嫡良?
在這里插入圖片描述
- 通過瀏覽器向服務(wù)器發(fā)送請(qǐng)求锰扶,請(qǐng)求會(huì)被SpringMVC的前端控制器DispacherServlet攔截
- DispacherServlet攔截請(qǐng)求后會(huì)調(diào)用HanderMapping處理器映射器
- 處理器映射器會(huì)根據(jù)請(qǐng)求URL找到具體的處理器,生成處理器對(duì)象幾處理器攔截器(如果有則生成)一并返回給DipacherServlet寝受;
- DispacherServlet會(huì)根據(jù)返回的信息選擇合適的HanderAdapter(處理器適配器)
- HanderAdapter會(huì)調(diào)用執(zhí)行Hander(處理器)坷牛,這里的處理器指得就是程序中編寫的Controller類,也被稱之為后端控制器
- Controller執(zhí)行完后會(huì)返回一個(gè)ModelAndView對(duì)象很澄,該對(duì)象中包含視圖名或包含模型和視圖名
- HandlerAdapter將ModleAndView對(duì)象返回給DispatcherServlet
- DispacherServlet會(huì)根據(jù)ModleAndView選擇一個(gè)合適的ViewReslover(視圖解析器)
- ViewReslover解析后京闰,會(huì)向DispatcherServlet中返回具體的View(視圖);
- DispatcherServlet對(duì)View進(jìn)行渲染(即將模型數(shù)據(jù)填充至視圖中);
- 視圖渲染結(jié)果會(huì)返回給客戶端瀏覽器顯示。
工作流程簡(jiǎn)易版:
在這里插入圖片描述