spring mvc运行原理

来源:互联网 发布:巫妖王 数据库 编辑:程序博客网 时间:2024/05/22 08:16

大家都知道对于spring mvc框架,最核心的就是DispatcherServlet。

那么DispatcherServlet到底能干些什么活呢,其实DispatcherServlet就是负责协调组织不同组件以完成请求处理并返回响应的工作。

spring mvc 处理请求的过程简单如下:

1.一个请求过来,首先去匹配DispatcherServlet的请求映射路径(web.xml中可配置,如:

      <servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/applicationContext-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

),如果匹配成功,则web容器将该请求转交给DispatcherServlet进行处理;

2.DispatcherServlet接收到请求后,将根据请求信息及HandlerMapping的配置找到处理请求的Handler;

3.通过HandlerAdapter对该Handler进行封装,再以统一的适配器接口调用Hander;

4.Handler完成业务逻辑的处理后,返回一个ModelAndView(包含视图逻辑名和模型数据信息)给DispatcherServlet;

5.DispatcherServlet借助ViewResoler完成逻辑视图名到真实视图对象的解析;

6.得到真实视图对象View后,DispatcherServlet使用这个View对ModerAndView中的模型数据进行视图渲染。

总结:可以发现整个过程DispatcherServlet担任了协调和组织不同组件,完成请求处理并返回响应的工作。