3.Spring-MVC执行原理
执行原理图示
执行原理详图
执行流程分析
-
DispatcherServlet表示前置控制器,是整个SpringMVC的控制中。 用户发出请求,DispatcherServlet接受请求并拦截
- url : http://localhost:8080/SpringMVC/hello
- http://localhost:8080 : 服务器域名
- SpringMVC是部署在服务器上的web站点
- hello表示控制器Controller
- url : 请求位于服务器localhost:8080上的SpringMVC站点的hello控制器
-
handlerMapping为处理器映射 。由DispatcherServlet调用
HandlerMapping根据请求的url查找Handler
-
HandlerExecution
表示具体的Handler,根据url查找Controller,例如根据**/hello**查找hello控制器
-
HandlerExecution将解析后的信息传递给DispatcherServlet
-
HandlerAdapter表示处理器适配器
按照特定的规则执行Handler,适配(寻找Controller),实现了Controller接口的类都在适配范围
-
Handler
让具体的Controller执行
-
Controller
将具体的执行信息返回给HandlerAdapter,如ModelAndView
-
HandlerAdapter
将视图逻辑名或模型传递给DispatcherServlet
-
DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名
-
视图解析器将解析的视图名传递给DispatcherServlet
-
DispatcherServlet根据视图解析器解析的结果,调用具体的视图
-
视图呈现给用户
视图解析器的作用
- 获取ModelAndView的数据
- 解析ModelAndView的视图名字
- 拼接视图的名字,找到对应的视图
- 数据渲染到视图上,返回给DispatcherServlet调用视图