Skip to content

Spring学习_SpringMVC

1、什么是SpringMVC

SpringMVC是Spring框架中的一个模块,用于构建Web应用程序,采用了经典的MVC设计模式。

MVC英文是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计规范。本质上也是一种解耦。核心思想是通过将业务逻辑、数据、显示分离来组织代码。

  1. 模型(Model):
    • 模型代表应用程序的业务逻辑和数据。在SpringMVC中,模型通常是一个POJO(Plain Old Java Object)类,负责封装业务数据。
    • 模型对象存储应用程序的状态,与数据库进行交互,执行业务逻辑等。
  2. 视图(View):
    • 视图负责渲染模型数据并展示给用户。在SpringMVC中,视图通常是JSP(JavaServer Pages)或Thymeleaf等模板引擎。
    • 视图负责将模型的数据以用户友好的方式呈现,与用户进行交互。
  3. 控制器(Controller):
    • 控制器接收用户的请求并决定调用哪个业务逻辑处理方法。在SpringMVC中,控制器通常是一个类,使用注解来标识处理请求的方法。
    • 控制器处理请求后,调用适当的业务逻辑,获取或更新模型数据,然后选择合适的视图来渲染响应。
  4. 前端控制器(Front Controller):
    • SpringMVC 使用DispatcherServlet作为前端控制器,它是Servlet的一个子类,负责拦截所有进入应用的请求。
    • DispatcherServlet将请求分发给相应的处理器(Controller),并将模型数据传递给合适的视图进行渲染。
  5. 处理器映射器和视图解析器:
    • 处理器映射器负责将请求映射到合适的控制器,根据请求URL找到对应的处理器。
    • 视图解析器负责将逻辑视图名解析为实际的视图对象,决定使用哪个视图来呈现模型数据。

2、SpringMVC的核心组件

  • DispatcherServlet核心的中央处理器,负责接收请求、分发,并给予客户端响应。
  • HandlerMapping处理器映射器,根据 URL 去匹配查找能处理的 Handler ,并会将请求涉及到的拦截器和 Handler 一起封装。
  • HandlerAdapter处理器适配器,根据 HandlerMapping 找到的 Handler ,适配执行对应的 Handler
  • Handler请求处理器,处理实际请求的处理器。
  • ViewResolver视图解析器,根据 Handler 返回的逻辑视图 / 视图,解析并渲染真正的视图,并传递给 DispatcherServlet 响应客户端

3、SpringMVC的工作原理

image.png

流程说明(重要):

  1. 客户端(浏览器)发送请求, DispatcherServlet拦截请求。
  2. DispatcherServlet 根据请求信息调用 HandlerMappingHandlerMapping 根据 URL 去匹配查找能处理的 Handler(也就是我们平常说的 Controller 控制器) ,并会将请求涉及到的拦截器和 Handler 一起封装。
  3. DispatcherServlet 调用 HandlerAdapter适配器执行 Handler
  4. Handler 完成对用户请求的处理后,会返回一个 ModelAndView 对象给DispatcherServletModelAndView 顾名思义,包含了数据模型以及相应的视图的信息。Model 是返回的数据对象,View 是个逻辑上的 View
  5. ViewResolver 会根据逻辑 View 查找实际的 View
  6. DispaterServlet 把返回的 Model 传给 View(视图渲染)。
  7. View 返回给请求者(浏览器)

to be contined....


参考