在 Ubuntu 上访问 JSP 出现 404,通常不是“Ubuntu 本身的问题”,而是 Web 容器(Tomcat 等)没有正确部署或访问路径不对。下面按最常见原因逐条排查。
systemctl status tomcat
# 或
ps aux | grep tomcat
默认端口:
访问方式应为:
http://服务器IP:8080/项目名/xxx.jsp
✅ 如果是云服务器,还要确认 安全组 / 防火墙 放行 8080。
❌ 错误位置:
/var/www/html/
/home/user/
✅ 正确位置(Tomcat):
/var/lib/tomcat9/webapps/项目名/xxx.jsp
例如:
/var/lib/tomcat9/webapps/ROOT/test.jsp
访问:
http://IP:8080/test.jsp
如果你放在:
webapps/myapp/index.jsp
必须访问:
http://IP:8080/myapp/index.jsp
直接访问 /index.jsp 会 404。
Ubuntu 常见坑:
dpkg -l | grep tomcat
确保安装的是:
tomcat9
tomcat9-admin
只装 tomcat9-common 可能不完整。
如果用了自己的 WEB-INF/web.xml,写错会导致整个项目 404。
最简单的测试:
WEB-INF/web.xmltest.jspls -l /var/lib/tomcat9/webapps/ROOT/test.jsp
确保 tomcat 用户能读:
sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps
sudo chmod -R 755 /var/lib/tomcat9/webapps
如果你用 Nginx:
❌ 错误:
location / {
root /var/www/html;
}
✅ 正确:
location ~ \.jsp$ {
proxy_pass http://127.0.0.1:8080;
}
否则 Nginx 直接找静态文件 → 404。
请你确认以下信息(可贴出来):
sudo nano /var/lib/tomcat9/webapps/ROOT/hello.jsp
内容:
<%@ page language="java" %>
<html>
<body>
<h1>JSP OK</h1>
</body>
</html>
访问:
http://服务器IP:8080/hello.jsp
如果你愿意,可以把 具体报错页面 / 访问 URL / 文件结构 发给我,我可以直接帮你定位是哪一步错了。