Spring MVC 处理一个请求的过程是怎样的?
先自己想一想,再看参考要点
参考要点
- DispatcherServlet 统一接收请求,HandlerMapping 找到处理方法和拦截器
- 依次执行拦截器的 preHandle,返回 false 就停止
- HandlerAdapter 转换参数、调用 Controller,再把返回值转换为响应(如 JSON)
- 倒序执行 postHandle(Controller 抛出异常时跳过)
- 返回视图名时由 ViewResolver 渲染
- 最后倒序执行 preHandle 返回 true 的拦截器的 afterCompletion,异常时也执行