温馨提示×

ubuntu jsp为什么无法运行

小樊
36
2026-09-19 02:51:12
栏目: 编程语言

在 Ubuntu 上 JSP 无法运行,通常不是“Ubuntu 不支持 JSP”,而是运行环境或配置不正确。JSP 必须依赖 Servlet 容器(如 Tomcat),不能直接用浏览器或普通 Web 服务器访问。

下面按最常见原因逐一说明,并给出排查方法。


一、最常见原因总结(先看这个)

原因 说明
❌ 没有安装 Tomcat JSP 必须由 Tomcat / Jetty 等运行
❌ 用 Nginx / Apache 直接访问 JSP 它们不会解析 JSP
❌ 文件放错目录 JSP 必须放在 webapps
❌ 端口未开放 / 防火墙 无法访问 8080
❌ JDK 没装或版本不对 Tomcat 起不来
❌ 文件后缀不是 .jsp 被当普通文本

二、JSP 正确运行的前提(必须)

✅ 1. 安装 JDK(必须)

java -version

如果没有:

sudo apt update
sudo apt install openjdk-11-jdk

✅ 2. 安装 Tomcat(JSP 运行容器)

sudo apt install tomcat9

启动:

sudo systemctl start tomcat9
sudo systemctl enable tomcat9

访问测试:

http://localhost:8080

三、JSP 文件必须放在正确位置

✅ 正确目录结构

/var/lib/tomcat9/webapps/
└── myapp/
    └── index.jsp

示例 index.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<h1>Hello JSP</h1>
<%= new java.util.Date() %>
</body>
</html>

访问地址:

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

四、常见错误及解决方法

❌ 1. 用 Nginx / Apache 直接访问 JSP

❌ 错误:

http://localhost/test.jsp

✅ 正确:

http://localhost:8080/test.jsp

Nginx / Apache 不能解析 JSP


❌ 2. Tomcat 没启动

systemctl status tomcat9

如果没启动:

sudo systemctl start tomcat9

❌ 3. 端口被防火墙拦截

sudo ufw allow 8080

❌ 4. 页面显示源码而不是执行

说明:

  • 文件没经 Tomcat
  • 或放在了错误目录

✅ 确保:

  • 通过 8080 端口
  • webapps 目录

五、快速自检清单 ✅

  • [ ] 已安装 JDK
  • [ ] 已安装 Tomcat
  • [ ] Tomcat 正在运行
  • [ ] JSP 放在 webapps/项目名/
  • [ ] 通过 :8080 访问
  • [ ] 文件后缀是 .jsp

六、如果你愿意,我可以更精准帮你

请告诉我:

  1. Ubuntu 版本
  2. 是否安装了 Tomcat
  3. 用什么方式访问 JSP(URL)
  4. 报错信息或页面显示内容

我可以直接帮你一步步排错

0