MVC的执行流程

MVC的执行流程

    • 1.执行服务器
    • 2.发送请求到tomcat
    • 3.响应客户端
    • 总结

1.执行服务器

MVC的执行流程_第1张图片

    根据配置创建DispatcherServlet对象。这个对象已创建,会根据contextConfigLocation的配置查找springmvc.xml文件

在这里插入图片描述
根据文件中的配置扫描包下的所有类
在这里插入图片描述
    根据@Controller注解,创建**Controller类的对象,并且创建Spring容器,将这个对象放在Spring容器中。
    springMvc还会扫描Controller类中注解了@RequestMapping的方法。将对应的方法和controller全部记录在内。

2.发送请求到tomcat

进入tomcat,会被DispatcatherServlet(核心前端控制器)接收。MVC的执行流程_第2张图片

    DispatcherServlet接受请求后,会解析请求,得到url(地址)。
    然后查找所有的记录好的映射器对象(@RequestMapping注解),找出映射的url是对应的映射地址。调用对应的方法(Service层)处理请求。

3.响应客户端

    当service方法执行完后。会有一个返回值,假设返回了一个字符串,DispatcherServlet会根据访问的结果响应给客户端。这里返回是一个字符串,并且由于注解了@ReponseBody,SpringMvc会直接使用输出流将返回的字符串返回给客户端。

总结

  1. 用户通过浏览器向服务器发送服务请求,请求会被Spring MVC的前端控制器 DispatcherServlet拦截。
  2. DsipatcherServlet拦截请求后,会调用HandlerMapping处理器处理映射。
  3. 处理器根据URL找到具体的处理器,生成处理器对象 及 处理器拦截器,一并返回给DispatcherServlet
  4. DispatcherServlet会通过返回的信息选择合适的HandlerAdapter
  5. HanandlerAdapter会调用执行Handler(处理器) 也就是Controller。
  6. Controller执行玩后会返回一个ModelAndView对象,对象包含试图名或包含模型和视图名。
  7. HandlerAdpater将返回值返回给DispatcherServlet
  8. DispatcherServlet会根据ModelAndView选择一个合适的视图解析器。
  9. 返回给前端浏览器。

MVC的执行流程_第3张图片

你可能感兴趣的:(JavaSE进阶,mvc,java,spring)