在 Debian 上运行 JSP(Java Server Pages) 通常需要 Java 运行环境 + Servlet 容器。最常见、最简单的方案是 Tomcat。下面我从 原理 → 安装 → 部署 JSP → 常见问题 完整说明。
JSP 本身不能直接运行,它依赖:
JSP → 被 Tomcat 翻译成 Servlet → 编译成 .class → 由 JVM 执行
所以你需要:
sudo apt update
sudo apt upgrade -y
sudo apt install openjdk-17-jdk -y
验证:
java -version
sudo apt install tomcat10 -y
Debian 12 默认是 Tomcat 10
Tomcat 10 使用 Jakarta EE(包名jakarta.*)
安装完成后,Tomcat 会自动启动。
查看状态:
systemctl status tomcat10
浏览器访问:
http://服务器IP:8080
看到 Tomcat 欢迎页 ✅
Tomcat 的 Web 应用目录:
/var/lib/tomcat10/webapps/
创建一个测试项目:
sudo mkdir -p /var/lib/tomcat10/webapps/test
sudo nano /var/lib/tomcat10/webapps/test/index.jsp
内容示例:
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>JSP Test</title>
</head>
<body>
<h1>Hello JSP on Debian</h1>
<p>当前时间:<%= new java.util.Date() %></p>
</body>
</html>
保存后访问:
http://服务器IP:8080/test/index.jsp
✅ 看到动态时间说明 JSP 正常运行
| 旧版本 | 新版本 |
|---|---|
| javax.servlet | jakarta.servlet |
| javax.servlet.jsp | jakarta.servlet.jsp |
❌ 如果你用老 JSP / Servlet 代码可能报错
✅ 解决方式:
sudo apt install tomcat9 -y
目录略有不同:
/var/lib/tomcat9/webapps/
检查防火墙:
sudo ufw allow 8080
云服务器还要开放安全组 ✅
Tomcat 使用 tomcat 用户运行,确保目录权限正确:
sudo chown -R tomcat:tomcat /var/lib/tomcat10/webapps/test
cat /var/log/tomcat10/catalina.out
apt install openjdk-17-jdk tomcat10
systemctl start tomcat10
/var/lib/tomcat10/webapps/test/index.jsp
http://IP:8080/test/index.jsp
如果你愿意,我可以:
你可以直接贴你的 Debian 版本号 + Tomcat 版本。