Tomcat整体结构简单介绍

yizhihongxing

Tomcat是一个开源的servlet/JSP容器,是广泛使用的Java Web应用服务器之一。下面我来整理一下Tomcat的整体结构简单介绍攻略。

目录结构

Tomcat的安装目录结构如下:

* bin                    // 存放Tomcat的执行脚本和命令
* conf                   // 配置文件目录
* lib                    // 存放Tomcat需要的基础类库和JAR包
* logs                   // 存放Tomcat的日志文件
* webapps                // 存放Web应用程序的文件夹。这里是我们开发时最常用到的目录,把开发好的Web应用程序引入到webapps即可
* work                   // 这个文件夹用来保存Tomcat在运行时JSP编译生成的Servlet文件,它也可以在server.xml作为一个内部标记
* temp                   // Tomcat配置默认的工作目录(在线Java代码编译的时候使用到)

bin目录:存放启动、关闭Tomcat服务器的脚本和命令。其重要文件有startup.sh(启动Tomcat)、shutdown.sh(关闭Tomcat)等。

conf目录:存放配置文件。主要文件如下:

  • server.xml:Tomcat服务器的主要配置文件,定义Tomcat的网络端口,Web应用程序的根目录等。
  • web.xml:Web应用程序的部署描述文件,定义Web应用程序的servlet、JSP、过滤器等。
  • context.xml:Web应用程序的上下文配置文件,定义Web应用程序特殊的参数(例如JNDI等)

lib目录:存放Tomcat需要的基础类库和JAR包。

logs目录:存放Tomcat的日志文件。主要文件有catalina.out和localhost_access_log.yyyy_mm_dd.txt。

webapps目录:用于存放Web应用程序的文件夹。我们可以准备好WAR包,放到webapps下面启动Tomcat即可自动解压(只有部署方式为自动部署时会解压)。

work目录:用于在运行时储存JSP页面的编译代码以及Servlet类文件。

temp目录:Tomcat配置默认的工作目录。

Tomcat的核心组件

Tomcat的核心组件包括:

  • Catalina:Tomcat 的Servlet 容器和 Web 服务器。
  • Jasper:Tomcat 的JSP 引擎。
  • Coyote:Tomcat 的HTTP 连接器。
  • Cluster:Tomcat 的集群服务。
  • Tomcat Native:Tomcat 的本地组件,提供用于Tomcat的APR/Native实现。

其中,Coyote是实现 Tomcat 基本功能的核心组织, 是提供 HTTP(S) 访问的组件;而 Catalina 则是继承于 Coyote 之上的业务组件,是实现servlet和JSP规范API的Java类库集合。

示例说明

示例1:修改Tomcat默认端口

在conf/server.xml文件中找到如下两条配置:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

如上所示,Connector标签中的port参数用于设置Tomcat监听的端口号。我们可以把8080端口改成其他的端口号(如9090),并重启Tomcat服务器即可生效:

<Connector port="9090" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

示例2:添加添加新的Web应用程序

我们把项目目录拷贝到Tomcat的webapps目录下,Tomcat会自动帮我们把这个项目进行解压并部署。如果我们要自己手动部署一个Web应用程序,需要创建一个新的目录,然后在该目录中添加Web应用程序工程结构。例如,假设我们把项目拷贝到了/home/projects/myapp目录下,我们可以使用如下命令为Tomcat添加一个新的上下文:

$ cd $CATALINA_HOME/conf/Catalina/localhost
$ sudo vi myapp.xml

在myapp.xml文件中添加一个Context标签,设置docBase属性并保存:

<Context path="/myapp" docBase="/home/projects/myapp" />

