学Java绕不开的Tomcat部署流程(别只会安装不会用)

 更新时间:2026年06月29日 10:42:44   作者:进哥聊编程  
这篇文章主要介绍了学Java绕不开的Tomcat部署的相关资料,通过实际操作可以快速搭建JavaWeb环境,并理解Tomcat的基本管理方式,需要的朋友可以参考下

前言

很多Java开发者的第一个Web项目,几乎都是从Tomcat开始的。

写一个Servlet,部署一个JSP页面,启动Tomcat后看到浏览器成功打开首页,那种成就感相信不少人都经历过。即便到了今天,各种Spring Boot、Docker和云原生技术层出不穷,Tomcat依然是很多Java项目的重要基础设施。

不过真正开始做项目后,新的问题很快就出现了。

本地开发没有问题,浏览器打开localhost也一切正常,可一旦需要让别人访问,事情就变得麻烦起来。同事想联调接口、客户想提前看看演示效果、测试人员想远程验证功能,结果发现服务只能在自己电脑上打开。很多开发者第一次意识到,应用跑起来只是第一步,能够让别人访问才算真正发挥价值。

过去解决这个问题通常需要服务器、公网IP、域名解析以及各种网络配置。对于企业项目来说或许是正常流程,但对于学习、测试或者临时演示场景来说,成本明显有些高。很多时候只是想分享一个页面,却不得不花大量时间处理网络环境问题。

Tomcat之所以一直受到开发者欢迎,不仅因为它部署简单,更因为它能够快速承载各种Java Web应用。而当Tomcat结合cpolar之后,本地运行的项目也获得了公网访问能力。这样一来,无论是开发调试、项目演示还是团队协作,都不再受局域网限制,让原本只能在自己电脑访问的应用,真正具备了对外服务能力。

对于刚接触Java Web开发的人来说,这种体验尤其直观。你写的页面不再只是本地实验品,而是能够被远程用户真实访问的在线服务。从学习角度来看,这也是理解Web应用部署流程最直接的一种方式。

image-20250826101154874

1.在CentOs7上安装OpenJDK

在已安装套件中查找含有java字符串的文件:

rpm -qa | grep java

若没有安装则开始安装吧!

查询yum中存在的JDK版本:

yum list | grep java-11

image-20250826103345132

执行以下命令安装:

yum install -y java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64 java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64 java-11-openjdk-devel-11.0.13.0.8-1.el7_9.x86_64

验证一下,安装成功:

java --version

image-20250826104223874

配置环境变量:

vim /etc/profile

image-20250826105622123

在最后一行,添加下列内容:

xport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

image-20250826110824367

使文件生效:

source /etc/profile

验证是否生效:

whereis java

image-20250826111158436

这样我们就安装成功啦!

2.安装Tomcat10

首先到Tomcat官网下载安装包,我下载的是最新版的Tomcat10,具体步骤如下:

安装下图操作:

image-20250826145512750

image-20250826145707738

image-20250826145740444

image-20250826145836904

image-20250826145917792

打开虚拟机,切换到root用户下,创建Tomcat用户,命令如下:

useradd tomcat

设置密码:

passwd tomcat

image-20250826154329831

切换到Tomcat用户,能切换过去,代表成功创建该用户了。

su - tomcat

image-20250826154402067

把 apache-tomcat-10.1.9.tar.gz上传到/home/tomcat/目录下。

image-20250826154451234

image-20250826154515289

上传成功。

image-20250826154532464

解压。

tar -zxvf apache-tomcat-10.1.9.tar.gz

image-20250826154644951

给解压后的Tomcat,重命名一下:

mv apache-tomcat-10.1.9 tomcat

image-20250826154916980

启动:

cd tomcat/
bin/startup.sh 

image-20250826160452317

启动成功!

image-20250826160928137

关闭tomcat命令

bin/shutdown.sh

这样我们就在CentOS7上安装完Tomcat啦!

3.简单玩一下Tomcat

在这里,我们可以看到,都是千篇一律的页面,那么我们可不可以把tomcat页面变成自己的页面呢?

答案是:当然可以!

我们只需要找到它的前端代码,简单修改就可以啦!

cd /home/tomcat/tomcat/webapps/ROOT

image-20250826162535805

想要改文字、格式就修改index.jsp。

image-20250826162834562

想要改样式就选择tomcat.css。

image-20250826162914763

我这里示例一下改主页文字。

vi index.jsp

在Home前加上”小单的“几个字:

image-20250826163936195

回到bin目录,重启一下:

image-20250826164053514

重启后,更改成功啦!

image-20250826164504219

那么我有一个问题,倘若你同事下班想使用一下你的Tomcat,该怎么办呢?

别急,cpolar来帮助你,解决这一烦恼。

4.安装cpolar实现随时随地开发

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

image-20250826172453496

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

image-20250826172604013

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://192.168.42.101:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

image-20250826172625263

5.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:tomcat,注意不要与已有的隧道名称重复

  • 协议:http

  • 本地地址:8080

  • 域名类型:随机域名

  • 地区:选择China Top

    点击创建:

