According to the documentation of the Context element:
Context Parameters
You can configure named values that
will be made visible to the web
application as servlet context
initialization parameters by nesting
<Parameter>
elements inside this
element. For example, you can create
an initialization parameter like this:
<Context ...>
...
<Parameter name="companyName" value="My Company, Incorporated"
override="false"/>
...
</Context>
This is equivalent to the inclusion of
the following element in the web
application deployment descriptor
(/WEB-INF/web.xml
):
<context-param>
<param-name>companyName</param-name>
<param-value>My Company, Incorporated</param-value>
</context-param>
but does not require modification of
the deployment descriptor to customize
this value.
The valid attributes for a
<Parameter>
element are as follows:
...
About the override
attribute of a <Parameter>
, the documentation says:
Set this to false
if you do not want a <context-param>
for the same parameter name, found in the web application deployment descriptor, to override the value specified here. By default, overrides are allowed.
Setting it to false should do the trick. This was the "how" part.
For the "where" part, read refer to the introduction of The Context Container:
For Tomcat 6, unlike Tomcat 4.x, it is NOT recommended to place <Context>
elements directly in the server.xml
file. This is because it makes modifing the Context configuration more invasive since the main conf/server.xml
file cannot be reloaded without restarting Tomcat.
Context elements may be explicitly defined:
- In the
$CATALINA_BASE/conf/context.xml
file: the Context element information will be loaded by all webapps.
- In the
$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default
file: the Context element information will be loaded by all webapps of that host.
- In individual files (with a ".xml" extension) in the
$CATALINA_BASE/conf/[enginename]/[hostname]/
directory. The name of the file (less the .xml extension) will be used as the context path. Multi-level context paths may be defined using #, e.g. foo#bar.xml
for a context path of /foo/bar
. The default web application may be defined by using a file called ROOT.xml.
- Only if a context file does not exist for the application in the
$CATALINA_BASE/conf/[enginename]/[hostname]/
, in an individual file at /META-INF/context.xml
inside the application files. If the web application is packaged as a WAR then /META-INF/context.xml
will be copied to $CATALINA_BASE/conf/[enginename]/[hostname]/
and renamed to match the application's context path. Once this file exists, it will not be replaced if a new WAR with a newer /META-INF/context.xml
is placed in the host's appBase.
- Inside a Host element in the main
conf/server.xml
.
With the exception of server.xml
, files that define Context elements may only define a single Context element.