java – 使用Jetty 9为webapp配置静态内容

有人可以请告诉我如何使用Jetty 9配置webapp的静态内容.我一直试图这样做一段时间,我没有运气.所有对静态内容的请求(例如css / *或img / *)都直接进入我的/ servlet处理程序.

root
    |-war
        |-css
        |-img
        |-js
        |-WEB-INF
                |-web.xml

我的web.xml看起来像:

<webapp>
    ...
    ...
    <servlet-mapping>
        <servlet-name>App</servlet-name>
        <url-pattern>/app</url-pattern>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!-- SOMETHING HERE FOR STATIC CONTENT ?? -->

</webapp>

我只是不明白如何处理这个例子来自jetty文档:

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.server.handler.ContextHandler">
  <Set name="contextPath">/scratch</Set>
  <Set name="handler">
    <New class="org.eclipse.jetty.server.handler.ResourceHandler">
      <Set name="resourceBase">/home/jesse/scratch</Set>
      <Set name="directoriesListed">true</Set>
    </New>
  </Set>
</Configure>

我试过玩它并将文件放在不同的地方,但我无法让它工作.我的servlet处理得很好,但我的页面没有样式,图像或js,因为它们找不到内容.

最佳答案 我最终只是在我的web.xml中打了这个:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>

默认情况似乎只是根据文件扩展名将适当的mime类型移交给那里,所以没关系.

点赞