准备工作:更新系统
在部署JSP之前,得先把Ubuntu系统的软件包更新到最新版本——这一步看似基础,但能避免后续很多依赖冲突。打开终端,敲下这两条命令就行:
sudo apt update && sudo apt upgrade -y

安装Ja va开发环境(JDK)
JSP跑在Ja va上,所以得先装JDK。推荐用Ubuntu官方仓库里自带的OpenJDK,省心又稳定。以OpenJDK 11为例:
sudo apt install openjdk-11-jdk -y
装完验证一下环境是不是配好了:
ja va -version
# 查看Ja va运行时环境版本
ja vac -version
# 查看Ja va编译器版本(确认JDK安装)
如果以后想切换Ja va版本,用sudo update-alternatives --config ja va就能搞定。
安装Apache Tomcat服务器
Tomcat是跑JSP应用的核心容器,Ubuntu官方仓库里有Tomcat 9,稳定版,直接装:
sudo apt install tomcat9 -y
安装完成后Tomcat会自动启动。验证一下是否正常运行:
curl http://localhost:8080
# 应返回Tomcat默认页面
默认安装路径在/var/lib/tomcat9(webapps目录放应用),配置文件在/etc/tomcat9。
(可选)配置Tomcat环境变量
如果想让命令行操作更方便,或者自定义Tomcat路径,可以配一下环境变量。编辑/etc/profile:
sudo nano /etc/profile
在末尾加上:
export CATALINA_HOME=/var/lib/tomcat9
# Tomcat安装目录
export PATH=$CATALINA_HOME/bin:$PATH
# 添加Tomcat命令到PATH
保存后让配置生效:
source /etc/profile
验证一下Tomcat命令能不能用:
startup.sh
# 启动Tomcat(需在CATALINA_HOME/bin目录下)
shutdown.sh
# 停止Tomcat
部署JSP应用
JSP应用需要打包成WAR文件才能部署。假设你手头有一个myapp.war,有两种方式把它扔进Tomcat。
方式一:通过Tomcat管理界面部署(适合新手)
- 浏览器访问
http://<服务器IP>:8080/manager/html。 - 输入管理员账号密码(默认是
admin,如果没设置,需要修改/etc/tomcat9/tomcat-users.xml,添加下面内容后重启Tomcat):
- 点“选择文件”上传WAR,再点“部署”就完事了。部署后应用可以通过
http://<服务器IP>:8080/myapp访问(myapp是WAR文件名去掉.war后缀)。
方式二:手动部署(适合自动化场景)
- 直接把WAR文件复制到Tomcat的webapps目录:
sudo cp /path/to/myapp.war /var/lib/tomcat9/webapps/
- Tomcat会自动解压并部署,访问路径同上。
配置防火墙(允许外部访问)
如果服务器启用了UFW防火墙,需要放行HTTP和HTTPS流量:
sudo ufw allow 80/tcp
# 允许HTTP
sudo ufw allow 443/tcp
# 允许HTTPS
sudo ufw reload
# 重新加载防火墙规则
测试阶段如果要用Tomcat默认的8080端口,也可以开放:
sudo ufw allow 8080/tcp
(可选)配置SSL证书(提升安全性)
数据在网络上裸奔总归不放心,建议配个SSL证书。Let's Encrypt免费证书搭配Certbot是个好选择,这里以Nginx反向袋里为例:
- 安装Certbot和Nginx:
sudo apt install certbot python3-certbot-nginx -y
- 获取并配置SSL证书(把
your_domain.com换成你的域名):
sudo certbot --nginx -d your_domain.com
- Certbot会自动修改Nginx配置,添加SSL监听端口(443)并反向袋里到Tomcat(8080)。重启Nginx:
sudo systemctl restart nginx
- 现在应用可以通过
https://your_domain.com访问,并且会自动跳转HTTPS。
验证部署
不管用哪种方式,最后都要通过浏览器访问应用URL,确认JSP页面正常显示。如果遇到404,检查这几项:
- WAR文件是否成功复制到
webapps目录; - 应用目录结构是否正确(比如
WEB-INF/web.xml存不存在); - Tomcat服务是否正常运行(
sudo systemctl status tomcat9)。