您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

Tomcat目录结构详解:从新手到专家的指南

时间:2023-09-27 12:43:55  来源:京东云开发者  作者:
Tomcat 目录结构图如下:

 

Tomcat目录结构详解:从新手到专家的指南

1、bin 目录

存放一些可执行的二进制文件,****.sh 结尾的为 linux 下执行命令,****.bat 结尾的为 windows 下执行命令。

  • catalina.sh:真正启动 tomcat 文件,可以在里面设置 jvm 参数。
  • startup.sh:启动 tomcat(需事先配置好 JAVA_HOME 环境变量才可启动,该命令源码实际执行的为 catalina.sh start)。
  • shutdown.sh:关闭 tomcat。
  • version.sh:查看 tomcat 版本相关信息。

2、conf 目录

存放 tomcat 相关配置文件的。

Tomcat目录结构详解:从新手到专家的指南

2.1、catalina.policy

项目安全文件,用来防止欺骗代码或 JSP 执行带有像 System.exit (0) 这样的命令,可能影响容器的破坏。 只有当 Tomcat 用 - security 命令行参数启动时这个文件才会被使用,即启动 tomcat 时, startup.sh -security 。

2.2、catalina.proterties

配置 tomcat 启动相关信息文件

2.3、context.xml

监视并加载资源文件,当监视文件发生变化时,自动加载,通常不会去配置

2.4、jaspic-providers.xml 和 jaspic-providers.xsd

不常用文件

2.5、logging.properties

tomcat 日志文件配置,包括输出格式、日志级别等。

2.6、server.xml

核心配置文件:修改端口号,添加编码格式等

核心组件介绍:

<1>Server:最顶层元素,而且唯一,代表整个 tomcat 容器。一个 Server 元素包含一个或者多个 Service 元素;

<2>Service:对外提供服务的。一个 Service 元素包含多个 Connector 元素,但是只能包含一个 Engine 元素;

<3>Connector:接收连接请求,创建 Request 和 Response 对象用于和请求端交换数据;然后分配线程让 Engine 来处理这个请求,并把产生的 Request 和 Response 对象传给 Engine

<4>Engine:Engine 组件在 Service 组件中有且只有一个;Engine 是 Service 组件中的请求处理组件。Engine 组件从一个或多个 Connector 中接收请求并处理,并将完成的响应返回给 Connector,最终传递给客户端。

<5>Host:代表特定的虚拟主机。

<Host name="localhost" AppBase="webapps" unpackWARs="true" autoDeploy="true">

**name:** 虚拟主机的主机名。比如 localhost 表示本机名称,实际应用时应该填写具体域名,比如 www.dog.com ,当然如果该虚拟主机是给内部人员访问的,也可以直接填写服务器的 ip 地址,比如 192.168.1.101;

**appBase:** 设置 Web 应用程序组的路径。appBase 属性的值可以是相对于 Tomcat 安装目录的相对路径,也可以是绝对路径,需要注意的是该路径必须是 Tomcat 有权限访问的;

**unpackWARs:** 是否自动展开 war 压缩包再运行 Web 应用程序,默认值为 true;

**autoDeplay:** 是否允许自动部署,默认值是 true,表示 Tomcat 会自动检测 appBase 目录下面的文件变化从而自动应用到正在运行的 Web 应用程序;

**deployOnStartup:** 为 true 时,表示 Tomcat 在启动时检查 Web 应用,且检测到的所有 Web 应用视作新应用;

<6>Context:该元素代表在特定虚拟主机 Host 上运行的一个 Web 应用,它是 Host 的子容器,每个 Host 容器可以定义多个 Context 元素。静态部署 Web 应用时使用。

<Context path="/" docBase="E:Resourcetest.war" reloadable="true"/>

**path:** 浏览器访问时的路径名,只有当自动部署完全关闭 (deployOnStartup 和 autoDeploy 都为 false) 或 docBase 不在 appBase 中时,才可以设置 path 属性。

**docBase:** 静态部署时,docBase 可以在 appBase 目录下,也可以不在;本例中,不在 appBase 目录下。

**reloadable:** 设定项目有改动时,重新加载该项目。

2.7、tomcat-users.xml 和 tomcat-users.xsd

tomcat-users.xml:tomcat 用户配置文件,配置用户名,密码,用户具备权限

tomcat 默认没有配置任何用户,只有配置好用户后才能使用以下 Tomcat Manager 三个功能:

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<user username="tomcat" password="tomcat" roles="manager-gui"/>

<user username="admin" password="123456" roles="manager-script"/>

tomcat-users.xsd:对 tomcat-users.xml 文件的描述和约束

2.8、web.xml

web 应用相关通用配置,可以做下面这些事情。

  • 配置 servlet
  • 添加过滤器,比如过滤敏感词汇
  • 设置 session 过期时间,tomcat 默认 30 分钟

Tomcat目录结构详解:从新手到专家的指南

  • 注册了很多 MIME 类型,即文档类型。这些 MIME 类型是客户端与服务器之间说明文档类型的,如用户请求一个 html 网页,那么服务器还会告诉客户端浏览器响应的文档是 text/html 类型的,这就是一个 MIME 类型
  • 配置系统欢迎页

Tomcat目录结构详解:从新手到专家的指南

3、lib 目录

存放 tomcat 依赖 jar 包的。

其中 ecj-x.x.x.jar 起到了将.java 文件编译成.class 字节码文件的作用。

Tomcat目录结构详解:从新手到专家的指南

4、logs 目录

存放 tomcat 运行时产生的日志文件。

在 windows 环境中,日志文件输出到 catalina.xxxx-xx-xx.log 文件中。

在 linux 环境中,日志文件输出到 catalina.out 文件中。

大体有以下几类:

Tomcat目录结构详解:从新手到专家的指南

