spring mvc的执行流程:
1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet。
web.xml中的相关配置:
<!-- springmvc的核心是一个servlet (我们通常称为前端控制器) -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- serlvet配置信息加载springmvc的配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2、DipatcherServlet接收到这个请求之后将根据请求的信息(URL、Http方法、请求报文头和请求参数Cookie等)去请求HandlerMapping处理器映射器。
3、HandlerMapping找到对应的Handler,然后把这个handler返回给DispatcherServlet。
4、前端控制器DispatcherServlet去调用处理器适配器HandlerAdapter去执行handler。
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图。DispatcherServlet会把ModelAndView传给ViewReslover视图解析器,将逻辑视图转化为真正的视图View。
7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端