前言
网上关于mvc原理的解析很多,但思想永远只有一个,在学习的过程中,不妨多找几篇文章来看,然后理解后自己写一篇,以作总结,并更好的理解。
结合图解
首先先看图,这里采用的是《Java EE互联网轻量级框架整合开发》一书中的图解,其实也可以上官网去找,不过我是基于这本书上理解的,所以就选这张了。
当SpringMVC启动的时候,就回去解析Mycontroller注解,识别到他是一个controller后,将其解析成为HandlerMapping,生成了对应的URI和请求的映射关系
步骤一:
首先,我们在浏览器输入地址,回车,发出请求
步骤二:
请求去到DispatcherServlet,然后根据URI去找对应的HandlerMapping,就是我们初始化的时候解析controller的mapping,找到后组织成为一个执行链——HandlerExcutionChain
步骤三、四:
生成的执行链到达DispatcherServlet通过请求类型找到RequestMappingHandlerAdapter,通过它去执行我们生成的执行链的内容,既我们controller中的内容,最终通过controller中的方法将ModelandView返回给DispatcherServlet
步骤五、六:
将返回的mv(modelandview)返回给DispatcherServlet,DispatcherServlet再通过视图解析器——InternalResourceViewResolver,通过视图解析器我们就可以得到最终所请求响应的页面,响应最终的请求。
就这样,整个SpringMVC的流程我们就走完了,以后我们所有的学习都是基于此的
小结
其实在实际的开发过程中,流程中很多细节我们都不需要去管,之所以要理解流程,这就相当于在代码编写的时候,有一个大纲,使得自己的目的更加明确,思维更加符合逻辑,而且理解原理永远都是我们所要重视的。