【问题标题】:Setting headers on HttpServletResponse after writing response body编写响应正文后在 HttpServletResponse 上设置标头
【发布时间】:2012-11-12 06:17:27
【问题描述】:

我发现在开始将响应正文写入输出缓冲区之后不可能向HttpServletResponse 添加更多标头的困难方法,我想这在一些随机宇宙中可能是有意义的,即使一切仍然只是在内存中缓冲。

现在的问题是:有什么技巧可以规避这个问题吗?显然,由于函数resetBuffer() 可用,它允许在不清除标题的情况下清除内容主体,所以必须有某种方法让HttpServletResponse 对象返回到可以写入更多标题的状态。例如,有没有一种方法可以读取内容正文,用resetBuffer() 清除它,设置更多标题,然后恢复内容正文?

旁白: 我想这样做的原因是,我可以在我的 servlet 中添加一个标头作为最好的最后一步,它告诉我服务器忙于处理请求的时间。

【问题讨论】:

    标签: java servlets http-headers


    【解决方案1】:

    您唯一的选择是自己缓冲响应正文;正文完成后,添加标题,然后编写正文。

    有趣的是,HTTP/1.1 有一种方法可以在响应正文之后发送标头,通过在分块编码中使用预告片,但没有人实现,所以不要打扰。

    【讨论】:

    • 不幸的是,我所有的进一步研究都表明你是正确的。
    猜你喜欢
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多