云计算百科
云计算领域专业知识百科平台

Tomcat web应用服务器

1.1 java基础

1.概念解释

JDK(Java Development Kit):Java 开发工具包,是 Java 开发人员用于开发 Java 程序的基础工具。它提供了编译、调试和运行 Java 程序所需的各种工具和资源,包含了 JRE 和一系列开发工具(如 javac 编译器、java 运行工具、jdb 调试器等)。

JRE(Java Runtime Environment):Java 运行时环境,是运行 Java 程序所必需的环境集合。它包含了 Java 虚拟机(JVM)、Java 核心类库以及支持文件,能够提供执行 Java 程序的基本环境,但不包含开发工具。

JVM(Java Virtual Machine):Java 虚拟机,是 Java 程序的运行核心。它负责加载字节码文件(.class 文件),并将字节码解释或编译成机器码,在不同的操作系统上提供统一的运行环境,实现了 Java 程序的 “一次编写,到处运行” 的特性。

三者关系 可以用一个包含关系来描述它们:JDK 包含 JRE,JRE 包含 JVM。即 JDK = JRE + 开发工具,JRE = JVM + Java 核心类库。如果只是运行已有的 Java 程序,只需要安装 JRE 即可;但如果要开发 Java 程序,则必须安装 JDK。

2.和Tomacat的关系

Tomcat 是一个开源的 Servlet 容器,由 Apache 软件基金会开发和维护。它实现了 Servlet 和 JSP 规范,能够处理客户端的 HTTP 请求,执行 Servlet 程序,并将结果返回给客户端。

依赖关系 Tomcat 是用 Java 语言编写的,因此它的运行依赖于 Java 环境。具体来说,Tomcat 需要 JRE 或 JDK 来运行。当启动 Tomcat 时,实际上是启动了一个 Java 进程,该进程在 JVM 上运行 Tomcat 的代码。没有 Java 环境,Tomcat 就无法启动和工作。

1.2 在操作系统中部署java

打开网站:Java Downloads | Oracle       (可能会失效)

根据对应的操作系统选择对应的安装包

1.Ubuntu环境部署Java – deb

从官网获取软件,而后下载到本地,然后上传到
ubuntu
主机

root
@ubuntu24-13:
/
data
/
softs
# wget

https://download.oracle.com/java/24/latest/jdk-24_linux-x64_bin.deb

root@ubuntu24-13:/data/softs# ls   会得到右面的结果——   jdk-24_linux-x64_bin.deb 

检测效果

root
@ubuntu24-13:
/
data
/
softs
# whereis java

java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

确认效果

安装
java
环境

root
@ubuntu24-13:
/
data
/
softs
# dpkg -i jdk-24_linux-x64_bin.deb 

查看效果

root
@ubuntu24-13:
/
data
/
softs
# whereis java

java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1

命令检测

root
@ubuntu24-13:
/
data
/
softs
# java -version

java version "24.0.1" 2025-04-15 Java(TM) SE Runtime Environment (build 24.0.1+9-30) Java HotSpot(TM) 64-Bit Server VM (build 24.0.1+9-30, mixed mode, sharing)

真正的命令在哪里?

root
@ubuntu24-13:
/
data
/
softs
# ls /usr/bin/java -l

lrwxrwxrwx
1
root root
22  
9
月
30 15
:
20
/
usr
/
bin
/
java
-> /
etc
/
alternatives
/
java

root
@ubuntu24-13:
/
data
/
softs
# ls /etc/alternatives/java -l

lrwxrwxrwx
1
root root
43  
9
月
30 15
:
20
/
etc
/
alternatives
/
java
->

/
usr
/
lib
/
jvm
/
jdk-23
.0.1
–
oracle-x64
/
bin
/
java

root
@ubuntu24-13:
/
data
/
softs
# ls /usr/lib/jvm/jdk-23.0.1-oracle-x64/bin/java -l

