This can be achieved easily enough in Apache2 with mod_rewrite, but what about in Apache Tomcat 7? That turned out to be incredibly difficult to do without writing a special Java servlet dedicated to static files, but many StackOverflow searches later I have come up with a recipe.
<welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <error-page> <error-code>404</error-code> <location>/rewrite-404.jsp</location> </error-page>
Then create a new file in WebContent called rewrite-404.jsp:
<% response.setStatus(HttpServletResponse.SC_OK); %> <%@ include file="index.html" %>
This will cause existing files in WebContent to be served as usual, and all requests that would normally return a 404 error to return index.html instead with a 200 (OK) response code.