[英]How can I list all the files in folder on tomcat?
我在tomcat上有一个包含许多excel文件的文件夹,当我在浏览器中找到该文件夹的URL时,我希望这些文件可用(例如http; // localhost:8080 / myfolder)
在我尝试访问文件夹时,我收到404错误。 如果我尝试访问该文件夹中的文件,它的工作原理。
默认情况下,Tomcat的DefaultServlet
配置为不显示目录列表。 您需要打开Tomcat自己的/conf/web.xml
文件(查看Tomcat安装文件夹),搜索DefaultServlet
的<servlet>
条目,然后更改其listings
初始化参数
<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>
请记住,这会影响您的webapp的所有文件夹。 如果你只想为一个单独的文件夹启用它,你必须自己编写一些Servlet
代码,它在servlet端的java.io.File
API的帮助下完成工作,收集文件和一些HTML / CSS在JSP方面以一种整洁的方式呈现它。
您也可以从给定的url模式开始启用它。 只需将servlet和servlet-mapping添加到app 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 /”下面的目录将被侦听。
这里有一些文档解释了如何执行此操作。
http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html
其基本思路是,它的值更改listings
参数,以true
在主web.xml
的tomcat。
<servlet>
<servlet-name>default</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>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
但是上面会公开所有目录。 为了获得良好的控制,请按照此处说明的步骤操作:
http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html#dir
如果您使用的是Tomcat 6(实现Servlet 2.5规范)或更新版本,则无需更改CATALINA_HOME / conf /目录中的web.xml以显示目录列表。 相反,您应该在WEB-INF下更改Web应用程序自己的web.xml文件。
正如Adarshr所提到的,这是您需要添加到web.xml的内容
<servlet>
<servlet—name>default</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>1</load-on-startup>
</servlet>
您还需要添加以下内容
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
如果更改列表参数值不起作用,请尝试编辑欢迎文件列表
默认值如下:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
编辑如下:
<welcome-file-list>
<welcome-file></welcome-file>
<welcome-file></welcome-file>
<welcome-file></welcome-file>
</welcome-file-list>
删除它们应该完美
这是一个简单的servlet ,可能是完全自定义方法的开始。
如果您只是尝试为servlet之外的文件实现基于Web的文件浏览器,则可以使用此答案中提到的自定义Web应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.