SpringMVC是Spring的一个模块,所以SpringMVC和Spring无需通过中间整合层进行整合。
SpringMVC是一个基于MVC的web框架。
SpringMVC执行原理图如下:
第一步:发起请求到前端控制器(DispatcherServlet);
第二步:前端控制器HandlerMapping根据xml配置、注解查找Handler;
第三步:处理器映射器HandlerMapping向前端控制器返回Handler;
第四步:前端控制器调用处理器适配器去执行Handler;
第五步:处理器适配器执行Handler;
第六步:Handler执行完成,给适配器返回ModelAndView;
第七步:处理器适配器向前端控制器返回ModelAndView;
ModelAndView是SpringMVC框架的一个底层对象,包括Model和View】
第八步:前端控制器请求视图解析器去进行视图解析;
【根据逻辑视图名解析真正的视图(jsp)】
第九步:视图解析器向前端控制器返回View对象;
第十步:前端控制器进行视图渲染;
视图渲染将模型数据(在ModelAndView对象中)填充到request域】
第十一步:前端控制器向用户响应结果;
相关重要组件:
1. 前端控制器DispatcherServlet:作用是:接收请求、响应结果,相当于转发器;
DispatcherServlet相当于中央处理器,有了它就减少了其他组件之间的耦合;
2. 处理器映射器HandlerMapping:作用是:根据请求的url查找Handler;
3. 处理器适配器HandlerAdapter:作用是:按照特定的规则(HandlerAdapter要求的规则)去执行Handler;
注意:编写Handler时按照HandlerAdapter的要求你去做,这样适配器才可以正确执行Handler;
4. 视图解析器ViewResolver:作用是:根据逻辑视图名解析真正的视图(View);
5. 视图 View:View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf ……);