Tomcat结构及重要配置项(参考官方文档)

说明: 关于Tomcat是什么以及Tomcat有什么用,这里不做解释,如果对以上两个问题仍存在疑问,请百度。
理解一个框架的最好办法是看源码,但有时候可能会看不懂,所以,这里不看源码(因为可能没什么用),只看官方文档。我用的是Tomcat-9.0,想看官方文档的可以点击这个链接Tomcat-9.0文档

一、首先了解下Tomcat的各个目录有什么用
在这里插入图片描述
可以看到Tomcat的目录,作如下解释:
1、bin目录:保存了Tomcat服务器的各个脚本,如开启和关闭等
2、conf目录:保存了Tomcat的配置文件,server.xml啊、web.xml等都在这里
3、lib目录:这是我们所熟悉的,是各种jar包的目录
4、log目录:也很容易识别,是保存日志用的
5、temp目录:是Tomcat运行时产生的文件
6、webapps目录:供外界访问的资源的目录
7、work目录:Tomcat的工作目录

插入: 根据本人最近的学习发现,webapps是Tomcat供外界访问资源的目录所在地,但是每次重启Tomcat这里面ROOT目录下的资源就会重新加载,换句话说就是:当你重启Tomcat之后,之前上传到服务器的文件啊、图片啊都会消失。针对这一现象有两种解决方案:第一种就是上传文件资源和webapps目录下的ROOT目录在同一级,这样就重启之后就不会把之前的资源丢掉了;还有一种方法就是把上传的文件保存在本地磁盘里,利用虚拟目录进行映射,关于IDEA如何设置虚拟目录参考这篇文章:IDEA设置虚拟目录

二、Tomcat重要配置
如果我们想要改变Tomcat的某些配置怎么办呢?比如说改变访问时的8080端口,加载本地磁盘中的其他文件等等,我们可以去conf/server.xml文件下进行修改。下面对其中的各个标签根据官方文档进行说明。
1、< Server >标签,是整个servlet容器,必须是唯一的,而且必须是最外面标签(解释:这里的唯一说的是只在一个JVM中,一般一个JVM只能支持一个Tomcat ,如果同时运行多个JVM当然可以运行多个Tomcat)。看下都有哪些比较常用的属性:

className必须实现org.apache.catalina.Server 接口,没有实现时默认标准
address服务器等待关机命令的TCP / IP地址。如果没有指定地址,则使用localhost
port服务器等待关机命令的TCP / IP端口号。设置为-1以禁用关闭端口
shutdown必须通过TCP / IP连接接收到指定端口号的命令字符串,以关闭Tomcat

2、< Service >标签,表示一个或多个连接器组件的组合,这些组件共享一个用于处理传入请求的引擎组件,Server下可以有多个Service

className默认必须实现org.apache.catalina.Service,否则采取标准
name顾名思义是Service的名字,如果采用的还Catalina,service的名字将会包含在log中,name必须唯一

3、< Executor >,该标签表示可在组件之间共享的线程池,必须嵌套在Service标签内,为了能被连接器失去,必须出现在< Connector >之前。部分重要属性:

threadPriority线程优先级,默认为5
maxThreads最大活跃线程数,默认为200
minSpareThreads最小活跃线程数,默认为25
maxIdleTime活跃线程数大于最小活跃线程数时,空闲线程关闭等待最大时间,默认为60000ms(一分钟)
maxQueueSize线程池满情况下的请求排队大小,默认为Integer.MAX_VALUE

4、< Connector >、Tomcat支持三种协议:HTTP/1.1、HTTP/2和AJP,关于Connector标签可以上官网上查看具体的使用方法,这里给出源文档中的使用,如下

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

5、< Context >、在特定的虚拟机中运行,每个Web应用程序都基于Web应用程序归档 (WAR)文件或包含相应解压缩内容的相应目录。可以根据需要定义任意数量的Context元素,名称必须唯一,上下文路径不需要唯一。并不推荐直接将< Context >直接放在server.xml中,因为这样在不重启Tomcat时不会重新加载配置文件,而且这样是的修改
< Context >更具有侵入性,默认的Context元素(见下文)也将 覆盖直接放在server.xml中的任何< Context >元素的配置。为防止这种情况,override 应将server.xml中定义的
< Context >元素的属性设置为true。具体属性不展示。

5、< Engine >、Engine元素表示与特定的Catalina服务相关联的整个请求处理机器。它接收并处理来自一个或多个连接器的所有请求,并将完成的响应返回给连接器,以便最终传输回客户端。

6、< Host >、表示一个虚拟主机,它是一个服务器的网络(如“www.mycompany.com”)与运行Tomcat的特定服务器的关联。要使客户端能够使用其网络名称连接到Tomcat服务器,必须在管理您所属的Internet域的域名服务(DNS)服务器中注册此名称- 有关详细信息,请与网络管理员联系。一个或多个Host元素嵌套在 Engine元素中。在Host元素内,您可以为与此虚拟主机关联的Web应用程序嵌套Context元素。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值