zoukankan      html  css  js  c++  java
  • SpringMVC的工作流程

    处理模型的两种方式

    image
    image

    工作流程

    image
    image

    1、 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。
    2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知)
    3、DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller
    4、HandlerAdapter处理器适配器去执行Controller并得到ModelAndView(数据和视图),并层层返回给DispatcherServlet
    5、DispatcherServlet将ModelAndView交给ViewReslover视图解析器解析,然后返回真正的视图。
    6、DispatcherServlet将模型数据填充到视图中
    7、DispatcherServlet将结果响应给用户

    组件说明

    DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,组件的调用由它统一调度。
    HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应的后端处理器 Handler。也就是说它知道处理用户请求的后端处理器,但是它并不执行后端处理器,而是将处理器告诉给中央处理器。
    HandlerAdapter:处理器适配器,它调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象。
    ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP)。
    Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的 Controller 类。

    配置DispatchServlet

    image

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!--classpath:springmvc-servlet.xml => 在classpath下找文件-->
            <!--classpath*:springmvc-servlet.xml => 在所有包下找文件-->
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
    </servlet>
    <!--/ 匹配所有的请求,(不包括.jsp)-->
    <!--/* 匹配所有的请求,(包括.jsp)-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
  • 相关阅读:
    【python ----集合练习】
    【python ---字典练习】索引 增删改 嵌套
    词频统计
    枚举
    【python--集合】增删改 交集 差集 并集 反交集 子集和超集
    迭代器和迭代对象 生成器 推导式
    tuple 元组
    【python--字典】 字典的拆包
    Python -- 函数
    Python -- 文件的copy以及读写
  • 原文地址:https://www.cnblogs.com/kaka-qiqi/p/14550701.html
Copyright © 2011-2022 走看看