SpringMVC是什么

SpringMVC是SpringFramework的一部分,基于Java实现MVC的轻量级Web框架(

为什么要学SpringMVC

  • 轻量级,简单易学
  • 高效,基于请求响应的MVC框架
  • 与Spring兼容性好,无缝结合
  • 约定大于配置
  • 功能强大:RESTful风格,数据验证,格式化,本地化,主题等等
  • 简洁灵活
  • 用的人&公司多

中心控制器DispatcherServlet

SpringMVC围绕DispatcherServlet[调度servlet]设计,DispatcherServlet的作用是将请求分发到不同的处理器(自Spring2.5+JDK1.5开始,可用基于注解的controller声明)
SpringMVC-简介_spring

SpringMVC执行原理&流程

SpringMVC-简介_spring_02

  1. 【DispatcherServlet】:前置控制器,是整个SpringMVC的控制中心,用户发出请求,DispatcherServlet收到请求并拦截请求
    • 假设请求url为:
    • SpringMVC配置在服务器web站点
    • hello则表示控制器
    • 如上url则表示为:请求位于localhost:8080上的springmvc站点的hello控制器
  1. 【HandlerMapping】:处理器映射,DIspatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler
  2. 【HandlerExecution】:具体的Handler,主要作用是根据url查找控制器(如上url中的控制器hello)。
  3. HandlerExecution将解析后的信息传递给DispatcherServlet(如解析控制器映射等等)
  4. 【HandlerAdapter】:处理器适配器,按照特定规则执行Handler
  5. Handler让具体的Controller执行。
  6. 【Controller】将具体的执行信息返回给HandlerAdapter(如ModelAndVIew)。
  7. HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
  8. DispatcherServlet调用视图解析器(ViewResolver)解析HandlerAdapter传递的逻辑视图名。
  9. 视图解析器将解析的逻辑视图传给DispatcherServlet。
  10. DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。
  11. 将视图渲染呈现给用户
    【看到这,大概执行流程你应该已经了解了,现在可以对照流程码一下。没懂?多码几遍,自然就懂了(狗头保命)】