亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

一、需求開發(fā)過(guò)程

需求:前端瀏覽器請(qǐng)求url:
http://localhost:8080/demo/handle01,前端?面顯示后臺(tái)服務(wù)器的時(shí)間

開發(fā)過(guò)程

1)配置DispatcherServlet前端控制器

2)開發(fā)處理具體業(yè)務(wù)邏輯的Handler(@Controller、@RequestMApping)

3)xml配置文件配置controller掃描,配置springmvc三大件

4)將xml文件路徑告訴springmvc(DispatcherServlet)

二、Spring MVC 請(qǐng)求處理流程

 

流程說(shuō)明

第一步:用戶發(fā)送請(qǐng)求至前端控制器DispatcherServlet

第二步:DispatcherServlet收到請(qǐng)求調(diào)用HandlerMapping處理器映射器

第三步:處理器映射器根據(jù)請(qǐng)求Url找到具體的Handler(后端控制器),生成處理器對(duì)象及處理器攔截器(如果有則生成)一并返回DispatcherServlet

第四步:DispatcherServlet調(diào)用HandlerAdapter處理器適配器去調(diào)用Handler

第五步:處理器適配器執(zhí)行Handler

第六步:Handler執(zhí)行完成給處理器適配器返回ModelAndView

第七步:處理器適配器向前端控制器返回 ModelAndView,ModelAndView 是SpringMVC 框架的一個(gè)底層對(duì)象,包括 Model 和 View

第八步:前端控制器請(qǐng)求視圖解析器去進(jìn)行視圖解析,根據(jù)邏輯視圖名來(lái)解析真正的視圖。

第九步:視圖解析器向前端控制器返回View

第十步:前端控制器進(jìn)行視圖渲染,就是將模型數(shù)據(jù)(在 ModelAndView 對(duì)象中)填充到 request 域

第十一步:前端控制器向用戶響應(yīng)結(jié)果

三、Spring MVC 九大組件

  • HandlerMapping(處理器映射器)

HandlerMapping 是用來(lái)查找 Handler 的,也就是處理器,具體的表現(xiàn)形式可以是類,也可以是方法。比如,標(biāo)注了@RequestMapping的每個(gè)方法都可以看成是一個(gè)Handler。Handler負(fù)責(zé)具體實(shí)際的請(qǐng)求處理,在請(qǐng)求到達(dá)后,HandlerMapping 的作用便是找到請(qǐng)求相應(yīng)的處理器Handler 和 Interceptor.

  • HandlerAdapter(處理器適配器)

HandlerAdapter 是一個(gè)適配器。因?yàn)?Spring MVC 中 Handler 可以是任意形式的,只要能處理請(qǐng)求即可。

但是把請(qǐng)求交給Servlet 的時(shí)候,由于Servlet 的方法結(jié)構(gòu)都是doService(HttpServletRequest req,HttpServletResponse resp)形式的,要讓固定的 Servlet 處理方法調(diào)用 Handler 來(lái)進(jìn)行處理,便是 HandlerAdapter 的職責(zé)。

  • HandlerExceptionResolver

HandlerExceptionResolver 用于處理 Handler 產(chǎn)生的異常情況。它的作用是根據(jù)異常設(shè)置ModelAndView,之后交給渲染方法進(jìn)行渲染,渲染方法會(huì)將 ModelAndView 渲染成?面。

  • ViewResolver

ViewResolver即視圖解析器,用于將String類型的視圖名和Locale解析為View類型的視圖,只有一個(gè)resolveViewName()方法。從方法的定義可以看出,Controller層返回的String類型視圖名viewName 最終會(huì)在這里被解析成為View。View是用來(lái)渲染?面的,也就是說(shuō),它會(huì)將程序返回的參數(shù)和數(shù)據(jù)填入模板中,生成html文件。ViewResolver 在這個(gè)過(guò)程主要完成兩件事情:ViewResolver 找到渲染所用的模板(第一件大事)和所用的技術(shù)(第二件大事,其實(shí)也就是找到視圖的類型,如JSP)并填入?yún)?shù)。默認(rèn)情況下,Spring MVC會(huì)自動(dòng)為我們配一個(gè)
InternalResourceViewResolver,是針對(duì) JSP 類型視圖的。

  • RequestToViewNameTranslator


