SpringMVC工作流程

491 阅读2分钟

概念

SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。

1、具体步骤

image.png

  • 1、首先用户发送请求到前端控制器,前端控制器根据请求来决定进入哪一个页面控制器进行处理并把请求委托给他。
  • 2、页面控制器收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModleAndView;
  • 3、前端控制器回收控制权,然后根据返回的View,选择相应的视图进行渲染,并把模型数据传入以便视图渲染
  • 4、前端控制器再次收回控制权,将相应返回给用户。

image.png

  • 1、发送请求到DispatcherServlet
  • 2、前端控制器请求HandlerMapper查找Handler(可以根据xml配置、注解进行查找)
  • 3、HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象,多个HandlerInterceptor拦截器对象),通过这种策略模式,很容易添加新的映射策略
  • 4、前端控制器调用HandlerAdapter去执行Handler
  • 5、HandlerAdapter将会根据适配的结果去执行Handler
  • 6、Handler执行完成后给适配器返回ModelAndView
  • 7、HandlerAdapter向DispatcherServlet返回ModelAndView
  • 8、DispatcherServlet请求viewResolver进行视图解析,通过这种策略可以更换其他的视图技术,只需要改变视图解析器
  • 9、视图解析器向DispatcherServlet返回view
  • 10、DispatcherServlet进行视图渲染,填充到request域中
  • 11、返回相应结果

2、总结核心开发步骤

  • 1、DispatcherServlet在web.xml中的部署描述,从而拦截到Spring Web MVC
  • 2、HandlerMapping的配置,从而将请求映射到处理器
  • 3、HandlerAdapter的配置,从而支持多种类型的处理器
  • 注:处理器映射请求和适配器使用纾解的话包括在了注解驱动中,不需要单独配置
  • 4、ViewResolver的配置,从而将逻辑视图名解析为具体视图技术
  • 5、处理器的配置,从而进行功能处理 View是一个接口,实现类支持不同的View类型(jsp,freemaker,pdf)