Spring MVC 作為經典 Web 框架,其核心請求處理流程是面試必考、排錯基礎。本文結合架構圖,詳細解析 12 步驟全鏈路,標註哪些組件需配置、哪些由框架自動完成。

web.xml 配置 load-on-startup 啟動。HandlerExecutionChain (含攔截器)。<mvc:annotation-driven/> 自動註冊 RequestMappingHandlerMapping。<mvc:annotation-driven/> 自動註冊 RequestMappingHandlerAdapter。View 實例 (JSP/Thymeleaf/FreeMarker/JSON)。InternalResourceViewResolver (JSP)、ThymeleafViewResolver、ContentNegotiatingViewResolver (多視圖)。view.render(model, request, response),JSP 轉發、模板引擎輸出、JSON 序列化寫入響應流。| 組件 | 接口/類 | 是否需手動配置 | 備註 |
|---|---|---|---|
| DispatcherServlet | org.springframework.web.servlet.DispatcherServlet | 是 (web.xml) | 核心前端控制器 |
| HandlerMapping | RequestMappingHandlerMapping | 否 (mvc:annotation-driven) | 支持 @RequestMapping |
| HandlerAdapter | RequestMappingHandlerAdapter | 否 (mvc:annotation-driven) | 支持 @RequestBody, @ResponseBody |
| HandlerExceptionResolver | ExceptionHandlerExceptionResolver | 否 (mvc:annotation-driven) | 支持 @ExceptionHandler |
| ViewResolver | InternalResourceViewResolver 等 | 是 | 視圖技術相關 |
| LocaleResolver | SessionLocaleResolver | 否 (默認) | 國際化 |
| ThemeResolver | FixedThemeResolver | 否 (默認) | 主題 |
| MultipartResolver | StandardServletMultipartResolver | 是 (文件上傳) | Servlet 3.0+ 原生 |
<mvc:annotation-driven/>)