RequestToViewNameTranslator 組件的作用是從請(qǐng)求中獲取 ViewName.因?yàn)?ViewResolver 根據(jù)ViewName 查找 View,但有的 Handler 處理完成之后,沒有設(shè)置 View,也沒有設(shè)置 ViewName,便要通過(guò)這個(gè)組件從請(qǐng)求中查找 ViewName。

  • LocaleResolver

ViewResolver 組件的 resolveViewName 方法需要兩個(gè)參數(shù),一個(gè)是視圖名,一個(gè)是 Locale。LocaleResolver 用于從請(qǐng)求中解析出 Locale,比如中國(guó) Locale 是 zh-CN,用來(lái)表示一個(gè)區(qū)域。這個(gè)組件也是 i18n 的基礎(chǔ)。

  • ThemeResolver

ThemeResolver 組件是用來(lái)解析主題的。主題是樣式、圖片及它們所形成的顯示效果的集合。Spring MVC 中一套主題對(duì)應(yīng)一個(gè) properties文件,里面存放著與當(dāng)前主題相關(guān)的所有資源,如圖片、css樣式等。創(chuàng)建主題非常簡(jiǎn)單,只需準(zhǔn)備好資源,然后新建一個(gè)“主題名.properties”并將資源設(shè)置進(jìn)去,放在classpath下,之后便可以在?面中使用了。SpringMVC中與主題相關(guān)的類有ThemeResolver、ThemeSource和Theme。ThemeResolver負(fù)責(zé)從請(qǐng)求中解析出主題名,ThemeSource根據(jù)主題名找到具體的主題,其抽象也就是Theme,可以通過(guò)Theme來(lái)獲取主題和具體的資源。

  • MultipartResolver

MultipartResolver 用于上傳請(qǐng)求,通過(guò)將普通的請(qǐng)求包裝成
MultipartHttpServletRequest 來(lái)實(shí)現(xiàn)。MultipartHttpServletRequest 可以通過(guò) getFile() 方法 直接獲得文件。如果上傳多個(gè)文件,還可以調(diào)用 getFileMap()方法得到Map<FileName,F(xiàn)ile>這樣的結(jié)構(gòu),MultipartResolver 的作用就是封裝普通的請(qǐng)求,使其擁有文件上傳的功能。

  • FlashMapManager

FlashMap 用于重定向時(shí)的參數(shù)傳遞,比如在處理用戶訂單時(shí)候,為了避免重復(fù)提交,可以處理完post請(qǐng)求之后重定向到一個(gè)get請(qǐng)求,這個(gè)get請(qǐng)求可以用來(lái)顯示訂單詳情之類的信息。這樣做雖然可以規(guī)避用戶重新提交訂單的問(wèn)題,但是在這個(gè)?面上要顯示訂單的信息,這些數(shù)據(jù)從哪里來(lái)獲得呢?因?yàn)橹囟ㄏ驎r(shí)沒有傳遞參數(shù)這一功能的,如果不想把參數(shù)寫進(jìn)URL(不推薦),那么就可以通過(guò)FlashMap來(lái)傳遞。只需要在重定向之前將要傳遞的數(shù)據(jù)寫入請(qǐng)求(可以通過(guò)


ServletRequestAttributes.getRequest()方法獲得)的屬性O(shè)UTPUT_FLASH_MAP_ATTRIBUTE中,這樣在重定向之后的Handler中Spring就會(huì)自動(dòng)將其設(shè)置到Model中,在顯示訂單信息的?面上就可以直接從Model中獲取數(shù)據(jù)。FlashMapManager 就是用來(lái)管理 FalshMap 的

分享到:
標(biāo)簽:Spring MVC
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定