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.sh、startup.sh、shutdown.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.shexport 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