介绍
SpringMVC 是一个轻量级的 MVC 框架,可以帮助我们进行更简洁的 Web 层的开发,并且它天生与 Spring 框架集成。
- M(Model):数据层,也就是 dao 和 bean。
- V(View):视图层,用于展示模型中的数据。
- C(Controller):接受用户请求,并将请求发送至 Model,最后返回数据给请求方。
组件
SpringMVC 的核心组件包括:
- DispatcherServlet:中央处理器,负责接收请求、分发,并给予客户端响应。
- HandlerMapping:Handler 映射器,根据 URL 去匹配查找能处理的 Handler,并会将请求涉及到的拦截器和 Handler 一起封装。
- HandlerAdapter:Handler 适配器,根据 HandlerMapping 找到的 Handler,适配器负责 Handler 的执行。
- Handler:实际处理请求的组件。
- ViewResolver:视图解析器,解析并渲染真正的视图,并传递给 DispatcherServlet 用于响应。
工作原理
SpringMVC 的工作流程如下:
- 客户端(浏览器)发送请求, DispatcherServlet 拦截请求。
- DispatcherServlet 根据请求信息调用 HandlerMapping。HandlerMapping 根据 URL 去匹配查找能处理的 Handler(也就是 Controller 控制器) ,并会将请求涉及到的拦截器和 Handler 一起封装。
- DispatcherServlet 调用 HandlerAdapter 适配器执行 Handler 。
- Handler 完成对用户请求的处理后,会返回一个 ModelAndView 对象给 DispatcherServlet,包含了数据模型以及相应的视图的信息。Model 是返回的数据对象,View 是个逻辑上的 View。
- ViewResolver 会根据逻辑 View 查找实际的 View。
- DispaterServlet 把返回的 Model 传给 View(视图渲染)。
- 把 View 返回给请求者(浏览器)。