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

Spring MVC项目点击链接出现HTTP Status 404错误,求排查指导

Spring MVC请求跳转404问题排查与解决

问题概述

开发Spring MVC项目时,配置了简单控制器及两个请求映射用于跳转JSP页面,但点击index.jsp中的链接时出现HTTP Status 404错误,请求URL为http://localhost:8080/spring_MVC_project/firstAdd。已检查拼写、大小写及JSP文件位置等常见问题,仍未定位原因。

项目结构

  • index.jsp:位于Web应用根目录
  • add.jsp、addFinal.jsp:位于项目/WEB-INF/jsp/目录下

代码详情

控制器代码(addController.java)

package com.mvc;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class addController {
    @RequestMapping("/firstAdd")
    public String add(){
        return "add.jsp";
    }
    
    @RequestMapping("/secondFinal")
    public String addFinal(){
        return "addFinal";
    }
}

web.xml Servlet映射

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" 
         id="WebApp_ID" version="3.1">  
    
    <display-name>SpringMVC</display-name>
    <servlet> 
        <servlet-name>mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>mvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
</web-app>

Spring MVC配置(mvc-servlet.xml)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"  
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
       xmlns:context="http://www.springframework.org/schema/context"  
       xmlns:mvc="http://www.springframework.org/schema/mvc"  
       xsi:schemaLocation="  
            http://www.springframework.org/schema/beans  
            http://www.springframework.org/schema/beans/spring-beans.xsd  
            http://www.springframework.org/schema/context  
            http://www.springframework.org/schema/context/spring-context.xsd  
            http://www.springframework.org/schema/mvc  
            http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 

    <!-- 组件扫描支持 -->
    <context:component-scan base-package="com.mvc" />
        
    <!-- 转换、格式化与验证支持 -->
    <mvc:annotation-driven/>
    
    <!-- 视图解析器配置 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    
</beans>

排查方向与解决方案

  1. 修正视图返回值格式
    控制器中add()方法返回"add.jsp",但配置的InternalResourceViewResolver已设置prefix="/WEB-INF/jsp/"和suffix=".jsp",拼接后会变成/WEB-INF/jsp/add.jsp.jsp,导致文件找不到。将返回值改为"add"即可:

    @RequestMapping("/firstAdd")
    public String add(){
        return "add";
    }
    
  2. 验证项目上下文路径
    确认项目部署后的上下文路径是否为spring_MVC_project,可通过服务器控制台或部署配置查看。若路径不符,需调整index.jsp中的链接路径,确保与实际上下文路径一致。

  3. 检查组件扫描是否生效
    确认context:component-scan的base-package正确覆盖com.mvc包,确保控制器被Spring容器扫描并注册。可通过添加日志或调试模式查看容器是否加载了addController。

  4. 验证DispatcherServlet配置
    确保mvc-servlet.xml文件放置在WEB-INF目录下(默认与servlet-name对应),若文件位置不对,需在servlet标签中添加init-param指定配置文件路径:

    <servlet> 
        <servlet-name>mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/mvc-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
  5. 检查index.jsp中的链接路径
    确保index.jsp中的链接使用基于上下文路径的绝对路径,避免相对路径导致请求URL错误:

    <a href="${pageContext.request.contextPath}/firstAdd">跳转到add页面</a>
    <a href="${pageContext.request.contextPath}/secondFinal">跳转到addFinal页面</a>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:50:27