You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC项目运行出现White-label Error Page 404白页错误如何解决?

错误产生原因

你当前使用Spring Boot + Spring MVC的混合架构,配置逻辑存在多处冲突,导致请求无法被正确处理:

  1. Spring Boot默认接管所有Servlet请求分发,你自定义的@WebServlet注解未被Spring Boot扫描注册,访问/login路径时找不到对应的处理逻辑,直接返回404
  2. 依赖重复冗余:你已经引入spring-boot-starter-web,该依赖已内置spring-webmvc、嵌入式Tomcat、Servlet API,额外单独引入的同名依赖和父依赖管理的版本存在兼容性冲突,会导致类加载异常
  3. 缺少JSP支持配置:Spring Boot默认不支持JSP渲染,你既没有配置视图解析器的前缀后缀,也没有引入JSP解析所需的tomcat-embed-jasper依赖,就算请求能到达Servlet,也无法正常转发到JSP页面
  4. 插件版本不兼容:你使用的tomcat7-maven-plugin对应Tomcat7版本,仅支持Servlet 3.0及以下规范,但你的web.xml使用3.1规范,同时Spring Boot 2.5.5最低要求Tomcat9版本,版本不兼容导致请求无法正常处理
修复步骤
  • 第一步:清理冗余依赖
    从pom.xml中删除单独引入的spring-webmvc、tomcat-servlet-api两个依赖,spring-boot-starter-web已经包含对应兼容版本,可避免版本冲突
  • 第二步:新增JSP支持依赖
    在pom.xml的dependencies节点中添加如下依赖:
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    
  • 第三步:注册请求处理逻辑,二选一即可:
    1. 保留原生Servlet写法:在Spring Boot启动类上添加@ServletComponentScan注解,Spring Boot会自动扫描注册项目中所有带@WebServlet注解的自定义Servlet
    2. 改用标准Spring MVC写法(更推荐):删除继承HttpServlet的Login类,替换为Spring MVC Controller:
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @Controller
    public class LoginController {
        @GetMapping("/login")
        public String loginPage() {
            return "login";
        }
    }
    
  • 第四步:配置JSP视图解析器
    在src/main/resources目录下新建application.properties文件,添加如下配置:
    spring.mvc.view.prefix=/WEB-INF/views/
    spring.mvc.view.suffix=.jsp
    
  • 第五步:调整运行方式
    删除pom.xml中的tomcat7-maven-plugin插件,直接用mvn spring-boot:run命令启动项目;如果需要打war包部署,将war包放到Tomcat9及以上版本的webapps目录下运行即可
  • 第六步:调整欢迎页配置
    你当前web.xml中配置的欢迎页login.jsp存放在WEB-INF目录下无法直接被访问,可将欢迎页修改为/login,访问根路径时会自动跳转到登录页面

内容的提问来源于stack exchange,提问作者Mahmoud Hamarsheh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:48:02