image-20250826175205560

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20250826175248080

访问成功。

image-20250826175317499

6.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

image-20250827103024446

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是tomcat,大家可以自定义。填写备注信息,点击保留。

image-20250827103127242

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道tomcat,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250827103351334

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250827103433119

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的tomcat页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250827103556724

恭喜!你成功了! 现在,无论你身在何处,用手机、平板还是另一台电脑,都能看到并操作你本地运行的tomcat了!

总结

Tomcat能够长期活跃在Java生态中,并不是因为它功能最先进,而是因为它足够稳定、足够成熟。从学习Servlet到部署企业应用,很多开发者的成长过程都离不开它。即便在今天,它依然是理解Java Web运行机制的重要工具。

本文从OpenJDK安装开始,完成了Tomcat部署、页面修改以及服务运行验证等完整流程。通过实际演示,不仅能够快速搭建Java Web运行环境,还能够理解Tomcat目录结构和基础管理方式,为后续学习Spring、Spring MVC以及Spring Boot打下基础。

结合cpolar提供的公网访问能力之后,本地运行的Tomcat服务也突破了网络边界。无论是给客户演示项目、让测试人员远程验证功能,还是与异地团队协作开发,都能够通过固定公网地址直接访问,大幅降低环境搭建成本。

对于很多开发者来说,Tomcat不仅仅是一个应用服务器,更是进入Java Web世界的重要入口。而当本地项目能够被远程访问时,你会发现开发和部署之间的距离,其实并没有想象中那么遥远。

到此这篇关于学Java绕不开的Tomcat部署流程的文章就介绍到这了,更多相关Java Web项目Tomcat部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java开发学习之Bean的作用域和生命周期详解

    Java开发学习之Bean的作用域和生命周期详解

    这篇文章主要介绍了浅谈Spring中Bean的作用域,生命周期和注解,从创建到消亡的完整过程,例如人从出生到死亡的整个过程就是一个生命周期。本文将通过示例为大家详细讲讲,感兴趣的可以学习一下
    2022-06-06
  • java之swing下拉菜单实现方法

    java之swing下拉菜单实现方法

    这篇文章主要介绍了java之swing下拉菜单实现方法,以实例形式较为详细的分析了基于swing的下拉菜单实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • spring @Cacheable扩展实现缓存自动过期时间及自动刷新功能

    spring @Cacheable扩展实现缓存自动过期时间及自动刷新功能

    用过spring cache的朋友应该会知道,Spring Cache默认是不支持在@Cacheable上添加过期时间的,虽然可以通过配置缓存容器时统一指定,本文主要介绍了如何基于spring @Cacheable扩展实现缓存自动过期时间以及缓存即将到期自动刷新,
    2024-02-02
  • Spring中@Autowired @Resource @Inject三个注解有什么区别

    Spring中@Autowired @Resource @Inject三个注解有什么区别

    在我们使用Spring框架进行日常开发过程中,经常会使用@Autowired, @Resource, @Inject注解来进行依赖注入,下面来介绍一下这三个注解有什么区别
    2023-03-03
  • spring boot 2.x html中引用css和js失效问题及解决方法

    spring boot 2.x html中引用css和js失效问题及解决方法

    这篇文章主要介绍了spring boot 2.x html中引用css和js失效,需要的朋友可以参考下
    2018-11-11
  • SpringBoot集成Easy-Es的实战操作指南

    SpringBoot集成Easy-Es的实战操作指南

    Easy-ES(简称EE)是一款基于 Elasticsearch 官方 RestHighLevelClient 封装的 ORM 框架,本文将简单介绍一下Easy-ES的具体使用,需要的可以了解下
    2025-08-08
  • Java Base64 加密与解密示例代码

    Java Base64 加密与解密示例代码

    基本的加密尽量保持简单,加密输入字符串没有增加任何换行符。输出被映射到“A-Za-z0-9+/”字符集中,解密从该字符集中解析为任意字符,这篇文章主要介绍了Java Base64 加密与解密,需要的朋友可以参考下
    2022-12-12
  • Java多线程之等待队列DelayQueue详解

    Java多线程之等待队列DelayQueue详解

    这篇文章主要介绍了Java多线程之等待队列DelayQueue详解,    DelayQueue被称作"等待队列"或"JDK延迟队列",存放着实现了Delayed接口的对象,对象需要设置到期时间,当且仅当对象到期,才能够从队列中被取走(并非一定被取走),需要的朋友可以参考下
    2023-12-12
  • Java ASM使用logback日志级别动态切换方案展示

    Java ASM使用logback日志级别动态切换方案展示

    这篇文章主要介绍了Java ASM使用logback日志级别动态切换方案展示,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Java创建型设计模式之建造者模式详解

    Java创建型设计模式之建造者模式详解

    建造者模式是Java中一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程分解为多个简单对象的构建过程,本文将详细介绍Java中的建造者模式,包括它的定义、结构、实现方法以及应用场景等方面,希望对大家有所帮助
    2023-05-05

最新评论