在写入响应主体后在HttpServletResponse上设置标头

时间:2012-11-23 22:53:18

标签: java servlets http-headers

我发现在开始将响应体写入输出缓冲区后,无法向HttpServletResponse添加更多标头的困难方法,我想在一些随机的宇宙中甚至可以理解虽然一切都仍然只是在内存中缓冲。

现在的问题是:是否有某种方法可以以某种方式绕过这个?显然,由于函数resetBuffer()可用,它允许在不清除标题的情况下清除内容正文,因此HttpServletResponse对象必须有某种方式返回到可以编写更多标题的状态。例如,有没有办法阅读内容正文,用resetBuffer()清除它,设置更多标题,然后恢复内容正文?

除了: 我想这样做的原因是我可以添加一个标题作为我的servlet的最后一步,它告诉我服务器忙于处理请求多长时间。

1 个答案:

答案 0 :(得分:4)

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

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