处理步骤:
1、调用DispatcherServlet的doService方法
2、进入DispatchServlet的doDispatch方法
3、进入DispatchServlet的getHandler方法遍历handlerMapping获取HandlerExecutionChain
4、进入AbstracthandlerMapping类的getHandler方法,在getHandler方法中调用子类AbstractHandlerMethodMapping的getHandlerInternal方法,通过传入的request获取HandlerMethod,通过handlerMethod获取HandlerExecutionChain返回给DispatchServlet的doDispatch方法。
5、DispatchServlet的doDispatch方法中,通过获取的HandlerExecutionChain得到HandlerAdapter.
6、通过handlerAdapter的handle方法获取到对应的ModelAndView.
7、viewResolver获取对应的视图
8、渲染视图
9、返回控制权给DispatchServlet,DispatchServlet返回相应给用户。
总结主要有以下几个要点:
前端控制器DispatchSevlet
handlerMapping
handlerAdapter
viewResolver
处理器/页面控制器
视图