欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC的Dispatcher解讀

 更新時(shí)間:2023年11月03日 09:36:45   作者:全不能小傻瓜  
這篇文章主要介紹了SpringMVC的Dispatcher用法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SpringMVC的Dispatcher

Spring的web框架圍繞DispatcherServlet設(shè)計(jì)

以請求為驅(qū)動(dòng) , 圍繞一個(gè)中心Servlet分派請求及提供其他功能

DispatcherServlet是一個(gè)實(shí)際的Servlet (它繼承自HttpServlet 基類)

借用B站狂神的流程圖(其中實(shí)現(xiàn)全部是框架給我們做的,我們只需要補(bǔ)充虛線的流程就好。)

SpringMVC是Spring中的模塊,它實(shí)現(xiàn)了mvc設(shè)計(jì)模式的web框架,首先用戶發(fā)出請求,請求到達(dá)SpringMVC的前端控制器(DispatcherServlet),前端控制器根據(jù)用戶的url請求處理器映射器查找匹配該url的handler,并返回一個(gè)執(zhí)行鏈,前端控制器再請求處理器適配器調(diào)用相應(yīng)的handler進(jìn)行處理并返回給前端控制器一個(gè)modelAndView,前端控制器再請求視圖解析器對返回的邏輯視圖進(jìn)行解析,最后前端控制器將返回的視圖進(jìn)行渲染并把數(shù)據(jù)裝入到request域,返回給用戶。

DispatcherServlet作為springMVC的前端控制器,負(fù)責(zé)接收用戶的請求并根據(jù)用戶的請求返回相應(yīng)的視圖給用戶

  • 用戶發(fā)出請求,該請求到達(dá)SpringMVC的前端控制器。
  • 前端控制器會(huì)根據(jù)用戶請求的URL請求處理器映射器查找匹配的handler。
  • 并返回一個(gè)執(zhí)行鏈(HanlderExecution)。
  • 前端控制器再請求處理器適配器(HandlerAdapter)去執(zhí)行對應(yīng)的Handler,Handler會(huì)讓Controller去執(zhí)行!
  • Controller將具體的執(zhí)行信息(我們該寫的代碼)返回給HandlerAdapter,如ModelAndView。 如:攜帶數(shù)據(jù) + 要跳轉(zhuǎn)的視圖 HelloServlet類 。
  • HandlerAdapter將視圖邏輯名或模型傳遞給DispatcherServlet。
  • DispatcherServlet調(diào)用視圖解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯視圖名。

所謂視圖解析器就是拼接字符串

mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
<!--視圖解析器:DispatcherServlet給他的ModelAndView
    1.獲取了ModelAndView的數(shù)據(jù)
    2.解析ModelAndView的視圖名字 Hello
    3.根據(jù)前綴和后綴去拼接視圖名稱/WEB-INF/jsp/hello.jsp
    4.將數(shù)據(jù)渲染到這個(gè)視圖上。
    -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
    <!--前綴-->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!--后綴-->
    <property name="suffix" value=".jsp"/>
</bean> 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis中<if>和<choose>的區(qū)別及“=”判斷方式

    Mybatis中<if>和<choose>的區(qū)別及“=”判斷方式

    這篇文章主要介紹了Mybatis中<if>和<choose>的區(qū)別及“=”判斷方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • springboot2.0整合dubbo的示例代碼

    springboot2.0整合dubbo的示例代碼

    這篇文章主要介紹了springboot2.0整合dubbo的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java基礎(chǔ)之代理原理與用法詳解

    Java基礎(chǔ)之代理原理與用法詳解

    這篇文章主要介紹了Java基礎(chǔ)之代理原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了java代理的概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • java -jar命令的具體使用

    java -jar命令的具體使用

    java -jar命令是一種方便快捷地在命令行中運(yùn)行Java可執(zhí)行jar文件的方法,本文主要介紹了java -jar命令的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 在ssm中使用ModelAndView跳轉(zhuǎn)頁面失效的解決

    在ssm中使用ModelAndView跳轉(zhuǎn)頁面失效的解決

    這篇文章主要介紹了在ssm中使用ModelAndView跳轉(zhuǎn)頁面失效的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • springBoot 插件工具熱部署 Devtools的步驟詳解

    springBoot 插件工具熱部署 Devtools的步驟詳解

    這篇文章主要介紹了springBoot 插件工具 熱部署 Devtools,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java利用Redis實(shí)現(xiàn)高并發(fā)計(jì)數(shù)器的示例代碼

    Java利用Redis實(shí)現(xiàn)高并發(fā)計(jì)數(shù)器的示例代碼

    這篇文章主要介紹了Java利用Redis實(shí)現(xiàn)高并發(fā)計(jì)數(shù)器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • java保證一個(gè)方法只能執(zhí)行一次的問題

    java保證一個(gè)方法只能執(zhí)行一次的問題

    這篇文章主要介紹了java保證一個(gè)方法只能執(zhí)行一次的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • spring security動(dòng)態(tài)配置url權(quán)限的2種實(shí)現(xiàn)方法

    spring security動(dòng)態(tài)配置url權(quán)限的2種實(shí)現(xiàn)方法

    對于使用spring security來說,存在一種需求,就是動(dòng)態(tài)去配置url的權(quán)限,即在運(yùn)行時(shí)去配置url對應(yīng)的訪問角色。下面這篇文章主要給大家介紹了關(guān)于spring security動(dòng)態(tài)配置url權(quán)限的2種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2018-06-06
  • Java Builder Pattern建造者模式詳解及實(shí)例

    Java Builder Pattern建造者模式詳解及實(shí)例

    這篇文章主要介紹了Java Builder Pattern建造者模式詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評論