SpringMVC执行流程

1.用户向服务器发送请求,请求被SpringMVC的前端控制器DispatcherServlet捕获

2.利用DispatcherServlet得到的请求的URL,获取请求的URI,根据请求URI看是否存在对应的映射,

 不存在;

     1:看是否配置mvc-default-servlet-hanler:

     2.如果没有配置,则控制台报映射查找不到客户端显示404

     3.如果配置,则执行目标资源(一般为静态资源,如:js.css.html)

  存在:

   执行以下流程

3.根据URI,调用HandlerMapping获得Handler对象以及Handler对象对应的拦截器),最后以HandlerExceptionChain对象的形式返回;

4.DisatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter

5.如果成功的获得HandlerAdapter,此时执行拦截器的preHandler

6.提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)方法

7.Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象

8.此时开始执行拦截器的postHandler()方法

9.根据返回的ModelAndView(此时判断是否存在异常:如果存在异常,则执行HandlerExceptionResolver进行异常处理),选择一个合适的ViewReslover返回给DispatcherServlet,根据ModelAndView渲染视图

10.在返回给客户端时需要执行拦截器的AfterCompletion方法【逆向】

11.将渲染结果返回给客户端

你可能感兴趣的:(SpringMVC执行流程)