spring mvc原理

来源:互联网 发布:python 内存管理 编辑:程序博客网 时间:2024/06/04 19:13

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并返回给客户端

这里写图片描述