Springmvc的执行流程是这个框架最核心的内容
视图阶段(老旧JSP等)
前后端分离阶段(接口开发,异步)
视图阶段(老旧JSP等)
1当请求放出,前端控制器接收请求,他相当于一个调度中心,所有的请求都要经过他,同时他也是被tomcat容器初始化的。当这个类加载之后,就会在内部加载一些组件类包括处理器映射器,处理器适配器,视图解析器
2在处理器映射器中,它保存的信息就是当前的路径和handler方法,handler可以理解为某一个控制器中的某一个方法,当处理器映射器处理完之后,就会返回给前端控制器,但是返回的并不是当前的某一个类名和方法名,而是处理器执行链。
3在执行某一个方法的时候,有可能出现拦截器,先走拦截器,才会去执行这个具体的控制器中的这个方法,其实handler就是控制器中的这个方法,假如没有拦截器,那么现在就要走处理器适配器,来去执行handler。
4当请求执行handler时,最终处理器适配器就能找到具体的方法去执行handler(某一个控制器中的某一个方法),并且最终还是会返回给处理器适配器
注意:为什么不能由前端控制器直接去执行handler,而是要通过处理器适配器呢?
在处理器适配器中做了两个非常重要的事情,1是处理参数,2是处理返回值
处理参数
在controller中,有许多方法,每一个方法上都有可能会有参数,可能是作为形参,可能是在路径上的,每个参数的形式或者类型是不一样的,那怎么能保证可以正常的接收呢?其实在处理器适配器中有一些对应的处理参数的类型转换器,最终方法才能正确的去接收这些参数
处理返回值
方法可能返回user,可以返回字符串,返回集合,返回ModleAndView还有各种返回值,那这些返回值是如何响应到前端的呢 ,其实也是通过处理器适配器处理的
前后端分离阶段(接口开发,异步)
面试回答