【问题标题】:How to programmatically enable directory browsing for a particular path in Jetty 9.x?如何以编程方式启用 Jetty 9.x 中特定路径的目录浏览?
【发布时间】:2014-11-10 17:12:52
【问题描述】:

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

【问题讨论】:

    标签: java jetty jetty-9


    【解决方案1】:

    可以通过为静态内容创建 ResourceHandler 并将 setDirectoriesListed 设置为 true 或显式创建并配置 DefaultServlet 来以编程方式创建启用目录浏览的 Jetty 实例。下面是创建和配置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);
    

    【讨论】:

    • 嗨,谢谢你的例子!如果我在容器内运行代码,我到底需要用这个 ResourceHandler 做什么?
    • 您将ResourceHandler 放入ContextHandler,并将ContextHandler 放入Server(或将其添加至ContextHandlerCollection)。
    • 我想我可能还不够清楚——代码在一个独立的 Jetty 中运行,我没有以编程方式启动它。有没有办法做到这一点?
    • 您要么需要能够编辑 web.xml,要么以编程方式更改独立 Jetty 的启动方式。
    • 对 - 如果我能够编辑 web.xml,我将如何去做?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 2013-10-25
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      相关资源
      最近更新 更多