如何在提供嵌入式Jetty文件之前对其进行转换?

时间:2015-04-25 00:13:58

标签: java jetty embedded-jetty

这是我用来从带有嵌入式Jetty的文件系统提供静态文件的代码。

    String directory = "dir";
    final ContextHandler contextHandler = new ContextHandler();
    final ResourceHandler resourceHandler = new ResourceHandler();
    contextHandler.setContextPath("/" + directory);
    resourceHandler.setBaseResource(Resource.newResource(new File(directory,
                directory);
    contextHandler.setHandler(resourceHandler);

如何修改它以在提供文件之前转换文件?

我想继续使用ResourceHandler和ContextHandler来避免重新实现这些类中的有用逻辑。

谢谢!

1 个答案:

答案 0 :(得分:3)

ResourceHandler不支持在流中(动态)修改内容。

ResourceHandler经过优化,可以尽可能高效地发送文件,通常使用内存映射文件缓冲区,直接从磁盘向网络提供文件,下一步没有缓冲区处理Java内存中的文件。

您有两个选择:

  1. 在单独的步骤或过程中(不是动态)修改磁盘上的文件
  2. 编写您自己的文件服务处理程序,可以动态修改文件。
  3. 您可以使用Jetty git存储库中的FastFileServer example作为选择#2的良好起点。