Java 如何在Jetty 9.x中以编程方式启用特定路径的目录浏览?

Java 如何在Jetty 9.x中以编程方式启用特定路径的目录浏览?,java,jetty,jetty-9,Java,Jetty,Jetty 9,是否可以通过编程为Jetty 9.x中的特定路径启用目录浏览(如果“是”-如何启用)?通过编程方式创建启用目录浏览的Jetty实例可以通过为静态内容创建一个并将其设置为true,或者显式创建并配置一个DefaultServlet。下面是创建和配置ResourceHandler的示例 ResourceHandler staticResource = new ResourceHandler(); staticResource.setDirectoriesListed(true); staticRes

是否可以通过编程为Jetty 9.x中的特定路径启用目录浏览(如果“是”-如何启用)?

通过编程方式创建启用目录浏览的Jetty实例可以通过为静态内容创建一个并将其设置为true,或者显式创建并配置一个
DefaultServlet
。下面是创建和配置
ResourceHandler
的示例

ResourceHandler staticResource = new ResourceHandler();
staticResource.setDirectoriesListed(true);
staticResource.setWelcomeFiles(new String[] { "index.html" });
staticResource.setResourceBase("/path/to/your/files");

ContextHandler staticContextHandler = new ContextHandler();
staticContextHandler.setContextPath("/*");
staticContextHandler.setHandler(staticResource);

Server server = new Server(8080);
server.setHandler(staticContextHandler);

如果要通过Web应用程序部署描述符(
Web.xml
)的配置(非编程方式)来配置目录浏览,则需要配置一个
DefaultServlet
。以下是一个例子:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
    <init-param>
        <param-name>resourceBase</param-name>
        <param-value>/path/to/your/static/files</param-value>
    </init-param>
    <init-param>
        <param-name>dirAllowed</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/path/to/serve/content/on/*</url-pattern>
</servlet-mapping>

违约
org.eclipse.jetty.servlet.DefaultServlet
资源库
/路径/到/您的/静态/文件
肮脏的
真的
违约
/路径/到/服务/内容/打开/*

有关详细信息和其他配置选项,请参阅。

您好,谢谢您的示例!如果我从容器中运行代码,我需要如何处理这个
ResourceHandler
?您将
ResourceHandler
放入
ContextHandler
中,并将
ContextHandler
放入
服务器
(或将其添加到
ContextHandler集合
).我想我可能还不够清楚--代码是在独立的Jetty中运行的,我不是以编程方式启动的。有这样做的方法吗?您需要能够编辑web.xml,或者以编程方式更改独立Jetty的启动方式。对——那么,如果我能够编辑
web.xml
,我该如何做呢?