SpringMVC工作流程分析
SpringMVC框架是一个基于请求驱动的Web框架,并且使用了前端控制器
模型来进行设计,再根据请求映射规则
分发给相应的页面控制器进行处理。
一般来说,SpringMVC开发过程如下所示:
1、配置DispatcherServlet前端控制器
2、开发处理具体业务逻辑的Handler(@Controller、@RequestMapping)
3、xml配置⽂件配置controller扫描,配置SpringMVC三⼤件
4、将xml⽂件路径告诉SpringMVC(DispatcherServlet)
Spring MVC请求处理流程
流程说明:
第⼀步:⽤户发送请求⾄前端控制器DispatcherServlet
第⼆步:DispatcherServlet收到请求调⽤HandlerMapping处理器映射器
第三步:处理器映射器根据请求Url找到具体的Handler(后端控制器),⽣成处理器对象及处理器拦截器(如果有则⽣成)⼀并返回DispatcherServlet
第四步:DispatcherServlet调⽤HandlerAdapter处理器适配器去调⽤Handler
第五步:处理器适配器执⾏Handler
第六步:Handler执⾏完成给处理器适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView,ModelAndView是SpringMVC框架的⼀个底层对象,包括Model和View
第⼋步:前端控制器请求视图解析器去进⾏视图解析,根据逻辑视图名来解析真正的视图。
第九步:视图解析器向前端控制器返回View
第⼗步:前端控制器进⾏视图渲染,就是将模型数据(在ModelAndView对象中)填充到request域
第⼗⼀步:前端控制器向⽤户响应结果
总结
1、 客户端发送请求到后端,然后DispatcherServlet通过统一拦截到请求然后传递给HandlerMapping处理器映射器
2、HandlerMapping根据Url找到对应的Handler,传给HandlerAdapter
3、 HandlerAdapter调用Handler进行结果的查询
注:处理器映射求和适配器使用纾解的话包含在了注解驱动中,不需要在单独配置
4、将结果传递给ModelAdnView中进行解析封装返回给view
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)
5、将view返回给request中响应用户结果