MVC 是一种设计模式,SpringMvc是spring的一个模块,基于MVC的一个框架,无需中间整合层来整合。Spring MVC 可以帮助我们进行更简洁的 Web 层的开发,并且它天生与 Spring 框架集成。Spring MVC 下我们一般把后端项目分为 Service 层(处理业务)、Dao 层(数据库操作)、Entity 层(实体类)、Controller 层(控制层,返回数据给前台页面)
DispatcherServlet:核心的中央处理器,负责接收请求、分发,并给予客户端响应。
HandlerMapping:处理器映射器,根据URL去匹配查找能处理的Handler,并会将请求涉及到的拦截器和Handler一起封装。
HandlerAdapter:处理器适配器,根据HandlerMapping找到Handler,适配执行对应的Handler;
Handler :请求处理器,处理实际请求的处理器。
ViewResolver :视图解析器,根据 Handler 返回的逻辑视图 / 视图,解析并渲染真正的视图,并传递给 DispatcherServlet 响应客户端。
具体工作流程
- 若客户端发送请求,DispatcherServlet拦截请求。
- DispatcherServlet根据请求信息调用HandlerMapping。HandlerMapping根据URL去匹配查找能处理的Cntroller控制器也就是Handler,并将请求涉及到的拦截器和Handler一起封装。
- DispatcherServlet然后调用HandlerAdapter适配执行Handler.
- Handler完成对用户请求的处理后,会返回一个ModelAndView对象给DispatcherServlet,包含了数据模型以及相应的视图的信息。Model是返回的数据对象,VIew是逻辑上的VIEW
- ViewResolver会根据逻辑View查找实际的View。
- DispaterServlet把返回的Model传给View渲染。
- 把View返回给请求者。