SpringMVC

SpringMVC

????????????????????????????

SpringMVC工作组件:

名称 作用
DispatcherServlet 前端控制器 不需要开发,由框架所提供 接受请求,响应结果,相当于转发器,中央处理器,为整个流程控制的中心 用户请求到达前端控制器,相当于MVC中的C,DispatcherServlet为整个流程控制的中心,由它调用其他组件调用用户的请求,DispatcherServlet组件降低了组件之间的耦合性
HandlerMapping 处理映射器 不需要开发,由框架提供 根据请求的URL查找Handler HandlerMapping负责根据用户请求找到Handler,即处理器,SpringMVC实现了根据不同的映射器实现不同的映射方式,比如:配置文件方式,实现接口方式,注解方式等
HandlerAdapter 处理适配器 按照特定规则(HandlerAdapter)去执行Handler 通过HandlerAdapter对处理器进行执行,这是适配器的应用,通过扩展适配器可以对更多类型的处理器进行执行
Handler 处理器 由工程师开发 注:编写Handler时,按照HandlerAdapter的要求去做,这样适配器才能正确的执行Handler Handler是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下 Handler对用户具体的请求进行处理。
View resolver 视图解析器 不需要开发,由框架提供 进行视图解析,根据逻辑视图名解析成真正的视图(view) View resolver 负责将处理结果生成view视图,View resolver 首先根据逻辑视图名解析成物理视图名,即具体的页面地址,在生产view视图对象,最后对View进行渲染将处理结果将处理结果通过页面展示给用户。SpringMVC提供了很多View视图类型,包括:jstlView、freemarkerView、pdfView等。
View 视图 View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)

SpringMVC的工作原理:

SpringMVC

SpringMVC的工作流程:

  1. 用户发送请求至前端控制器DispatcherServlet;
  2. DispatcherServlet收到请求调用HandlerMapping处理映射器;
  3. 处理映射器找到具体的处理器(可根据XML、注解的方式查找),生成处理器对象以及处理器拦截器(如果有则生产)一并返回给DispatcherServlet;
  4. DispatcherServlet调用HandlerAdapter处理器适配器;
  5. HandlerAdapter经过适配/调用具体的处理器Handler(Controller,也叫后端控制器);
  6. Controller执行完返回ModelAndView;
  7. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet;
  8. DispatcherServlet将ModelAndView的传给ViewReslover视图解析器;
  9. ViewReslover解析后返回具体的View;
  10. DispatcherServlet根据具体的视图渲染视图(即模型数据填充至视图中);
  11. DispatcherServlet响应用户;

MVC模式

MVC:MVC是一种设计模式

MVC原理图
SpringMVC

分析:
M-Model 模型(完成业务逻辑:由JavaBean构成,service+dao+entity)
V-View 视图(做界面的展示 jsp,html…)
C-Controller控制器(接受请求——>调用模型——>根据结果派发页面)

SpringMVC是什么

SpringMVC是一个MVC开源的框架,SpringMVC=struts2+Spring,SpringMVC 就相当于是Struts2加上Spring的整合(本质上来说SpringMVC是Spring的一个后续产品,其实就是在Spring原有的基础上,又提供了WEB应用的MVC模块,可以简单的把SpringMVC理解为Spring的一个子模块,类似于AOP,IOC这样的模块,所以根本不需要Spring整合)。

SpringMVC原理图

SpringMVC

前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。

处理器映射器(HandlerMapping):根据URL去查找处理器

处理器(Handler):(需要程序员去写代码处理逻辑的)

处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)

视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面