–
rwxr-xr-x
1 10668 10668 12328  
9
月
30 15
:
20
/
usr
/
lib
/
jvm
/
jdk-23
.0.1
–
oracle

x64
/
bin
/
java

依照本安装的环境 如下显示

清理环境

root
@ubuntu24-13:
/
data
/
softs
# apt purge jdk-24

2. Rocky环境部署Java-rpm

前面安装的步骤和ubuntu一样,这里就说说不一样的安装,其他的略

安装软件

[root
@rocky9-12
softs]
# rpm -ivh jdk-23_linux-x64_bin.rpm

卸载软件

[root
@rocky9-12
softs]
# yum remove java

3.Ubuntu环境部署Java – openjdk

安装软件

root
@ubuntu24-13:
~
# apt update; apt list
openjdk*

root
@ubuntu24-13:
~
# apt install openjdk-11-jdk -y

检测效果

root
@ubuntu24-13:
~
# whereis java

java
: /
usr
/
bin
/
java
/
usr
/
share
/
java
/
usr
/
share
/
man
/
man1
/
java
.1
.gz

查看版本

root
@ubuntu24-13:
~
# java -version

openjdk version
"11.0.25"
2024
–
10
–
15

OpenJDK Runtime Environment (build
11.0.25
+
9
–
post-Ubuntu-1ubuntu124
.04
)

OpenJDK
64
–
Bit Server VM (build
11.0.25
+
9
–
post-Ubuntu-1ubuntu124
.04
, mixed mode,

sharing)

java命令在哪里

root
@ubuntu24-13:
~
# whereis java

java
: /
usr
/
bin
/
java
/
usr
/
share
/
java
/
usr
/
share
/
man
/
man1
/
java
.1
.gz

root
@ubuntu24-13:
~
# ll /usr/bin/java

lrwxrwxrwx
1
root root
22 10
月
18 01
:
21
/
usr
/
bin
/
java
-> /
etc
/
alternatives
/
java
*

root
@ubuntu24-13:
~
# ll /etc/alternatives/java

lrwxrwxrwx
1
root root
43 10
月
18 01
:
21
/
etc
/
alternatives
/
java
->

/
usr
/
lib
/
jvm
/
java-11-openjdk-amd64
/
bin
/
java
*

注意:安装软件的版本信息,会随时在变化

4.Rocky环境部署java – openjdk

安装软件

[root
@rocky9-12
~
]
# yum list
java*openjdk*

[root
@rocky9-12
~
]
# yum install java-11-openjdk -y

检测效果

[root
@rocky9-12
~
]
# whereis java

java
: /
usr
/
bin
/
java
/
usr
/
lib
/
java
/
etc
/
java
/
usr
/
share
/
java

/
usr
/
share
/
man
/
man1
/
java
.1
.gz

查看版本

[root
@rocky9-12
~
]
# java –version

openjdk
11.0.25 2024
–
10
–
15
LTS

OpenJDK Runtime Environment (Red_Hat-11
.0.25.0.9
–
1
) (build
11.0.25
+
9
–
LTS)

OpenJDK
64
–
Bit Server VM (Red_Hat-11
.0.25.0.9
–
1
) (build
11.0.25
+
9
–
LTS, mixed

mode, sharing)

真正的命令在哪里?

[root
@rocky9-12
~
]
# ll /usr/bin/java

lrwxrwxrwx.
1
root root
22 11
月
17 12
:
57
/
usr
/
bin
/
java
-> /
etc
/
alternatives
/
java

[root
@rocky9-12
~
]
# ll /etc/alternatives/java

lrwxrwxrwx.
1
root root
62 11
月
17 12
:
57
/
etc
/
alternatives
/
java
->

/
usr
/
lib
/
jvm
/
java-11-openjdk-11
.0.25.0.9
–
2.
el9.x86_64
/
bin
/
java

[root
@rocky9-12
~
]
# ll /usr/lib/jvm/java-11-openjdk-11.0.25.0.9-

2.el9.x86_64/bin/java

