在 Ubuntu 上支持 JSP 的核心思路是安装 JDK(Java 开发工具包) 与 Apache Tomcat(Servlet/JSP 容器),完成基础配置与端口放行后即可运行 .jsp 页面与 WAR 应用。Tomcat 默认内置 JSP 引擎(Jasper),无需额外安装组件即可解析 JSP。
快速上手步骤
- 安装 OpenJDK 11(或选择 OpenJDK 8,二者均与常见 Tomcat 版本兼容):
- 命令:sudo apt update && sudo apt install openjdk-11-jdk
- 验证:java -version、javac -version
- 安装 Tomcat 9(系统包方式,便于管理):
- 命令:sudo apt install tomcat9
- 启动与开机自启:sudo systemctl start tomcat9 && sudo systemctl enable tomcat9
- 验证:在服务器本机执行 curl http://localhost:8080 应返回 Tomcat 欢迎页
- 放行访问端口(UFW 示例):
- 命令:sudo ufw allow 8080/tcp;如使用云服务器,还需在控制台安全组放行 8080
- 部署测试页面:
- 方式一:将文件放入 /var/lib/tomcat9/webapps/ROOT/,访问 http://服务器IP:8080/hello.jsp
- 方式二:在 /var/lib/tomcat9/webapps/ 下新建目录(如 myapp),放入应用,访问 http://服务器IP:8080/myapp/
以上步骤完成后,JSP 即可被 Tomcat 编译与运行。
手动安装 Tomcat 并配置为系统服务
- 下载并解压(示例为 Tomcat 8.5):
- wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz
- sudo tar -xzf apache-tomcat-8.5.100.tar.gz -C /opt
- sudo mv /opt/apache-tomcat-8.5.100 /opt/tomcat
- 可选环境变量(便于执行脚本):
- echo ‘export CATALINA_HOME=/opt/tomcat’ >> ~/.bashrc && source ~/.bashrc
- 启动与验证:
- /opt/tomcat/bin/startup.sh
- 访问 http://localhost:8080
- 配置 systemd 服务(推荐生产使用):
- 新建文件:sudo nano /etc/systemd/system/tomcat.service
- 示例内容(注意按实际路径设置 JAVA_HOME 与用户):
- [Unit]
- Description=Apache Tomcat Web Application Container
- After=network.target
- [Service]
- Type=forking
- User=tomcat
- Group=tomcat
- Environment=“JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64”
- Environment=“CATALINA_PID=/opt/tomcat/temp/tomcat.pid”
- Environment=“CATALINA_HOME=/opt/tomcat”
- Environment=“CATALINA_BASE=/opt/tomcat”
- ExecStart=/opt/tomcat/bin/startup.sh
- ExecStop=/opt/tomcat/bin/shutdown.sh
- [Install]
- WantedBy=multi-user.target
- 启用服务:sudo systemctl daemon-reload && sudo systemctl start tomcat && sudo systemctl enable tomcat
上述方式便于开机自启、集中日志与权限管理。
部署与数据库支持要点
- 部署方式:
- 将应用打包为 WAR 并复制到 webapps/,Tomcat 会自动解压部署;或放置到 ROOT/ 作为根应用
- 目录结构遵循 Java Web 规范,静态资源置于 webapps/应用名/,配置在 WEB-INF/ 下
- 连接 MySQL 等数据库:
- 将 MySQL Connector/J(如 mysql-connector-java-8.x.x.jar)放入 WEB-INF/lib/,在 JSP/Servlet 中使用 JDBC 访问
- 确保数据库允许远程连接(如需要),并创建相应用户与库表
- 常见问题排查:
- 访问被拒绝或超时:检查 8080 端口是否放行(UFW/云安全组)、Tomcat 是否运行(systemctl status tomcat9)
- 类找不到/驱动问题:确认 JDBC 驱动 JAR 位于 WEB-INF/lib,且版本与数据库匹配
- 页面中文乱码:JSP 头部声明 <%@ page pageEncoding=“UTF-8” %>,数据库连接参数使用 characterEncoding=UTF-8
以上做法覆盖 WAR 部署与 JDBC 驱动放置等关键点,能支撑大多数基础 JSP 项目运行。