
Java基础面试题(17)
问题
说一下SpringMVC的执行流程。
解析
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。 执行流程如下图
执行流程大致分为一下五个步骤:
-
核心控制器捕获请求 用户向服务器发送请求,请求被Spring的前端控制器DispatcherServlet捕获。
-
获取Handler对象 DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI),然后根据URI,调用HandlerMapper,获得Handler配置的所有相关对象(包括Handler对象以及Handler对象对应的拦截器),最后HandkerExecutionChain对象的形式返回。
-
执行Handler DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter,提取request中的模型数据,填充Handler入参,开始执行Hadndler(Controller),Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象
-
选择ViewResolver DispatcherServlet根据返回对的ModelAndView对象,选择一个合适的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)
-
渲染视图并返回 通过ViewResolver结合Model和View,来渲染视图,DispatcherServlet将渲染结果返回给客户端。
结束,晚安各位!