为什么使用SpringMVC?

  1. 轻量化,简单易学
  2. 高效,基于请求响应的MVC框架
  3. 与Spring兼容性好,无缝结合
  4. 约定大于配置
  5. 功能强大:restful\数据验证\格式化\本地化\主题等
  6. 简单灵活

image.png

DispatcherServlet

它作为MVC的核心,基于Servlet实现的,作用是分发调度请求,它帮我们封装了很多东西,例如视图解析器等

工作原理

image.png
image.png

  1. DispatcherServlet表示前置控制器,是整个springMVC的控制中心,用户发出请求,DispactherServlet接收请求并拦截请求
  2. HandlerMapping为处理器映射,DispatcherServlet调用,根据URL找Handler
  3. HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello
  4. HandlerExecution将解析后的信息传递给DispatherServlet,如解析控制器映射等
  5. HandlerAdapter表示处理适配器,其按照特定的规则去执行Handler
  6. Handler让具体的Controller执行
  7. Controller将具体的执行信息返回给HandlerAapter,如ModelAndView
  8. HandlerAdapter将ModelAndView传递给DispactherServlet
  9. DispactherServlet调用视图解析器(viewResolver)来解析ModelAndView
  10. 视图解析器将解析结果传给DispactherServlet
  11. DispactherServlet根据视图解析器的视图结果,调用具体的视图呈现给用户