SpringMVC,执行流程,流程源码分析,url-pattern为“*.do”

在这里插入图片描述
在这里插入图片描述
在web.xml文件中,注册DispatchServlet
在这里插入图片描述
启动Tomcat时报错
在这里插入图片描述
如果给servlet-那么换名字:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动的时候,在初始化方法中创建SpringMVC容器对象,需要加载配置文件
在这里插入图片描述

自定义SpringMVC配置文件的 名称和位置:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在SpringMVC配置文件中:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

将jsp文件放入到WEB-INF目录之外,可以直接访问,为了保护,一般都放到了此目录下

在这里插入图片描述
在这里插入图片描述
为了方便
在这里插入图片描述
使用视图解析器,将访问的路径的前缀和后缀统一管理
在SpringMVC配置文件中:
视图解析器是由中央调度器调用的,不需要id
在这里插入图片描述
在这里插入图片描述
缺点:比较死板,前缀和后缀都是固定的。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
doService方法中
在这里插入图片描述
是中央调度器的核心方法。
在这里插入图片描述

在这里插入图片描述
处理器链:handler保存处理器对象,interceptors保存拦截器

在这里插入图片描述

dodispatch方法中,继续执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
handlerMappings中两个处理器映射器
在这里插入图片描述
在这里插入图片描述

检查是否以“/”开头,如果是,加到集合中,用于处理请求
在这里插入图片描述
继续跟程序
在这里插入图片描述
在这里插入图片描述
根据请求,得到处理器,放入到处理器执行链中
在这里插入图片描述
在这里插入图片描述
ps:自己的理解:首先加载配置文件中的bean,放入到处理器映射器容器里,当请求到来的时候,中央调度器将请求传入到处理器映射器,处理器映射器从自己的容器中找请求为key的处理器,将其放入到处理器执行链中。

接下来,将处理器执行链交给处理器适配器(HandleAdaptor),
从执行链中得到处理器,根据处理器,得到适配器
在这里插入图片描述
在这里插入图片描述
目前,有三个适配器:
在这里插入图片描述
在这里插入图片描述
遍历处理器适配器,查看是否与处理器匹配
执行第一个处理器适配器时:
在这里插入图片描述
查看处理器是否实现了HTTPRequestHandler借口
在这里插入图片描述
继续到第二个适配器
在这里插入图片描述
查看处理器是否实现了controller
在这里插入图片描述

PS:主要是检测,得到的处理器,到底实现了哪个接口?
当使用SimpleControllerHandlerAdapter
在这里插入图片描述
在这里插入图片描述
接下来,通过适配器执行处理方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将处理器转化为实现的接口,即controller,使用接口调用实现的方法
在这里插入图片描述
自定义的实现方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将得到的数据封装到ModelAndView中
在这里插入图片描述
在这里插入图片描述
疑问:2个处理器映射器,3个处理器适配器哪来的呢?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值