在 Java + Tomcat 场景下,404 表示“请求的资源在服务器上找不到”,但Tomcat 本身是正常启动的。常见原因可以按“访问路径”从外到内排查:
例如:
demohttp://localhost:8080/demo/index.jsphttp://localhost:8080/index.jsp✅ 查看方式:
server.xml 中:<Context path="/demo" docBase="demo"/>
webapps/demo 目录是否存在@WebServlet("/hello")
访问应为:
http://localhost:8080/项目名/hello
❌ 常见错误:
//WEB-INF/xxx(受保护目录,不能直接访问)Tomcat 默认只加载:
webapps/项目名
检查:
tomcat/webapps/demo
是否包含:
WEB-INF/web.xmlindex.jsp 或编译后的 class<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
如果首页文件不存在 → 404
mvn clean package
生成 xxx.war
webapps 下Servlet 编译后应在:
WEB-INF/classes/com/xxx/Servlet.class
@RequestMapping("/user")
public class UserController {}
访问必须是:
/项目名/user
<mvc:resources mapping="/static/**" location="/static/"/>
否则 CSS/JS 会 404
<Context path="" docBase="demo"/>
路径和文件不匹配 → 404
http://localhost:8080
但 Tomcat 实际是 8081 / 8888
如果你愿意,可以把:
web.xml 或 @WebServlet发出来,我可以直接帮你定位是哪一条原因。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。