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

to be contined....


参考