说一下Spring MVC的执行流程

Java面试 潘老师 8个月前 (09-06) 164 ℃ (0) 扫码查看

Java面试题:说一下Spring MVC的执行流程

得分点

DispatcherServlet、HandlerMapping、ModelAndView

标准回答

SpringMVC 的执行流程如下:

  1. 用户触发 HTTP 请求,该请求会被传递给前端控制器 DispatcherServlet。
  2. DispatcherServlet 通过 HandlerMapping 查找处理器映射器,并返回一个处理链(HandlerExecutionChain)。
  3. DispatcherServlet 将处理链中的处理器信息传递给处理器适配器 HandlerAdapter。
  4. HandlerAdapter 根据处理器信息找到并执行相应的处理器(通常称为 Controller)。
  5. 处理器执行完毕后返回一个 ModelAndView 对象,其中包含了 Model 数据模型和 View 视图信息。
  6. HandlerAdapter 接收到 ModelAndView 对象后将其返回给 DispatcherServlet。
  7. DispatcherServlet 收到 ModelAndView 对象后,会请求视图解析器 ViewResolver 来解析视图。
  8. ViewResolver 根据 View 信息找到对应的视图结果,并将其返回给 DispatcherServlet。
  9. DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的数据填充到 View 视图中的 request 域,生成最终的 View(视图)。
  10. 最终的视图负责将结果显示到浏览器(客户端)。

加分回答

在 Spring MVC 中涉及的组件包括 DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(处理器)、ViewResolver(视图解析器)以及 View(视图)。以下是这些组件的功能说明:

  • DispatcherServlet:作为前端控制器,它是整个流程的入口,负责统一分发请求,降低组件之间的耦合性,有利于组件的拓展。
  • HandlerMapping:处理器映射器,根据请求的 URL 路径,通过注解或 XML 配置,寻找匹配的处理器(Handler)信息。
  • HandlerAdapter:处理器适配器,根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的处理器(Handler)。
  • Handler:处理器,执行请求处理逻辑,并返回数据和视图信息,将其封装至 ModelAndView 对象中。
  • ViewResolver:视图解析器,解析逻辑视图名,将其转换成真正的视图 View(例如,通过 JSP 路径返回一个实际的 JSP 页面)。
  • View:视图,作为一个接口,支持不同的视图类型(如 JSP、FreeMarker、Excel 等)。

需要开发人员进行开发的是处理器(Handler,通常称为 Controller)和视图(View),这涉及具体的请求处理逻辑和最终呈现给用户的界面。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/javainterview/8816.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】