Tomcat

Tomcat

1.Tomcat简介

​ Tomcat是一个开源的、轻量级的、运行速度快的Web应用服务器,是Apache软件基金会的一个项目。Tomcat是一个Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,提供了一个Java HTTP web服务器环境,使得Java代码可以运行在服务器端。Tomcat可以作为独立的Web服务器运行,也可以作为Apache HTTP Server的插件运行,或者与其他Java应用服务器(如JBoss、WebLogic等)配合使用。它广泛应用于Java Web开发中,是Java开发人员常用的Web服务器之一。2.

2.Tomcat特点

  1. 轻量级:Tomcat的安装包相对较小,占用系统资源较少,适合于低配置的服务器或个人开发环境。
  2. 易于使用:Tomcat提供了简单易用的管理界面,可以方便地配置和管理Web应用。
  3. 高性能:Tomcat采用了多线程处理请求,能够处理大量并发访问,提供快速的响应速度。
  4. 可扩展性:Tomcat支持插件机制,可以通过添加插件来扩展其功能,满足不同的需求。
  5. 跨平台:Tomcat可以在多种操作系统上运行,包括Windows、Linux和Mac OS等。

3.Tomcat的工作流程

  1. 启动Tomcat:当Tomcat服务器启动时,它会加载配置文件(如server.xml)并初始化一些必要的组件,如连接器(Connector)、容器(Container)等。

  2. 监听端口:Tomcat的连接器(Connector)负责监听一个或多个端口,等待客户端的请求。默认情况下,Tomcat监听的端口为8080。

  3. 接收请求:当客户端(如浏览器)发送一个HTTP请求时,请求会被发送到Tomcat服务器的监听端口。连接器接收到请求后,会进行解析和处理。

  4. 请求分发:根据请求的URL,Tomcat会将请求分发给对应的容器(Container)。容器可以是Engine、Host或Context,它们分别对应着不同层级的Web应用。

  5. Servlet处理请求:容器会根据请求的URL找到对应的Servlet,并调用Servlet的doGet()或doPost()等方法来处理请求。Servlet可以生成动态的HTML页面、处理表单提交、访问数据库等。

  6. 生成响应:Servlet处理请求后,会生成相应的响应。响应可以是HTML页面、JSON数据等。

  7. 响应返回给客户端:Tomcat的连接器会将生成的响应返回给客户端,客户端(浏览器)会解析响应并显示在页面上。

  8. 关闭Tomcat:当Tomcat服务器关闭时,它会释放资源、关闭连接器等,确保服务器的正常关闭。

在整个过程中,Tomcat负责接收、分发和管理请求,并将响应发送回客户端。它还提供了一些额外的功能,如会话管理、安全认证、日志记录等。通过配置文件和插件,Tomcat可以进行灵活的配置和扩展,以满足不同的需求和场景。

4. Tomcat项目部署

