| Links Top Level Elements Executors Connectors Containers Nested Components Cluster Elements web.xml Other | Apache Tomcat Configuration ReferenceSystem Properties| Introduction |  | 
  The following sections list the system properties that may be set to modify
  the default Tomcat behaviour. | 
 | Clustering |  | 
  | Property | Description | 
|---|
 | org.apache.catalina. tribes.dns_lookups | If true, the clustering module will attempt to use DNS to
      resolve any host names provided in the cluster configuration. If not specified, the default value of falsewill be used. | 
 | 
 | Expression Language |  | 
  | Property | Description | 
|---|
 | org.apache.el.BeanELResolver. CACHE_SIZE | The number of javax.el.BeanELResolver.BeanProperties objects that will
      be cached by the EL Parser. If not specified, the default of 1000will be used. |  | org.apache.el.ExpressionBuilder. CACHE_SIZE | The number of parsed EL expressions that will be cached by the EL
      Parser. If not specified, the default of 5000will be used. |  | org.apache.el.parser. COERCE_TO_ZERO | If true, when coercing EL expressions to numbers""andnullwill be coerced to zero as required
      by the specification. If not specified, the default value of truewill be used. |  | org.apache.el.parser. SKIP_IDENTIFIER_CHECK | If true, when parsing EL expressions, identifiers will not be
      checked to ensure that they conform to the Java Language Specification for
      Java identifiers. If not specified, the default value of truewill be used. | 
 | 
 | Jasper |  | 
  | Property | Description | 
|---|
 | org.apache.jasper.compiler. Generator.POOL_TAGS_WITH_EXTENDS | By default, JSPs that use their own base class via the extends
      attribute of the page directive, will have Tag pooling disabled since
      Jasper cannot guarantee that the necessary initialisation will have taken
      place. This can have a negative impact on performance. Providing the
      alternative base class calls _jspInit() from Servlet.init(), setting  this
      property to truewill enable pooling with an alternative base
      class. If the alternative base class does not call _jspInit() and this
      property istrue, NPEs will occur when attempting to use
      tags. If not specified, the default value of falsewill be used. |  | org.apache.jasper.compiler. Generator.VAR_EXPRESSIONFACTORY | The name of the variable to use for the expression language expression
      factory. If not specified, the default value of _el_expressionfactorywill be used. |  | org.apache.jasper.compiler. Generator.VAR_INSTANCEMANAGER | The name of the variable to use for the instance manager factory. If not specified, the default value of _jsp_instancemanagerwill be used. |  | org.apache.jasper.compiler. Generator.STRICT_GET_PROPERTY | If true, the requirement to have the object referenced injsp:getPropertyaction to be previously "introduced"
      to the JSP processor, as specified in the chapter JSP.5.3 of JSP 2.0 and
      later specifications, is enforced. If not specified, the specification compliant default of truewill be used. |  | org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING | If falsethe requirements for escaping quotes in JSP
      attributes will be relaxed so that an unescaped quote will not
      cause an error. If not specified, the specification compliant default of
      truewill be used. |  | org.apache.jasper.runtime. BodyContentImpl.LIMIT_BUFFER | If true, any tag buffer that expands beyondorg.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZEwill be
      destroyed and a new buffer created of the default size. If not specified, the default value of falsewill be used. |  | org.apache.jasper.runtime. JspFactoryImpl.USE_POOL | If true, a ThreadLocalPageContextpool will
      be used. If not specified, the default value of truewill be used. |  | org.apache.jasper.runtime. JspFactoryImpl.POOL_SIZE | The size of the ThreadLocal PageContext. If not specified, the default value of 8will be used. |  | org.apache.jasper.Constants. JSP_SERVLET_BASE | The base class of the Servlets generated from the JSPs. If not specified, the default value of
      org.apache.jasper.runtime.HttpJspBasewill be used. |  | org.apache.jasper.Constants. SERVICE_METHOD_NAME | The name of the service method called by the base class. If not specified, the default value of _jspServicewill be used. |  | org.apache.jasper.Constants. SERVLET_CLASSPATH | The name of the ServletContext attribute that provides the classpath
      for the JSP. If not specified, the default value of
      org.apache.catalina.jsp_classpathwill be used. |  | org.apache.jasper.Constants. JSP_FILE | The name of the request attribute for <jsp-file>element of a servlet definition. If present on a request, this overrides
      the value returned byrequest.getServletPath()to select the
      JSP page to be executed. If not specified, the default value of
      org.apache.catalina.jsp_filewill be used. |  | org.apache.jasper.Constants. PRECOMPILE | The name of the query parameter that causes the JSP engine to just
      pregenerate the servlet but not invoke it. If not specified, the default value of jsp_precompilewill be used, as defined by JSP specification (JSP.11.4.2). |  | org.apache.jasper.Constants. JSP_PACKAGE_NAME | The default package name for compiled jsp pages. If not specified, the default value of org.apache.jspwill be used. |  | org.apache.jasper.Constants. TAG_FILE_PACKAGE_NAME | The default package name for tag handlers generated from tag files. If not specified, the default value of org.apache.jsp.tagwill be used. |  | org.apache.jasper.Constants. ALT_DD_ATTR | The servlet context attribute under which the alternate deployment
      descriptor for this web application is stored. If not specified, the
      default value of org.apache.catalina.deploy.alt_ddwill
      be used. |  | org.apache.jasper.Constants. TEMP_VARIABLE_NAME_PREFIX | Prefix to use for generated temporary variable names. If not specified,
      the default value of _jspx_tempwill be used. |  | org.apache.jasper.Constants. USE_INSTANCE_MANAGER_FOR_TAGS | If true, the instance manager is used to obtain tag
      handler instances. If not specified, the default value of falsewill be used. | 
 | 
 | Security |  | 
  | Property | Description | 
