这是我用来从带有嵌入式 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 以避免在这些类中重新实现有用的逻辑。
谢谢!
最佳答案
ResourceHandler 不支持在流中(动态)修改内容。
ResourceHandler 经过优化以尽可能高效地发送文件,通常使用内存映射文件缓冲区,将文件直接从磁盘提供给网络,接下来不对 Java 内存中的文件进行缓冲区处理。
你有两个选择:
- 在单独的步骤或过程中(不是即时)修改磁盘上的文件
- 编写您自己的文件服务处理程序,可以动态修改文件。
您可以使用 FastFileServer example来自 Jetty git 存储库作为选择 #2 的良好起点。
关于java - 如何在提供文件之前使用嵌入式 Jetty 转换文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29859522/