–
rwxr-xr-x.
1
root root
18072 10
月
17 04
:
33
/
usr
/
lib
/
jvm
/
java-11-openjdk-

11
.0.25.0.9
–
2.
el9.x86_64
/
bin
/
java

注意: 安装软件的版本信息,会随时在变化

1.3 Tomcat

Tomcat
(全称为
Apache Tomcat
)是一个开源的、轻量级的应用服务器,由
Apache
软件基金会开发和维护,它实现了
Java Servlet
、
Java Server Pages
(
JSP
)和
Java Expression

Language
(简称
JEXL java
表达式语言)等
Java EE
规范,并提供了一个运行这些
Web
应用程序的环境。

在使用
Tomcat
时,将
Java Web
应用程序(包括
Servlet
、
JSP
等文件)部署到
Tomcat
服务中,然后通过
HTTP
协议访问这些应用程序,
Tomcat
提供了一个简单而强大的方式来托管和运行
Java Web
应用程序。

1. java应用如何部署

JAR
包的主要作用之一是实现代码复用和模块化开发
,
也就是说,主要用于在项目分层开发的场景下,通用的功能模块、工具类、第三方库等功能,这样可以使应用的结构更加清晰,便于开发和维护。而且这些通用的功能代码,可以被多个不同的
Web
应用或
Java
项目共享使用。这些相互依赖的包关系可以借助于
Maven
、
Gradle
等工具来实现。
WAR
包是一个完整的
Web
应用程序的归档文件,它包含了一个
Web
应用运行所需的所有资源,如
JSP
文件、
Servlet
类、
HTML
文件、
CSS
文件、
JavaScript
文件等。每个
WAR
包通常对应一个独立的
Web
应用,不适合用于代码的复用
—
因为他本身没有依赖。

JAR
包可以部署到不同的环境中,不仅可以用于
Web
应用
,
还可以用于各种服务的独立部署。

WAR
包通常需要部署到支持
Java Web
应用的服务器(如
Tomcat
、
Jetty
等)中才能运行,部署方式相对固定。

2.Tomcat版本选择

参考资料:

   https
://
tomcat.apache.org
/
#
官网

   https
://
tomcat.apache.org
/
whichversion.html
#
版本对比

3.Ubuntu安装Tomcat10

1)安装好java环境

root
@ubuntu24-16:
~
# apt install openjdk-11-jdk -y

2)安装Tomcat10

查看软件

root
@ubuntu24-13:
~
# apt list tomcat*

正在列表
..
.
完成

tomcat-jakartaee-migration
/
noble
1.0.7
–
2
all

tomcat10-admin
/
noble
10.1.16
–
1
all

tomcat10-common
/
noble
10.1.16
–
1
all
#
程序的主程序执行脚本在这个包里

tomcat10-docs
/
noble
10.1.16
–
1
all

tomcat10-examples
/
noble
10.1.16
–
1
all

tomcat10-user
/
noble
10.1.16
–
1
all

tomcat10
/
noble
10.1.16
–
1
all

安装
tomcat

root
@ubuntu24-13:
~
# apt install tomcat10 -y

检测服务状态

root
@ubuntu24-13:
~
# systemctl is-active tomcat10.service

active

检测端口

root
@ubuntu24-13:
~
# netstat -tnulp | grep java

tcp6      
0      
0
:::
8080                
:::*
                   LISTEN    

5875
/
jav

查看进程

root
@ubuntu24-13:
~
# ps aux | grep tomcat

tomcat      
5875  
3.3  
4.4 3583400 176440
?
     Ssl  
13
:
04  
0
:
04

浏览器访问 10.0.0.13:8080

4.Rocky安装Tomcat

yum list tomcat*

安装
tomcat

[root
@rocky9-12
~
]
# yum install tomcat -y

检测服务状态

[root
@rocky9-12
~
]
# systemctl is-active tomcat

inactive

启动服务

[root
@rocky9-12
~
]
# systemctl start tomcat

[root
@rocky9-12
~
]
# systemctl enable tomcat

tomcat9在rocky中部署的时候,没有测试页面

[root
@rocky9-12
~
]
# mkdir /usr/share/tomcat/webapps/ROOT

[root
@rocky9-12
~
]
# echo "Hello,the beautiful world" >

/usr/share/tomcat/webapps/ROOT/index.jsp

[root
@rocky9-12
~
]
# curl 10.0.0.12:8080

Hello,the beautiful world

5.源码部署

1.ubuntu二进制部署java环境

1)j
ava
环境部署好

root
@ubuntu24-16:
~
# apt install openjdk-11-jdk -y

检查效果

root
@ubuntu24-16:
~
# java -version

定制环境变量

root
@ubuntu24-16:
~
# vim /etc/profile.d/java.sh

export JAVA_HOME
=/
usr
/
lib
/
jvm
/
java-11-openjdk-amd64

export JAVA_BIN
=
$JAVA_HOME
/
bin

export PATH
=
$JAVA_BIN:$PATH

加载环境变量

root
@ubuntu24-16:
~
# source /etc/profile.d/java.sh

获取软件

root
@ubuntu24-16:
~
# mkdir /data/softs -p; cd /data/softs

root
@ubuntu24-16:
/
data
/
softs
# wget https://dlcdn.apache.org/tomcat/tomcat-

9/v9.0.97/bin/apache-tomcat-9.0.97.tar.gz

解压文件

root
@ubuntu24-16:
/
data
/
softs
# mkdir /data/server

root
@ubuntu24-16:
/
data
/
softs
# tar xf apache-tomcat-9.0.97.tar.gz -C

/data/server/

定制软连接

root
@ubuntu24-16:
/
data
/
softs
# ln -s /data/server/apache-tomcat-9.0.97

/data/server/tomcat

root
@ubuntu24-16:
/
data
/
softs
# ls /data/server/

apache-tomcat-9
.0.97
 tomcat

查看目录结构

root
@ubuntu24-16:
/
data
/
softs
# ls /data/server/tomcat

bin           conf             lib      logs    README.
md
     RUNNING.txt

 webapps

BUILDING.txt  CONTRIBUTING.
md
 LICENSE  NOTICE  RELEASE-NOTES  temp         work

root
@ubuntu24-16:
/
data
/
softs
# ls /data/server/tomcat/bin/

bootstrap.jar                 configtest.sh     shutdown.sh

catalina.bat                  daemon.sh         startup.bat

catalina.sh
【启动脚本】
        digest.bat        startup.sh

。。。。。

查看启动脚本

root
@ubuntu24-16:
~
# /data/server/tomcat/bin/catalina.sh

Using CATALINA_BASE
:  
/
data
/
server
/
tomcat

Using CATALINA_HOME
:  
/
data
/
server
/
tomcat

Using CATALINA_TMPDIR
: /
data
/
server
/
tomcat
/
temp

。。。。。

定制系统环境变量

root
@ubuntu24-16:
~
# vim /etc/profile.d/tomcat.sh

export CATALINA_BASE
=/
data
/
server
/
tomcat

export CATALINA_HOME
=/
data
/
server
/
tomcat

export CATALINA_TMPDIR
=
$CATALINA_HOME
/
temp

export CLASSPATH
=
$CATALINA_HOME
/
bin
/
bootstrap.jar
:
$CATALINA_HOME
/
bin
/
tomcat

juli.jar

export PATH
=
$CATALINA_HOME
/
bin
:
$PATH

加载系统环境变量

root
@ubuntu24-16:
~
# source /etc/profile.d/tomcat.sh

启动
tomcat

root
@ubuntu24-16:
~
# catalina.sh start

Using CATALINA_BASE
:  
/
data
/
server
/
tomcat

Using CATALINA_HOME
:  
/
data
/
server
/
tomcat

Using CATALINA_TMPDIR
: /
data
/
server
/
tomcat
/
temp

Using JRE_HOME
:        
/
usr

Using CLASSPATH
:      

/
data
/
server
/
tomcat
/
bin
/
bootstrap.jar
:/
data
/
server
/
tomcat
/
bin
/
tomcat-juli.jar

Using CATALINA_OPTS
:

Tomcat started.

查看端口效果

root
@ubuntu24-16:
~
# netstat -tnulp | grep java

tcp6      
0      
0
:::
8080                
:::*
         LISTEN      
5114
/
java

tcp6      
0      
0 127.0.0.1
:
8005          
:::*
         LISTEN      
5114
/
java

浏览器查看效果

2.ubuntu定制tomcat的服务脚本

停止tomcat服务

root
@ubuntu24-16:
~
# catalina.sh stop

Using CATALINA_BASE
:  
/
data
/
server
/
tomcat

Using CATALINA_HOME
:  
/
data
/
server
/
tomcat

Using CATALINA_TMPDIR
: /
data
/
server
/
tomcat
/
temp

Using JRE_HOME
:        
/
usr

Using CLASSPATH
:      

/
data
/
server
/
tomcat
/
bin
/
bootstrap.jar
:/
data
/
server
/
tomcat
/
bin
/
tomcat-juli.jar

Using CATALINA_OPTS
:

NOTE
:
Picked up JDK_JAVA_OPTIONS
:  
—
add-opens
=
java.base
/
java.lang
=
ALL-UNNAMED
–

–
add-opens
=
java.base
/
java.io
=
ALL-UNNAMED
—
add-opens
=
java.base
/
java.util
=
ALL

UNNAMED
—
add-opens
=
java.base
/
java.util.concurrent
=
ALL-UNNAMED
—
add

opens
=
java.rmi
/
sun.rmi.transport
=
ALL-UNNAMED

定制服务启动脚本

定制专用服务用户

root
@ubuntu24-16:
~
# useradd -r -s /sbin/nologin tomcat

root
@ubuntu24-16:
~
# id tomcat

uid
=
997
(tomcat) gid
=
984
(tomcat)
组
=
984
(tomcat)

更改文件权限,因为是链接文件,所以,需要执行两条命令

root
@ubuntu24-16:
~
# chown -R tomcat:tomcat /data/server/tomcat

root
@ubuntu24-16:
~
# chown tomcat:tomcat -R /data/server/tomcat/*

root
@ubuntu24-16:
~
# ll /data/server/tomcat

lrwxrwxrwx
1
tomcat tomcat
33 11
月
17 14
:
02
/
data
/
server
/
tomcat
->

/
data
/
server
/
apache-tomcat-9
.0.97
/

定制启动服务脚本

定制启动服务脚本

root
@ubuntu24-16:
~
# cat /lib/systemd/system/tomcat.service

[Unit]

Description
=
Tomcat

After
=
syslog.target network.target

[Service]

Type
=
forking

# Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/

ExecStart
=/
data
/
server
/
tomcat
/
bin
/
startup.sh

ExecStop
=/
data
/
server
/
tomcat
/
bin
/
shutdown.sh

PrivateTmp
=
true

User
=
tomcat

Group
=
tomcat

[Install]

WantedBy
=
multi-user.target

加载服务配置

加载服务配置

root
@ubuntu24-16:
~
# systemctl daemon-reload

启动
tomcat
服务

root
@ubuntu24-16:
~
# systemctl start tomcat

root
@ubuntu24-16:
~
# systemctl status tomcat

●
tomcat.service
–
Tomcat

    Loaded
:
loaded (
/
usr
/
lib
/
systemd
/
system
/
tomcat.service; disabled; preset
:

enabled)

    Active
:
active (running)

浏览器访问 10.0.0.16:8080 里面的链接可以正常点击

Rocky部署
tomcat
10

安装
java
环境

[root
@rocky9-15
~
]
# yum install java-11-openjdk -y

检查效果

[root
@rocky9-15
~
]
# java –version

openjdk 17.0.15 2025-04-15 LTS OpenJDK Runtime Environment (Red_Hat-17.0.15.0.6-1) (build 17.0.15+6-LTS) OpenJDK 64-Bit Server VM (Red_Hat-17.0.15.0.6-1) (build 17.0.15+6-LTS, mixed mode, sharing)

定制环境变量

[root
@rocky9-15
~
]
# vim /etc/profile.d/java.sh

export JAVA_HOME
=/
usr
/
lib
/
jvm
/
java-17-openjdk-17.0.15.0.6-2
.
el9.x86_64

export JAVA_BIN
=
$JAVA_HOME
/
bin

export PATH
=
$JAVA_BIN:$PATH

加载环境变量

[root
@rocky9-15
~
]
# source /etc/profile.d/java.sh

Rocky二进制部署
tomcat

[root
@rocky9-15
~
]
# mkdir /data/softs -p; cd /data/softs

[root
@rocky9-15
softs]
# wget  
https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.40/bin/apache-tomcat-10.1.40.tar.gz

解压文件

[root
@rocky9-15
softs]
# mkdir /data/server

[root
@rocky9-15
softs]
# tar xf apache-tomcat-10.1.33.tar.gz -C /data/server/

定制软连接

[root
@rocky9-15
softs]
# ln -s /data/server/apache-tomcat-10.1.33

/data/server/tomcat

[root
@rocky9-15
softs]
# ls /data/server/

apache-tomcat-10
.1.33
 tomcat

查看目录结构

[root
@rocky9-15
softs]
# ls /data/server/tomcat

bin           conf             lib      logs    README.
md
     RUNNING.txt

 webapps

BUILDING.txt  CONTRIBUTING.
md
 LICENSE  NOTICE  RELEASE-NOTES  temp         work

[root
@rocky9-15
softs]
# ls /data/server/tomcat/bin/

bootstrap.jar                 configtest.sh     shutdown.sh

catalina.bat                  daemon.sh         startup.bat

catalina.sh
【启动脚本】
        digest.bat        startup.sh

。。。。。

查看启动脚本

[root
@rocky9-15
softs]
# /data/server/tomcat/bin/catalina.sh

。。。。

定制系统环境变量

[root
@rocky9-15
~
]
# vim /etc/profile.d/tomcat.sh

export CATALINA_BASE
=/
data
/
server
/
tomcat

export CATALINA_HOME
=/
data
/
server
/
tomcat

export CATALINA_TMPDIR
=
$CATALINA_HOME
/
temp

export CLASSPATH
=
$CATALINA_HOME
/
bin
/
bootstrap.jar
:
$CATALINA_HOME
/
bin
/
tomcat

juli.jar

export PATH
=
$CATALINA_HOME
/
bin
:
$PATH

加载系统环境变量

[root
@rocky9-15
~
]
# source /etc/profile.d/tomcat.sh

启动
tomcat

[root
@rocky9-15
~
]
# catalina.sh start

Using CATALINA_BASE
:  
/
data
/
server
/
tomcat

Using CATALINA_HOME
:  
/
data
/
server
/
tomcat

Using CATALINA_TMPDIR
: /
data
/
server
/
tomcat
/
temp

Using JRE_HOME
:        
/
usr
/
lib
/
jvm
/
java-11-openjdk-11
.0.25.0.9
–
2.
el9.x86_64

Using CLASSPATH
:      

/
data
/
server
/
tomcat
/
bin
/
bootstrap.jar
:/
data
/
server
/
tomcat
/
bin
/
tomcat-juli.jar

Using CATALINA_OPTS
:

Tomcat started.

查看端口效果

[root
@rocky9-15
~
]
# netstat -tnulp | grep java

tcp6      
0      
0
:::
8080                
:::*
         LISTEN      
33657
/
java

tcp6      
0      
0 127.0.0.1
:
8005          
:::*
         LISTEN      
33657
/
java

浏览器效果

赞(0)
未经允许不得转载:网硕互联帮助中心 » Tomcat web应用服务器
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!