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

Sli*_*ick 24 java servlets java-ee

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

csu*_*nig 29

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

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


Bri*_*ach 11

Javadocs是你的朋友:

void addHeader(String name, String value)
Run Code Online (Sandbox Code Playgroud)

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

void setHeader(String name, String value)
Run Code Online (Sandbox Code Playgroud)

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


小智 6

双方setHeader()addHeader()会如果标题是不是已经在响应报头和值添加到响应。当标题存在时, set 和 add 之间的区别就会出现。在这种情况下:setHeader()覆盖现有值,同时addHeader()添加一个附加值。