SpringMVC框架的作用

SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器(C),然后通过模型对象(M),分派器来展示请求结果视图(V)。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。

SpringMVC框架的核心组件

在SpringMVC框架中,核心组件有:

  • DispatcherServlet:接收所有请求的Servlet(不包括例如css、js等),并且根据请求路径分发到各控制器;

  • HandlerMapping:记录请求路径与控制器或处理请求的方法之间的映射关系;

  • Controller:具体处理请求,确定如何响应的组件;

  • ModelAndView:控制器的返回结果,其中,Model表示数据,View表示最终负责响应的视图组件的名称;

  • ViewResolver:根据视图组件名称得到具体的视图组件。

运行流程:

  • (1)客户端(浏览器)发送请求,直接请求到DispatcherServlet。

  • (2)DispatcherServlet 根据请求信息调用HandlerMapping,解析请求对应的 Handler。

  • (3)解析到对应的 Handler(也就是我们平常说的Controller 控制器)后,开始由 HandlerAdapter 适配器处理。

  • (4)HandlerAdapter 会根据 Handler来调用真正的处理器开处理请求(此处handler是代理对象,可能会执行AOP),并处理相应的业务逻辑。

  • (5)处理器处理完业务后,会返回一个 ModelAndView 对象,Model 是返回的数据对象,View 是个逻辑上的 View。

  • (6)ViewResolver 会根据逻辑 View 查找实际的 View。

  • (7)DispaterServlet 把返回的 Model 传给 View(视图渲染)。

  • (8)把 View 返回给请求者(浏览器)