A
web server is
not a
file server. What happens when you "request a directory" via HTTP is totally unlike what happens when you use a File I/O call to list a directory.
In
Tomcat, if you make a URL request that doesn't match any of the
servlet URL
patterns in the web.xml file for that particular web application context, the URL request - and the URL - are passed to Tomcat's Default Servlet, which is built into Tomcat itself. This servlet first attempts to match the URL against a
JSP, and if that doesn't work, determines if the tail-end of the URL matches a relative resource path within the application WAR. If so, then the Default Servlet determines whether this resource is a data resource ("file") or a container resource ("directory"). I'm using the names in quotes because an actual WAR is not a filesystem directory, it's a ZIP file and the server's filesystem cannot read ZIP members directly, but Tomcat can.
In the case of a "directory" resource, there's logic in the Default Servlet that constructs an HTTP page, enumerates the members of that "directory", and formats the enumeration in tabular format, giving a "directory listing" in the client's view (browser).
In order to override that behavior, you are going to have to create the equivalent of the Default Servlet, map it to a suitable URL path(s) and handle those URLs in whatever format you prefer.