springMVC流程
1.客户端向服务器发送http请求,web服务器对http请求进行解析,得到一个url,如果匹配上了前端控制器DispatcherServlet的映射路径,就将请求交给前端控制器处理。
2.前端控制器调用相应的方法的到处理器映射器HandlerMapping对象,根据接收到的请求来获得Handler对象以及它对应的拦截器。这里只是获得了Handler对象,并不会操作它,在springMVC中,是通过处理器适配器HandlerAdapter对Handler进行调用,控制的。
3.前端控制器根据处理器映射器返回的Handler对象,选择一个合适的HandlerAdapter,创建其对象实例,,如果有拦截器,执行拦截器中的preHandle()方法。
4.处理器适配器将Handler执行完返回的一个ModelAndView对象返回给前端控制器。
5.这时这个ModelAndView对象还只是一个逻辑视图,并不是真正的物理视图,需要前端控制器将这个ModelAndView对象交给视图解析器ViewResolver,将逻辑视图转化成真正的物理视图,可以理解为是将视图路径补全,将ModelAndView对象加上视图解析器中配置的前缀和后缀,指向真正的物理视图。
6.前端控制器通过Model将ModelAndView对象中的数据进行解析,对view进行渲染,将最终的结果通过http响应给客户端。