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

30

我可以使用setHeader来设置一个新的头吗?
还是我需要先使用addHeader方法,然后再使用setHeader方法?


1
请注意,addHeader 会添加一个新的 Header 而不是将新值附加到现有的 Header。如果已经存在该 Header,请小心操作。 - Con O'Connell
3个回答

34

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

在两种情况下,都将创建一个不存在的头。


17

Javadocs 是您的好朋友:

void addHeader(String name, String value)

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

void setHeader(String name, String value)

设置给定名称和值的响应头。如果已经设置了头,则新值将覆盖以前的值。可以使用containsHeader方法在设置其值之前测试标头是否存在。


7

setHeader()addHeader()都可以在响应中添加头信息和对应的值,但只有当该头信息不存在时才会进行添加。两者的区别在于当头信息已经存在时,setHeader()会覆盖旧值,而addHeader()会添加一个新的值。


1
我最喜欢这个答案。 - GC_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接