美文网首页
SpringMVC执行流程

SpringMVC执行流程

作者: 若兮缘 | 来源:发表于2019-01-11 21:37 被阅读18次

详细执行流程

流程图
执行流程
  1. 首先客户端发起用户请求,以http形式进入到servlet容器中,servlet容器解析http数据成为一个endpoint对象,endpoint对象包含了请求url、http header以及解析完或者读取完的body数据流。
  2. 然后进入用户自定义的filter,在filter中用户可以对request进行处理,然后经过多个filter处理完后,进入到dispatcherservlet,也就是springmvc的入口。
  3. 然后会先进入到一些常用的解析器中,比如用来解析上传文件的MultipartResolver,如果请求是Multipart,也就是说header包含Multipart,springmvc就会解析上传的请求里面的上传文件,解析成字节流,以及把一些字符串k、v读出来,封装到对象中以供后续的comtroller进行接收,从解析器出来后,就是根据请求url寻找handler(controller)的过程。
  4. 由于我们在controller方法中使用requestMapping注解定义了url映射,在启动过程中springmvc就会将controller及对应的方法注册到HandlerMapping中,如果无法在handlerMapping中找到请求对应的controller,就会报404错误。
  5. 找到controller后进入到HandlerInterceptor,即拦截器,在拦截器中可以进行打印日志,身份鉴权等操作。
  6. 经过拦截器后,springmvc会对数据进行绑定(与方法参数进行绑定),及数据验证,反射调用我们的controller方法,执行方法体中的业务逻辑,执行完成后创建ModelAndView。model就是数据,此时的view只是个viewName(String)。
  7. 如果我们定义了异常处理器,在拦截器处理数据绑定、数据验证、业务处理这些所有环节,只要出现了异常,都会被异常处理器拦截,可以在异常处理中返回相应的错误页面。
  8. 如果正常执行,会通过ViewResolver进行view的资源定位,找到view之后就会进入渲染页面的过程,实际是将数据进行模版的变量替换的过程,数据来源于request,modelMap,session中。
  9. 渲染之后就经过dispatcherservlet返回,再经过filter后续的处理,最终通过servlet容器形式http响应返回给客户端。

核心执行流程

流程图
执行流程
  1. 客户端请求被DispatcherServlet(前端控制器)接收
  2. DispatcherServlet请求HandlerMapping查询Handler
  3. HandlerMapping根据请求URL查找Handler,将Handler和HandlerInterceptor以HandlerExecutionChain的形式一并返回给DispatcherServlet
  4. DispatcherServlet请求HandlerAdapter执行Handler
  5. HandlerAdapter调用Handler的方法做业务逻辑处理
  6. HandlerAdapter处理完Handler会生成一个ModelAndView对象
  7. 将ModelAndView对象返回给DispatcherServlet
  8. DispatcherServlet将获取的ModelAndView对象传给ViewResolver视图解析器,请求进行视图解析
  9. ViewResolver将逻辑视图解析成物理视图View,返回给DispatcherServlet
  10. DispatcherServlet根据View进行视图渲染(将模型数据填充到视图中)
  11. DispatcherServlet将渲染后的视图响应给客户端

相关文章

  • springMVC详解

    图解SpringMVC执行流程: SpringMVC执行流程:1.用户发送请求至前端控制器DispatcherSe...

  • 「面试高频题」SpringMVC执行流程

    SpringMVC执行流程 SpringMVC概述 Spring MVC属于SpringFrameWork的后续产...

  • Spring - MVC执行流程

    SpringMVC执行源代码 SpringMVC执行流程: 用户发送请求至前端控制器DispatcherServl...

  • springMVC

    springMVC 执行流程: [图片上传中。。。(1)] //springmvc重定向 需要ModelMap的对...

  • SpringMVC执行流程

    SpringMVC工作流程描述 1.用户向服务器发送请求,请求被springMVC前端控制器DIspatcherS...

  • SpringMVC执行流程

    SpringMVC工作流程: 1、用户向服务器发送请求,请求被前段控制器DispatcherServlet捕获。 ...

  • SpringMVC执行流程

    图片有些是百度上面找到的,感觉蛮好的,如果侵权了请告诉我首先说明一下,本章节是不会对SpringMVC里面的具体内...

  • SpringMVC执行流程

    1.用户向服务器发送请求,请求被SpringMVC的前端控制器DispatcherServlet捕获 2.利用Di...

  • springMvc执行流程

    springMvc概念springMvc请求流程springMvc组件详解springMvc常用注解springM...

  • springmvc执行流程

    springmvc时序图:

网友评论

      本文标题:SpringMVC执行流程

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