本章整理于下方链接
https://blog.51cto.com/grass51/1123400
https://my.oschina.net/leamon/blog/209809
https://www.cnblogs.com/hzg110/p/6851523.html
文件夹以外的其他文件。
- LICENSE
顾名思义就是许可证,里面记录了tomcat的一些条款等等。 - NOTICE
里面记录了tomcat的新的通知,公告。 - RELEASE-NOTES
这里面记录的是发行版本的说明,一些捆绑的API,新特性等等。 - RUNNING.txt
记录了tomcat的运行环境以及怎样配置参数,变量,启动等等。
bin
用于存放一些重要的web服务器的执行文件,主要有两大类:
1. startup.bat- - -(后缀为.bat的文件是windows系统批处理脚本文件)
2. startup.sh- - -(后缀为.sh文件是linux系统中的脚本文件)
以上文件这两个文件作用相同,只是用于不同的系统.
-
bootstrap.jar
这个引导程序jar包,是tomcat的入口;
tomcat启动时所依赖的一个类,在启动tomcat时会发现Using CLASSPATH: 是加载的这个类; -
catalina.sh (catalina.bat相同)(重要脚本)
真正启动Tomcat文件,可以在里面设置jvm参数.异常:可能出现内存溢出错误可以考虑修改它
1)java.lang.OutOfMemoryError: Java heap space Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,从而导致客户端显示**500错误**。 Windows环境下修改catalina.bat文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m Linux环境下修改catalina.sh文件,在文件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’ 其中,**-Xms设置初始化内存大小,-Xmx设置可以使用的最大内存。** 2) java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM 存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的 Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用 中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的 时候。如果你的WEB APP下用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了 解决方法: 在catalina.bat的第一行增加:(Windows) set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m - XX:MaxPermSize=256m 在catalina.sh的第一行增加:(Linux) JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m - XX:MaxPermSize=256m
-
catalin-tasks.xml
配置文件,主要是引入各种jar包;
定义tomcat载入的库文件,类文件. -
commons-daemon-natie.tar.gz
jsvc1工具,可以使tomcat已守护进程方式运行,需在Linux/Unix下单独编译安装. -
commons-daemon.jar
jsvc工具所依赖的java类; -
configtest.sh(configtest.bat相同)
tomcat检查配置文件语法是否正确的Linux平台脚本 -
desmon.sh
tomcat已守护进程方式运行时的,启动,停止脚本 -
digest.sh(disgest,bat相同)
使用指定的算法解析密码的脚本*(Script to digest password using the algorithm specified)* -
setclasspath.sh(setclasspath.bat相同)
设置classpath的脚本,在catalin.bat脚本中调用,可以设置java_home,jre_home等。
-
shutdown.sh(shutdown.bat相同)
关闭web服务器 -
startup.sh(startup.bat相同)
开启web服务器 -
tomcat-juli.jar
Apache Tomcat由一个自己的实现了java.util.logging多个关键元素的实现。这个实现被称为“JULI”。实现的核心组件是定制化的LogManager,可以获取运行在Tomcat中的不同web应用(以及不同的class loader)。他支持为应用配置单独的日志配置。当有web应用从内部中是被卸载时,会接到Tomcat的通知,以便他所引用的类可以被清除,避免内存泄露。 -
tomcat-native.tar.gz
Apache Tomcat Native Library使Tomcat可以访问Apache Portable Runtime(APR)2库的网络连接(套接字)实现和随机数生成器。
(详见tomcat文档,用谷歌翻译一下) -
tool-wrapper.sh(tool-wrapper.bat)
Tomcat服务器的命令行工具包装器脚本 -
version.sh(version.bat)
查看tomcat以及JVM的版本信息
conf (配置文件目录)
-
catalina.policy
这是Tomcat的核心安全策略,包括系统代码,Web应用程序和Catalina本身的权限定义。
配置tomcat对文件系统中的文件的读写等操作执行权限,以及对内存.session一些的管理权限; -
catalina.properties
该文件主要配置tomcat的安全设置、类加载设置、不需要扫描的类设置、字符缓存设置四大块。 -
context.xml
tomcat的默认context容器
tomcat公用的环境配置,也可以在server.xml中配置 -
logging.properties
配置tomcat的日志输出方式 -
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添加具有管理员权限的用户。
- tomca-users.xsd
- web.xml
它为所有host下所有应用的通用置
和每个应用的WEB-INF下的web.xml协同工作
其中定义的默认配置项主要有:- Servlet:配置Servlet、JSP、SSI、CGI引擎;
- session 配置:控制会话时间;
- MIME 类型:MIME映射;
- 欢迎文件列表
lib(存放Tomcat运行需要的库文件(JARS))
logs(存放Tomcat执行时的日志文件)
-
catalina.日期.log(catalina.2019-07-15.log)
控制台日志 -
commons-daemon.日期.log(commons-daemon.2019-07-15.log)
启动\重启和停止对Tomcat的操作日志 -
host-manager.日期.log(host-manager.2019-07-15.log)
Tomcat管理页面中的host_manager的操作日志 -
localhost.日期.log(localhost.2019-07-15.log)
Web应用的内部程序日志 -
localhost_access_log.日期(localhost_access_log.2019-07-15)
用户请求Tomcat 的访问日志(这个文件在conf/server.xml里配置)<!-- Tomcat的访问日志,默认可以关闭掉它,它会在logs文件里生成localhost_access_log的访问日志 --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
-
manager.日期.log(manager.2019-07-15.log)
Tomcat管理页面中的manager app的操作日志。
temp(temp文件夹存放临时文件)
temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)
webapps(Tomcat的主要Web发布目录(包括应用程序示例),其中root目录就是不输入项目的默认目录)
webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。
当然,你也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。
- docs
tomcat文档 - examples
tomcat自带的一个独立的web应用程序例子 - host-manager
tomcat的管理应用程序- META-INF
整个应用程序的入口,用来描述jar文件的信息 - context.xml
当前应用程序的context容器配置,它会覆盖tomcat/conf/context.xml中的配置 - WEB-INF
用于存放当前应用程序的私有资源- classes
用于存放当前应用程序编译后所需要的class文件 - lib
用于存放当前应用程序所需要的jar文件 - web.xml
当前应用程序的部署描述符文件,定义应用程序所要加载的serverlet类,以及该程序是如何部署的
- classes
- META-INF
- manager
tomcat的管理应用程序 - ROOT
指tomcat的应用程序的根,如果应用程序部署在ROOT中,则可直接通过http://ip:port 访问到
works(存放Tomcat运行时产生的class文件)
work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。清空work目录,然后重启tomcat,可以达到清除缓存的作用。