web-dev-qa-db-ja.com

サーブレットの応答メソッドaddHeaderとsetHeaderの違いは何ですか?

SetHeaderを使用して新しいヘッダーを設定できますか?または、最初にaddHeaderしてから、setHeaderメソッドを使用する必要がありますか?

26
Slick

ドキュメントには、addHeaderメソッドを使用して特定のヘッダーに複数の値を追加できると記載されていますが、setHeaderメソッドを使用すると初期値が上書きされます。

どちらの場合も、存在しないヘッダーが作成されます。

30
csupnig

Javadocs あなたの友達です:

void addHeader(String name, String value)

指定された名前と値で応答ヘッダーを追加します。このメソッドを使用すると、応答ヘッダーに複数の値を設定できます。

void setHeader(String name, String value)

指定された名前と値で応答ヘッダーを設定します。ヘッダーがすでに設定されている場合、新しい値は前の値を上書きします。 containsHeaderメソッドを使用して、値を設定する前にヘッダーの存在をテストできます。

12
Brian Roach

SetHeader()とaddHeader()はどちらも、ヘッダーがまだ応答に含まれていない場合、応答にヘッダーと値を追加します。 setとaddの違いは、ヘッダーがあるときに表示されます。その場合:setHeader()は既存の値を上書きしますが、addHeader()は追加の値を追加します

4
Abhijit Kalta