SpringMvc的执行流程
视图阶段(jsp)
具体执行步骤
- 用户发送请求到前端控制器DispatcherServlet。
- DispatcherServlet接收到请求后,调用HandlerMapping(处理器映射器)。
- HandlerMapping会去找到具体的处理器,生成处理器对象以及处理器拦截器(如果有的话),再一起返回给DispatcherServlet。
- DispatcherServlet调用HandlerAdapter(处理器适配器);这一步是处理参数和返回值,因为每个接口的参数和返回值不一定是一样的。
- HandlerAdapter经过适配调用具体的处理器(Handler/Controller)
- Controller执行完毕后,返回ModelAndView对象。
- HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet。
- DispatcherServlet将ModelAndView传给ViewResolver(视图解析器)。
- ViewResolver解析完成后会返回具体的View(视图)。
- DispatcherServlet会根据View进行渲染视图(就是将模型数据填充到视图中)。
- DispatcherServlet响应用户。
可根据以下流程图进行理解。
前后端分离,接口开发
具体执行步骤(前五步都是一样的)
- 用户发送请求到前端控制器DispatcherServlet。
- DispatcherServlet接收到请求后,调用HandlerMapping(处理器映射器)。
- HandlerMapping会去找到具体的处理器,生成处理器对象以及处理器拦截器(如果有的话),再一起返回给DispatcherServlet。
- DispatcherServlet调用HandlerAdapter(处理器适配器);这一步是处理参数和返回值,因为每个接口的参数和返回值不一定是一样的。
- HandlerAdapter经过适配调用具体的处理器(Handler/Controller)
- 方法上添加了@ResponseBody。
- 通过HttpMessageConverter将返回结果转换为JSON并响应。
可根据以下流程图进行理解。