默认情况下,由于安全性的考虑,Tomcat是不让列出目录下的下的文件的。但是,在特定的场景下,你可能又需要用到这一功能。
下面是步骤:
1. 配置web.xml
文件位置:%tomcat_home%/conf/
tomcat 的web.xml
配置文件中有一个属性值 listing
,这个属性值是控制是否展示虚拟目录;
默认配置是 false
,即不对外展示文件虚拟目录
我们将它改成true
<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>
<!-- 这个默认是false,改成 true -->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
2. 配置 server.xml
文件位置:%tomcat_home%/conf/
增加配置URIEncoding="utf-8"
。目的是让中文能显示正常
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="utf-8" />
3. 重启tomcat
# 可能你有其他启运行tomcat命令,不一定用下面这句
$ systemctl restart tomcat.service
# 启动成功后,可查到tomcat进程
$ ps -ef|grep tomcat
4. 查看效果
成功把文件和文件夹列出来。
5. 可能存在的问题
5.1 重启后不生效,报404
- 可能是用户权限问题。
如果你是使用 下载-修改-删除-上传
的方式进行配置文件的,请查看文件的用户权限是否受限
例如:文件是由root
新增,但原文件用户和用户组却是www
www
将root变更为www用户组权限的方法:$ chowm www:www web.xml
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。