Я отображаю все URL в один сервлет в своем веб-приложении и позволяю веб-приложению самостоятельно решать, как их обслуживать:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>com.myapp.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Недостаток в том, что мой контейнер сервлетов больше не обслуживает статические файлы, я должен написать код, чтобы загрузить их и обслуживать их через веб-приложение или обслуживать их на apache, и настроить его так, чтобы он не преобразовывал прокси-сервер в tomcat для любых статических файлов.