# The Apache Tomcat 5.5 Servlet/JSP Container

# Apache Tomcat Configuration Reference

## System Properties

Introduction

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

Jasper

> Property | Description
> --- | ---
> `org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING` | If `false` the requirements for escaping quotes in JSP attributes will be relaxed so that a missing required 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. Users must ensure that any such message is ISO-8859-1 encoded, particularly if user provided input is included in the message, to prevent a possible XSS vulnerability. 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.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 a 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-2009, Apache Software Foundation