Tomcat部署及优化
一:什么是tomcat
tomcat是由Apache软件基金会Jakarhe项目中的一个核心项目,是一个免费的、开源的软件,深受Java爱好者的喜爱,也是目前比较流行的web应用服务器(中间件)。其工作模式是网页端–服务器(B/S)
二:tomcat核心组件
web容器:完成web服务器的功能
tomcat web应用服务
web可以通过http(s)来访问一个页面–文件
web容器–》封装了一组文件
集中化管理–》一组组员的对象
servlet容器:名字为Catalina,用于处理servlet代码。
servlet是Java servlet的简称,可以理解为是一个服务连接器,是用java编写的服务器端程序,具有独立于平台和协议的特征,可以类比于一个中间件,包含接口和方法,将客户端与数据库连接,实现动态网页的创建
jsp容器:用于将jsp动态页面翻译成servlet代码
全称是java server pages,是一种动态网页开发技术。使用jsp标签在HTML网页中插入java代码。通常以<%开头,以%>结束
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分
jsp通过网页表单获取用户输入的数据,访问数据库及其他数据,然后动态创建网页。
动态页面:可以让用户进行交互的一种web页面
后端进行交互
index.jsp—>tomcat 的Java环境—和数据交互
因此,tomcat是web应用服务器,也是一个servlet/JSP容器。tomcat作为servlet容器,负责处理客户请i去,把请求传送给servlet,并将servlet的响应传送回给客户
一个系统可以装多个tomcat,实现负载均衡
二:核心组件
1:web容器:
接受、响应请求
展示动态页面
入口 出口
2:JSP容器:翻译Java 》servlet
index.jsp —> Java环境 和数据库怎么进行交互,怎么连接到后端
index.jsp—>java类代码—》就是决定对接后端的执行代码,所以我们需要再进行与用户交互时,将用户发出的请求、数据传输到后端
但是index.jsp中的一些Java代码无法直接执行对接或者调用,需要先翻译可直接执行的代码方式—》格式serverlst代码格式
3:serverlet容器:serverlet代码格式就是用JSP来处理
三:功能组件结构
tomcat功能组件结构:
tomcat的核心功能有两个,分别时负责接受和反馈外部请求的连接器connector,和负责处理请求的容器container
其中连接器和容器相辅相成,一起构成了基本的web服务service,每个tomcat服务器可以管理多个service
Connector:负责对外接受和响应请求。它是tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界
container:负责对内处理业务逻辑,其内部由Engine、Host、Context和Wrapper四个容器组成,用于管理和调用servlet相关逻辑
service:对外提供的web服务,主要包含Connector和Container两个核心组件,以及其他功能组件。tomcat可以管理多个service,且各service之间相互独立
Containet结构分析:
每个service会包含一个 Containet容器,其中包含了四个子容器:
(1)Engine:引擎,用来管理多个虚拟主机,一个service最多只能有一个Engine
(2)Host:代表一个虚拟主机,也可以叫站点,通过配置Host就可以添加站点
(3)Context:代表一个web应用,包含多个servlet封装器
(4)Wrapper:封装器,容器的最底层,每一个wrapper封装着一个servlet,负责对象实例的创建、执行、和销毁
Engine、host、context、wrapper这四个容器属于父子关系
容器 由一个引擎可以管理多个虚拟主机,每个虚拟主机可以管理多个web应用,每个web应用会有多个servlet封装器
四:请求处理过程
第一部分
第二部分
简单架构
用户再浏览器输入网址,请求被转发到本机端口8080,被在那里监听的connector获取
connector把该请求交给它所在的service的Engine(Container)来处理,并等待Engine的回应
请求在Engine、Host、Context、和Wrapper这四个容器之间层层调用,最后在servlet中执行相对应的业务六级、数据存储等。
执行完之后的请求响应在Context、Host、Engine之间层层返回,最后返回给Connector,并通过Connector返回给客户端。
五:安装tomcat
在安装tomcat之前,要先安装JDK
systemctl stop firewalld
systemctl disable firewalld
setentorce 0
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm #进行解压与升级安装
rpm -ivh jdk-8u201-linux-x64.rpm
Java -version
安装的目录在这里
设置JDK环境变量
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile.d/java.sh #刷新环境变量
安装tomcat
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
移动tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat
/usr/local/tomcat/bin/startup.sh #开启tomcat服务
查看端口
netstat -antlp |grep 8080
netstat -antlp |grep java
查看页面
h #开启tomcat服务
[外链图片转存中...(img-VVEjeqoU-1660814723966)]
查看端口
netstat -antlp |grep 8080
netstat -antlp |grep java
[外链图片转存中...(img-xVbwBAoQ-1660814723966)]
查看页面
![image-20220726231153955](https://img-blog.csdnimg.cn/img_convert/832082dfb29144392f1a485ee31ee7a3.png)