Servlet响应方法addHeader和setHeader有什么区别?

时间:2011-04-14 07:34:20

标签: java servlets java-ee

我可以使用set Header设置新标头吗?或者我是否需要先addHeader,然后使用setHeader方法?

3 个答案:

答案 0 :(得分:26)

文档说明您可以使用addHeader方法向特定标头添加多个值,而如果使用setHeader方法,则会覆盖初始值。

在这两种情况下都会创建一个不存在的标头。

答案 1 :(得分:10)

Javadocs是你的朋友:

void addHeader(String name, String value)
  

添加具有给定名称和值的响应标头。       此方法允许响应标头具有多个值。

void setHeader(String name, String value)
  

设置具有给定名称和值的响应标头。如果标题已经设置,       新值将覆盖前一个值。 containsHeader方法可用于测试       在设置其值之前是否存在标题。

答案 2 :(得分:3)

如果标头尚未出现在响应中,则setHeader()和addHeader()都会向响应中添加标头和值。当标题存在时,set和add之间的差异会显示出来。在这种情况下: setHeader()会覆盖现有值,而addHeader()会添加一个附加值