Tomcat 基础理论+实验

前言:
  • Tomcat是一款免费、开放源代码的Web应用服务器,是Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
  • Tomcat由Apache、Sun和一些公司及个人共同开发而成,深受Java爱好者的喜好,并得到部分软件开发商的认可,是目前比较流行的Web应用服务器,官网为:https://tomcat.apache.org/

在这里插入图片描述

一、Tomcat 介绍

1.1 Tomcat 核心组件

在这里插入图片描述

  • ① Web容器

    负责底层的HTTP协议

  • ② Servlet容器

    由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务

    catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的

  • ③ JSP容器(JAVA Scripts page)

    JSP:在正常的html标签中嵌入一些java代码

    这些JSP最终会被翻译成Servlet代码被执行

    主要提供提供前端页面展示

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

1.2 Tomcat处理请求过程
1.2.1 Tomcat处理请求原理图

在这里插入图片描述

  • 处理请求详细过程
  • ① 用户访问网站时,请求被发送到本机端口(connector开放的端口就是8080)8080,被在端口监听的Coyote HTTP/1.1 connector获取
  • ② 接受请求之后交给container容器进行处理,container中有一个engine引擎运作
  • ③ 基于引擎支撑,容器中会跑很多host虚拟主机,这些虚拟主机中也会有很多context进程(引擎),此处的context类似于前端页面JSP,具体加载到的任务程序会运行servlet(进行逻辑业务处理)
  • ④ Servlet处理完后会返回给context
  • ⑤ context返回给engine引擎
  • ⑥ engine返回给端口
  • ⑦ 端口最后将页面展现给用户

CGI:底层通用网关接口(协议) Nginx调用的接口,当有了web服务支持CGI接口之后,想要web服务反馈页面,只有调用通用网关接口才可以反馈页面

1.2.2 四个子容器作用简述
  • Engine:引擎,用来管理多个站点,一个Service最多只能有一个Engine

  • Host:代表一个站点,也可以叫虚拟主机,通过配置Host就可以添加站点

  • Contxt:代表一个应用程序,对应着平时开发的一套程序,或者一个WEB-INF目录以及web.xml文件

  • Wrapper:每一个Wrapper封装着一个Servlet

  • Tomcat顶层架构小结

    ① Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container

    ② Server掌管着整个Tomcat的生死大权

    ③ Service时对外提供服务的

    ④ Connector用于接受请求并将请求封装成Request和Response来具体处理

    ⑤ Container用于封装和管理Servlet,以及具体处理request请求

二、Tomcat部署
2.1 实验环境
  • 一台centos7虚拟机

    tomcat节点 IP地址:192.168.226.128

    软件包

    • jdk-8u231-linux-x64.tar.gz
    • apache-tomcat-8.5.50.tar.gz

PS:在安装Tomcat之前必须先安装JDK,JDK是Sun公司提供的Java语言的软件开发大工具包,其中包含Java虚拟机(JVM)。

编写好的JAVA源程序经过编译可以形成java的字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了JAVA的跨平台性。在平台兼容性方面,JDK作为解释字节码并据此调用操作系统的API(功能接口)实现对应功能的JAVA虚拟机,与操作系统类型和平台位数密切相关,因此存在不同版本

2.2 实验过程
2.2.1 jdk安装
  • 软件包获取

    ① 使用宿主机下载tomcat软件包

    ② 安装vsftpd,在线下载tomcat包:

yum install vsftpd -y
systemctl start vsftpd 

#在线下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz
  • 安装jdk
[root@localhost ~]# mount.cifs //192.168.226.1/LAMP-C7 /mnt
Password for root@//192.168.226.1/LAMP-C7:    
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# rpm -ivh jdk-8u201-linux-x64.rpm 
.....省略部分内容
[[root@localhost mnt]# cd /usr/java/jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
  • 添加环境变量
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
[root@localhost jdk1.8.0_201-amd64]# tail -3 /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_231
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

#刷新生效    
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile
2.2.2 安装Tomcat
[root@localhost jdk1.8.0_201-amd64]# cd /mnt

[root@localhost mnt]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt

#将tomcat文件移动到/usr/local,同时重命名为tomcat
[root@localhost mnt]# mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat

#开启服务
root@localhost mnt]# mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
[root@localhost mnt]# cd /usr/local/tomcat/bin/
#执行启动脚本
[root@localhost bin]# ./startup.sh 
[root@localhost bin]# netstat -natp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      13948/java                 
三、访问Tomcat服务器
3.1 访问测试

在这里插入图片描述

3.2 Tomcat目录文件详解
[root@localhost tomcat]# ll
total 92
drwxr-x---. 2 root root  4096 Mar 30 15:36 bin
drwx------. 3 root root   254 Mar 30 15:36 conf
drwxr-x---. 2 root root  4096 Mar 30 15:36 lib
-rw-r-----. 1 root root 57092 Jun 22  2017 LICENSE
drwxr-x---. 2 root root   197 Mar 30 15:36 logs
-rw-r-----. 1 root root  1723 Jun 22  2017 NOTICE
-rw-r-----. 1 root root  7064 Jun 22  2017 RELEASE-NOTES
-rw-r-----. 1 root root 15946 Jun 22  2017 RUNNING.txt
drwxr-x---. 2 root root    30 Mar 30 15:36 temp
drwxr-x---. 7 root root    81 Jun 22  2017 webapps
drwxr-x---. 3 root root    22 Mar 30 15:36 work
  • 配置详解

    ① bin :启动和关闭Tomcat脚本文件

    ② conf:存放Tomcat服务器各种配置文件

    ③ lib :Tomcat服务器的jar包

    ④ logs:Tomcat日志

    ⑤ temp:Tomcat运行时产生的文件

    ⑥ webapps:项目资源的目录

    ⑦ work:Tomcat工作目录

3.3 Tomcat配置文件详解
[root@localhost conf]# ll
total 224
drwxr-x---. 3 root root     23 Mar 30 15:36 Catalina
-rw-------. 1 root root  13816 Jun 22  2017 catalina.policy
-rw-------. 1 root root   7376 Jun 22  2017 catalina.properties
-rw-------. 1 root root   1338 Jun 22  2017 context.xml
-rw-------. 1 root root   1149 Jun 22  2017 jaspic-providers.xml
-rw-------. 1 root root   2358 Jun 22  2017 jaspic-providers.xsd
-rw-------. 1 root root   3622 Jun 22  2017 logging.properties
-rw-------. 1 root root   7511 Jun 22  2017 server.xml
-rw-------. 1 root root   2164 Jun 22  2017 tomcat-users.xml
-rw-------. 1 root root   2633 Jun 22  2017 tomcat-users.xsd
-rw-------. 1 root root 168251 Jun 22  2017 web.xml
  • 配置文件详解
    • ① catalina.policy:权限控制配置文件
    • ② catalina.properties:Tomcat的属性配置文件
    • ③ context.xml:上下文配置文件
    • ④ logging.properties:日志相关配置文件
    • ⑤ server.xml:主配置文件,通过配置文件,可以修改tomcat的启动端口、网站目录、虚拟主机、开启https等功能
    • ⑥ tomcat-user.xml/.xsd:管理用户配置文件
      制配置文件
      ⑦ web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相关配置
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值