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

Tomcat部署Spring MVC项目访问控制器404、仅显示index.jsp问题求助

问题排查结果及修复方案

核心问题点

  • 配置文件名不匹配:web.xml中指定DispatcherServlet加载的配置文件为/WEB-INF/spring-mvc-demo-servlet.xml,你实际提供的配置文件名为spring-mvc-demo.xml,Spring MVC核心配置未被正确加载
  • 组件扫描路径错误:你的控制器类放在com.controller包下,但Spring配置中的组件扫描规则仅扫描springtest包,控制器未被Spring容器识别,请求映射自然未注册
  • 视图路径可能不匹配:视图解析器配置的前缀为/WEB-INF/view/,若你实际存放jsp的目录名为views,路径会匹配失败

修复步骤

  1. 统一配置文件路径:
    要么将spring-mvc-demo.xml重命名为spring-mvc-demo-servlet.xml放到WEB-INF目录下,要么修改web.xml中的初始化参数:
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc-demo.xml</param-value>
    </init-param>
    
  2. 修正组件扫描包路径:
    修改spring-mvc-demo.xml中的组件扫描配置,改为你实际的控制器所在包:
    <context:component-scan base-package="com.controller" />
    <!-- 若有多个Spring组件所在包,可写上层公共包如com即可 -->
    
  3. 核对视图目录路径:
    确认WEB-INF下存放jsp的目录名,若为views,修改视图解析器的前缀配置:
    <property name="prefix" value="/WEB-INF/views/" />
    
  4. 确认访问路径:
    部署后项目默认上下文路径为war包名springtest,访问showForm接口的正确路径为http://你的服务器地址:端口/springtest/showForm,不要漏写上下文路径
  5. 可选兼容优化:
    Spring 5.x最低支持JDK 8,可将pom.xml中的编译版本配置更新为1.8及以上:
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    

内容的提问来源于stack exchange,提问作者Stephen Agbenu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:18:05