【tomact】06 Tomcat中的变量及属性

一、介绍

1、变量及属性的目的主要是将某些参数剥离出程序,以实现可配置性。在Tomcat中,启动时会涉及大量环境变量、JVM系统属性及Tomcat属性。

2、环境变量在操作系统中配置,也可以在批处理中添加或修改环境变量,在Tomcat程序中可通过System.getenv(name)获取环境变量。

3、JVM系统属性可以是JVM自带的属性,也可以在Java执行命令中通过-D参数配置,在Tomcat程序中可通过System.getProperty(name)获取JVM系统属性。

4、Tomcat属性主要通过catalina.properties配置文件配置,在Tomcat启动时会加载,Tomcat程序通过CatalinaProperties获取。

二、获取

1、Tomcat、JVM及操作系统之间相关的变量属性及操作。

最底层的是操作系统的环境变量,假如我们在脚本catalina.bat中想获取它,可以通过%变量名%直接获取;假如在Tomcat中想获取它,则可以通过System.getevn(“变量名”)获取。假如我们想在脚本catalina.bat中启动Java时传入参数作为JVM系统属性,则可以附带-Dparam=value参数,而在Tomcat中则通过System.getproperty(“param”)获取该JVM系统属性值。除此之外,Tomcat自身配置文件catalina.properties则通过CatalinaProperties类获取。

三、环境变量

1、%JAVA_HOME%

表示JDK的安装目录

2、%CLASSPATH%

JDK搜索class时优先搜索%CLASSPATH%指定的jar包

3、%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

配置此选项避免扫描Servlet3.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

  1. 用于配置Tomcat中用commonLoader类加载器加载的类库。
  1. 配置的值可以使用特定的变量,例如catalina.base,Tomcatcommon.loader={catalina.base},Tomcat程序中会对其进行解析替换。默认配置为common.loader={catalina.base}/lib, catalina.base/lib/.jar,{catalina.base}/lib/*.jar,{catalina.home}/lib, ${catalina.home}/lib/*.jar。

4、server.loader

用于配置Tomcat中用serverLoader类加载器加载的类库。默认配置为空。

5、shared.loader

用于配置Tomcat中用sharedLoader类加载器加载的类库。默认配置为空。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章