|---|
 | org.apache.catalina.connector. RECYCLE_FACADES | If this is trueor if a security manager is in use a new
      facade object will be created for each request. If not specified, the
      default value of falsewill be used. |  | org.apache.catalina.connector. CoyoteAdapter.ALLOW_BACKSLASH | If this is truethe '\' character will be permitted as a
      path delimiter. If not specified, the default value of falsewill be used. |  | org.apache.tomcat.util.buf. UDecoder.ALLOW_ENCODED_SLASH | If this is true'%2F' and '%5C' will be permitted as path
      delimiters. If not specified, the default value of falsewill
      be used. |  | org.apache.coyote. USE_CUSTOM_STATUS_MSG_IN_HEADER | If this is
      true, custom HTTP status messages will be used within HTTP
      headers. If a custom message is specified that is not valid for use in an
      HTTP header (as defined by RFC2616) then the custom message will be
      ignored and the default message used. If not specified, the default value of falsewill be used. | 
 | 
 | Specification |  | 
  | Property | Description | 
|---|
 | org.apache.catalina. STRICT_SERVLET_COMPLIANCE | If this is truethe following actions will occur: 
      any wrapped request or response object passed to an application
      dispatcher will be checked to ensure that it has wrapped the original
      request or response. (SRV.8.2 / SRV.14.2.5.1)
      a call to Response.getWriter()if no character encoding
      has been specified will result in subsequent calls toResponse.getCharacterEncoding()returningISO-8859-1and theContent-Typeresponse header
      will include acharset=ISO-8859-1component. (SRV.15.2.22.1)every request that is associated with a session will cause the
      session's last accessed time to be updated regardless of whether or not
      the request explicitly accesses the session. (SRV.7.6)  
      
        cookies will be parsed strictly, by default v0 cookies will not work with any invalid characters.
        If set to
 false, any v0 cookie with invalid character
        will be switched to a v1 cookie and the value will be quoted.
        the path in ServletContext.getResource/getResourceAsStreamcalls must start with a "/".If set to
 false, code likegetResource("myfolder/myresource.txt")will work. If this is truethe default value will be changed for: 
      org.apache.catalina.connector.Request. ALLOW_EMPTY_QUERY_STRINGpropertyorg.apache.tomcat.util.http.ServerCookie. PRESERVE_COOKIE_HEADERpropertyThe webXmlValidationattribute of any
          Context element.The webXmlNamespaceAwareattribute of any
          Context element.The tldValidationattribute of any
          Context element. If not specified, the default value of falsewill be used. |  | org.apache.catalina.connector. Request.ALLOW_EMPTY_QUERY_STRING | If this is trueTomcat will return an empty string rather
      thannullfor empty query strings - i.e. query strings where
      only?is present. If not specified, the value of
      org.apache.catalina.STRICT_SERVLET_COMPLIANCEwill be used as
      the default. |  | org.apache.catalina.session. StandardSession.ACTIVITY_CHECK | If this is trueor iforg.apache.catalina.STRICT_SERVLET_COMPLIANCEistrueTomcat will track the number of active requests for each
      session. When determining if a session is valid, any session with at least
      one active request will always be considered valid. If not specified, the default value of falsewill be used. |  | org.apache.tomcat.util.http. ServerCookie.ALLOW_EQUALS_IN_VALUE | If this is trueTomcat will allow '='
      characters when parsing unquoted cookie values. Iffalse,
      cookie values containing '=' will be terminated when the
      '=' is encountered and the remainder of the cookie value will
      be dropped. If not specified, the default specification compliant value of
      falsewill be used. |  | org.apache.tomcat.util.http. ServerCookie.ALWAYS_ADD_EXPIRES | If this is trueTomcat will always add an expires
      parameter to a SetCookie header even for cookies with version greater than
      zero. This is to work around a known IE6 and IE7 bug that causes IE to
      ignore the Max-Age parameter in a SetCookie header. If not specified, the default value of truewill be used. |  | org.apache.tomcat.util.http. ServerCookie.PRESERVE_COOKIE_HEADER | If this is trueTomcat will ensure that cookie
      processing does not modify cookie header returned byHttpServletRequest.getHeader(). If org.apache.catalina.STRICT_SERVLET_COMPLIANCEis set totrue, the default of this setting will betrue,
      else the default value will befalse. | 
 | 
 | Sessions |  | 
  | Property | Description | 
