Appearance
1、什么是SpringMVC
SpringMVC是Spring框架中的一个模块,用于构建Web应用程序,采用了经典的MVC设计模式。
MVC英文是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计规范。本质上也是一种解耦。核心思想是通过将业务逻辑、数据、显示分离来组织代码。
- 模型(Model):
- 模型代表应用程序的业务逻辑和数据。在SpringMVC中,模型通常是一个POJO(Plain Old Java Object)类,负责封装业务数据。
- 模型对象存储应用程序的状态,与数据库进行交互,执行业务逻辑等。
- 视图(View):
- 视图负责渲染模型数据并展示给用户。在SpringMVC中,视图通常是JSP(JavaServer Pages)或Thymeleaf等模板引擎。
- 视图负责将模型的数据以用户友好的方式呈现,与用户进行交互。
- 控制器(Controller):
- 控制器接收用户的请求并决定调用哪个业务逻辑处理方法。在SpringMVC中,控制器通常是一个类,使用注解来标识处理请求的方法。
- 控制器处理请求后,调用适当的业务逻辑,获取或更新模型数据,然后选择合适的视图来渲染响应。
- 前端控制器(Front Controller):
- SpringMVC 使用DispatcherServlet作为前端控制器,它是Servlet的一个子类,负责拦截所有进入应用的请求。
- DispatcherServlet将请求分发给相应的处理器(Controller),并将模型数据传递给合适的视图进行渲染。
- 处理器映射器和视图解析器:
- 处理器映射器负责将请求映射到合适的控制器,根据请求URL找到对应的处理器。
- 视图解析器负责将逻辑视图名解析为实际的视图对象,决定使用哪个视图来呈现模型数据。
2、SpringMVC的核心组件
DispatcherServlet:核心的中央处理器,负责接收请求、分发,并给予客户端响应。HandlerMapping:处理器映射器,根据 URL 去匹配查找能处理的Handler,并会将请求涉及到的拦截器和Handler一起封装。HandlerAdapter:处理器适配器,根据HandlerMapping找到的Handler,适配执行对应的Handler;Handler:请求处理器,处理实际请求的处理器。ViewResolver:视图解析器,根据Handler返回的逻辑视图 / 视图,解析并渲染真正的视图,并传递给DispatcherServlet响应客户端
3、SpringMVC的工作原理

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