1.开始
2.前端控制器:DispatcherServlet(框架提供)
3.处理器映射器:HandlerMappting(框架提供)
4.处理器适配器:HandlerAdapter(框架提供)
5.处理器:Handle(开发人员)
6.视图解析器:ViewResolver(框架提供)
7.视图:View:(开发人员)
8.结束
步骤:
第一步:用户发起request请求,请求至DispatcherServlet前端控制器。
第二步:DispatcherServlet前端控制器请求HandlerMapping处理器映射器查找Handler,DispatcherServlet前端控制器,相当于中央调度器,各各组件都和前端控制器进行。交互,降低了各各组件之间耦合度。
第三步:HandlerMapping处理器映射器,根据url及一些配置规则(xml配置、注解配置)查找Handler,将Handler返回给DispatcherServlet前端控制器。
第四步:DispatcherServlet前端控制器调用适配器执行Handler,有了适配器通过适配器去扩展对不同Handler执行方式(比如:原始servlet开发,注解开发)。
第五步:适配器执行Handler,Handler是后端控制器,当成模型。
第六步:Handler执行完成返回ModelAndView,ModelAndView:springmvc的一个对象,对Model和view进行封装。
第七步:适配器将ModelAndView返回给DispatcherServlet。
第八步:DispatcherServlet调用视图解析器进行视图解析,解析后生成view,视图解析器根据逻辑视图名解析出真正的视图。View:springmvc视图封装对象。
第九步:ViewResolver视图解析器给前端控制器返回view。
第十步:DispatcherServlet调用view的渲染视图的方法,将模型数据填充到request域。
第十一步:DispatcherServlet向用户响应结果返回JSP页面或者Json数据。
前端控制器(也称总控制器),把请求给转发到具体的控制类。
映射处理器,负责映射中央处理器转发给controller时的映射策略,一共三种:
按着controller的name来映射寻找。SimpleUrlHandlerMapping :
按着简单url来映射寻找。ControllerClassNameHandlerMapping:
控制类的类名控制器,访问时类名首字母需要小写。
具体处理请求的控制器。
服务层返回的数据和视图层的封装类。
视图解析器,解析具体的视图。