如何列出tomcat上文件夹中的所有文件?

2022-09-01 07:15:38

我在tomcat上有一个包含许多excel文档的文件夹,我希望当我在浏览器中访问该文件夹的URL时,这些文件可用(例如http;//localhost:8080/ myfolder)

在我尝试访问文件夹的那一刻,我得到一个404错误。如果我尝试访问该文件夹中的文件,它可以工作。


答案 1

默认情况下,Tomcat 配置为不显示目录列表。您需要打开Tomcat自己的文件(在Tomcat安装文件夹中查找),搜索条目,然后将其初始化参数从DefaultServlet/conf/web.xml<servlet>DefaultServletlistings

<init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
</init-param>

<init-param>
    <param-name>listings</param-name>
    <param-value>true</param-value>
</init-param>

请记住,这会影响 Web 应用的所有文件夹。如果你只想为一个单独的文件夹启用它,你必须自己编写一些代码,这些代码在servlet端的API的帮助下完成工作,以收集文件,并在JSP端收集一堆HTML / CSS,以整齐的方式呈现它。Servletjava.io.File


答案 2

您也可以从给定的URL模式开始启用它。只需将 servlet 和 servlet 映射添加到您的应用程序 Web.xml

<servlet>
    <!-- List files in /ws-definitions -->
    <servlet-name>ListWsDefinitions</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>100</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ListWsDefinitions</servlet-name>
    <url-pattern>/ws-definitions/*</url-pattern>
</servlet-mapping>

在此示例中,“/ws-definitions/”下面的目录将被侦听。