tomcat 解析(一)-文件解析
做web项目,最常用的服务器就是Apache的tomcat。虽然一直在用tomcat,但都是仅限在使用的阶段,一直没有深入学习过。想深入学习tomcat,首推的肯定是官网:http://tomcat.apache.org/ (虽然全是英文,看起来比较晦涩,但还是推荐大家在官网学习,一方面权威,另一方面锻炼了自己的英文能力。博主自己英文不好,但仍坚持看官网。)
开始了解一下tomcat的内部结构,博主用的tomcat版本是:apache-tomcat-8.0.3-windows-x86,解压之后打开,里面是:

先看一下除了文件夹以外的其他文件。
LICENSE顾名思义就是许可证,里面记录了tomcat的一些条款等等。
NOTICE里面记录了tomcat的新的通知,公告。
RELEASE-NOTES这里面记录的是发行版本的说明,一些捆绑的API,新特性等等。
RUNNING.txt记录了tomcat的运行环境以及怎样配置参数,变量,启动等等。
================华丽的分割线====================
下面开始介绍文件夹里面的内容。
bin文件夹
bin文件夹下面放的是可执行性文件,其中:bat/exe文件是windows下可执行的脚本文件。sh文件时Linux/Unix下可执行的脚本文件。其中还有一些jar文件,后面将会说到。
下面是bin文件夹下所有文件:


开始一一介绍。
bootstrap.jar 从文件名可以看出这个jar包是引导程序jar包,是tomcat的入口。
catalina.bat 这个脚本就比较重要了。这个脚本完成了很多基本操作,如启动
关闭等,catalina.bat都参与其中。
catalina.sh文件作用同catalina.bat,只不过在Linux/Unix系统下运行。
catalina-tasks.xml 配置文件,主要是引入各种jar包。
commons-daemon-native.tar.gz Linux/Unix下。
configtest.bat 检测语法是否正确的脚本文件。
cpappend.bat 这个脚本可以这样理解,classpath(cp)append就是将指定参数添加到classpath里面。
digest.bat 博主暂时也没弄清。
service.bat 启动tomcat服务。和注册tomcat服务那块有关系。
setclasspath.bat 设置classpath的脚本,在catalin.bat脚本中调用,可以设置java_home,jre_home等。
shutdown.bat 主要是检查catalina.bat 执行所需环境,并调用catalina.bat 批处理文件关闭tomcat服务。
startup.bat 主要是检查catalina.bat 执行所需环境,并调用catalina.bat 批处理文件启动tomcat服务。
tcnative-1.dll 加速器组件,可以提高性能。(也是在网上搜到的)
tomcat8.exe
tomcat8w.exe
tomcat-juli.jar Apache Tomcat由一个自己的实现了java.util.logging多个关键元素的实现。这个实现被称为“JULI”。实现的核心组件是定制化的LogManager,可以获取运行在Tomcat中的不同web应用(以及不同的class loader)。他支持为应用配置单独的日志配置。当有web应用从内在中是被卸载时,会接到Tomcat的通知,以便他所引用的类可以被清除,避免内存泄露。
tomcat-native.tar.gz 里面放的是tomcat本地的library。
tool-wrapper.bat 工具包装脚本
version.bat 一般是用来判断系统版本获取系统版本信息等。
conf(configurator)文件夹
conf(configurator)文件夹下面放的是配置文件

