默认情况下,由于安全性的考虑,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

  1. 可能是用户权限问题。

如果你是使用 下载-修改-删除-上传 的方式进行配置文件的,请查看文件的用户权限是否受限
例如:文件是由root新增,但原文件用户和用户组却是www www
将root变更为www用户组权限的方法:$ chowm www:www web.xml


Guoye
315 声望9 粉丝