3

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

4

2 回答 2

3

可以通过为静态内容创建ResourceHandler并将setDirectoriesListed设置为 true 或显式创建 a 并配置 a 来以编程方式创建启用目录浏览的 Jetty 实例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);
于 2014-11-10T18:18:48.807 回答
3

如果您想通过 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>

有关详细信息和其他配置选项,请参阅http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/servlet/DefaultServlet.html

于 2014-11-12T18:06:10.383 回答