最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC五大組件與執(zhí)行原理分析總結(jié)

 更新時間:2023年01月12日 15:20:27   作者:百思不得小趙  
這篇文章主要介紹了SpringMVC五大組件與執(zhí)行原理分析總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧

Spring MVC是包含在spring中的一個基于MVC設(shè)計思想的Web應(yīng)用程序框架,目的是簡化開發(fā)工作,提高開發(fā)效率。

優(yōu)點

  • 和Spring框架無縫集成,能直接使用Spring的IoC容器、AOP支持;
  • 提供了多種將請求URL映射到控制器的機制;并支持參數(shù)的類型轉(zhuǎn)換,自動裝載,校驗等功能;
  • 具有強大的擴展性,可根據(jù)需要方便的擴展框架的功能。

SpringMVC 五大組件

  • DispatcherServlet 負責分發(fā)請求(前端(核心)控制器)
  • HandlerMapping 負責根據(jù)請求 找到對應(yīng)的控制器(處理器映射器)
  • Controller 處理請求的控制器
  • ModelAndView 封裝數(shù)據(jù)信息以及視圖信息
  • ViewResolver 通過處理找到對應(yīng)的頁面(視圖解析器)

1、DispatcherServlet(前端(核心)控制器)

DispatcherServlet 是SpringMVC 最核心的一個控件。它是前端核心控制器,在web.xml中進行相關(guān)的配置。它可以將發(fā)送過來的請求進行匹配操作,再進行攔截。將攔截下來的所有請求根據(jù)對應(yīng)的規(guī)則發(fā)送到對應(yīng)的Controller進行處理。它是前端控制器設(shè)計模式的實現(xiàn),能夠提供Spring Web MVC的集中節(jié)點,而且負責職責的分派,而且與Spring IoC容器無縫集成。

配置DispatcherServlet :

<!-- 配置前端控制器,配置Servlet -->
<servlet>
     <servlet-name>springMvc</servlet-name>
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     <init-param>
          <param-name>contextConfigLocation</param-name>
           <param-value>classpath:springmvc.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
</servlet>
<!--配置請求路徑-->
<servlet-mapping>
    <servlet-name>springMvc</servlet-name>
    <url-pattern>*.form</url-pattern>
</servlet-mapping>

DispatcherServlet配置在web.xml文件中。init-param為Servlet啟動所需參數(shù)。DispatcherServlet會讀取初始shucontextConfigLocation參數(shù)里面的值從而獲取springmvc的配置位置自啟動容器

2、HandlerMapping(處理器映射器)

HandlerMapping 是處理器映射,它的關(guān)鍵作用是將請求進行派發(fā),負責請將求與控制器建立互相對應(yīng)的關(guān)系。它最終由 DispatcherServlet 調(diào)用,DispatcherServlet 會從容器中取出所有 HandlerMapping 實例并遍歷,讓 HandlerMapping 實例根據(jù)自己實現(xiàn)類的方式去嘗試查找 Handler。它標明了路徑與Controller的對應(yīng)關(guān)系,不同的路徑訪問不同的Controller

配置HandlerMapping :

<!--開啟mvc注解掃描-->
<mvc:annotation-driven/>
<!--創(chuàng)建Controller  bean-->
<bean id="helloController" class="包名+類名"/>
<bean class="org.springframework.web.servlrt.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="/hello">helloController</prop>
        </props>
    </property>
</bean>

3、Controller(處理請求的控制器)

處理請求的控制器,負責處理由DispatcherServlet 分發(fā)的請求,把用戶請求的數(shù)據(jù)發(fā)送到業(yè)務(wù)處理層處理之后封裝成一個Model ,然后把該Model 返回給對應(yīng)的View 進行展示。它實際上就是用來處理業(yè)務(wù)邏輯的Java類。

配置Controller類 :

@Controller
public class DataController {
    @RequestMapping("getData")
    public ModeAndView hello(String Id) {
        System.out.println("hello");
        return new ModeAndView("hello")
    }
}

4、ModelAndView(封裝數(shù)據(jù)和視圖信息)

ModelAndView 是進行封裝數(shù)據(jù)信息和視圖信息的模型。使用ModelAndView類用來存儲處理完后的結(jié)果數(shù)據(jù)。ModelAndView中的Model代表模型,View代表視圖,很好地解釋了該類的作用。業(yè)務(wù)處理器調(diào)用模型層處理完用戶請求后,把結(jié)果數(shù)據(jù)存儲在該類的model屬性中,把要返回的視圖信息存儲在該類的view屬性中,然后返回給SpringMVC框架??蚣芡ㄟ^調(diào)用配置文件中定義的視圖解析器,對該對象進行解析,最后把結(jié)果數(shù)據(jù)顯示在指定的頁面上。

5、ViewResolver(視圖解析器)

視圖解析器ViewResolver 的主要作用是把一個邏輯上的視圖名稱解析為一個視圖。

配置ViewResolver :

<!-- 配置視圖解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResour    ceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".html"></property>
</bean>

SpringMVC執(zhí)行原理

  • 發(fā)起請求到前端控制器DispatcherServlet
  • 前端控制器調(diào)用處理器映射器HandlerMapping查找Handler
  • 處理器映射器向前端控制器返回找到的Handler
  • 前端控制器調(diào)用處理器適配器HandlerAdapter執(zhí)行Handler
  • 處理器適配器去執(zhí)行Handler
  • Handler執(zhí)行完成給處理器適配器返回ModelAndView
  • 處理器適配器向前端控制器返回ModelAndView
  • 前端控制器請求視圖解析器ViewResolver去進行視圖解析
  • 視圖解析器向前端控制器返回視圖View
  • 前端控制器進行視圖渲染向用戶響應(yīng)結(jié)果

