1、基本概念

  • Spring MVC 是 Spring 中的一个很重要的模块,主要赋予 Spring 快速构建 MVC 架构的 Web 程序的能力。
  • MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。
  • Spring MVC 下我们一般把后端项目分为 Service 层(处理业务)、Dao 层(数据库操作)、Entity 层(实体类)、Controller 层(控制层,返回数据给前台页面)。

Entity 层(实体类):每个类和数据表是一一对应的,表里的字段和类的属性也一一对应。

Dao 层(mapper层):主要实现的功能是对数据库的操作

Service 层:主要实现的功能是具体的业务逻辑,首先设计接口再设计其实现类

Controller 层:主要实现的功能是请求转发,接收前端传过来的参数,调用相应的service接收到返回值后再传给前端。

Model 1时代:整个 Web 应用几乎全部用 JSP 页面组成,只用少量的 JavaBean 来处理数据库连接、访问等操作。这个模式下 JSP 即是控制层(Controller)又是表现层(View)。

Model 2 时代:JSP是表现层(View)+Servlet是控制层(Controller)

2、Spring MVC工作原理

 步骤:

1、客户端(浏览器)发送请求,DispatcherServlet拦截请求。

2、DispatcherServlet 根据请求信息调用 HandlerMapping 。HandlerMapping 根据 uri 去匹配查找能处理的 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 返回给请求者(浏览器)

核心组件:

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