SpringMVC是spring框架的一部分(子框架),是实现对Servlet技术进行封装。
SpringMVC工作原理图:
详细的工作流程:
- 用户向服务器发送请求,请求被**SpringMVC中央调度器(前端控制器)**DispaterServlet捕获;
- DispaterServlet对请求的URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用处理器映射器HandlerMapping。
- HandlerMappering获得该Handler配置的所有相关对象(包括Handler对象以及所对应的拦截器),加工成一个处理器执行链(后端控制器+拦截器);
- DispaterServlet带着处理器执行链交个一个合适的处理器适配器HandlerAdaptor;
- HandlerAdaptor调用合适的处理器Controller来进行执行一些操作;
- 处理器Controller执行完后会封装一个ModelAndView对象返回给处理器适配器。
- 处理器适配器将ModelAndView对象返回给前端控制器;
- 前端控制器根据ModelAndView对象选择合适的视图解析器ViewRelover(将逻辑视图拼接成物理视图),并把对象交给视图解析器;
- 视图解析器处理完后会封装一个View对象,并把View对象回传给前端控制器;
10.前端控制器调用和执行这个View对象到View视图,渲染视图(将数据显示到视图模板上);
11.将响应返回到服务器;