SpringMVC执行流程

先说一下SpringMVC的九大核心组件
/这九大组件都是接口,每个接口都有非常多的实现类,所以这就是面向接口编程的好处,如果某个组件的功能不够用了,就可以实现接口,完成功能/
1:
/* 支持文件上传功能*/
private MultipartResolver multipartResolver;
2:
/区域解析器,支持国际化功能/
private LocaleResolver localeResolver;
3:
/支持主题功能,但是很少用/
private ThemeResolver themeResolver;
4:
/Handler映射,保存ruquest请求的映射信息/
private List handlerMappings;
5:
/Handler适配器,找到能处理目标类方法的适配器(适配器模式)/
private List handlerAdapters;
6:
/异常解析器,支持强大的异常解析功能/
private List handlerExceptionResolvers;
7:
/请求视图转换器,将用户的请求转成视图(jsp,html)/
private RequestToViewNameTranslator viewNameTranslator;
8:
/支持重定向携带数据功能/
private FlashMapManager flashMapManager;
9:
/视图解析器/
private List viewResolvers;

这九大组件在服务器启动的时候就初始化了,SpringMVC先去ioc容器里去找
这些组件,会根据组件的类型或id寻找。如果没有找到组件,就使用每个组件默认的配置。

执行流程:(围绕着九大组件展开而来)
前端控制器DispatcherServlet拦截客户端的reqeust请求,并解析请求的资源表示符也就是URL,然后

根据URL获取HandlerMapping,HandlerMapping就是request请求的目标Controller的映射,根据这个

HandlerMapping,调用HandlerAdapter(Handler适配器)获取能处理目标类(Controller)方法

的适配器,然后这个适配器就会调用它自己的handle方法执行目标方法,当执行完handle方法后,就

会返回ModelAndView对象,这个ModelAndView就是模型视图,它的内部就是一个ModelMap(map)

和View(一个View,Object),存储了转向地址(view存储转向地址)和用户要转递的值(map存储要传

递的值),而viewResolvers就负责解析这个ModelAndView对象,然后前端控制器转发到解析的view视图对象。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
最终就是这里解析的:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值