外观
一句话答案
请求→DispatcherServlet→HandlerMapping 找处理器→HandlerAdapter 调用→返回 ModelAndView→视图渲染响应。
核心要点
流程:
- DispatcherServlet 接收请求
- HandlerMapping 找到对应的 Handler(Controller)
- HandlerAdapter 适配并调用 Handler
- Handler 返回 ModelAndView
- ViewResolver 解析视图
- 渲染视图返回响应
REST模式: @ResponseBody 直接返回 JSON,跳过视图渲染
追问与易错
追问方向:
- HandlerMapping 和 HandlerAdapter 各自作用?
- @ResponseBody 改变了哪步?
- 拦截器和过滤器在流程中的位置?
易错点:
- ❌ 混淆 DispatcherServlet 和普通 Servlet
- ❌ HandlerAdapter 就是 Controller——是适配器
💡 记忆锚点
SpringMVC = 前台总机(DispatcherServlet)接电话 -> 查通讯录(HandlerMapping)找负责人 -> 翻译官(HandlerAdapter)适配沟通 -> 负责人处理返回结果 -> 美工排版(ViewResolver渲染视图)。加了@ResponseBody就跳过美工直接返回JSON。