做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 解析(一)-文件解析的更多相关文章

  1. (转)AVI文件格式解析+AVI文件解析工具

    AVI文件解析工具下载地址:http://download.csdn.net/detail/zjq634359531/7556659 AVI(Audio Video Interleaved的缩写)是一 ...

  2. poi解析excle文件(xls,xlsx)

    解析xls文件 /** * 解析xls文件 * * @param path 文件路径 * @throws Exception */ public static void showXls(String ...

  3. symbolicatecrash解析crash文件

    导出crash文件 Xcode -> Window -> Devices and Simulators -> View Device Logs ,然后选中导出. 找到.app文件和. ...

  4. 文件解析漏洞总结(IIS,APACHE,NGINX)

    (本文主体来自https://blog.csdn.net/qq_36119192/article/details/82834063) 文件解析漏洞 文件解析漏洞主要由于网站管理员操作不当或者 Web ...

  5. DEX文件解析--7、类及其类数据解析(完结篇)

    一.前言    前置技能链接:       DEX文件解析---1.dex文件头解析       DEX文件解析---2.Dex文件checksum(校验和)解析       DEX文件解析--3.d ...

  6. DEX文件解析--4、dex类的类型解析

    一.前言   前几篇系列文章链接:     DEX文件解析---1.dex文件头解析     DEX文件解析---2.Dex文件checksum(校验和)解析     DEX文件解析--3.dex文件 ...

  7. DEX文件解析--5、dex方法原型解析

    一.前言    前几篇文章链接:     DEX文件解析---1.dex文件头解析     DEX文件解析---2.Dex文件checksum(校验和)解析     DEX文件解析--3.dex文件字 ...

  8. DEX文件解析--6、dex文件字段和方法定义解析

    一.前言    前几篇文章链接:       DEX文件解析---1.dex文件头解析       DEX文件解析---2.Dex文件checksum(校验和)解析       DEX文件解析--3. ...

  9. Java中使用DOM4J来生成xml文件和解析xml文件

    一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...

  10. 在tomcat启动时解析xml文件,获取特定标签的属性值,并将属性值设置到静态变量里

    这里以解析hibernate.cfg.xml数据库配置信息为例,运用dom4j的解析方式来解析xml文件. 1.在javaWeb工程里新建一个java类,命名为GetXmlValue.java,为xm ...

随机推荐

  1. AMQ学习笔记 - 16. 确认机制的测试

    概述 对Acknowledge机制进行测试. 此处的测试是针对Consumer的确认设计的:对于Producer的确认是透明的,无法提供测试. 测试实例 设计demo,测试三种确认机制. 测试机制 测 ...

  2. Linux系统目录分析

    Linux系统目录分析 /bin :系统指令目录(如ls.cp.mv等指令) /dev :系统设备目录 /home :系统用户的家,每一个系统用户都在此目录下有一个自己的家,每次登录时,系统都会自动登 ...

  3. 记录sublime text2的技巧

    好吧,其实俺是sublime text控,用了那么的编辑器,从最初的notepad++,后来到Dreawaver,现在只钟情于sublime text2....记录一些比较实用的技巧和网站吧!! 方便 ...

  4. ERP基本功——物料的四个量

    ERP基本功——物料的四个量 在分析制造业管理问题的时候,如果能借用一些ERP里才会用到的概念,就会非常的简单,并且条理清晰. 我觉得柳中冈先生一再强调的一个观点非常有用,大意是这样的:任何人依据现有 ...

  5. 【Qt】Qt之设置QWidget背景色【转】

    简述 QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色. Qt中窗口背景的设置,下面介绍三种方法. 使用QPalette 使用Style Sheet 绘图事件 ...

  6. linq 日常关键字使用

    1.from var scoreQuery = from student in students from score in student.Scores where score > 90 se ...

  7. Android listview viewpager解决冲突 滑动

    Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决   在listview 上使用 addHeaderView 在第 ...

  8. linux服务器报No space left on device错误的解决过程记录

    起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服 ...

  9. 解析php开发中的中文编码问题

    其实php开发中的中文编码并没有想像的那么复杂,虽然定位和解决问题没有定规,各种运行环境也各不尽然,但后面的原理是一样的. 了解字符集的知识是解决字符问题的基础. PHP程序设计中中文编码问题曾经困扰 ...

  10. 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 ...