版权声明:本文为博主ExcelMann的原创文章,未经博主允许不得转载。
2、SpringMVC执行原理
作者:ExcelMann,转载需注明。
2.1、简要分析执行流程
- DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求之后,DispatcherServlet接收请求并拦截请求。
- 在这里,我们假设请求的url为:http://localhost:8080/SpringMVC/hello
- 如上的url将会被拆分为三部分:
- http://localhost:8080服务器域名
- SpringMVC部署在服务器上的web站点
- hello表示控制器
- 通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器
- HandlerMapping表示处理器映射。DispatcherServlet通过调用该处理器映射,然后该处理器映射根据请求的url查找Handler;
- HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello;
- HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等;
- DispatcherServlet调用HandlerAdapter(处理器适配器),其按照特定的规则去执行Handler;
- Handler让具体的Controller执行(这里Controller可以调用业务逻辑)
- Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView;
- HandlerAdapter将ModelAndView信息传递给DispatcherServlet;
- DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名;
- 视图解析器将解析的逻辑视图名传给DispatcherServlet;
- DispatcherServlet根据得到的逻辑视图名,调用具体的视图;
- 最终视图呈现给用户;
小结:
1-4步骤:根据url,查找对应的Handler和控制器映射;
5-8步骤:根据查找到的Handler和控制器映射,执行操作;
9-11步骤:操作得到的ModelAndView,将model的信息渲染到对应的view;