更新時(shí)間:2020-06-02 16:08:54 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2535次
今天,讓我們一起來(lái)看看SpringMVC的組件解析,主要內(nèi)容有SpringMVC的執(zhí)行流程、SpringMVC組件解析、SpringMVC注解解析和SpringMVC的XML配置解析。下面一起來(lái)看看詳細(xì)內(nèi)容吧~

(1)用戶發(fā)送請(qǐng)求至前端控制器DispatcherServlet。
(2)DispatcherServlet收到請(qǐng)求調(diào)用HandlerMapping處理器映射器。
(3)處理器映射器找到具體的處理器(可以根據(jù)xml配置、注解進(jìn)行查找),生成處理器對(duì)象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。
(4)DispatcherServlet調(diào)用HandlerAdapter處理器適配器。
(5)HandlerAdapter經(jīng)過(guò)適配調(diào)用具體的處理器(Controller,也叫后端控制器)。
(6)Controller執(zhí)行完成返回ModelAndView。
(7)HandlerAdapter將controller執(zhí)行結(jié)果ModelAndView返回給DispatcherServlet。
(8)DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器。
(9)ViewReslover解析后返回具體View。
(10)DispatcherServlet根據(jù)View進(jìn)行渲染視圖(即將模型數(shù)據(jù)填充至視圖中)。DispatcherServlet響應(yīng)用戶。
(1)前端控制器:DispatcherServlet
用戶請(qǐng)求到達(dá)前端控制器,它就相當(dāng)于MVC模式中的C,DispatcherServlet是整個(gè)流程控制的中心,由它調(diào)用其它組件處理用戶的請(qǐng)求,DispatcherServlet的存在降低了組件之間的耦合性。
(2)處理器映射器:HandlerMapping
HandlerMapping負(fù)責(zé)根據(jù)用戶請(qǐng)求找到Handler即處理器,SpringMVC提供了不同的映射器實(shí)現(xiàn)不同的映射方式,例如:配置文件方式,實(shí)現(xiàn)接口方式,注解方式等。
(3)處理器適配器:HandlerAdapter
通過(guò)HandlerAdapter對(duì)處理器進(jìn)行執(zhí)行,這是適配器模式的應(yīng)用,通過(guò)擴(kuò)展適配器可以對(duì)更多類型的處理器進(jìn)行執(zhí)行。
(4)處理器:Handler
它就是我們開(kāi)發(fā)中要編寫的具體業(yè)務(wù)控制器。由DispatcherServlet把用戶請(qǐng)求轉(zhuǎn)發(fā)到Handler。由Handler對(duì)具體的用戶請(qǐng)求進(jìn)行處理。
(5)視圖解析器:View Resolver
View Resolver負(fù)責(zé)將處理結(jié)果生成View視圖,View Resolver首先根據(jù)邏輯視圖名解析成物理視圖名,即具體的頁(yè)面地址,再生成View視圖對(duì)象,最后對(duì)View進(jìn)行渲染將處理結(jié)果通過(guò)頁(yè)面展示給用戶。
(6)視圖:View
SpringMVC框架提供了很多的View視圖類型的支持,包括:jstlView、freemarkerView、pdfView等。最常用的視圖就是jsp。一般情況下需要通過(guò)頁(yè)面標(biāo)簽或頁(yè)面模版技術(shù)將模型數(shù)據(jù)通過(guò)頁(yè)面展示給用戶,需要由程序員根據(jù)業(yè)務(wù)需求開(kāi)發(fā)具體的頁(yè)面。
RequestMapping
作用:用于建立請(qǐng)求URL和處理請(qǐng)求方法之間的對(duì)應(yīng)關(guān)系。
位置:類上,請(qǐng)求URL的第一級(jí)訪問(wèn)目錄。此處不寫的話,就相當(dāng)于應(yīng)用的根目錄方法上,請(qǐng)求URL的第二級(jí)訪問(wèn)目錄,與類上的使用 ReqquestMapping標(biāo)注的一級(jí)目錄一起組成訪問(wèn)虛擬路徑。
屬性:value用于指定請(qǐng)求的URL。它和path屬性的作用是一樣的;method用于指定請(qǐng)求的方式;params用于指定限制請(qǐng)求參數(shù)的條件。它支持簡(jiǎn)單的表達(dá)式。要求請(qǐng)求參數(shù)的key和value必須和配置的一模一樣。
例如:
params={"accountName"},表示請(qǐng)求參數(shù)必須有accountName
params={"moeny!100"},表示請(qǐng)求參數(shù)中money不能是100
(1)mvc命名空間引入

(2)組件掃描
SpringMVC基于Spring容器,所以在進(jìn)行SpringMVC操作時(shí),需要將Controller存儲(chǔ)到Spring容器中,如果使用 Controller注解標(biāo)注的話,就需要使用<context:component-scan base-package=“com.itheima.controller"/>進(jìn)行組件掃描。
SpringMVC有默認(rèn)組件配置,默認(rèn)組件都是DispatcherServlet.properties配置文件中配置的,該配置文件地址org/springframework/web/servlet/DispatcherServlet.properties,該文件中配置了默認(rèn)的視圖解析器,如下:
org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.Inter
nalResourceViewResolver
(1)視圖解析器
我們可以通過(guò)屬性注入的方式修改視圖的的前后綴
<!--配置內(nèi)部資源視圖解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix"value="/WEB-INF/views/"></property>
<property name="suffix"value=".jsp"></property>
</bean>
總結(jié)一下的知識(shí)要點(diǎn),SpringMVC的相關(guān)組件包括前端控制器、處理器映射器、處理器適配器、處理器、視圖解析器和視圖。SpringMVC請(qǐng)求映射注解 RequestMapping,視圖解析器配置:
REDIRECT_URL_PREFIX="redirect:"
FORWARD_URL_PREFIX="forward:"
prefix="";
suffix="";
Java框架相關(guān)視頻
SpringMVC視頻教程:http://www.soulsinkind.com/javavideo/126.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java集合框架學(xué)習(xí)視頻之SpringMVC的組件解析”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)