如果在addHeader之前写入body,HttpServletResponse会丢失头?

时间:2014-04-21 04:45:40

标签: java servlets tomcat6

环境: Java HotSpot(TM)64位服务器VM(内置16.3-b01,混合模式),tomcat6

当我使用HttpServlet发送html页面时,如下所示:

resp.getWriter().append(body);//"body" is a html file content,and has some \n at first
resp.addHeader(name, value);

当代码在Linux上运行时,http客户端无法获取我添加的标头,但可以在Windows7上运行。

我交换了代码,如下:

resp.addHeader(name, value);
resp.getWriter().append(body);//"body" is a html file content

然后在linux和windows上都可以。

这就是为什么?

1 个答案:

答案 0 :(得分:2)

提交响应后,无法写入标头。如果将响应的某些部分写入客户端,则称响应将被提交。由于几个原因,有几个原因导致响应得到提交。

Reasons for response getting committed