Spring MVC架构原理分析
执行过程如下:
第一步:发起请求到前端控制器 DispatcherServlet;
第二步:前端控制器请求 HandlerMapping,查找对应的处理器 Handler;
可以根据xml配置、注解进行查找 Handler
第三步:处理器映射器向前端控制器返回 Handler;
第四步:前端控制器调用处理器适配器HandlerAdapter执行 Handler;
第五步:处理器适配器执行 Handler;
第六步:Handler执行完成后给适配器返回ModelAndView;
第七步:处理器适配器向前端控制器返回ModelAndView;
ModelAndView是Spring MVC的一个底层对象,包括了model 和 view
第八步:前端控制器请求视图解析器 ViewResolver进行视图解析;
根据逻辑视图名解析成真正的视图,即jsp
第九步:视图解析器向前端控制器返回 View;
第十步:前端控制器进行视图渲染;
视图渲染就是将模型数据(在ModelAndView中)填充到request域
第十一步:前端控制器向用户响应结果,到这里就执行结束了
涉及到的重要的组件:
1. 前端控制器 DispatcherServlet(不需要程序员开发)
作用:接收请求,响应结果,相当于转发器 中央处理器
DispatcherServlet的存在降低了其他组件的耦合度
2. 处理器映射器 HandlerMapping(不需要程序员开发)
作用:根据请求的URL查找对应的Handler
3.处理器适配器 HandlerAdapter
作用:按照特定规则 ( HandlerAdapter要求的规则 ) 执行Handler
4.处理器 Handler(需要程序员开发)
注:编写Handler时应该按照HandlerAdapter的要求,这样适配器才可以正确执行Handler
5.视图解析器 ViewResolver(不需要程序员开发)
作用:根据逻辑视图名把ModelAndView解析成真正的视图(View)
6.视图 View(需要前端开发jsp)
作用:View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…等等)