【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類加載器加載的類庫。默認配置爲空。

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