Spring MVC 是以請求爲驅動,圍繞 Servlet 設計,將請求發給控制器,然後通過模型對象,分派器來展示請求結果視圖。其中核心類是 DispatcherServlet,它是一個 Servlet,頂層是實現的 Servlet 接口。
DispatcherServlet 在 web.xml 中配置,並且需要配置 Spring 監聽器 ContextLoaderListener。
請求過程:
- 客戶端(瀏覽器)發送請求,直接請求到DispatcherServlet;
- DispatcherServlet根據請求信息調用HandlerMapping,解析請求對應的Handler;
- 解析到對應的Handler後,開始由HandlerAdapter適配器處理;
- HandlerAdapter會根據Handler來調用真正的處理器開處理請求,並處理相應的業務邏輯;
- 處理器處理完業務後,會返回一個ModelAndView對象,Model是返回的數據對象,View是個邏輯上的View;
- ViewResolver會根據邏輯View查找實際的View;
- DispaterServlet把返回的Model傳給View;
- 通過View返回給請求者(瀏覽器)。