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
相关推荐
西岭千秋雪_2 分钟前
设计模式の中介者&发布订阅&备忘录模式
java·观察者模式·设计模式·中介者模式·备忘录模式
我是高手高手高高手3 分钟前
ThinkPHP8多应用配置及不同域名访问不同应用的配置
linux·服务器·前端·php
憶巷9 分钟前
MyBatis中动态SQL执行原理
java·sql·mybatis
重生之绝世牛码10 分钟前
Java设计模式 —— 【结构型模式】享元模式(Flyweight Pattern) 详解
java·大数据·开发语言·设计模式·享元模式·设计原则
seasugar15 分钟前
记一次Maven拉不了包的问题
java·maven
Allen Bright24 分钟前
【Java基础-26.1】Java中的方法重载与方法重写:区别与使用场景
java·开发语言
苹果酱056725 分钟前
Golang的文件解压技术研究与应用案例
java·vue.js·spring boot·mysql·课程设计
莲动渔舟28 分钟前
妙用编辑器:如何使用编辑器的筛选功能更高效的阅读日志
编辑器
神洛华28 分钟前
Y3编辑器教程8:资源管理器与存档、防作弊设置
编辑器·游戏引擎·游戏程序
秀儿y28 分钟前
单机服务和微服务
java·开发语言·微服务·云原生·架构