MVC的执行流程

1.执行服务器

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

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

2.发送请求到tomcat

进入tomcat,会被DispatcatherServlet(核心前端控制器)接收。在这里插入图片描述

    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. 返回给前端浏览器。

在这里插入图片描述

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值