• springMVC工作流程


    (1)用户通过浏览器发送请求到前端控制器DispatcherServlet。
    (2)前端控制器直接将请求转给处理器映射器HandleMapping。
    (3)处理器映射器HandleMapping会根据请求,找到负责处理该请求的处理器,并将其封装为处理器
    执行链HandlerExecutionChina后返回给前端控制器DispatcherServlet。 (4)前端控制器DispatcherServlet根据处理器执行链中的处理器,找到能够执行该处理器的处理器适
    配器HandlerAdaptor。
    (5)处理器适配器HandlerAdaptor调用执行处理器Controller。
    (6)处理器Controller将处理结果及要跳转的视图封装到一个对象 ModelAndView 中,并将其返回给
    处理器适配器HandlerAdaptor。
    (7)处理器适配器直接将结果返回给前端控制器DispatcherServlet。
    (8)前端控制器调用视图解析器,将 ModelAndView 中的视图名称封装为视图对象。
    (9)视图解析器ViewResolver将封装了的视图View对象返回给前端控制器DispatcherServlet.
    (10)前端控制器DispatcherServlet调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对
    象。
    (11)前端控制器响应浏览器。

    组件:

    1.DispatcherServlet:前端控制器,也称为中央控制器或者核心控制器。
    用户请求的入口控制器,它就相当于 mvc 模式中的c,DispatcherServlet 是整个流程控制的中心,相当
    于是 SpringMVC 的大脑,由它调用其它组件处理用户的请求,DispatcherServlet 的存在降低了组件之
    间的耦合性。SpringMVC框架提供的该核心控制器需要我们在web.xml文件中配置。

    2.HandlerMapping:处理器映射器
    HandlerMapping也是控制器,派发请求的控制器。我们不需要自己控制该类,但是他是springmvc运
    转历程中的重要的一个控制器。 HandlerMapping负责根据用户请求找到 Handler 即处理器(也就是我
    们所说的 Controller),SpringMVC 提供了不同的映射器实现不同的映射方式,例如:配置文件方式,
    实现接口方式,注解方式等,在实际开发中,我们常用的方式是注解方式。

    3.Handler:处理器
    Handler 是继 DispatcherServlet 前端控制器的后端控制器,在DispatcherServlet 的控制下 Handler 对
    具体的用户请求进行处理。由于 Handler 涉及到具体的用户业务请求,所以一般情况需要程序员根据业
    务需求开发 Handler。(这里所说的 Handler 就是指我们的 Controller)

    4.HandlAdapter:处理器适配器
    通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展处理器适配器,支持更多
    类型的处理器,调用处理器传递参数等工作。

    5.ViewResolver:视图解析器
    ViewResolver 负责将处理结果生成 View 视图,ViewResolver 首先根据逻辑视图名解析成物理视图名
    称,即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用
    户。 SpringMVC 框架提供了很多的 View 视图类型,包括:jstlView、freemarkerView、pdfView 等。
    一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务
    需求开发具体的页面。

  • 相关阅读:
    hadoop 2.0 详细配置教程
    大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合
    KAFKA分布式消息系统
    element table组件懒加载
    vue将页面导出成pdf
    element upload上传前对文件专门bs64上传
    element table 通过selection-change选中的索引删除
    JavaScript实现Word、Excel、PPT在线预览
    数组对象位置对换
    textarea 根据光标位置添加内容
  • 原文地址:https://www.cnblogs.com/baicia/p/14718380.html
Copyright © 2020-2023  润新知