以上代码会在http://localhost:8080/myapp路径下显示我们自己的Web应用程序。需要注意的是,这样添加的Web应用程序通常都需要手动启动和停止。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Tomcat整体结构简单介绍 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • CentOS系统上安装配置Oracle数据库的详细教程

    CentOS系统上安装配置Oracle数据库的详细教程 下面将介绍在CentOS系统上安装配置Oracle数据库的详细教程。 1. 下载Oracle数据库软件 请前往Oracle官网下载Oracle Database软件(版本自行选择)。 2. 安装必要的软件包 安装必要的软件包,执行以下代码: yum install -y binutils compat-…

    database 2023年5月22日
    00
  • k8s部署canal-1.1.6版本实现MySQL数据库数据同步

    1、版本说明 软件&镜像 版本&镜像信息 说明 Kubernetes v1.23.7 k8s服务器 Kuboard v3.5.2.0 k8s连接管理工具 Canal v1.1.6 数据同步 Canal-deployer canal/canal-server:latest canal-deplyer镜像版本信息 Canal-adapter fu…

    MySQL 2023年4月12日
    00
  • 解析探秘fescar分布式事务实现原理

    解析探秘fescar分布式事务实现原理 分布式事务是一个难点,因为分布式事务牵涉到多个不同的计算节点之间的协作,要实现一个高效且可靠的分布式事务控制系统并不是一件容易的事。在这篇文章中,我们将讲解如何解析探秘fescar分布式事务实现原理,并通过两个示例说明其工作原理。 什么是fescar fescar是一个基于Java的分布式事务解决方案,旨在解决分布式事…

    database 2023年5月21日
    00
  • SQL 依据条件逻辑动态调整排序项

    SQL是结构化查询语言,可以通过ORDER BY语句来指定查询结果的排序方式。一般情况下,我们可以通过固定的列名来指定排序项,但是有时候我们需要依据条件逻辑动态调整排序项。下面是完整的攻略以及两个示例。 攻略 要依据条件逻辑动态调整排序项,我们可以利用CASE表达式以及UNION操作符来实现。具体步骤如下: 使用CASE表达式来为每个排序项指定权重值,权重值…

    database 2023年3月27日
    00
  • MySql5.x升级MySql8.x的方法步骤

    以下是关于MySQL 5.x升级至MySQL 8.x的详细步骤攻略: 1.备份数据 在进行任何数据库的升级之前,首先需要对现有数据库进行备份,以防止数据的丢失和损坏。 使用以下命令备份MySQL数据库: mysqldump -u username -p database_name > backup.sql 其中,username为拥有此数据库权限的用户…

    database 2023年5月22日
    00
  • 在OneProxy的基础上实行MySQL读写分离与负载均衡

    一、什么是MySQL读写分离与负载均衡 MySQL读写分离是指将数据库的读操作和写操作分别分配到多个不同的MySQL实例中进行,而负载均衡则是将访问请求在多个MySQL实例之间进行均衡分配,从而实现更高的数据库读写性能和可靠性。 为了实现MySQL读写分离和负载均衡,需要使用类似于OneProxy这样的工具。OneProxy是一个基于MySQL协议的高性能代…

    database 2023年5月22日
    00
  • 数据库建表设计六范式介绍

    针对“数据库建表设计六范式介绍”的完整攻略,我将从以下几个方面逐一解释。 什么是六范式 在数据库建模的过程中,范式理论被广泛运用。其中六范式是范式理论中的最高等级,是指在数据模型设计中,针对每一个可能会变化的数据元素,都进行了单独复杂的设计,保证数据的弹性和变化的可扩展性。同时,这种设计能够保证数据在各种复杂环境下的正确性、可靠性和高效性。 六范式的应用 在…

    database 2023年5月21日
    00
  • 小白的springboot之路(三)、集成mybatis与MySQL

    0、前言   mybatis属于半自动的ORM,相比hibernate这种全自动的ORM,兼顾了性能与易用;目前企业项目中,基本都是mybatis的天下;今天就来整合mybatis与MySQL; 1、整合   1.-1、添加依赖: <!– 集成mybatis –> <dependency> <groupId>org.m…

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部