# The Apache Tomcat 5.5 Servlet/JSP Container

# Apache Tomcat Configuration Reference

## System Properties

Table of Contents

> - Introduction
> - Jasper
> - Security
> - Specification
> - Sessions
> - Other

Introduction

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

Jasper

> Property | Description
> --- | ---
> `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.

Security

> Property | Description
> --- | ---
> `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

> Property | Description
> --- | ---

> `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)
> - when updating the access count for the session, the update will be synchronized.
> - 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.

> `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.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.

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 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.SSO_SESSION_COOKIE_NAME` | An alternative name for the single sign on session cookie. Defaults to `JSESSIONIDSSO`.

Other

> Property | Description
> --- | ---
> `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.

Copyright © 1999-2010, Apache Software Foundation