• 小猫来了~Tomcat以及安装


    Tomcat

    Tomcat介绍

    免费的、开放源代码的Web应用服务器
    
    Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
    
    由Apache、.Sun和一些公司及个人共同开发而成
    
    深受Java爱好者的喜爱,并得到部分软件开发商的认可
    
    目前比较流行的Web应用服务器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    Tomcat核心组件

    image-20220726104205251

    (1)Web容器:完成Web服务器的功能   web应用服务
    web--》可以通过http(s)来访问的一个页面--》文件
    web容器--》封装了一组文件
    集中化管理--》一组组员的对象
    (2)Servlet容器:名字为catalina,用于处理Servlet代码。
    
    (3)JSP容器:用于将JSP动态网页翻译成Servlet代码。
    只是用于安装定影的规则,格式来显示静态页而
    
    后端进行交互,怎么打开交互页面展示
    index.jsp---》tomcat用的
    java环境----和数据交互,
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    动态页面:可以让用户进行交互的一种web的页面
    
    • 1
    1、Web容器:接受、响应请求
               展示动态页面
               入口出口
    2、JSP容器:翻译java-->servlet
    index.html--》nginx可以直接展示index.php
    index.jsp-->java环境---》和数据库怎么进行交互,怎么连接到后端???
    index.jsp---》java类代码---》就是执行对接后端的执行代码,所以我们需要在进行与用户交互时,将用户发出的请求、数据、
    传输到后端
    但是index.jsp中的一些java代码无法直接执行对接或者调用,需要先翻译为可以可直接执行的代码方式--》格式serverlst
    代码格式
    3、serverlet容器:serverlet代码格式就是用JSP容器来处理
    简介:
    web容器:1、接受、响应请求2、展示动态页面
    JSP容器:翻译java--->servlet
    Serverlet容器:借助于catalina来执行servelet代码(动态任务执行的标准格式)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    Tomcat功能组件结构:

    Tomcat的核心功能有两个,分别是负责接收和反馈外部请求的连接器Connector,和负责处理请求的容器Container。
    其中连接器和容器相辅相成,一起构成了基木的web服务Service。每个Tomcat服务器可以管理多个Service。
    
    • 1
    • 2
    Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界
    Container:负责对内处理业务逻辑。其内部由Engine、Host、Context.和Wrapper四个容器组成,用于管理和调用Servlet相关逻辑
    
    Service:对外提供的Web服务。主要包含Connector和Container两个核心组件,以及其他功能组件。Tomcat可以管理多个Service,且各Service之间相互独立
    
    • 1
    • 2
    • 3
    • 4

    Container结构分析:

    每个Service会包含一个Container容器。在Container内部包含了4个子容器:
    4个子容器的作用分别是:
    (l)Engine:引擎,用来管理多个虚拟主机,一个Service最多只能有一个Engine:
    (2)Host:代表一个虚拟主机,也可以叫站点,通过配置Host就可以添加站点:
    (3)Context:代表一个Web应用,包含多个Servlet封装器:
    (4)Wrapper:封装器,容器的最底层。每一Wrapper封装着一个Servlet,负责对象实例的创建、执行和销毁功能。
    
    Engine、Host、Context和Wrapper,这四个容器之间属于父子关系。
    容器由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个Web应用。每个Web应用会有多个Servlet封装器。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    image-20220726160150793

    端口:8080,监听8080端口

    netsta -antp |grep 8080 / java

    image-20220726160815578

    image-20220726163514531

    Tomcat请求过程:

    1、用户在浏览器中输入网址,请求被发送到本机瑞口8080,被在那里监听的Connector获得:
    
    2、Connector把该请求交给它所在的Service的Engine(Container)来处理,并等待Engine的回应:
    
    3、请求在Engine、Host、Context和Wrapper这四个容器之间层层调用,最后在Servlet中执行对应的业务逻辑、数据存储等
    
    4、执行完之后的请求响应在Context、Host、Engine容器之间层层返回,最后返回给Connector,并通过Connector返回给客户端。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Tomcat安装

    关闭防火墙,核心防护

    [root@nfs opt]# systemctl stop firewalld
    [root@nfs opt]# systemctl disable firewalld
    [root@nfs opt]# setenforce 0
    
    • 1
    • 2
    • 3

    把安装的包都移动到/opt 的目录下

    [root@nfs opt]# ls
    apache-tomcat-9.0.16.tar.gz  jdk-8u201-linux-x64.rpm  
    
    • 1
    • 2

    rpm安装

    [root@nfs opt]# rpm -ivh jdk-8u201-linux-x64.rpm 
    
    • 1

    安装jdk的环境变量

    [root@nfs opt]# vim /etc/profile.d/java.sh
    export  JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
    export  CLASSPATH=.:SJAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    export  PATH=$JAVA_HOME/bin:$PATH
    刷新一下环境变量
    [root@nfs opt]# source /etc/profile.d/java.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    解压apache-tomcat包

    [root@nfs opt]# tar zxvf apache-tomcat-9.0.16.tar.gz
    把解压后的包移动到/usr/local/tomcat
    [root@nfs opt]# mv apache-tomcat-9.0.16 /usr/local/tomcat
    
    [root@nfs opt]# /usr/local/tomcat/bin/startup.sh 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [root@nfs opt]# netstat -antp|grep 8080
    tcp6       0      0 :::8080                 :::*                    LISTEN      4012/java     
    或
    [root@nfs opt]# netstat -antp|grep java
    tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      4012/java           
    tcp6       0      0 :::8009                 :::*                    LISTEN      4012/java           
    tcp6       0      0 :::8080                 :::*                    LISTEN      4012/java
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
            :::*                    LISTEN      4012/java           
    
    • 1

    tcp6 0 0 :::8080 ::😗 LISTEN 4012/java

    
    ![image-20220726173343700](https://img-blog.csdnimg.cn/img_convert/5c757eba8654534e0ae46dae2719f1ed.png)
    
    • 1
    • 2
  • 相关阅读:
    好好学习第二天:服装图像分类
    动态规划问题(八)
    Java中ConcurrentHashMap 和 Hashtable
    Android基础-如何获取通话状态
    CircRNA+代谢组如何冲击22分高分文章?
    开箱即用,你不可错过的好东西「GitHub 热点速览」
    while语句使用
    测试需要写测试用例吗?
    【算法/图论】2-SAT问题详解
    Linux 进程创建,进程状态,优先级
  • 原文地址:https://blog.csdn.net/weixin_68579466/article/details/125999848