SpringMVC-简介
SpringMVC是什么
SpringMVC是SpringFramework的一部分,基于Java实现MVC的轻量级Web框架(【官方文档】)
为什么要学SpringMVC
- 轻量级,简单易学
- 高效,基于请求响应的MVC框架
- 与Spring兼容性好,无缝结合
- 约定大于配置
- 功能强大:RESTful风格,数据验证,格式化,本地化,主题等等
- 简洁灵活
- 用的人&公司多
中心控制器DispatcherServlet
SpringMVC围绕DispatcherServlet[调度servlet]设计,DispatcherServlet的作用是将请求分发到不同的处理器(自Spring2.5+JDK1.5开始,可用基于注解的controller声明)
SpringMVC执行原理&流程
- 【DispatcherServlet】:前置控制器,是整个SpringMVC的控制中心,用户发出请求,DispatcherServlet收到请求并拦截请求。
-
- 假设请求url为:http://localhost8080/springmvc/hello
-
- SpringMVC配置在服务器web站点
-
- hello则表示控制器
-
- 如上url则表示为:请求位于localhost:8080上的springmvc站点的hello控制器
- 【HandlerMapping】:处理器映射,DIspatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。
- 【HandlerExecution】:具体的Handler,主要作用是根据url查找控制器(如上url中的控制器hello)。
- HandlerExecution将解析后的信息传递给DispatcherServlet(如解析控制器映射等等)
- 【HandlerAdapter】:处理器适配器,按照特定规则执行Handler。
- Handler让具体的Controller执行。
- 【Controller】将具体的执行信息返回给HandlerAdapter(如ModelAndVIew)。
- HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
- DispatcherServlet调用视图解析器(ViewResolver)解析HandlerAdapter传递的逻辑视图名。
- 视图解析器将解析的逻辑视图传给DispatcherServlet。
- DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。
- 将视图渲染呈现给用户
【看到这,大概执行流程你应该已经了解了,现在可以对照流程码一下。没懂?多码几遍,自然就懂了(狗头保命)】