老生常谈:SpringMVC的请求流程

  1. Tomcat 将其映射到 Spring 的 DisptacherServlet 捕获
  2. DispatcherServlet 对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用 HandlerMapping 获得该 Handler 配置的所有相关的对象。(包括 Handler 对象和 Handler 对象对应的拦截器),最后以 HandlerExecutionChain 对象的形式返回
  3. DispatcherServlet 根据获得的 Handler ,选择一个合适的 HandlerAdapter 。(注:如果成功获得 HandlerAdapter 后,此时将开始执行拦截器的 preHandler(…)方法)
  4. 提取 Request 中的模型数据,填充 Handler 入参,开始执行 Handler(Controller)。在填充 Handler 入参的过程中,根据你的配置 Spring 将帮你做一些额外的工作:
    1. HttpMessageCoverter: 将请求消息(如Json,xml 等数据)转换成一个对象,将对象转换为指定的响应信息。
    2. 数据转换:对请求信息进行数据转换。如 String 转换成 Integer,Double 等
    3. 数据验证:验证数据的有效性(长度,格式等),验证结果存储到 BindingResult 或 Error 中
  5. Handler 执行完成后,向 DispatcherServlet 返回一个 ModelAndView 对象;
  6. 根据返回的 ModelAndView,选择一个合适的 ViewResolver (必须是已经注册到Spring容器中的ViewResolver)返回给 DispatcherServlet;
  7. ViewResolver 结合 Model 和 View,来渲染视图
  8. 将渲染结果返回给客户端

相关文章:

  • 2021-10-10
  • 2021-04-27
  • 2021-06-20
  • 2022-12-23
  • 2021-12-15
猜你喜欢
  • 2021-12-29
  • 2021-04-22
相关资源
相似解决方案