文
章
目
录
章
目
录
得分点
DispatcherServlet、HandlerMapping、ModelAndView
标准回答
SpringMVC 的执行流程如下:
- 用户触发 HTTP 请求,该请求会被传递给前端控制器 DispatcherServlet。
- DispatcherServlet 通过 HandlerMapping 查找处理器映射器,并返回一个处理链(HandlerExecutionChain)。
- DispatcherServlet 将处理链中的处理器信息传递给处理器适配器 HandlerAdapter。
- HandlerAdapter 根据处理器信息找到并执行相应的处理器(通常称为 Controller)。
- 处理器执行完毕后返回一个 ModelAndView 对象,其中包含了 Model 数据模型和 View 视图信息。
- HandlerAdapter 接收到 ModelAndView 对象后将其返回给 DispatcherServlet。
- DispatcherServlet 收到 ModelAndView 对象后,会请求视图解析器 ViewResolver 来解析视图。
- ViewResolver 根据 View 信息找到对应的视图结果,并将其返回给 DispatcherServlet。
- DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的数据填充到 View 视图中的 request 域,生成最终的 View(视图)。
- 最终的视图负责将结果显示到浏览器(客户端)。
加分回答
在 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),这涉及具体的请求处理逻辑和最终呈现给用户的界面。