catalina.policy tomcat策略文件
catalina.properties catalina配置文件
context.xml tomcat公用的环境配置,也可以在server.xml中配置<context />
logging.properties 日志配置文件
server.xml 相当重要的配置,端口、线程池等都需要在这里配置。
|
元素名 |
属性 |
解释 |
|
server |
port |
指定一个端口,这个端口负责监听关闭tomcat的请求 |
|
shutdown |
指定向端口发送的命令字符串 |
|
|
GlobalNamingResources |
服务器的全局JNDI资源,可以有子标签<Resource></Resource> |
|
|
Executor(线程池,一个或多个Connector可以共享此线程池) |
name |
线程池名称,名称必须唯一 |
|
namePrefix |
线程的名字前缀,用来标记线程名字的,这样每个线程就用这个前缀加上线程编号了,比如 catalina-exec-1 、catalina-exec-2 |
|
|
maxThreads |
允许的最大线程池里的线程数量,默认是200,大的并发应该设置的高一些,反正只是限制而已,不占用资源 |
|
|
minSpareThreads |
最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源 |
|
|
maxIdleTime |
最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源 |
|
|
threadPriority |
线程的等级。默认是Thread.NORM_PRIORITY |
|
|
service |
name |
指定service的名字 |
|
Connector (表示客户端和service之间的连接) |
port |
指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求 |
|
minProcessors |
服务器启动时创建的处理请求的线程数 |
|
|
maxProcessors |
最大可以创建的处理请求的线程数 |
|
|
enableLookups |
如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址 |
|
|
redirectPort |
指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号 |
|
|
acceptCount |
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理 |
|
|
connectionTimeout |
指定超时的时间数(以毫秒为单位) |
|
|
Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求) |
name |
|
|
defaultHost |
指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的 |
|
|
jvmRoute |
||
|
host (表示一个虚拟主机、并且可以包含Context子节点配置虚拟目录) |
name |
指定主机名 |
|
appBase |
应用程序基本目录,即存放应用程序的目录 |
|
|
unpackWARs |
如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序 |
|
|
autoDeploy |
自动部署 |
|
|
xmlValidation |
是否验证xml |
|
|
xmlNamespaceAware |
||
|
Realm (表示存放用户名,密码及role的数据库) |
className |
指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口 |
|
Context(host子节点配置虚拟目录) |
path |
虚拟目录名称 |
|
docBase |
物理路径 |
|
|
Debug |
Debug模式 |
|
|
Reload |
True 重新加载,修改后自动加载 |
上面是server.xml元素的含义。基本配置都在这里了。
tomcat-users.xml tomcat配置用户的文件。是指定控制台用户、角色、密码的。
<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="123456" roles="admin,manager"/>
</tomcat-users>
通过以上配置,可以为tomcat添加具有管理员权限的用户。
web.xml 访问tomcat入口。配置加载类和资源,如欢迎页等。
lib文件夹
lib文件夹下面放的是tomcat提供的jar包,资源库文件。tomcat运行需要。
Log文件夹
log文件夹存放tomcat日志文件
Temp文件夹
temp文件夹存放临时文件
webapps文件夹
webapps文件夹是Tomcat发布web项目的目录,默认存放了文档,examples,主机配置等文件。
work文件夹
存放jsp编译后的class文件。
tomcat 解析(一)-文件解析的更多相关文章
- (转)AVI文件格式解析+AVI文件解析工具
AVI文件解析工具下载地址:http://download.csdn.net/detail/zjq634359531/7556659 AVI(Audio Video Interleaved的缩写)是一 ...
- poi解析excle文件(xls,xlsx)
解析xls文件 /** * 解析xls文件 * * @param path 文件路径 * @throws Exception */ public static void showXls(String ...
- symbolicatecrash解析crash文件
导出crash文件 Xcode -> Window -> Devices and Simulators -> View Device Logs ,然后选中导出. 找到.app文件和. ...
- 文件解析漏洞总结(IIS,APACHE,NGINX)
(本文主体来自https://blog.csdn.net/qq_36119192/article/details/82834063) 文件解析漏洞 文件解析漏洞主要由于网站管理员操作不当或者 Web ...
- DEX文件解析--7、类及其类数据解析(完结篇)
一.前言 前置技能链接: DEX文件解析---1.dex文件头解析 DEX文件解析---2.Dex文件checksum(校验和)解析 DEX文件解析--3.d ...
- DEX文件解析--4、dex类的类型解析
一.前言 前几篇系列文章链接: DEX文件解析---1.dex文件头解析 DEX文件解析---2.Dex文件checksum(校验和)解析 DEX文件解析--3.dex文件 ...
- DEX文件解析--5、dex方法原型解析
一.前言 前几篇文章链接: DEX文件解析---1.dex文件头解析 DEX文件解析---2.Dex文件checksum(校验和)解析 DEX文件解析--3.dex文件字 ...
- DEX文件解析--6、dex文件字段和方法定义解析
一.前言 前几篇文章链接: DEX文件解析---1.dex文件头解析 DEX文件解析---2.Dex文件checksum(校验和)解析 DEX文件解析--3. ...
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
- 在tomcat启动时解析xml文件,获取特定标签的属性值,并将属性值设置到静态变量里
这里以解析hibernate.cfg.xml数据库配置信息为例,运用dom4j的解析方式来解析xml文件. 1.在javaWeb工程里新建一个java类,命名为GetXmlValue.java,为xm ...
随机推荐
- AMQ学习笔记 - 16. 确认机制的测试
概述 对Acknowledge机制进行测试. 此处的测试是针对Consumer的确认设计的:对于Producer的确认是透明的,无法提供测试. 测试实例 设计demo,测试三种确认机制. 测试机制 测 ...
- Linux系统目录分析
Linux系统目录分析 /bin :系统指令目录(如ls.cp.mv等指令) /dev :系统设备目录 /home :系统用户的家,每一个系统用户都在此目录下有一个自己的家,每次登录时,系统都会自动登 ...
- 记录sublime text2的技巧
好吧,其实俺是sublime text控,用了那么的编辑器,从最初的notepad++,后来到Dreawaver,现在只钟情于sublime text2....记录一些比较实用的技巧和网站吧!! 方便 ...
- ERP基本功——物料的四个量
ERP基本功——物料的四个量 在分析制造业管理问题的时候,如果能借用一些ERP里才会用到的概念,就会非常的简单,并且条理清晰. 我觉得柳中冈先生一再强调的一个观点非常有用,大意是这样的:任何人依据现有 ...
- 【Qt】Qt之设置QWidget背景色【转】
简述 QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色. Qt中窗口背景的设置,下面介绍三种方法. 使用QPalette 使用Style Sheet 绘图事件 ...
- linq 日常关键字使用
1.from var scoreQuery = from student in students from score in student.Scores where score > 90 se ...
- Android listview viewpager解决冲突 滑动
Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决 在listview 上使用 addHeaderView 在第 ...
- linux服务器报No space left on device错误的解决过程记录
起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服 ...
- 解析php开发中的中文编码问题
其实php开发中的中文编码并没有想像的那么复杂,虽然定位和解决问题没有定规,各种运行环境也各不尽然,但后面的原理是一样的. 了解字符集的知识是解决字符问题的基础. PHP程序设计中中文编码问题曾经困扰 ...
- Sending Email from mailx Command in Linux Using Gmail’s SMTP
The mailx or mail command in Linux is still providing service for guys like me, especially when we n ...