首页 > 技术文章 > spring mvc的执行流程

smallpandas 2018-10-20 11:10 原文

一:客户端向服务器发送请求,服务器接收

  如果请求匹配前端服务器DispatcherServlet的请求路径(在web.xml种指定),web容器将该请求转交给dispatcherServlet处理

二:DispatcherServlet对请求路径(URL、HTTP方法、请求报头文、请求参数、Cookie等)进行解析,得到请求资源标识符

      (比如我们发送一个url如下的请求http://localhost:8080/SpringMVC/hello.action,就会得到hello.action)

        然后根据url调用处理器映射器(HandlerMapping)获得该handler的所有对象(包含handler处理器对象和多个拦截器)

  最后以HandlerExecutionChain(['hændlə] [,eksi'kju:ʃən] [:tʃein])对象的形式返回

三:dispatcherSerlet获得上面返回的handler对象,把handler封装成适配器,以适配器接口调用处理器的功能方法(先执行拦截器的preHandler方法)

  返回ModleAndView(包含视图逻辑名和模型数据信息)

四:dispatcherServlet借助ViewResolver完成逻辑视图名到真实对象的解析

五:dispatcher得到视图对象View,使用它对模型数据进行渲染

六:客户端得到响应(可能是HTML页面、XML、JSON串、PDF……)

 

推荐阅读