我在tomcat上有一个包含许多excel文档的文件夹,当我在浏览器中找到该文件夹的url时,我希望这些文件可用(例如http; // localhost:8080 / myfolder)
当我尝试访问文件夹时,我收到404错误。如果我尝试访问该文件夹中的文件,则可以正常工作。
答案 0 :(得分:52)
默认情况下,Tomcat的DefaultServlet
配置为不显示目录列表。您需要打开Tomcat自己的/conf/web.xml
文件(查看Tomcat安装文件夹),搜索<servlet>
的{{1}}条目,然后从
listings
到
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
请注意,这会影响您的webapp的所有文件夹。如果你只想为一个单独的文件夹启用它,你必须自己编写一些<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
代码,这可以帮助servlet端的Servlet
API来收集文件和一些JSP方面的HTML / CSS以一种简洁的方式呈现它。
答案 1 :(得分:19)
您也可以从给定的网址格式开始启用它。 只需将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 /”下面的目录将被监听。
答案 2 :(得分:4)
以下是一些解释如何执行此操作的文档。
http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html
基本思路是将listings
参数的值更改为tomcat主true
中的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>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
答案 3 :(得分:3)
如果您使用的是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>
答案 4 :(得分:2)
这是一个简单的servlet,可能是完全自定义方法的开始。
答案 5 :(得分:2)
如果更改列表参数值不起作用,请尝试编辑欢迎文件列表
默认值如下:
<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>
删除它们应该可以正常工作
答案 6 :(得分:0)
如果您只是尝试为servlet之外的文件实现基于Web的文件浏览器,则可以使用this answer中提到的自定义Web应用程序。