Tomcat布署及优化

1.Tomcat简介

  • Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,
  • Tomcat 属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。
  • 一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML 页面的功能,然而由于其处理静态 HTML 的能力远不及 Apache 或者 Nginx,所以 Tomcat 通常是作为一个 Servlet 和 JSP 容器,单独运行在后端。

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

2.动态网页功能

  • Web 容器:完成 Web 服务器的功能。
  • Servlet 容器:名字为 catalina,用于处理 Servlet 代码。
  • JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。

因此 Tomcat 是 Web 应用服务器,也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器,负责处理客户请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户。

2.1Servlet简介

Servlet 是Java Servlet 的简称,可以理解为是一个服务连接器,是用 Java 编写的服务器端程序,具有独立于平台和协议的特性, 简单的理解:servlet 就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建。

2.2JSP简介

  • JSP 全称 Java Server Pages,是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入 Java 代码。标签通常以 <% 开头,以 %> 结束。
  • JSP 是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。
  • JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

JSP 全称 Java Server Pages,是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入 Java 代码。标签通常以 <% 开头,以 %> 结束。

JSP 是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。

JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

3.JDK

3.1jdk和jre关系

  • Java SE APl: Java 基础类库开发接口

  • JRE: Java Runtime Environment缩写,指Java运行时环境,包含JVM +Java核心类库

  • JDK: Java Development Kit,即Java语言的软件开发工具包JDK协议基于JRL(JavaResearch License)协议

4.JVM简介

主流jdk版本:Oracke JDK和Open JDK

参考链接:

https://en.wikipedia.org/wiki/List_of_Java_virtual_machines

https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines

各个公司和组织基于标准规范,开发了不同的JVM版本

  • SUN HotSpot

  • IBM J9VM

  • BEA JRockit

5.目录

5.1安装目录

目录名字 功能
bin 存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.shstartup.shshutdown.sh 三个文件
conf 存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。
lib 存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包
logs 存放 Tomcat 日志
temp 存放 Tomcat 运行时产生的文件
webapps 存放项目资源的目录
work Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到(升级版本时注意要删除里面的缓存)

5.2conf子目录

文件名 说明
server.xml 主配置文件 全局生效
web.xml 每个webapp只有"部署"后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置,每个web应用也可以使用专用配置文件,来覆盖全局文件
context.xml 用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自已专用的配置,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中,覆盖全局的文件
tomcat-users.xml 用户认证的账号和密码文件
catalina.policy 当使用security选项启动omcat时,用于为tomcat设置安全策略
catalina.properties Tomcat环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相关参数
logging.properties Tomcat日志系统相关的配置,可以修改日志级别和日志路径等
注意配置文件对于大小写敏感

6.核心组件

Tomcat 由一系列的组件构成,其中核心的组件有三个:

1)Web 容器:完成 Web 服务器的功能。(https请求)

2)Servlet 容器:名字为 catalina,用于处理 Servlet 代码。(具体的任务)

3)JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。

① Web容器 ​ 负责底层的HTTP协议 ​ ​

② Servlet容器 ​ 由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务 ​ catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的 ​

​ ③ JSP容器(JAVA Scripts page) ​ JSP:在正常的html标签中嵌入一些java代码 ​ 这些JSP最终会被翻译成Servlet代码被执行 ​ 主要提供提供前端页面展示<% %>

​ 小结:tomcat就是一个容器,在这个容器中有三大核心组件: ​ WEB、Servlet 和JSP,所以Tomcat是极其轻量级别的,核心组件都是支持基本运行的组件

7.Tomcat处理请求过程

1、用户在浏览器中输入网址,请求被发送到本机端口 8080,被在那里监听的 Connector 获得;

2、Connector 把该请求交给它所在的 Service 的 Engine(Container)来处理,并等待 Engine 的回应;

3、请求在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用,最后在 Servlet 中执行对应的业务逻辑、数据存储等。

4、执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回,最后返回给 Connector,并通过 Connector 返回给客户端。

8.JDK安装

8.1Oracle JDK 的 rpm安装

1.关防护

复制代码
systemctl stop firewalld
setenforce 0

2.下载安装包

复制代码
mkdir /data
cd /data

3.yum安装

复制代码
yum install jdk-8u291-linux-x64.rpm -y

4.调整环境变量

默认中有java,所以我们要去调整环境变量

复制代码
find  /  -name  javac
cd /usr/java/

vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH 

5.运行看结果

复制代码
.  /etc/profile.d/jdk.sh
java  -version

8.2Oracle JDK的二进制文件安装

1.关防护

复制代码
systemctl stop firewalld
setenforce 0

2.下载安装包

3.解压并进入指定目录

复制代码
tar xf jdk-8u291-linux-x64.tar.gz  -C  /usr/local/
cd /usr/local/

4.优化路径

复制代码
ln -s jdk1.8.0_291/  jdk

5.调整环境变量

复制代码
vim /etc/profile.d/jdk.sh

export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/

6.执行看结果

复制代码
. /etc/profile.d/jdk.sh
java -version

9.安装Tomcat

1.下载安装包和解压

复制代码
cd /data
tar xf apache-tomcat-9.0.16.tar.gz

2.优化路径

复制代码
cp -r apache-tomcat-9.0.16 /usr/local
cd /usr/local/
ln -s apache-tomcat-9.0.16/  tomcat

3.启动tomcat

复制代码
cd /usr/local/tomcat/
/usr/local/tomcat/bin/startup.sh

看一下网页

4.关闭Tomcat

复制代码
/usr/local/tomcat/bin/shutdown.sh

5.新建用户

复制代码
useradd -s /sbin/nologin tomcat

6.修改属主属组

复制代码
chown tomcat:tomcat tomcat/ -R

7.写文件

复制代码
vim /usr/lib/systemd/system/tomcat.service

[Unit]
Description=Tomcat
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

8.开启tomcat

复制代码
systemctl daemon-reload
systemctl start tomcat
systemctl status tomcat
相关推荐
J2虾虾13 小时前
Spring AI Alibaba文档
java·人工智能·spring
xiaoye-duck13 小时前
《Linux系统编程》Linux 进程间通信之管道基础解析:从匿名管道原理到基于管道的进程池实现
linux
z2005093013 小时前
【Linux学习】Linux中的进程程序替换
linux·服务器·学习
YikNjy13 小时前
break和continue
java·开发语言·算法
SomeOtherTime13 小时前
Geojson相关(AI回答)
java·前端·python
日月云棠13 小时前
10 Integer —— 最常用的整数包装类深度解析
java·后端
bush413 小时前
嵌入式linux学习记录四
linux·运维·学习
秋913 小时前
java项目中cpu飙升排查及解决方法
java·开发语言
野生技术架构师13 小时前
牛客网2026最新大厂Java高频面试题精选(附标准答案)
java·开发语言