SpringMVC是什么: 

  SpringMVC是一个MVC的开源框架,SpringMVC=Struts2+Spring,相当于Struts2与Sring的整合。关于SpringMVC和Spring的关系,可以说SpringMVC是Spring的一个后续产品,是Spring在原有基础上,又提供了web应用的MVC模块。也可以简单的把SpringMVC理解为是Spring的一个模块(类似AOP,IOC这样的模块)。

SpringMVC原理图:

spring EL 映射map对象_spring EL 映射map对象

工作流程:

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

组件说明:
1、前端控制器---DispatcherServlet
     DispatcherServlet是MVC模式中的C,是整个流程控制的中心,相当于转发器,中央处理器。 用户发出请求,首先到达DispatcherServlet,由它调用其它组件处理用户的请求,它的存在降低了组件之间的耦合性。

2、处理器映射器---HandlerMapping
      HandlerMapping负责根据用户请求(url)找到Handler(处理器),SpringMVC提供了不同的映射器实现不同的映射方式。

包括:配置文件方式,实现接口方式,注解方式等。

3、处理器适配器---HandlerAdapter
      按照HandlerAdapter要求的规则去执行Handler,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

4、处理器---Handler
     Handler也叫后端控制器(Controller),对用户的请求进行具体处理,因此需要工程师根据业务需求开发Handler。

注意:编写Handler需要遵守HandlerAdapter的规则,不然适配器可能无法正确执行Handler。

5、视图解析器---ViewResolver
作用:ViewResolver负责将处理结果生成View视图,首先根据逻辑视图名解析成物理视图名(具体页面地址),再生成View对象,最后对View进行渲染将处理结果通过页面展示给用户。 SpringMVC框架提供了很多的View视图类型。

包括:jstlView、freemarkerView、pdfView等。

6、视图---View
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf),需要工程师开发JSP或HTML页面。

关于SpringMVC的注解方式,这里不做介绍了。。

需要了解的可以参考: