您好,登錄后才能下訂單哦!
這篇文章主要介紹了SpringMVC的五大核心組件怎么使用的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SpringMVC的五大核心組件怎么使用文章都會有所收獲,下面我們一起來看看吧。
DispatcherServlet
-前端控制器,用于統(tǒng)一接收請求并分發(fā),組織處理請求的流程
HandlerMapping
-映射請求路徑與處理請求的控制器
Controller
-由開發(fā)人員創(chuàng)建的,實際處理請求的控制器
ModelAndView
-Controllera組件處理完請求后得到的結(jié)果,由數(shù)據(jù)與視圖名稱組成
ViewResolver
-視圖解析器,可根據(jù)視圖名稱(由ModelAndView:返回)確定需要使用的視圖組件
DispatcherServlet:通常稱之為“前端控制器”,用于統(tǒng)一接收請求并分發(fā),組織處理請求的流程
-如果是使用web.xml文件配置項目的Web環(huán)境的項目,需要顯式的在web.xml配置它,例如映射的請求路徑,并確保它是Web容器(例如Tomcat)在啟動時就初始化的,并在初始化時會加載Spring環(huán)境
-如果是使用Spring注解來配置Spring MVC環(huán)境的項目,則不需要直接配置它,而是通過自定義一個AbstractAnnotationConfigDispatcherServletlnitializer的子類來間接的配置,例如配置它映射的請求路徑
-如果是使用Spring Booti框架的Web項目,你甚至可以不需要知道它的存在,默認(rèn)映射的請求路徑是/*,當(dāng)然,如果認(rèn)為有必要的話,也可以配置為其它值
HandlerMapping:它是一個接口,Spring MVC框架內(nèi)置了簡單的實現(xiàn)類:
SimpleUrlHandlerMapping,用于映射請求路徑與處理請求的控制器,但是,在實際應(yīng)用中,并不會直接使用這個實現(xiàn),而是使用@RequestMapping注解,或進階的@PostMapping、@DeleteMapping、@PutMapping、@GetMapping等注解,直接配置請求路徑與處理請求的方法的映射關(guān)系
Controller:是實際處理請求的控制器
是開發(fā)者自行編寫的,通常有多個,一般根據(jù)需要處理的請求所涉及的核心數(shù)據(jù)類型來區(qū)分,例如與用戶相關(guān)的請求則創(chuàng)建UserController,與訂單相關(guān)的請求則創(chuàng)建OrderController…
這些類必須放在組件掃描的包或其子孫包下,并添加@Controller注解,或添加@RestController注解,由于主流的開發(fā)模式是服務(wù)器端向客戶端響應(yīng)正文,通常使用的是@RestController
一般還會在這些類的聲明之前添加@RequestMapping注解,以統(tǒng)一設(shè)計URL中的前綴路徑
每個控制器類中將有若干個處理請求的方法
ModelAndView:Controller組件處理完請求后得到的結(jié)果,由數(shù)據(jù)與視圖名稱組成
在實際開發(fā)中,由于Spring MVC提供了更加便捷的API,通常并不直接使用這種類型作為方法的返回值,當(dāng)需要轉(zhuǎn)發(fā)數(shù)據(jù)時,可以在方法的參數(shù)列表中添加ModelMap對象用于封裝需要轉(zhuǎn)發(fā)的數(shù)據(jù),并使用String類型的返回值表示視圖名稱,如果需要重定向,則返回以redirect:作為前綴的Stringl即可
主流的開發(fā)模式是服務(wù)器端向客戶端響應(yīng)正文,完全不需要使用該類型的對象
ViewResolver:視圖解析器,可根據(jù)視圖名稱確定需要使用的視圖組件
Spring MVC框架內(nèi)置了簡單的實現(xiàn)類:InternalResourceViewResolver,當(dāng)使用JSP文件作為視圖時將使用它,主要配置prefix7和suffix這2個屬性,SpringMVC框架會將orefixl的值、控制器返回的視圖名稱、suffix的值拼接起來,以確定JSP文件的位置并使用
使用Thymeleaf的模版頁面作為視圖組件時,則配置ThymeleafViewResolver,配置思想大致相當(dāng),但需要另外配置Thymeleaf的模版引擎和模版解析器
主流的開發(fā)模式是服務(wù)器端向客戶端響應(yīng)正文,完全不需要使用該組件
1.作用:解決了V-C交互問題,也就是試圖與控制器的交互問題。
在原生的Java EE技術(shù)中,使用Servlet作為項目中的控制器,用于接收用戶的請求,并給予響應(yīng)結(jié)果。
這種做法最大的問題在于:每個Servlet對應(yīng)一個請求路徑,例如:LoginServlet處理login.do的請求,而RegisterServlet處理register.do的請求,所以,會導(dǎo)致Servlet數(shù)量太多,不便于管理(無論是從源文件的數(shù)量,還是從配置文件的內(nèi)容),且對象太對而占用大量的內(nèi)存空間的問題,并且,在請求的處理過程中,還存在許多操作不簡單的做法!
2.SpringMVC核心組件及其流程圖。
1.DispatcherServlet
:前端控制器,負責(zé)接收所配置的所有請求(假設(shè)配置為*.do
,則它將接收所有以.do
為后綴的請求),并負責(zé)分發(fā)這些請求;
2.HandlerMapping
:記錄了請求路徑與處理請求的Controller
或其方法的對應(yīng)關(guān)系;
3.Controller
:控制器,負責(zé)處理具體的請求,每個項目中可能有若干個Controller
組件,每個Controller
組件中可以有若干個處理請求的方法;
4.ModelAndView
:控制器處理完請求后得到的結(jié)果,該結(jié)果可以包含數(shù)據(jù)與視圖名稱;
5.ViewResovler
:視圖解析器,可以根據(jù)視圖名稱來確定具體的視圖組件。
關(guān)于“SpringMVC的五大核心組件怎么使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“SpringMVC的五大核心組件怎么使用”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。