java获取tomcat目录结构_Tomcat目录结构详解

Tomcat目录结构图如下:

e6fc342d89117cae0fc01bb906d73cee.png

bin目录

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

catalina.sh:真正启动tomcat文件,可以在里面设置jvm参数。

startup.sh:启动tomcat(需事先配置好JAVA_HOME环境变量才可启动,该命令源码实际执行的为catalina.sh start)。

shutdown.sh:关闭tomcat。

version.sh:查看tomcat版本相关信息。

conf目录

存放tomcat相关配置文件的。

8bf668519ae2c0d3494dfd9a806a7078.png

catalina.policy

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

catalina.proterties

配置tomcat启动相关信息文件

context.xml

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

jaspic-providers.xml和jaspic-providers.xsd

不常用文件

logging.properties

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

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:代表特定的虚拟主机。

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应用时使用。

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

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

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

tomcat-users.xml和tomcat-users.xsd

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

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

e50a3cb6107ab4543e704eb0c279c844.png

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

web.xml

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

配置servlet

添加过滤器,比如过滤敏感词汇

设置session过期时间,tomcat默认30分钟

3a2d5275704fb3ecdd623f5653686830.png

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

配置系统欢迎页

282e739ff2e96ae8af46e1e2e4be12e4.png

lib目录

存放tomcat依赖jar包的。

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

703e0d58006cabf90135bb153e684910.png

logs目录

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

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

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

大体有以下几类:

575706cf0e3af97bec7018bb940ac578.png

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项目日志

temp目录

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

webapps目录

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

默认自带以下5个项目:

11f3dbd71aa61a5b77c8293dbc3d0416.png

work目录

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧农业物联网云平台方案

2019独角兽企业重金招聘Python工程师标准>>> 多比智慧农业物联网云平台解决方案结合了最先进的物联网、云计算、传感器、自动控制等, 在浏览器或手机客户端实时显示大棚、大田、温室等温度、湿度、PH值、光强度、CO2&#xff0c;或作为自动控制的参变量参与到自动控…

使用JDBC获取Oracle连接时报错

The Network Adapter could not establish the connection 网络适配器不能创建连接 作为初学者的来说&#xff0c;这个问题让我找了好多次&#xff0c;每次重新开启电脑时就可以正常获取连接&#xff0c;过了一会儿&#xff0c;自己不知道做了什么就会又报错&#xff0c;…

.Net CoreRabbitMQ消息转发可靠机制(上)

前言生产者发送消息到了队列&#xff0c;队列推送数据给了消费者&#xff0c;这里存在一些问题需要思考下生产者如何确保消息一定投递到了队列中RabbitMQ 丢失了消息(下文暂不涉及这块)队列如何确保消费者收到了消息呢生产者可靠发送执行流程当生产者将消息发送出去后&#xff…

一个java文件中可包含多个main方法

java中的main方法是java应用程序的入口&#xff0c;java程序在运行时&#xff0c;首先调用执行main方法。但并不是说java中只能有一个main方法&#xff0c;不同类中都可以包含main方法。当JVM进行编译时&#xff0c;会提示选择其中一个main方法作为编译的入口。 转载于:https:/…

【SRM-05 B】无题?

Description 有一个拥有n个城市的国家。这个国家由n-1条边连接起来。有一天国家发生叛乱。叛军已占领了一些城市。如果叛军占领的城市中&#xff0c;存在两个城市之间有边直接相连&#xff0c;则称这种情况是坏的。现在并不知道叛军占领了那些城市&#xff0c;问有多少种情况是…

分享一些 Java 后端的个人干货

学习 Java 也有了不少时间&#xff0c;入 Java 后台的坑也有了一段时日。这段时间里&#xff0c;听过许多前辈的经验与分享&#xff0c;也看过许多大佬的文章和作品。找了个时间整理和总结了一下我个人到目前为止一路以来的听到看到或者自己感悟到的干货。 这篇文章可能更多的是…

.NET MAUI实战 Routing

1.详情本章继续分享.NET MAUI中的路由&#xff0c;这个概念依旧是在Prism里存在过的概念。如果使用过Prism框架的小伙伴使用该机制上手速度是非常快的。接下来一起来看看什么是路由。.NET 多平台应用 UI (.NET MAUI) Shell 包含基于 URI 的导航体验&#xff0c;该体验使用路由导…

分享Web应用运行的细节问题:预编译提高网站性能、跟踪用户习惯和解决线程同步...

在这个文章里&#xff0c;我将分享一下在iOpenWorks.com这个网站试运行中碰到的若干问题和解决方案&#xff0c;这些问题包含了&#xff1a;&#xff08;1&#xff09;如何通过ASP.NET MVC预编译提高性能&#xff1b;&#xff08;2&#xff09;如何知道网站在运行中&#xff0c…

