当前位置: 首页 > 面试题库 >

使用嵌入式Jetty提供静态文件

唐运诚
2023-03-14
问题内容

我正在尝试使用嵌入式Jetty构建一个简单的演示应用程序,该应用程序可以从“
html”目录提供静态文件,该目录是当前工作目录的子目录。这个想法是,带有演示jar和内容的目录可以移动到新位置,并且仍然可以使用。

我已经尝试了以下方法的变体,但是我不断得到404。

ServletContextHandler context = 
                       new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");

context.getInitParams().put(
                       "org.eclipse.jetty.servlet.Default.resourceBase", "html");
context.addServlet(new ServletHolder(new DefaultServlet()), "/html");

Server jetty = new Server(8080);
jetty.setHandler(context);

jetty.start();

更新:
这是Jetty教程中记录的解决方案。如正确答案中所述,它使用ResourceHandler而不是ServletContextHandler

    Server server = new Server();
    SelectChannelConnector connector = new SelectChannelConnector();
    connector.setPort(8080);
    server.addConnector(connector);

    ResourceHandler resource_handler = new ResourceHandler();
    resource_handler.setDirectoriesListed(true);
    resource_handler.setWelcomeFiles(new String[]{ "index.html" });

    resource_handler.setResourceBase(".");

    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
    server.setHandler(handlers);

    server.start();
    server.join();

问题答案:

使用ResourceHandler代替ServletContextHandler



 类似资料:
  • 问题内容: 我正在尝试使用提供一些动态数据的自定义servlet和提供一些图像的默认servlet创建一个嵌入式码头服务器。我有自定义的servlet,但是我不知道如何添加默认的servlet来提供图像文件。 这就是我所拥有的… 我无法弄清楚如何将DefaultServlet配置为用作文件服务器,并且仍然使自定义DataServelet仍然有效。 有人有什么想法吗? 问题答案: 你需要什么: “

  • 我正在尝试创建一个嵌入式jetty服务器,其中既有一个提供一些动态数据的定制servlet,也有一个提供一些图像的默认servlet。我可以使用自定义servlet,但我不知道如何添加默认servlet来服务图像文件。 这就是我所拥有的。。。 我不知道如何将DefaultServlet配置为文件服务器,并且仍然可以使用自定义DataServlet。 有人有什么想法吗?

  • 类似于另一个问题(参见过滤静态内容Jersey),我想从Jetty提供静态内容。在浩瀚的互联网上散布着几个类似的问题,但大多数都不涉及Guice,而那些涉及Guice的问题已经完全过时了。 我有一个现有的服务,使用泽西(1.12)和Guice(3)与以下: < code>MyGuiceConfig看起来像这样: 当我使用 时,我的服务按预期工作。但是,任何对静态内容的请求都会产生404。 如何在不

  • 问题内容: 我有一个具有以下结构的Web应用程序: 我已经设法使用nginx和wsgi运行Web应用程序,但是问题是没有提供静态文件,我的意思是,当我转到它们的URL时,服务器找不到它们。它给我404。 这是我的nginx配置文件部分: 缺少什么吗? 问题答案: 将此添加到你的nginx配置 用你应用的绝对路径替换时,你应该注意它不包含静态目录,并且其中的所有内容都将存储在中。

  • 我一直在处理将一个站点从Apache迁移到Nginx的过程,我快要失去理智了。虚拟主机不想提供静态资源(css、js等),我似乎不知道为什么。服务器块看起来像这样: 我错过了什么?我知道这是因为我对Nginx缺乏经验,但任何建议都将不胜感激。 谢谢 更新 这似乎与我以前遇到麻烦的化名有关。如果我将我的文档根指向别名位置(),并尝试呈现没有别名的静态内容,它会呈现良好的效果。一旦我在网址中输入别名.

  • 问题内容: 我正在使用,我的django应用的结构如下 的是 在我尝试使用它为: 但是它没有加载并给出错误 我跑去收集所有静态文件。 为什么要加载CSS文件?是否缺少任何配置? 请提出建议。 问题答案: 根据文档正确的方式来加载静态文件是 这会工作