Sping mvc DispatcherServlet 处理请求的详细过程

1. 通过WebApplicationContext, 根据request 搜索一些属性,并绑定到request上

2. 通过 Local Resovler ,判定出本地化资源,绑定到request上

3. 通过 Theme Resovler ,判定出主题资源,绑定到request上

4. 如果指定了  multipart resovler ,multipart resolver 会判断,请求中是不是带上传文件,如果是,会把request 再包装成 MultipartHttpServletRequest 

5. 找到控制器,并执行

6. 如果有Model返回,则根据返回,找到相应的view 进行渲染。如果没有Model返回,则不渲染视图,这种情况 一般发生在请求被其它拦截器拦截了。

处理过程中有任何异常,将由exception resolvers来处理。

另外,DispatcherServlet 也会判断控制器是不是实现了LastModified,如果是的话,在返回的Header中将加上last-modification-date。利用这个特性,应该很容易做出缓存支持。

猜你喜欢

转载自neo-it.iteye.com/blog/2171457