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

IntelliJ中基础Spring MVC应用出现404 Not Found错误求助

Spring MVC 404错误排查指南(基于IntelliJ IDEA社区版)

一、项目结构检查

  • 确认webapp目录已标记为Web资源根:右键webapp目录 → 选择Mark Directory as → Web Resource Root,确保目录图标变为蓝色文件夹。
  • 检查Controller类所在包是否被Spring扫描覆盖:比如HomeController的包路径要匹配spring-servlet.xml里的组件扫描配置。

二、pom.xml配置检查

  • 保证Spring MVC相关依赖版本统一,避免版本冲突:
    <!-- 示例依赖,替换为你使用的版本 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.20</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.3.20</version>
    </dependency>
    
  • 添加Servlet API依赖并设置scope为provided,防止打包冲突:
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    
  • 确认maven-war-plugin配置正确,确保webapp目录被识别:
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.2</version>
                <configuration>
                    <warSourceDirectory>src/main/webapp</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

三、web.xml配置检查

  • 确认DispatcherServlet的映射路径为/(不要写成/*,会覆盖静态资源和JSP访问):
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
  • 配置欢迎页,确保index.jsp能被直接访问:
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    

四、spring-servlet.xml配置检查

  • 必须开启注解驱动,这是Spring MVC处理注解的核心:
    <mvc:annotation-driven/>
    
  • 组件扫描路径要指向Controller所在包:
    <context:component-scan base-package="com.example.controller"/> <!-- 替换为你的实际包路径 -->
    
  • 视图解析器配置要匹配JSP存放路径:
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/> <!-- JSP所在目录前缀 -->
        <property name="suffix" value=".jsp"/> <!-- 文件后缀 -->
    </bean>
    

    注意:如果index.jsp在webapp根目录,直接返回"index"会找不到,可在Controller里返回"forward:/index.jsp",或者调整视图解析器配置。

五、HomeController代码检查

  • 类上必须加@Controller注解,方法上的@RequestMapping路径要正确:
    @Controller
    public class HomeController {
        @RequestMapping("/")
        public String home() {
            return "index"; // 匹配视图解析器配置的视图名,或者写"forward:/index.jsp"直接跳转
        }
    }
    

六、IDEA运行配置检查

  • 检查Tomcat的Deployment选项卡,Application context设为/(根路径),如果设了其他路径,访问时要加上前缀,比如/myapp,则访问地址是http://localhost:8080/myapp/。
  • 查看Tomcat日志,找Spring容器初始化失败的提示,比如依赖缺失、配置文件语法错误,日志会给出具体原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:35:17