總結(jié)

DispatcherServlet(前端控制器)接收來自客戶端的URL請求。請求分發(fā)器借助處理器映射器(HandlerMapping)來查找對應(yīng)的處理器Handler(控制器),分發(fā)本次請求。請求分發(fā)器利用處理器適配器(HandlerAdapter)來執(zhí)行對應(yīng)的處理器(控制器)。處理器調(diào)用方法處理本次請求,返回模型視圖對象(ModelAndView)。請求分發(fā)器借助視圖解析器(ViewResolver)解析模型視圖,得到對應(yīng)的視圖(View)。請求分發(fā)器調(diào)用視圖中的方法,同時將數(shù)據(jù)模型交給視圖對象,完成給客戶端的應(yīng)答。

到此這篇關(guān)于SpringMVC五大組件與執(zhí)行原理分析總結(jié)的文章就介紹到這了,更多相關(guān)SpringMVC五大組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring 4.0新功能:@Conditional注解詳細介紹

    Spring 4.0新功能:@Conditional注解詳細介紹

    Spring Boot的強大之處在于使用了Spring 4框架的新特性:@Conditional注釋,此注釋使得只有在特定條件滿足時才啟用一些配置。下面這篇文章主要給大家介紹了關(guān)于Spring4.0中新功能:@Conditional注解的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09
  • Java Servlet請求重定向的方法

    Java Servlet請求重定向的方法

    這篇文章主要介紹了使用Java Servlet請求重定向的方法,幫助大家更好的理解和學習Java Servlet的相關(guān)知識,感興趣的朋友可以了解下
    2020-11-11
  • java實現(xiàn)小i機器人api接口調(diào)用示例

    java實現(xiàn)小i機器人api接口調(diào)用示例

    這篇文章主要介紹了java實現(xiàn)小i機器人api接口調(diào)用示例,需要的朋友可以參考下
    2014-04-04
  • 新手初學Java對象內(nèi)存構(gòu)成

    新手初學Java對象內(nèi)存構(gòu)成

    這篇文章主要介紹了深入理解JVM之Java對象的創(chuàng)建、內(nèi)存布局、訪問定位,結(jié)合實例形式詳細分析了Java對象的創(chuàng)建、內(nèi)存布局、訪問定位相關(guān)概念、原理、操作技巧與注意事項,需要的朋友可以參考下
    2021-07-07
  • SpringBoot整合Swagger3生成接口文檔的示例代碼

    SpringBoot整合Swagger3生成接口文檔的示例代碼

    Swagger 是一個 RESTful API 的開源框架,它的主要目的是幫助開發(fā)者設(shè)計、構(gòu)建、文檔化和測試 Web API,本文給大家介紹了SpringBoot整合Swagger3生成接口文檔的流程,并通過代碼講解的非常詳細,需要的朋友可以參考下
    2024-04-04
  • Java飛行記錄器JFR功能實現(xiàn)過程圖解

    Java飛行記錄器JFR功能實現(xiàn)過程圖解

    這篇文章主要介紹了Java飛行記錄器JFR功能實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • IDEA+Maven打JAR包的兩種方法步驟詳解

    IDEA+Maven打JAR包的兩種方法步驟詳解

    Idea中為一般的非Web項目打Jar包是有自己的方法的,下面這篇文章主要給大家介紹了關(guān)于IDEA+Maven打JAR包的兩種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Java編程文件遍歷之指定遍歷的層數(shù)詳細代碼

    Java編程文件遍歷之指定遍歷的層數(shù)詳細代碼

    這篇文章主要介紹了Java編程文件遍歷之指定遍歷的層數(shù)詳細代碼,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Java 實戰(zhàn)項目錘煉之小區(qū)物業(yè)管理系統(tǒng)的實現(xiàn)流程

    Java 實戰(zhàn)項目錘煉之小區(qū)物業(yè)管理系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)一個小區(qū)物業(yè)管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • Hystrix?Turbine聚合監(jiān)控的實現(xiàn)詳解

    Hystrix?Turbine聚合監(jiān)控的實現(xiàn)詳解

    微服務(wù)架構(gòu)下,?個微服務(wù)往往部署多個實例,如果每次只能查看單個實例的監(jiān)控,就需要經(jīng)常切換很不?便,在這樣的場景下,我們可以使??Hystrix?Turbine?進?聚合監(jiān)控,它可以把相關(guān)微服務(wù)的監(jiān)控數(shù)據(jù)聚合在?起,便于查看
    2022-09-09

最新評論

呼伦贝尔市| 宜章县| 项城市| 东乡| 政和县| 岑溪市| 祁东县| 彝良县| 庄河市| 屏东市| 静乐县| 辽阳市| 黑河市| 福州市| 定远县| 老河口市| 博白县| 永州市| 启东市| 华池县| 图木舒克市| 忻州市| 沁源县| 揭阳市| 邹平县| 航空| 郧西县| 盖州市| 綦江县| 濮阳县| 庄河市| 辰溪县| 维西| 青阳县| 富民县| 化德县| 晴隆县| 会昌县| 兴隆县| 永泰县| 阳江市|