SpringMvc10—B站学习—springmvc运行流程
springmvc运行流程
1.所有请求,前端控制器(DispatcherServlet)收到请求,调用doDispatch进行处理
2.根据HandlerMapping中保存的请求映射信息找到,处理当前请求的,处理器执行链(包含拦截器)
3.根据当前处理器找到他的HandlerAdapter(适配器)
4.拦截器的preHandle先执行
5.适配器执行目标方法,并返回ModelAndView
1.ModelAttribute注解标注的地方提前运行
2.执行目标方法的时候,确定目标方法用的参数
1.有注解
2.没有注解:
1.看是否Model或者Map以及其他的
2.如果是自定义类型
1.从隐含模型中看有没有,如果有就从模型中拿
2.如果没有就在看SessionAttributes标注的属性,如果是就从session中拿,拿不到就抛异常
3.都不是就利用反射创建内容
6.拦截器的postHandle执行
7.处理结果(页面渲染流程)
1.如果有异常就使用异常解析器处理异常,处理完 还会返回ModeelAndView
2.调用render进行页面渲染
1.视图解析器根据视图名找到 试图对象
2.试图对象调用render方法
3.执行拦截器的afterCompletion