catalina.xxxx-xx-xx.logwindows 下日志文件输出内容host-manager.xxxx-xx-xx.log访问 webapps 下 host-manager 项目日志localhost.xxxx-xx-xx.logtomcat 启动时,自身访问服务,只记录 tomcat 访问日志,而非业务项目日志localhost_access_log.xxxx-xx-xx.txt表示访问 tomcat 下所有项目日志记录manager.xxxx-xx-xx.log访问 webapps 下 manager 项目日志

5、temp 目录

用户存放 tomcat 在运行过程中产生的临时文件(清空不会对 tomcat 运行带来影响)。

6、webapps 目录

用来存放应用程序,可以以文件夹、war 包、jar 包的形式发布应用。当然也可以将应用程序放在磁盘的任意位置,在配置文件中映射好即可。

默认自带以下 5 个项目:

Tomcat目录结构详解:从新手到专家的指南

7、work 目录

用于存放 tomcat 在运行时的编译后文件(清空该目录下所有内容,重启 tomcat,可达到清除缓冲的作用)

 

作者:京东科技 杨建
来源:京东云开发者社区 转载请注明来源


Tags:Tomcat   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
使用Maven和Tomcat创建并部署Java应用
引言本文分享使用Maven和Tomcat创建、构建和部署简单的Java Web应用程序的过程。Maven是个强大的构建自动化工具,可以帮助管理项目依赖关系并自动化构建任务,而Tomcat是被广泛...【详细内容】
2023-12-11  Search: Tomcat  点击:(171)  评论:(0)  加入收藏
Spring Boot 调优内嵌 Tomcat 的三种方法
在 Spring Boot 中优化 Apache Tomcat 有三种方式,以便实现更好的性能和资源利用率。 线程池(连接器和执行器)设置 使用 NIO 或 APR 连接器 JVM优化线程池设置在 Spring Boot...【详细内容】
2023-11-23  Search: Tomcat  点击:(227)  评论:(0)  加入收藏
tomcat保姆级别教程
简介 tomcat是由apache软件基金会维护的jdk+servlet(严格地说是+jsp)实现的精简版的java ee,由于它只在jdk的基础上附加了jsp和servlet类库,所以它的应用范围主要是web应...【详细内容】
2023-11-13  Search: Tomcat  点击:(104)  评论:(0)  加入收藏
Tomcat参数优化
如何对Tomcat进行性能优化?对于提供接口服务的应用程序来说,很多都使用SpringBoot默认的Servlet容器Tomcat。上线之初,由于大部分流量较小,我们不会对Tomcat进行特殊的参数调整...【详细内容】
2023-11-08  Search: Tomcat  点击:(179)  评论:(0)  加入收藏
Tomcat配置参数原来这么玩?
connectionTimeout参数是说当客户端有服务器连接以后,如果客户端不输入任何内容,那么超过了connectionTimeout设置的时间后连接会被断开。application.yml配置server: port:...【详细内容】
2023-10-11  Search: Tomcat  点击:(264)  评论:(0)  加入收藏
Tomcat目录结构详解:从新手到专家的指南
Tomcat 目录结构图如下: 1、bin 目录存放一些可执行的二进制文件,****.sh 结尾的为 linux 下执行命令,****.bat 结尾的为 windows 下执行命令。 catalina.sh:真正启动 tomcat 文...【详细内容】
2023-09-27  Search: Tomcat  点击:(256)  评论:(0)  加入收藏
详解Tomcat配置参数connectionTimeout意义
connectionTimeout参数是说当客户端与服务器连接以后,如果客户端不输入任何内容,那么超过了connectionTimeout设置的时间后连接会被断开。​环境:springboot2.5.12application....【详细内容】
2023-09-01  Search: Tomcat  点击:(337)  评论:(0)  加入收藏
Tomcat环境部署
Tomcat简介Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他...【详细内容】
2022-10-17  Search: Tomcat  点击:(445)  评论:(0)  加入收藏
Tomcat回显技术学习汇总
01简 介2022年初打算把反序列化漏洞后利用技术给学习下,主要分为回显技术和内存马技术两大模块。因为之前对回显技术有所了解,就先把这块知识给弥补下。02搭建环境采用简单的S...【详细内容】
2022-10-09  Search: Tomcat  点击:(244)  评论:(0)  加入收藏
瞅瞅,这还是你熟悉的Tomcat吗?
一、Tomcat 架构概览 1、Tomcat是什么?Apache Tomcat软件是Jakarta Servlet、 Jakarta Server Pages、 Jakarta Expression Language、 Jakarta WebSocket、 Jakarta Annota...【详细内容】
2022-07-08  Search: Tomcat  点击:(493)  评论:(0)  加入收藏
▌简易百科推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  coderidea  微信公众号  Tags:Nginx   点击:(59)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30    简易百科  Tags:操作系统   点击:(76)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30    简易百科  Tags:VPS服务器   点击:(67)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  IDC行业观察者    Tags:VPS服务器   点击:(57)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  IDC行业观察者    Tags:服务器   点击:(52)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  源库科技    Tags:服务器   点击:(74)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  王建立    Tags:服务器   点击:(42)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  敲代码的小动    Tags:Nginx   点击:(59)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  安信SSL证书    Tags:服务器证书   点击:(65)  评论:(0)  加入收藏
宝塔面板怎样部署java项目?
宝塔面板怎样部署java项目?在使用宝塔面板部署Java项目之前,需要确保已经安装了Java Development Kit (JDK)。接下来,将介绍如何使用宝塔面板来部署Java项目的步骤。步骤一:安装...【详细内容】
2024-01-09  西部数码    Tags:宝塔面板   点击:(105)  评论:(0)  加入收藏
站内最新
站内热门
站内头条