Tomcat目录结构

tomcat,目录,结构 · 浏览次数 : 16

小编点评

**Tomcat目录结构图** ``` bin ├── catalina.sh ├── startup.sh ├── shutdown.sh ├── version.sh ├── conf │ ├── catalina.policy │ ├── catalina.properties │ ├── context.xml │ ├── jaspic-providers.xml │ ├── logging.properties │ └── server.xml ├── lib │ ├── ecj-x.x.x.jar ├── logs │ ├── catalina.xxxx-xx-xx.log │ └── webapps │ ├── host-manager.xxxx-xx-xx.log │ └── manager.xxxx-xx-xx.log ├── temp ``` **目录说明** * **bin:**存放可执行的二进制文件。 * **conf:**存放 Tomcat 配置文件,包括安全文件、启动脚本、环境变量配置等。 * **lib:**存放 Tomcat 依赖的 jar 包。 * **logs:**存放 Tomcat运行时产生的日志文件。 * **webapps:**存放应用程序,可以以文件夹、war包、jar包的形式发布应用。 * **work:**用于存放 Tomcat 在运行过程中产生的临时文件。

正文

Tomcat目录结构图如下:

1、bin目录

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

2、conf目录

存放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:\Resource\test.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分钟

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

3、lib目录

存放tomcat依赖jar包的。

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

4、logs目录

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

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

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

大体有以下几类:

catalina.xxxx-xx-xx.log windows下日志文件输出内容
host-manager.xxxx-xx-xx.log 访问webapps下host-manager项目日志
localhost.xxxx-xx-xx.log tomcat启动时,自身访问服务,只记录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个项目:

7、work目录

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

作者:京东科技 杨建

来源:京东云开发者社区 转载请注明来源

与Tomcat目录结构相似的内容:

Tomcat目录结构

Tomcat目录结构图如下: 1、bin目录 存放一些可执行的二进制文件,.sh 结尾的为linux下执行命令,.bat 结尾的为windows下执行命令。 catalina.sh:真正启动tomcat文件,可以在里面设置jvm参数。 startup.sh:启动tomcat(需事先配置好JAVA_H

[转帖]Tomcat部署及优化

目录 一、Tomcat简介1 Tomcat的三大核心组件2 Java Servlet3 JSP全称Java Server Pages4 Tomcat 功能组件结构5 Tomcat 请求过程 二、Tomcat 服务部署1.关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下2.安装JDK3.

制作tomcat镜像

本篇文章介绍用Dockerfile的方式构建Tomcat镜像,请保证安装了Docker环境。 1. 首先创建/opt/tomcat目录,后续步骤都在该目录下进行操作。 2. 准备好Jdk和Tomcat安装文件,放到/opt/tomcat目录下。 3. 编写Dockerfile,内容如下: ```Do

[转帖]Tomcat参数配置

前言 Tomcat是啥子,想必搜索tomcat配置的小伙伴应该无人不晓,无人不知了吧,但是我还是把官网看了一下有句话: Apache Tomcat software powers numerous large-scale, mission-critical web applications acro

[转帖]Tomcat 优雅关闭之路

本文首发于 vivo互联网技术 微信公众号链接:https://mp.weixin.qq.com/s/ZqkmoAR4JEYr0x0Suoq7QQ作者:马运杰 本文通过阅读Tomcat启动和关闭流程的源码,深入分析不同的Tomcat关闭方式背后的原理,让开发人员能够了解在使用不同的关闭方式时需要注意

[转帖]Tomcat maxKeepAliveRequests

https://www.cnblogs.com/turn2i/p/10480088.html 在写这个问题前,其实我是为了分析项目碰到的一个tcp close wait问题。这个问题就不在这里讲了。 造成的原因很简单,就是很多项目对httpclient的参数和使用都理解有问题,往往随便写一个或者使用

Tomcat--文件上传--文件包含--(CVE-2017-12615)&&(CVE-2020-1938)

Tomcat--文件上传--文件包含--(CVE-2017-12615)&&(CVE-2020-1938) 复现环境 采用Vulfocus靶场环境进行复现,搭建操作和文章参考具体搭建教程参考vulfocus不能同步的解决方法/vulfocus同步失败。 CVE-2017-12615 文件上传 漏洞简

tomcat非root用户启动

部署远程服务器时候, 基本都是用root账户登录, 习惯上会直接使用root启动tomcat. 这样其实是有风险的, 黑客获取的权限即容器的权限, 如果容器运行权限就很高,被攻破黑客即可获取很高的权限,造成破坏面及风险更大 本文介绍通过tomcat下的/bin/daemon.sh方式启动tomcat

Tomcat知识点整理

> 从学习起就开始接触tomcat, 解压, 点击运行, 然后放文件夹里面会自动部署, 可以通过ip访问. 在这里主要记录一些tomcat相关的知识点 ## 配置文件解析(留位置) server.xml/web.xml等 - shutdown 8005 - 自动部署问题 - manager - 配置

Tomcat 与 JVM 中classpath的理解和设置总结

本文为博主原创,转载请注明出处: 1.介绍 classpath是java运行时环境搜索类和其他资源文件(比如jar\zip等资源)的路径。类路径告诉JDK工具和应用程序在哪里可以找到第三方和用户定义的类; 可以通过JDK工具(比如javac命令、java命令)后面的-classpath 参数设置cl