温馨提示×

ubuntu jsp为什么报错404

小樊
40
2026-10-21 11:30:12
栏目: 编程语言

在 Ubuntu 上访问 JSP 出现 404,通常不是“Ubuntu 本身的问题”,而是 Web 容器(Tomcat 等)没有正确部署或访问路径不对。下面按最常见原因逐条排查。


一、最常见原因(90% 情况)

1️⃣ Tomcat 没启动 / 端口不对

systemctl status tomcat
# 或
ps aux | grep tomcat

默认端口:

  • 8080

访问方式应为:

http://服务器IP:8080/项目名/xxx.jsp

✅ 如果是云服务器,还要确认 安全组 / 防火墙 放行 8080。


2️⃣ JSP 文件放错目录(非常重要)

❌ 错误位置:

/var/www/html/
/home/user/

✅ 正确位置(Tomcat):

/var/lib/tomcat9/webapps/项目名/xxx.jsp

例如:

/var/lib/tomcat9/webapps/ROOT/test.jsp

访问:

http://IP:8080/test.jsp

3️⃣ 项目没有“上下文路径”

如果你放在:

webapps/myapp/index.jsp

必须访问:

http://IP:8080/myapp/index.jsp

直接访问 /index.jsp 会 404。


二、Tomcat 本身配置问题

4️⃣ Tomcat 没装 JSP 支持

Ubuntu 常见坑:

dpkg -l | grep tomcat

确保安装的是:

tomcat9
tomcat9-admin

只装 tomcat9-common 可能不完整。


5️⃣ web.xml 配置错误

如果用了自己的 WEB-INF/web.xml,写错会导致整个项目 404。

最简单的测试:

  • 删除 WEB-INF/web.xml
  • 只放一个 test.jsp

三、权限问题(Ubuntu 特有)

6️⃣ 文件权限不对

ls -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 + Tomcat 情况(常见架构)

7️⃣ Nginx 没转发 JSP

如果你用 Nginx:

❌ 错误:

location / {
    root /var/www/html;
}

✅ 正确:

location ~ \.jsp$ {
    proxy_pass http://127.0.0.1:8080;
}

否则 Nginx 直接找静态文件 → 404。


五、快速自检清单 ✅

请你确认以下信息(可贴出来):

  1. Ubuntu 版本
  2. Tomcat 版本
  3. JSP 文件完整路径
  4. 访问的 URL
  5. 是否使用 Nginx

六、最小可运行示例(测试用)

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 / 文件结构 发给我,我可以直接帮你定位是哪一步错了。

0 踩