4.1java环境安装
#安装jdk环境
[root@localhost ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

#查看安装的版本
[root@localhost ~]# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
4.2tomcat部署

上官网下载tomcat

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#下载tomcat软件包
[root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80.tar.gz
[root@localhost ~]# 

#解压部署
[root@localhost ~]# tar xf apache-tomcat-9.0.80.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ls
apache-tomcat-9.0.80  bin  etc  games  include  lib  lib64  libexec  sbin  share  src

#创建软连接
[root@localhost local]# ln -s apache-tomcat-9.0.80/ tomcat
[root@localhost local]# ll
total 0
drwxr-xr-x. 9 root root 220 Oct 11 15:53 apache-tomcat-9.0.80
drwxr-xr-x. 2 root root   6 Aug 12  2018 bin
drwxr-xr-x. 2 root root   6 Aug 12  2018 etc
drwxr-xr-x. 2 root root   6 Aug 12  2018 games
drwxr-xr-x. 2 root root   6 Aug 12  2018 include
drwxr-xr-x. 2 root root   6 Aug 12  2018 lib
drwxr-xr-x. 2 root root   6 Aug 12  2018 lib64
drwxr-xr-x. 2 root root   6 Aug 12  2018 libexec
drwxr-xr-x. 2 root root   6 Aug 12  2018 sbin
drwxr-xr-x. 5 root root  49 Oct  7 16:44 share
drwxr-xr-x. 2 root root   6 Aug 12  2018 src
lrwxrwxrwx. 1 root root  21 Oct 11 15:54 tomcat -> apache-tomcat-9.0.80/

#启动tomcat服务
[root@localhost local]# cd /usr/local/tomcat/bin
[root@localhost bin]# ls
bootstrap.jar                 commons-daemon.jar  makebase.sh       tomcat-juli.jar
catalina-tasks.xml            configtest.bat      setclasspath.bat  tomcat-native.tar.gz
catalina.bat                  configtest.sh       setclasspath.sh   tool-wrapper.bat
catalina.sh                   daemon.sh           shutdown.bat      tool-wrapper.sh
ciphers.bat                   digest.bat          shutdown.sh       version.bat
ciphers.sh                    digest.sh           startup.bat       version.sh
commons-daemon-native.tar.gz  makebase.bat        startup.sh
[root@localhost bin]# ./catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost bin]# ss -antl
State      Recv-Q     Send-Q              Local Address:Port         Peer Address:Port     
LISTEN     0          128                       0.0.0.0:22                0.0.0.0:*        
LISTEN     0          1              [::ffff:127.0.0.1]:8005                    *:*        
LISTEN     0          100                             *:8080                    *:*        
LISTEN     0          128                          [::]:22                   [::]:*        
#: 8005是用来关闭服务的端口号

测试

在这里插入图片描述

编写测试页面

[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# mkdir test
[root@localhost webapps]# cd test/
[root@localhost test]# vim index.jsp
[root@localhost test]# cat index.jsp 
<html>
<head>
        <title>test page</title>
</head>
<body>
                <%
                     out.println("Hellow World");
                %>
</body>
</html>

在这里插入图片描述

4.3尝试访问webapps目录中其他项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#解决办法
[root@localhost ~]# cd /usr/local/tomcat/conf/
[root@localhost conf]# ls
Catalina             context.xml           logging.properties  tomcat-users.xsd
catalina.policy      jaspic-providers.xml  server.xml          web.xml
catalina.properties  jaspic-providers.xsd  tomcat-users.xml
[root@localhost conf]# vim tomcat-users.xml
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat123" roles="manager-gui"/>
</tomcat-users>  #:写在这一行之上,写在后方无效

[root@localhost tomcat]# cd webapps/manager/META-INF/
[root@localhost META-INF]# vim context.xml 
将 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>  改为
allow="192\.168\.200\.\d+|::1|0:0:0:0:0:0:0:1"/>

#修改配置文件后重启服务
[root@localhost META-INF]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-jul
i.jar
Using CATALINA_OPTS:   
[root@localhost META-INF]# ss -antl
State      Recv-Q      Send-Q           Local Address:Port           Peer Address:Port     
LISTEN     0           128                    0.0.0.0:22                  0.0.0.0:*        
LISTEN     0           128                       [::]:22                     [::]:*        
[root@localhost META-INF]# ps -ef | grep tomcat
root       11161    1328  0 17:06 pts/0    00:00:00 grep --color=auto tomcat
[root@localhost META-INF]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-jul
i.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost META-INF]# ss -antl
State      Recv-Q     Send-Q              Local Address:Port         Peer Address:Port     
LISTEN     0          128                       0.0.0.0:22                0.0.0.0:*        
LISTEN     0          1              [::ffff:127.0.0.1]:8005                    *:*        
LISTEN     0          100                             *:8080                    *:*        
LISTEN     0          128                          [::]:22                   [::]:*        

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在examples这个项目中也是同样操作
[root@localhost META-INF]# cd
[root@localhost ~]# cd /usr/local/tomcat/webapps/examples/META-INF/
[root@localhost META-INF]# vim context.xml
把allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />  修改为
allow="192\.168\.200\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />   #加入本机网段

[root@localhost META-INF]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
[root@localhost META-INF]# ss -antl
State        Recv-Q       Send-Q             Local Address:Port             Peer Address:Port      
LISTEN       0            128                      0.0.0.0:22                    0.0.0.0:*         
LISTEN       0            128                         [::]:22                       [::]:*         
[root@localhost META-INF]# ps -ef | grep tomcat
root       11273    1328  0 17:38 pts/0    00:00:00 grep --color=auto tomcat
[root@localhost META-INF]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost META-INF]# ss -antl
State       Recv-Q      Send-Q                Local Address:Port            Peer Address:Port      
LISTEN      0           128                         0.0.0.0:22                   0.0.0.0:*         
LISTEN      0           1                [::ffff:127.0.0.1]:8005                       *:*         
LISTEN      0           100                               *:8080                       *:*         
LISTEN      0           128                            [::]:22                      [::]:*         

在这里插入图片描述

5.tomcat多实例部署

在同一台主机上部署多个tomcat服务

环境说明:

tomcat实例tomcat版本端口号
tomcat01tomcat-9.0.808005、8080、8443
tomcat02tomcat-9.0.808006、8081、8444
#安装java环境
#安装jdk环境
[root@localhost ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

#查看安装的版本
[root@localhost ~]# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

#下载tomcat软件包
[root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80.tar.gz
[root@localhost ~]# 

#解压部署
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80.tar.gz
[root@localhost ~]# tar xf apache-tomcat-9.0.80.tar.gz 
[root@localhost ~]# mv apache-tomcat-9.0.80 /usr/local/tomcat01

[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80.tar.gz
[root@localhost ~]# tar xf apache-tomcat-9.0.80.tar.gz  
[root@localhost ~]# mv apache-tomcat-9.0.80 /usr/local/tomcat02

#更改端口号,修改tomcat02的端口,防止与tomcat01的端口冲突,tomcat01保持默认不修改
[root@localhost ~]# cd /usr/local/tomcat02/conf/
[root@localhost conf]# ls
catalina.policy      jaspic-providers.xml  server.xml        web.xml
catalina.properties  jaspic-providers.xsd  tomcat-users.xml
context.xml          logging.properties    tomcat-users.xsd

[root@localhost conf]# vim server.xml 
把<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
redirectPort="8443"
修改为<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1"
redirectPort="8444"

#开启服务
[root@localhost ~]# /usr/local/tomcat01/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat01
Using CATALINA_HOME:   /usr/local/tomcat01
Using CATALINA_TMPDIR: /usr/local/tomcat01/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat01/bin/bootstrap.jar:/usr/local/tomcat01/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost ~]# ss -antl
State       Recv-Q      Send-Q                Local Address:Port            Peer Address:Port      
LISTEN      0           128                         0.0.0.0:22                   0.0.0.0:*         
LISTEN      0           1                [::ffff:127.0.0.1]:8005                       *:*         
LISTEN      0           100                               *:8080                       *:*         
LISTEN      0           128                            [::]:22                      [::]:*         

[root@localhost ~]# /usr/local/tomcat02/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat02
Using CATALINA_HOME:   /usr/local/tomcat02
Using CATALINA_TMPDIR: /usr/local/tomcat02/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat02/bin/bootstrap.jar:/usr/local/tomcat02/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost ~]# ss -antl
State       Recv-Q      Send-Q                Local Address:Port            Peer Address:Port      
LISTEN      0           128                         0.0.0.0:22                   0.0.0.0:*         
LISTEN      0           1                [::ffff:127.0.0.1]:8005                       *:*         
LISTEN      0           1                [::ffff:127.0.0.1]:8006                       *:*         
LISTEN      0           100                               *:8080                       *:*         
LISTEN      0           100                               *:8081                       *:*         
LISTEN      0           128                            [::]:22                      [::]:*     

#配置多实例测试网页
[root@localhost ~]# cd /usr/local/tomcat01/webapps/
[root@localhost webapps]# mkdir test
[root@localhost webapps]# cd test
[root@localhost test]# vim index.jsp
[root@localhost test]# cat index.jsp 
<html>
<head>
     <title>test page</title>
</head>
<body>
        <%
           out.println("Tomcat01");
        %>
</body>
</html>


[root@localhost ~]# cd /usr/local/tomcat02/webapps/
[root@localhost webapps]# mkdir test
[root@localhost webapps]# cd test
[root@localhost test]# vim index.jsp
[root@localhost test]# cat index.jsp 
<html>
<head>
     <title>test page</title>
</head>
<body>
        <%
           out.println("Tomcat02");
        %>
</body>
</html>

测试

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值