Spring MVC(Spring Web MVC)屬於表現層框架,是 Spring Framework 的一部分,自 Spring 3.0 正式發布。它圍繞 DispatcherServlet 設計,實現了標準的 Model-View-Controller 模式。



DispatcherServletDispatcherServlet 查詢 HandlerMapping → 獲取 HandlerExecutionChainHandlerAdapter 調用 Controller 方法ModelAndViewDispatcherServlet 查詢 ViewResolver → 解析視圖spring-webmvc.jar(核心)spring-context-support.jar

package cn.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class FirstController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("hello! fangyan");
return new ModelAndView("login");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="https://java.sun.com/xml/ns/javaee"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<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-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

瀏覽器訪問:https://localhost:8080/SpringMVC/fangyan

@Controller + @RequestMapping 替代繼承 AbstractControllerInternalResourceViewResolver 統一視圖前後綴理解 XML 配置本質,再拥抱註解與自動配置,才能在排查問題時游刃有餘。