[英]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.