モジュール jdk.httpserver
パッケージ com.sun.net.httpserver

クラスHeaders

java.lang.Object
com.sun.net.httpserver.Headers
すべての実装されたインタフェース:
Map<String,List<String>>

public class Headers extends Object implements Map<String,List<String>>
HTTP要求および応答ヘッダーは、インタフェースMap<String, List <String>>を実装するこのクラスによって表されます。 キーはヘッダー名を表す文字列であり、大文字と小文字は区別されません。各キーに関連付けられた値は、要求または応答内に出現する各ヘッダー名に対して1つの要素を持つList<String>です。

たとえば、応答ヘッダーのインスタンスに「value1」と「value2」という2つの値を持つ1つのキー「HeaderName」が含まれている場合、このオブジェクトは2つのヘッダー行として出力されます。

 HeaderName: value1
 HeaderName: value2
 
通常のMapメソッドがすべて提供されますが、次の追加の簡易メソッドがよく使用される可能性があります。
  • getFirst(String)。単一値ヘッダーまたは複数値ヘッダーの最初の値を返します。
  • add(String,String)。指定されたキーのリストに、指定されたヘッダー値を追加します。
  • set(String,String)。指定されたヘッダー・フィールドに単一値を設定して、値リストの既存の値をすべて上書きします。

Headersのインスタンスは、「変える」または「不変」です。 「可変ヘッダー」では、HttpExchange.getResponseHeaders()によって返されるインスタンスなど、ヘッダーの名前と値を追加、削除または変更できます。 「不変ヘッダー」では、HttpExchange.getRequestHeaders()によって返されるインスタンスなど、ヘッダー名または値に対する変更は許可されません。 不変ヘッダー・インスタンスのミューテータ・メソッドは、無条件にUnsupportedOperationExceptionをスローします。

このクラスのすべてのメソッドは、キーおよび値のnull値を拒否します。nullキーは、HTTPリクエストまたはレスポンス・ヘッダーには存在しません。