|---|
 | org.apache.catalina.SESSION_COOKIE_NAME | An alternative name for the session cookie. Defaults to
      JSESSIONID. Note that the Servlet specification requires
      this to beJSESSIONID. You should not rely on being able to
      change this. |  | org.apache.catalina.SESSION_PARAMETER_NAME | An alternative name for the session path parameter. Defaults to
      jsessionid. Note that the Servlet specification requires
      this to bejsessionid. You should not rely on being able to
      change this. |  | org.apache.catalina.authenticator.                      Constants.SSO_SESSION_COOKIE_NAME | An alternative name for the single sign on session cookie. Defaults to
      JSESSIONIDSSO. | 
 | 
 | Logging |  | 
  | Property | Description | 
|---|
 | org.apache.juli.logging. UserDataHelper.CONFIG | The type of logging to use for errors generated by invalid input data.
         The options are: DEBUG_ALL,INFO_THEN_DEBUG,INFO_ALLandNONE. WhenINFO_THEN_DEBUGis used, the period for which errors are
         logged at DEBUG rather than INFO is controlled by the system propertyorg.apache.juli.logging.UserDataHelper.SUPPRESSION_TIME. The default value is INFO_THEN_DEBUG. The errors currently logged using this system are:
         Other errors triggered by invalid input data may be added to this
         system in later versions. |  | org.apache.juli.logging. UserDataHelper.SUPPRESSION_TIME | When using INFO_THEN_DEBUGfororg.apache.juli.logging.UserDataHelper.CONFIGthis system
         property controls how long messages are logged at DEBUG after a message
         has been logged at INFO. Once this period has elapsed, the next message
         will be logged at INFO followed by a new suppression period where
         messages are logged at DEBUG and so on. The value is measured
         in seconds. A value of 0is equivalent to usingINFO_ALLfororg.apache.juli.logging.UserDataHelper.CONFIG. A negative value means an infinite suppression period. The default value is 86400(24 hours). | 
 | 
 | Other |  | 
  | Property | Description | 
|---|
 | org.apache.coyote.ALLOWED_TRAILER_HEADERS | Limits the names of trailing headers that will be accepted in the last
      chunk of a chunked HTTP request. The property should be set to a comma
      separated list of acceptable headers. Trailing headers not in the list
      will be ignored. If not specified, the default value of no headers will be used. |  | org.apache.coyote.MAX_EXTENSION_SIZE | Limits the total length of extension data when using chunked encoding.
      If the value is -1, no limit will be imposed. If not specified, the default value of 8192will be
      used. |  | org.apache.coyote.MAX_TRAILER_SIZE | Limits the total length of trailing headers in the last chunk of
      a chunked HTTP request.
      If the value is -1, no limit will be imposed. If not specified, the default value of 8192will be used. |  | org.apache.coyote.MAX_SWALLOW_SIZE | Limits the length of a request body Tomcat will swallow if it is not
      read during normal request processing. If the value is -1, no
      limit will be imposed. If not specified, the default value of 2097152(2MB) will
      be used. |  | catalina.useNaming | If this is falseit will override theuseNamingattribute for all 
      Context elements. |  | jvmRoute | Provides a default value for the jvmRouteattribute of the
      Engine element. It does not override the value
      configured on the Engine element. |  | org.apache.catalina.loader. WebappClassLoader.ENABLE_CLEAR_REFERENCES | If true, Tomcat attempts to null out any static or final
      fields from loaded classes when a web application is stopped as a work
      around for apparent garbage collection bugs and application coding errors. There have been some issues reported with log4j when this option is
      true. Applications without memory leaks using recent JVMs should operate
      correctly with this option set to false. If not specified, the default value of truewill be used. |  | catalina.config | The URL for the catalina.properties configuration file. |  | tomcat.util.buf.StringCache.byte.enabled | If true, the String cache is enabled forByteChunk. If not specified, the default value of falsewill be used. |  | tomcat.util.buf.StringCache.char.enabled | If true, the String cache is enabled forCharChunk. If not specified, the default value of falsewill be used. |  | tomcat.util.buf.StringCache.trainThreshold | The number of times toString()must be called before the
      cache is activated. If not specified, the default value of 20000will be used. |  | tomcat.util.buf.StringCache.cacheSize | The size of the String cache. If not specified, the default value of 200will be used. |  | tomcat.util.buf.StringCache.maxStringSize | The maximum length of String that will be cached. If not specified, the default value of 128will be used. |  | org.apache.tomcat.util. http.FastHttpDateFormat.CACHE_SIZE | The size of the cache to use parsed and formatted date value. If not specified, the default value of 1000will be used. |  | org.apache.tomcat.util. net.NioSelectorShared | If true, use a shared selector for servlet write/read. If not specified, the default value of truewill be used. |  | org.apache.catalina.startup. EXIT_ON_INIT_FAILURE | If true, the server will exit if an exception happens
         during the server initialization phase. If not specified, the default value of falsewill be used. | 
 | 
 |