SpringMVC概念及原理
目录
什么是MVC
MVC是模型、视图、控制器的简写,是一种软件设计规范。最典型的MVC框架是JSP+Servlet+JavaBean
什么是SpringMVC
Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。
SpringMVC的特点
- 轻量级,简单易学
- 高效,基于请求响应的MVC框架
- 与Spring兼容性好,无缝结合
- 约定大于配置
- 功能强大:Restful、数据校验、格式化、本地化、主题等
- 简洁灵活
SpringMVC的核心
就是这个DispatcherServlet,因此可以说SpringMVC底层就是Servlet
DispatcherServlet(中心控制器)的作用是将请求分发到不同的处理器。
SpringMVC的原理
基本原理
当用户发起请求时,会被前置的中心控制器拦截。中心控制器根据请求参数生产代理请求,找到请求对应的实际控制器,实际的控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制器,控制器使用模型渲染视图得到结果,然后将得到的结果返回给中心控制器,中心控制器再讲结果返回给请求者。
执行原理
- 1.DispatcherServlet表示前置控制器,是SpringMVC的控制中心,接受并拦截用户发出的请求。一个为http://localhost:8080/SpringMVC/hello的URL地址表示请求位于本地服务器8080端口上的SpringMVC站点的hello控制器地址
- 2.HandlerMapping为处理器映射。前置控制器调用HandlerMapping时,HandlerMapping会根据请求的Url查找Handler
- 3.HandlerExecution表示具体的Handler,作用是根据url查找控制器,例如hello
- 4.HandlerExecution将解析后的信息传递给前置控制器
- 5.前置控制器通过HandlerAdapter(处理器适配器)找到具体的Controller执行
- 6.Controller将处理好的具体执行信息(ModelAndView)返回给HandlerAdapter
- 7.HandlerAdapter将ModelAndView返回给前置控制器
- 8.前置控制器调用视图解析器来解析HandlerAdapter传递的逻辑视图名
- 9.视图解析器将解析将解析好的逻辑视图名传给前置控制器
- 10前置控制器根据视图解析器传递的视图结果,调用具体的视图显示给用户。