Appendix A 3.6 Learning about override web.xml File
The webdefault.xml file supplies configuration of web.xml file elements that would otherwise be repetitive and onerous to set up for every web application, such as setting up mime-type mappings, JSP servlet-mappings, and so forth. It is applied before the webapp’s own WEB-INF/web.xml file. Generally, it is convenient for all webapps deployed 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.
A common need is to be able to deploy the same unchanged webapp/war into different environments, but also to have that webapp customized for that environment. To some extent, changing configuration in the jetty.xml will help with this, as that file does not form part of the webapp, and so therefore can be changed per deployment.
However, there are some things you might want to change that jetty.xml cannot help you with: for example, servlet init-params and context init-params. Using webdefault.xml does not help you either, because it is applied first. It cannot override values inside the webapps web.xml.
The solution is to use an override web.xml file. This is another whole or partial web.xml file that resides externally to the webapp, and is applied after the webapp’s WEB-INF/web.xml file and can therefore override or add new elements.


