本文通过前端控制器源码分析springmvc执行过程
1.前端控制器接收请求
调用doDispatch
方法
1 | protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { |
2.前端控制器调用HandlerMapping
(处理器映射器)根据url查找Handler
1 | // Determine handler for the current request. |
1 | /** |
3.调用处理器适配器执行Handler,得到执行的结果ModelAndView mv
在doDispatch
方法中
1 | // Actually invoke the handler. |
4.视图渲染,将model数据填充到request域
doDispatch
->processDispatchResult
->render
在render
方法中,视图解析得到view
1 | // We need to resolve the view name. |
调用view的渲染方法,将model数据填充到request域
在render
方法中,调用View
接口的render
方法
1 | view.render(mv.getModelInternal(), request, response); |
程序我也没细读,感觉分析比较浅,很多还没弄懂,等我系统阅读源码后会整理一篇好点的。