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

VSCode中Spring MVC控制器失效404问题求助

排查Spring MVC控制器404问题的步骤

1. 检查Spring组件扫描配置

确保Spring MVC的配置文件(通常为dispatcher-servlet.xml或spring-mvc.xml)中包含正确的组件扫描路径,让Spring能检测到你的Controller类:

<context:component-scan base-package="你的Controller所在的包路径"/>

例如若Controller位于com.example.sp5.chap09.controller包下,base-package需设为该路径或其父包(如com.example.sp5.chap09)。

2. 验证DispatcherServlet的映射配置

查看web.xml中DispatcherServlet的<url-pattern>配置,必须确保它能拦截到/hello请求。正确配置示例:

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern> <!-- 拦截所有非静态资源请求 -->
</servlet-mapping>

若配置为*.do这类后缀匹配规则,/hello请求不会被DispatcherServlet处理,直接导致控制器无法触发。

3. 检查Controller注解和请求映射

  • 确认Controller类上标注了@Controller注解,无拼写错误。
  • 验证方法上的@RequestMapping("/hello")路径与请求URL的/hello完全一致(URL大小写敏感)。示例代码:
@Controller
public class HelloController {
    @RequestMapping("/hello")
    public String hello(@RequestParam("name") String name, Model model) {
        System.out.println("参数name:" + name);
        model.addAttribute("name", name);
        return "hello";
    }
}

4. 确认项目上下文路径

检查Tomcat部署的项目上下文路径是否为sp5-chap09:

  • 查看Tomcat的conf/server.xml中<Context>标签的path属性,确保path="/sp5-chap09"。
  • 或在VSCode的Tomcat部署配置中,确认上下文路径设置正确。路径不符会直接导致请求404。

5. 检查Maven依赖与打包配置

  • 确保pom.xml中包含完整的Spring MVC依赖:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>你的Spring版本(如5.3.20)</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>
  • 确认配置了Maven War插件,保证打包后的war包结构合规:
<build>
    <finalName>sp5-chap09</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.3.2</version>
        </plugin>
    </plugins>
</build>

6. 验证编译与部署文件

  • 检查项目的target/classes目录下,是否存在编译后的Controller类文件(如HelloController.class)。若缺失,执行mvn compile命令手动编译。
  • 查看Tomcat的webapps/sp5-chap09/WEB-INF/classes目录,确认Controller的class文件已被正确部署。若文件缺失,重新部署项目。

内容的提问来源于stack exchange,提问作者정상환

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:45:46