Jetty Logo
Version: 9.4.1.v20170120
Contact the core Jetty developers at

private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services for sponsored feature development


Using webdefault.xml

The webdefault.xml file saves web applications from having to define a lot of house-keeping and container-specific elements in their own web.xml files. For example, you can use it to set up mime-type mappings and JSP servlet-mappings. Jetty applies webdefault.xml to a web application before the application’s own WEB-INF/web.xml, which means that it cannot override values inside the webapp’s web.xml. It uses the jetty.xml syntax. Generally, it is convenient for all webapps in a Jetty instance to share the same webdefault.xml file. However, it is certainly possible to provide differentiated ` webdefault.xml` files for individual web applications.

The webdefault.xml file is located in $(jetty.home)/etc/webdefault.xml.

Using webdefault.xml

You can specify a custom configuration file to use for specific webapps, or for all webapps. If you do not specify an alternate defaults descriptor, the $JETTY-HOME/etc/jetty-deploy.xml file will configure jetty to automatically use $JETTY_HOME/etc/webdefault.xml.


To ensure your webdefault.xml files are validated, you will need to set the validateXml attribute to true as described here.

Creating a Custom webdefault.xml for One WebApp

You can specify a custom webdefault.xml for an individual web application in that webapp’s jetty.xml as follows:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <!-- Set up the absolute path to the custom webdefault.xml -->
  <Set name="defaultsDescriptor">/my/path/to/webdefault.xml</Set>

The equivalent in code is:

import org.eclipse.jetty.webapp.WebAppContext;


    WebAppContext wac = new WebAppContext();
    //Set up the absolute path to the custom webdefault.xml.

Alternatively, you can use a Jetty Classloading to find the resource representing your custom webdefault.xml.

Creating a Custom webdefault.xml for Multiple WebApps

If you want to apply the same custom webdefault.xml to a number of webapps, provide the path to the file in jetty.xml in the $JETTY_HOME/etc/jetty-deploy.xml file:

   <Set name="defaultsDescriptor"><Property name="jetty.home" default="." />/other/path/to/another/webdefault.xml</Set>

Using the Jetty Maven Plugin

Similarly, when using the Jetty Maven Plugin you provide a customized webdefault.xml file for your webapp as follows:


Additional Resources

See an error or something missing? Contribute to this documentation at Github!(Generated: 2017-01-20)