这是我用来从带有嵌入式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来避免重新实现这些类中的有用逻辑。
谢谢!
答案 0 :(得分:3)
ResourceHandler不支持在流中(动态)修改内容。
ResourceHandler经过优化,可以尽可能高效地发送文件,通常使用内存映射文件缓冲区,直接从磁盘向网络提供文件,下一步没有缓冲区处理Java内存中的文件。
您有两个选择:
您可以使用Jetty git存储库中的FastFileServer example作为选择#2的良好起点。