美文网首页
你了解SpringMVC的请求响应流程吗?

你了解SpringMVC的请求响应流程吗?

作者: 橙味菌 | 来源:发表于2019-08-09 09:59 被阅读0次

SpringMVC

SpringMVC是Spring的一个模块,封装了大部分Servlet开发的重复逻辑,简化了Web层的开发

优势

  • 提供一个DispatcherServlet——无需额外开发Servlet。

    • 封装为请求切换上下文的代码
    • 支持国际化和本地化,支持根据用户区域显示多国语言——DispatcherServlet中会根据请求的LocaleContext(区域上下文)设置响应LocaleContext
    • 自动绑定用户输入,并正确的转换数据类型
    • 返回值自动填装到响应中
    • 支持多种视图技术
  • 基于xml配置文件——修改无需重新编译应用程序。

  • 有spring支持——便于构造bean.

  • springMVC可以检验用户输入,若校验不通过,则重定向回输入表单。输入校验是可选的, 支持编码方式以

    及声明。关于这一点,springMVC内置了常见的校验器。

响应流程

SpringMVC响应流程
  1. Servlet容器(Tomcat)将请求(ServletRequest)传递给前置控制器(本质是Servlet),并调用其service方法

    通常通过配置 *.do 之类的映射使Tomcat将所有符合映射的请求分发给前置控制器

  2. 前置控制器—请求—>Handler映射器,处理器映射器生成Handler执行链

    Handler映射器通过url找到对应的拦截器和Handler,封装成链返回

  3. Handler映射器—Handler执行链—>前置控制器

  4. 前置控制器—请求与Handler执行链—>Handler适配器,适配器调用执行链生成ModelAndView

  5. Handler适配器—ModelAndView—>前置控制器

  6. 前置控制器—ModelAndView—>视图解析器,视图解析器根据ModelAndView渲染视图,生成具体View

  7. 视图解析器—具体View—>前置控制器,前置控制器根据具体View填充响应

  8. 前置控制器—响应(ServletResponse)—>Servlet容器

点此查看前置控制器源码解析

点此查看Handler映射器源码解析

点此查看Handler适配器源码解析

点此查看视图解析器源码解析

相关文章

网友评论

      本文标题:你了解SpringMVC的请求响应流程吗?

      本文链接:https://www.haomeiwen.com/subject/gfkcjctx.html