java - IOUtils.copy 第二次失败

标签 java servlets

我有一个 servlet,它使用具有以下逻辑的方法:

        ServletOutputStream out = response.getOutputStream();
        IOUtils.copy(content, out);
        out.close();

当我第一次运行它时,一切都按预期进行。如果我尝试使用相同的内容第二次执行相同的过程,则输出为空。我在第二次调试时检查了内容对象,它与第一次的内容相同。你知道会发生什么吗?

最佳答案

假设您没有尝试写入关闭的输出流(这是我的第一个猜测,但您的评论让我认为 servlet 本身被重新调用,这将打开一个新的响应),那么很可能您的输入流需要重置。根据实际流的类型,您可以在流本身上使用标记和重置,也可以重新创建流,或者可以将其作为字节数组复制到内存中以供重用。看这个问题:Read stream twice

关于java - IOUtils.copy 第二次失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14103864/

相关文章:

java - 显示标签问题

java - 网络钓鱼扫描程序帮助

java - Scala 自动装箱和 Java Map

java - crontab 在 linux 上运行 java shell 脚本

java - Android - 源端口 800 的 DatagramSocket 不发送

javascript - 如何防止(按住刷新按钮)DoS 攻击

java - 将 Velocity 与 Tiles 和 Spring 结合使用

java - Guice - Jersey - Servlet 绑定(bind)

java - Servlet 方法不重定向页面

java - 如何使用servlet验证HTML表单中不存在的隐藏表单字段名称