导图社区 Tomcat——启动关闭
Tomcat批处理核心文件的功能和组成,以及Tomcat中的各种变量和属性的含义
编辑于2019-10-16 09:15:34Tomcat——启动关闭
Tomcat的批处理
startup.bat
功能
主要功能就是找到另一个批处理脚本catalina.bat
组成
1. 设置CATALINA_HOME环境变量
2. 接下来接收参数
3. 调用并执行catalina.bat批处理脚本
shutdown.bat
与启动脚本类似
catalina.bat
功能
才是Tomcat服务器启动和关闭的核心脚本,它的最终目的是组合出一个最终的执行命令,组合时会涉及多个变量和组合逻辑
组成
1. 在按Ctrl+C组合键终止程序时自动确认
2. 设置CATALINA_HOME、CATALINA_BASE两个变量
3. 尝试寻找setenv.bat和setclasspath.bat并执行它们,然后再将Tomcat的启动包bootstrap.jar和日志包tomcat-juli.jar添加到CLASSPATH环境变量下
4. 对日志配置的设置
5. 执行命令前一些参数的初始化
6. 根据不同的参数跳转到不同的位置执行不同的命令,其实也组装一些参数,为下一步真正执行命令做准备
7. 命令真正执行的过程,它将前面所有脚本运行后组成一个最终的命令开始执行
setclasspath.bat
它只负责寻找、检查JAVA_HOME和JRE_HOME两个环境变量
Tomcat中的变量和属性
说明
在Tomcat程序中可通过System.getenv(name)获取环境变量。JVM系统属性可以是JVM自带的属性,也可以在Java执行命令中通过-D参数配置,在Tomcat程序中可通过System.getProperty(name)获取JVM系统属性。而Tomcat属性主要通过catalina. properties配置文件配置,在Tomcat启动时会加载,Tomcat程序通过CatalinaProperties获取
环境变量
%JAVA_HOME%
JDK的安装目录
%CLASSPATH%
JDK搜索class时优先搜索%CLASSPATH%指定的jar包
%PATH%
执行某命令时,如果在本地找不到此命令或文件,则会从%PATH%变量声明的目录中区查找
JVM系统变量
1)user.dir
表示当前用户工作目录
2)java.io.tmpdir
表示系统默认的临时文件目录。不同操作系统的目录不同
3)java.home
表示Java安装目录
4)user.home
表示用户目录
5)java.vm.vendor
表示Java虚拟机实现供应商
6)java.runtime.version
表示Java运行时版本号
7)java.library.path
表示系统搜索库文件的路径。
8)java.vendor
表示Java运行时环境供应商
9)java.ext.dirs
表示Java扩展包的目录
10)user.name
表示用户的账户名
11)package.definition
表示Java安全管理器需要检查的包
12)package.access
表示Java安全管理器需要检查访问权限的包
13)path.separator
表示多个文件路径之间的分隔符
14)file.encoding
表示默认JVM编码
15)os.version
表示操作系统的版本
16)catalina.home
配置Tomcat的安装目录。这个路径变量很重要,Tomcat中常用到。在执行Tomcat启动的批处理脚本中会附带-Dcatalina.home="%CATALINA_HOME%",即启动Tomcat程序时会把catalina.home作为JVM系统变量
17)catalina.base
配置Tomcat的工作目录。这个目录容易与catalina.home混淆,工作目录与安装目录有什么区别呢?当我们想要运行多个Tomcat实例时,就可以创建多个工作目录,而使用同一个安装目录,达到了多个Tomcat实例重用Tomcat程序的目的。在执行Tomcat启动的批处理脚本中会附带-Dcatalina.base="%CATALINA_BASE %",即启动Tomcat程序时会把catalina.base作为JVM系统变量
18)catalina.config
配置Tomcat配置文件catalina.properties的路径
19)org.apache.catalina.startup.EXIT_ON_INIT_FAILURE
配置启动初始化阶段遇到问题是否退出
20)tomcat.util.scan.DefaultJarScanner.jarsToSkip
配置此选项将使JarScanner扫描时会跳过这些包
21)org.apache.catalina.startup.ContextConfig.jarsToSkip
配置此选项避免扫描Servlet 3.0插件功能
22)org.apache.catalina.startup.TldConfig.jarsToSkip
配置此选项避免扫描TLD
23)org.apache.catalina.tribes.dns_lookups
配置是否在集群中尝试使用DNS查找主机
24)org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH
配置是否允许使用“\”符号作为路径分隔符
25)org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH
配置是否允许使用%2F和%5C作为路径分隔符
26)org.apache.catalina.core.ApplicationContext.GET_RESOURCE_REQUIRE_SLASH
配置是否传入ServletContext.getResource()或ServletContext.getResourceAsStream()的参数一定要以“/”开头
27)org.apache.tomcat.util.http.ServerCookie.ALLOW_EQUALS_IN_VALUE
配置Cookie中的值是否可以包含“=”符号
28)org.apache.catalina.session.StandardSession.ACTIVITY_CHECK
配置是否跟踪统计活跃的会话数
29)org.apache.catalina.authenticator.Constants.SSO_SESSION_COOKIE_NAME
配置单点登录的会话Cookie名字
30)jvmRoute
配置Engine默认的路由标识
31)org.apache.jasper.Constants.SERVICE_METHOD_NAME
配置JSP执行时调用的服务方法,默认是_jspService
32)org.apache.jasper.Constants.JSP_PACKAGE_NAME
配置编译的JSP页面的包名,默认为org.apache.jsp
33)org.apache.juli.formatter
配置日志框架的格式类
34)org.apache.juli.AsyncMaxRecordCount
配置异步方式下日志在内存中能保存的最大记录数
35)org.apache.juli.AsyncOverflowDropType
配置异步方式下到达日志记录内存限制时所采取的措施
36)org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER
配置是否在HTTP报文头部使用自定义状态
Tomcat属性
1)package.access
此属性与Java安全管理器的权限配置有关,用于配置包的访问权限。它的值包含多个包路径,默认配置为package.access=sun., org.apache.catalina., org.apache.coyote., org.apache.tomcat., org. apache.jasper.
2)package.definition
此属性与Java安全管理器的权限配置相关,用于配置包的定义权限。默认配置为package.definition=sun,java., org.apache.catalina., org.apache.coyote., org.apache.tomcat., org.apache. jasper.
3)common.loader
此属性用于配置Tomcat中用commonLoader类加载器加载的类库。配置的值可以使用特定的变量,例如${catalina.base},Tomcat程序中会对其进行解析替换。默认配置为common. loader=${catalina.base}/lib, ${catalina.base}/lib/??*.jar, ${catalina.home}/lib, ${catalina.home}/lib/??*.jar
4)server.loader
此属性用于配置Tomcat中用serverLoader类加载器加载的类库。默认配置为空
5)shared.loader
此属性用于配置Tomcat中用sharedLoader类加载器加载的类库。默认配置为空。