首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Spring MVC 核心原理與執行流程圖解

     編輯:Java 綜合教學

前言

掌握 Spring MVC 運行機制,面試應對游刃有餘。本文結合架構圖與代碼實例逐步拆解。

一、整體流程圖解

Spring MVC 架構圖

詳細流程圖

核心組件:DispatcherServlet(前端控制器)、HandlerMapping(處理器映射器)、HandlerAdapter(處理器適配器)、ViewResolver(視圖解析器)。

二、代碼實戰:逐步配置

1. web.xml 註冊 DispatcherServlet

<servlet>
  <servlet-name>springmvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc.xml</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

2. 三種 HandlerMapping 配置

  • BeanNameUrlHandlerMapping:按 Bean name 匹配
  • SimpleUrlHandlerMapping:集中式 URL 映射
  • ControllerClassNameHandlerMapping:類名映射(首字母小寫)
  • 註解模式:<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

3. HandlerAdapter 適配器

  • SimpleControllerHandlerAdapter:需實現 Controller 接口
  • HttpRequestHandlerAdapter:需實現 HttpRequestHandler 接口
  • 註解模式:RequestMappingHandlerAdapter

4. Controller 實現與 ModelAndView 返回

public class UserController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) {
        ModelAndView mv = new ModelAndView();
        mv.addObject("Hello", "鳳姐喜歡你!");
        mv.setViewName("index"); // 邏輯視圖名
        return mv;
    }
}

5. 視圖解析器配置

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/jsps/"/>
  <property name="suffix" value=".jsp"/>
</bean>

將邏輯視圖 index 解析為 /WEB-INF/jsps/index.jsp。

三、執行流程總結(12 步)

  1. 用戶發請求 → DispatcherServlet
  2. HandlerMapping 尋找 Controller → 返回 HandlerExecutionChain
  3. DispatcherServlet 調用 HandlerAdapter
  4. HandlerAdapter 執行 Controller → 返回 ModelAndView
  5. HandlerAdapter 返回 ModelAndView 給 DispatcherServlet
  6. DispatcherServlet 請求 ViewResolver 解析視圖
  7. ViewResolver 返回物理視圖
  8. DispatcherServlet 渲染視圖
  9. 響應用戶

嚴格遵循 MVC 分層,核心組件職責單一,擴展性強。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved