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

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

tomcat9rocky中部署的时候,没有测试页面

[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)

评论 抢沙发

评论前必须登录!