導入されたバージョン:
1.6
  • ネストされたクラスのサマリー

    インタフェースjava.util.Mapで宣言されたネストされたクラス/インタフェース

    Map.Entry<K,V>
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    Headersの空のインスタンスを作成します。
    指定されたheadersから、同じヘッダー名および値を使用して、可変Headersを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    add(String key, String value)
    指定されたvalueを、指定されたkeyのヘッダーのリストに追加します。
    void
    マップからマッピングをすべて削除します(オプションの操作)。
    boolean
    指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。
    boolean
    このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。
    このマップに含まれるマッピングのSetビューを返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    get(Object key)
    指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。
    指定されたkeyString値のListから最初の値を返します。keyのマッピングが存在しない場合はnullを返します。
    int
    オブジェクトのハッシュ・コード値を返します。
    boolean
    このマップがキーと値のマッピングを保持しない場合にtrueを返します。
    このマップに含まれるキーのSetビューを返します。
    static Headers
    of(String... headers)
    指定された名前値のペアをヘッダーのセットとして、不変Headersを返します。
    static Headers
    of(Map<String,List<String>> headers)
    ヘッダー名と値が同じ指定されているheadersから不変Headersを返します。
    put(String key, List<String> value)
    指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。
    void
    putAll(Map<? extends String,? extends List<String>> t)
    指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。
    このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。
    void
    set(String key, String value)
    指定されたvalueを、指定されたkeyの唯一のヘッダー値として設定します。
    int
    このマップ内のキー値マッピングの数を返します。
    このマップに含まれる値のCollectionビューを返します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    インタフェースjava.util.Mapで宣言されたメソッド

    compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
  • コンストラクタの詳細

    • Headers

      public Headers()
      Headersの空のインスタンスを作成します。
    • Headers

      public Headers(Map<String,List<String>> headers)
      指定されたheadersから、同じヘッダー名および値を使用して、可変Headersを作成します。
      パラメータ:
      headers - ヘッダー名と値のマップ
      例外:
      NullPointerException - headersまたはそのいずれかの名前または値がnullの場合、またはいずれかの値にnullが含まれる場合。
      導入されたバージョン:
      18
  • メソッドの詳細

    • size

      public int size()
      インタフェースからコピーされた説明: Map
      このマップ内のキー値マッピングの数を返します。 マップにInteger.MAX_VALUEを超える要素が含まれている場合は、Integer.MAX_VALUEを返します。
      定義:
      インタフェースMap<String,List<String>>内のsize
      戻り値:
      このマップ内のキーと値のマッピングの数
    • isEmpty

      public boolean isEmpty()
      インタフェースからコピーされた説明: Map
      このマップがキーと値のマッピングを保持しない場合にtrueを返します。
      定義:
      インタフェースMap<String,List<String>>内のisEmpty
      戻り値:
      このマップがキーと値のマッピングを保持しない場合はtrue
    • containsKey

      public boolean containsKey(Object key)
      インタフェースからコピーされた説明: Map
      指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。 より正式には、このマップにObjects.equals(key, k)などのキーkのマッピングが含まれている場合のみ、trueを返します。 (このようなマッピングは1つのみ存在できます。)
      定義:
      インタフェースMap<String,List<String>>内のcontainsKey
      パラメータ:
      key - このマップ内にあるかどうかが判定されるキー
      戻り値:
      指定されたキーのマッピングがこのマップに含まれている場合はtrue
    • containsValue

      public boolean containsValue(Object value)
      インタフェースからコピーされた説明: Map
      このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。 より正式には、このマップに値vへのマッピングがObjects.equals(value, v)のように少なくとも1つ含まれている場合にのみ、trueを返します。 この操作では、Mapインタフェースのほとんどの実装で、マップ・サイズに時間線形が必要になる場合があります。
      定義:
      インタフェースMap<String,List<String>>内のcontainsValue
      パラメータ:
      value - このマップにあるかどうかが判定される値
      戻り値:
      このマップが1つまたは複数のキーを指定された値にマッピングしている場合はtrue
    • get

      public List<String> get(Object key)
      インタフェースからコピーされた説明: Map
      指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。

      より正式には、このマップにキーkから値vへのマッピング(Objects.equals(key, k)など)が含まれる場合、このメソッドはvを返します。それ以外の場合はnullを返します。 (このようなマッピングは1つのみ存在できます。)

      このマップがnull値を許可する場合、戻り値のnullは、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーをnullにマップすることもあります。 containsKey操作を使うと、これら2つのケースを見分けることができます。

      定義:
      インタフェースMap<String,List<String>>内のget
      パラメータ:
      key - 関連付けられた値が返されるキー
      戻り値:
      指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合はnull
    • getFirst

      public String getFirst(String key)
      指定されたkeyString値のListから最初の値を返します。keyのマッピングが存在しない場合はnullを返します。
      パラメータ:
      key - 検索するキー
      戻り値:
      キーに関連付けられた最初のString値、キーのマッピングが存在しない場合はnull
    • put

      public List<String> put(String key, List<String> value)
      インタフェースからコピーされた説明: Map
      指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。 マップにすでにこのキーに対するマッピングがある場合、古い値は指定された値に置き換えられます。 (マップmには、m.containsKey(k)trueを返す場合にのみ、キーkのマッピングが含まれていると記述されます。)
      定義:
      インタフェースMap<String,List<String>>内のput
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      keyに以前に関連付けられていた値。keyのマッピングが存在しなかった場合はnull (nullの戻り値は、実装でnull値がサポートされている場合、マップが以前にnullkeyに関連付けたことも示すことができます。)
    • add

      public void add(String key, String value)
      指定されたvalueを、指定されたkeyのヘッダーのリストに追加します。 マッピングがまだ存在しない場合は、作成されます。
      パラメータ:
      key - ヘッダー名
      value - ヘッダーに追加する値
    • set

      public void set(String key, String value)
      指定されたvalueを、指定されたkeyの唯一のヘッダー値として設定します。 マッピングがまだ存在しない場合は、作成されます。
      パラメータ:
      key - ヘッダー名
      value - 設定するヘッダー値
    • remove

      public List<String> remove(Object key)
      インタフェースからコピーされた説明: Map
      このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。 より正式には、このマップにキーkから値vへのマッピングが含まれている場合(Objects.equals(key, k)など)、そのマッピングは削除されます。 マップはこのようなマッピングを1つだけ含めることができます。

      このマップが以前にキーを関連付けた値を返します。マップにキーのマッピングが含まれていない場合はnullを返します。

      このマップでNULL値が許可されている場合、nullの戻り値は「必ずしも」マップにキーのマッピングが含まれていないことを示しません。マップによってキーがnullに明示的にマップされている可能性もあります。

      呼出しが戻ると、マップは指定されたキーのマッピングを含まなくなります。

      定義:
      インタフェースMap<String,List<String>>内のremove
      パラメータ:
      key - マッピングがマップから削除されるキー
      戻り値:
      keyに以前に関連付けられていた値。keyのマッピングが存在しなかった場合はnull
    • putAll

      public void putAll(Map<? extends String,? extends List<String>> t)
      インタフェースからコピーされた説明: Map
      指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。 このコールの効果は、指定されたマップ内のキーkから値vへのマッピングごとに、このマップでput(k, v)を1回コールすることと同等です。 オペレーションの進行中に、指定されたマップが変更された場合の、このオペレーションの動作は定義されていません。 指定したマップに「見つける」が定義されている場合、そのマッピングの処理は通常、その順序で実行されます。
      定義:
      インタフェースMap<String,List<String>>内のputAll
      パラメータ:
      t - このマップに格納されるマッピング
    • clear

      public void clear()
      インタフェースからコピーされた説明: Map
      マップからマッピングをすべて削除します(オプションの操作)。 この呼出しが戻ると、マップは空になります。
      定義:
      インタフェースMap<String,List<String>>内のclear
    • keySet

      public Set<String> keySet()
      インタフェースからコピーされた説明: Map
      このマップに含まれるキーのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremoveオペレーションを除く)。 セットは要素の削除をサポートします。Iterator.removeSet.removeremoveAllretainAll、およびclearオペレーションで対応するマッピングをマップから削除します。 addまたはaddAll操作はサポートされていません。
      定義:
      インタフェースMap<String,List<String>>内のkeySet
      戻り値:
      マップに含まれているキーのセット・ビュー
    • values

      public Collection<List<String>> values()
      インタフェースからコピーされた説明: Map
      このマップに含まれる値のCollectionビューを返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーションを除く)。 コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.removeCollection.removeremoveAllretainAll、およびclearオペレーションを通して行います。 addまたはaddAll操作はサポートされていません。
      定義:
      インタフェースMap<String,List<String>>内のvalues
      戻り値:
      マップ内に含まれている値のコレクション・ビュー
    • entrySet

      public Set<Map.Entry<String,List<String>>> entrySet()
      インタフェースからコピーされた説明: Map
      このマップに含まれるマッピングのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーション、またはイテレータにより返されるマップ・エントリに対するsetValueオペレーションを除く)。 セットは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.removeSet.removeremoveAllretainAll、およびclearオペレーションを通して行います。 addまたはaddAll操作はサポートされていません。
      定義:
      インタフェースMap<String,List<String>>内のentrySet
      戻り値:
      マップ内に保持されているマッピングのセット・ビュー
    • equals

      public boolean equals(Object o)
      次のクラスからコピーされた説明: Object
      このオブジェクトと他のオブジェクトが等しいかどうかを示します。

      equalsメソッドは、null以外のオブジェクト参照での同値関係を実装します。

      • 反射性(reflexive): null以外の参照値xについて、x.equals(x)trueを返します。
      • 対称性(symmetric): null以外の参照値xおよびyについて、y.equals(x)trueを返す場合に限り、x.equals(y)trueを返します。
      • 推移性(transitive): null以外の参照値xy、およびzについて、x.equals(y)trueを返し、y.equals(z)trueを返す場合、x.equals(z)trueを返します。
      • 一貫性(consistent): null以外の参照値xおよびyについて、x.equals(y)の複数の呼出しは、このオブジェクトに対するequalsによる比較で使われた情報が変更されていなければ、一貫してtrueを返すか、一貫してfalseを返します。
      • null以外の参照値xについて、x.equals(null)falseを返します。

      等価関係は、操作対象の要素を「同等クラス」にパーティション化し、等価クラスのすべてのメンバーは互いに等しくなります。 等価クラスのメンバーは、少なくともなんらかの目的で互いに置換可能です。

      定義:
      インタフェースMap<String,List<String>>内のequals
      オーバーライド:
      equals、クラスObject
      パラメータ:
      o - 比較対象の参照オブジェクト。
      戻り値:
      このオブジェクトがobj引数と同じである場合はtrue、それ以外の場合はfalse
      関連項目:
    • hashCode

      public int hashCode()
      次のクラスからコピーされた説明: Object
      オブジェクトのハッシュ・コード値を返します。 このメソッドは、HashMapによって提供されるハッシュ表などの、ハッシュ表の利点のためにサポートされています。

      hashCodeの一般的な規則は次のとおりです。

      • Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対するequalsの比較で使用される情報が変更されていなければ、hashCodeメソッドは常に同じ整数を返す必要があります。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。
      • 2つのオブジェクトがequalsメソッドに従って等しい場合、2つのオブジェクトのそれぞれで hashCodeメソッドを呼び出すと、同じ整数結果が生成される必要があります。
      • 2つのオブジェクトがequalsメソッドに従って等しくない場合、2つのオブジェクトのそれぞれでhashCodeメソッドを呼び出すと、個別の整数結果が生成される必要はありません。 ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ表のパフォーマンスが向上する可能性があることに注意するようにしてください。

      定義:
      インタフェースMap<String,List<String>>内のhashCode
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • of

      public static Headers of(String... headers)
      指定された名前値のペアをヘッダーのセットとして、不変Headersを返します。

      提供されたStringインスタンスは、ヘッダー名とヘッダー値として代替する必要があります。 同じ名前に複数の値を追加するには、新しい値ごとに同じ名前を指定する必要があります。 指定されたheadersが空の場合は、空のHeadersが返されます。

      パラメータ:
      headers - 名前値のペアのリスト
      戻り値:
      指定された名前と値のペアを持つ不変ヘッダー
      例外:
      NullPointerException - headersまたはそのいずれかの要素がnullの場合。
      IllegalArgumentException - 指定された文字列の数が奇数の場合。
      導入されたバージョン:
      18
    • of

      public static Headers of(Map<String,List<String>> headers)
      ヘッダー名と値が同じ指定されているheadersから不変Headersを返します。
      パラメータ:
      headers - ヘッダー名と値のマップ
      戻り値:
      不変ヘッダー
      例外:
      NullPointerException - headersまたはそのいずれかの名前または値がnullの場合、またはいずれかの値にnullが含まれる場合。
      導入されたバージョン:
      18