]> &project; System Properties

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

Set this to a fully qualified name of a class that implements org.apache.tomcat.util.IntrospectionUtils.PropertySource. Required to have a public constructor with no arguments.

Use this to add a property source, that will be invoked when ${parameter} denoted parameters are found in the XML files that Tomcat parses.

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.

If true, when coercing 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.

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.

The name of the variable to use for the instance manager factory. If not specified, the default value of _jsp_instancemanager will be used.

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.

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.

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.

If true, a ThreadLocal PageContext pool will be used. If not specified, the default value of true will be used.

The size of the ThreadLocal PageContext. If not specified, the default value of 8 will be used.

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.

The name of the service method called by the base class. If not specified, the default value of _jspService will be used.

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.

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.

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 org.apache.catalina.jsp_precompile will be used.

The default package name for compiled jsp pages. If not specified, the default value of org.apache.jsp will be used.

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.

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.

Prefix to use for generated temporary variable names. If not specified, the default value of _jspx_temp will be used.

If true, the instance manager is used to obtain tag handler instances. If not specified, false will be used.

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.

If this is true the '\' character will be permitted as a path delimiter. If not specified, the default value of false will be used.

If this is true '%2F' and '%5C' will be permitted as path delimiters. If not specified, the default value of false will be used.

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)
  • 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)
  • ServletContext.getResource/getResourceAsStream must start with "/"
    if set to false, code like getResource("myfolder/myresource.txt") will work
  • The default value will be changed for:
    • org.apache.tomcat.util.http.ServerCookie.ALWAYS_ADD_EXPIRES.
    • org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR.
    • org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING.
    • The tldNamespaceAware attribute of any Context element
    • .
    • The tldValidation attribute of any Context element
    • .
    • The xmlNamespaceAware attribute of any Context element
    • .
    • The xmlValidation attribute of any Context element
    • .

Note that changing a number of the above defaults is likely to break the majority of systems as some browsers are unable to correctly handle the cookie headers that result from a strict adherence to the specifications. Defaults, regardless of whether or not they have been changed by setting org.apache.catalina.STRICT_SERVLET_COMPLIANCE can always be overridden by explicitly setting the appropriate system property or element attribute.

If this is true then 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)
If not specified, the default specification compliant value of true will be used.

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.

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 value specification compliant value of false will be used.

If this is true Tomcat will allow HTTP separators in cookie names and values. If not specified, the default specification compliant value of false will be used.

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 will be used. If org.apache.catalina.STRICT_SERVLET_COMPLIANCE is set to true, the default of this setting will be false, else the default value will be true.

If this is true then the / (forward slash) character will be treated as a separator. Note that this character is frequently used in cookie path attributes and some browsers will fail to process a cookie if the path attribute is quoted as is required by a strict adherence to the specifications. This is highly likely to break session tracking using cookies. If not specified, the default value will be used. 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.

If this is true then the requirements of the Servlet specification that Cookie names must adhere to RFC2109 (no use of separators) will be enforced. If not specified, the default value will be used. 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.

An alternative name for the single sign on session cookie. Defaults to JSESSIONIDSSO.

When the memory limit of records has been reached the system needs to determine what action to take. Currently there are three actions that can be taken:

  • int OVERFLOW_DROP_LAST = 1 - the record that caused the overflow will be dropped and not logged
  • int OVERFLOW_DROP_FIRST = 2 - the record that is next in line to be logged will be dropped to make room for the latest record on the queue
  • int OVERFLOW_DROP_FLUSH = 3 - suspend the thread while the queue empties out and flushes the entries to the write buffer
  • int OVERFLOW_DROP_CURRENT = 4 - drop the current log entry
Default value is 1 (OVERFLOW_DROP_LAST).

The max number of log records that the async logger will keep in memory. When this limit is reached and a new record is being logged by the JULI framework the system will take an action based on the org.apache.juli.AsyncOverflowDropType setting. The default value is 10000 records.
This number represents the global number of records, not on a per handler basis.

The poll interval in milliseconds for the asynchronous logger thread in milliseconds. If the log queue is empty, the async thread will issue a poll(poll interval) in order to not wake up to often. The default value is 1000 milliseconds.

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.

If this is false it will override the useNaming attribute for all Context elements.

Provides a default value for the jvmRoute attribute of the Engine element. It does not override the value configured on the Engine element.

The URL for the catalina.properties configuration file.

If true, the String cache is enabled for ByteChunk. If not specified, the default value of false will be used.

If true, the String cache is enabled for CharChunk. If not specified, the default value of false will be used.

The number of times toString() must be called before the cache is activated. If not specified, the default value of 20000 will be used.

The size of the String cache. If not specified, the default value of 200 will be used.

The maximum length of String that will be cached. If not specified, the default value of 128 will be used.

The size of the cache to use parsed and formatted date value. If not specified, the default value of 1000 will be used.

If true, use a shared selector for servlet write/read. If not specified, the default value of true will be used.

If true, the server will exit if an exception happens during the server initialization phase. The default is false.