mondrain配置mysql_mondrian 4.7 源码部署(示例代码)

mondrian是一个开源的数据分析工程, 网上有关mondrian3.X的源码部署比较多, 有关4.X的部署较少. 目前官方推荐使用的时mondrian3.7的修订版, 可以再github上下载到最近更新维护的mondrian-master, 下载下来后基本上只需要按部就班的使用maven build一下就可以正常使用了, 如有问…

腾讯云DevOps技术揭秘:新时代运维重器Tencent Hub最佳实践

随着云计算和容器技术的发展以及微服务架构的兴起&#xff0c;服务能够实现细粒度的部署&#xff0c;维护和伸缩。在使开发人员能快速开发的同时&#xff0c;这些技术也给系统和应用的运维带来了更大的挑战。DevOps理念也应运而生&#xff0c;强调研发和运维的流程及工具的自动…

.Net CoreRabbitMQ消息存储可靠机制(下)

前言上篇讨论过消息投递和消息消费过程中如何确保可靠传输&#xff0c;也提及到消息到达RabbitMQ中到被消费前也需要可靠的留存&#xff0c;可因许多的不确定因素会影响着消息的存在与否。消息中转点生产者发送消息到RabbitMQ中&#xff0c;如果交换机根据自身类型和RoutingKey…

nginx安装及负载均衡配置

Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的&#xff0c;第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发…

智能停车O2O 独角兽初现:“ETCP停车”获5000万美金A轮融资

日前&#xff0c;国内第一智能停车平台“ETCP停车”宣布完毕A轮融资&#xff0c;由源代码资本、SIG、易车网、经纬中国和商企界知名人士联合投资超过5000万美金。同一时候获悉&#xff0c;ETCP作为中国智能停车行业龙头老大&#xff0c;不仅是该行业的创建者和领军品牌&#xf…

ASP.NET MVC使用Bootstrap系统(2)——使用Bootstrap CSS和HTML元素

阅读目录 Bootstrap 栅格&#xff08;Grid&#xff09;系统Bootstrap HTML元素Bootstrap 验证样式ASP.NET MVC创建包含Bootstrap样式编辑模板小结Bootstrap提供了一套丰富CSS设置、HTML元素以及高级的栅格系统来帮助开发人员快速布局网页。所有的CSS样式和HTML元素与移动设备优…

VS2017调试闪退之Chrome

原文:VS2017调试闪退之Chrome巨硬build后发了15.7.1满载期待的升级了。。结果NM泪奔................... 为啥 泪奔&#xff1f; 使用Chrome 调试闪退&#xff0c;MMP ,一想肯定是VS的锅咯&#xff0c;各种抓头发。。 试试看看VS配置发现 &#xff0c;多了点东西。。 都勾上后&…

ios UISearchBar搜索框的基本使用

摘要: 小巧简洁的原生搜索框&#xff0c;漂亮而易用&#xff0c;如果我们的应用没有特殊需求&#xff0c;都可以使用它。iOS中UISearchBar(搜索框)使用总结 初始化&#xff1a;UISearchBar继承于UIView&#xff0c;我们可以像创建View那样创建searchBar UISearchBar * bar [[U…

Win8下怎样安装Win7 or Win7下怎样安装win8?

预计非常多人可能会用U盘安装工具去去做双系统的安装&#xff08;Win8下安装Win7&#xff0c; Win7下安装Win8&#xff09;。可是在安装过程中你 会发现一个问题&#xff1a;win7下安装win8&#xff0c;提示你mbr硬盘格式不能安装win8&#xff1b;win8下安装win7&#xff0c;提…

Linux 练习题-3文件与磁盘 问答

1、描述Liux下软链接和硬链接的区别创建命令不同&#xff0c;ln 命令创建硬链接&#xff0c;ln -s 创建软链接inode节点号不同&#xff0c;硬链接inode与源文件相同&#xff0c;软链接inode与源文件不同使用对象不同&#xff0c;硬链接只能对文件使用&#xff0c;软链接可以对文…

.NET Offer 快到碗里来!.NET 招聘季

关注我们谈到 .NET 在中国的推广和发展&#xff0c;.NET 开发者求职就业及 .NET 企业招人用人的问题往往常被提及。初学者会担心学习 .NET 之后的就业问题&#xff0c;.NET 开发者在求职过程中没有足够多的渠道来获取 .NET 招聘信息&#xff0c;而与此同时&#xff0c;采用 .NE…

java的collections_Java中Collection和Collections的区别

1) 排序(Sort)使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的1 List list new ArrayList();2 int array[] {112, 111, 23, 456, 231};3 for (int i 0; …