The Apache Tomcat Servlet/JSP Container

Apache Tomcat 6.0

Version 6.0.45, Feb 1 2016
Apache Logo

Links

Top Level Elements

Executors

Connectors

Containers

Nested Components

Cluster Elements

web.xml

Other

Apache Tomcat Configuration Reference

System Properties

Table of Contents
Introduction

The following sections list the system properties that may be set to modify the default Tomcat behaviour.

Clustering
PropertyDescription
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 false will be used.

Expression Language
PropertyDescription
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 1000 will 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 5000 will be used.

org.apache.el.parser. COERCE_TO_ZERO

If true, when coercing EL expressions to numbers "" and null will be coerced to zero as required by the specification.

If not specified, the default value of true will 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 true will be used.

Jasper
PropertyDescription
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 true will enable pooling with an alternative base class. If the alternative base class does not call _jspInit() and this property is true, NPEs will occur when attempting to use tags.

If not specified, the default value of false will 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_expressionfactory will 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_instancemanager will be used.

org.apache.jasper.compiler. Generator.STRICT_GET_PROPERTY

If true, the requirement to have the object referenced in jsp:getProperty action 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 true will be used.

org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING

If false the 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 true will be used.

org.apache.jasper.runtime. BodyContentImpl.LIMIT_BUFFER

If true, any tag buffer that expands beyond org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE will be destroyed and a new buffer created of the default size.

If not specified, the default value of false will be used.

org.apache.jasper.runtime. JspFactoryImpl.USE_POOL

If true, a ThreadLocal PageContext pool will be used.

If not specified, the default value of true will be used.

org.apache.jasper.runtime. JspFactoryImpl.POOL_SIZE

The size of the ThreadLocal PageContext.

If not specified, the default value of 8 will 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.HttpJspBase will 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 _jspService will 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_classpath will 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 by request.getServletPath() to select the JSP page to be executed.

If not specified, the default value of org.apache.catalina.jsp_file will 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_precompile will 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.jsp will 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.tag will 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_dd will 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_temp will 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 false will be used.

Security
PropertyDescription
org.apache.catalina.connector. RECYCLE_FACADES

If this is true or if a security manager is in use a new facade object will be created for each request.

If not specified, the default value of false will be used.

org.apache.catalina.connector. CoyoteAdapter.ALLOW_BACKSLASH

If this is true the '\' character will be permitted as a path delimiter.

If not specified, the default value of false will 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 false will 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 false will be used.

Specification
PropertyDescription
org.apache.catalina. STRICT_SERVLET_COMPLIANCE

If this is true the 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 to Response.getCharacterEncoding() returning ISO-8859-1 and the Content-Type response header will include a charset=ISO-8859-1 component. (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 / getResourceAsStream calls must start with a "/".
    If set to false, code like getResource("myfolder/myresource.txt") will work.

If this is true the default value will be changed for:

  • org.apache.catalina.connector.Request. ALLOW_EMPTY_QUERY_STRING property
  • org.apache.tomcat.util.http.ServerCookie. PRESERVE_COOKIE_HEADER property
  • The webXmlValidation attribute of any Context element.
  • The webXmlNamespaceAware attribute of any Context element.
  • The tldValidation attribute of any Context element.

If not specified, the default value of false will be used.

org.apache.catalina.connector. Request.ALLOW_EMPTY_QUERY_STRING

If this is true Tomcat will return an empty string rather than null for empty query strings - i.e. query strings where only ? is present.

If not specified, the value of org.apache.catalina.STRICT_SERVLET_COMPLIANCE will be used as the default.

org.apache.catalina.session. StandardSession.ACTIVITY_CHECK

If this is true or if org.apache.catalina.STRICT_SERVLET_COMPLIANCE is true Tomcat 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 false will be used.

org.apache.tomcat.util.http. ServerCookie.ALLOW_EQUALS_IN_VALUE

If this is true Tomcat will allow '=' characters when parsing unquoted cookie values. If false, 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 false will be used.

org.apache.tomcat.util.http. ServerCookie.ALWAYS_ADD_EXPIRES

If this is true Tomcat 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 true will be used.

org.apache.tomcat.util.http. ServerCookie.PRESERVE_COOKIE_HEADER

If this is true Tomcat will ensure that cookie processing does not modify cookie header returned by HttpServletRequest.getHeader().

If org.apache.catalina.STRICT_SERVLET_COMPLIANCE is set to true, the default of this setting will be true, else the default value will be false.

Sessions
PropertyDescription
org.apache.catalina.SESSION_COOKIE_NAME

An alternative name for the session cookie. Defaults to JSESSIONID. Note that the Servlet specification requires this to be JSESSIONID. 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 be jsessionid. 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
PropertyDescription
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_ALL and NONE. When INFO_THEN_DEBUG is used, the period for which errors are logged at DEBUG rather than INFO is controlled by the system property org.apache.juli.logging.UserDataHelper.SUPPRESSION_TIME.

The default value is INFO_THEN_DEBUG.

The errors currently logged using this system are:

  • invalid parameters.
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_DEBUG for org.apache.juli.logging.UserDataHelper.CONFIG this 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 0 is equivalent to using INFO_ALL for org.apache.juli.logging.UserDataHelper.CONFIG.

A negative value means an infinite suppression period.

The default value is 86400 (24 hours).

Other
PropertyDescription
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 8192 will 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 8192 will 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 false it will override the useNaming attribute for all Context elements.

jvmRoute

Provides a default value for the jvmRoute attribute 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 true will 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 for ByteChunk.

If not specified, the default value of false will be used.

tomcat.util.buf.StringCache.char.enabled

If true, the String cache is enabled for CharChunk.

If not specified, the default value of false will 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 20000 will be used.

tomcat.util.buf.StringCache.cacheSize

The size of the String cache.

If not specified, the default value of 200 will be used.

tomcat.util.buf.StringCache.maxStringSize

The maximum length of String that will be cached.

If not specified, the default value of 128 will 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 1000 will 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 true will 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 false will be used.


Copyright © 1999-2016, Apache Software Foundation