# Apache Tomcat 6.0

# Apache Tomcat Configuration Reference

## System Properties

Introduction

> The follow 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 `false` will be used.

Expression Language

> Property | Description
> --- | ---
> `org.apache.el.parser.COERCE_TO_ZERO` | 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.

Jasper

> Property | Description
> --- | ---
> `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. Parser.STRICT_QUOTE_ESCAPING` | If `false` the requirements for escpaing 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.
> `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 `org.apache.catalina.jsp_precompile` will be used.
> `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, `false` will be used.

Security

> Property | Description
> --- | ---
> `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. 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)
> - 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 explicity 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.
> - `ServletContext.getResource/getResourceAsStream` must start with "/"
>   if set to false, code like `getResource("myfolder/myresource.txt")` will work

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

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

Copyright © 1999-2008, Apache Software Foundation