クラス Cookie
- java.lang.ObjectSE
-
- jakarta.servlet.http.Cookie
- 実装されたすべてのインターフェース:
SerializableSE
,CloneableSE
public class Cookie extends ObjectSE implements CloneableSE, SerializableSE
Cookie を作成します。これは、サーブレットによって Web ブラウザーに送信され、ブラウザーによって保存され、後でサーバーに送り返される少量の情報です。Cookie の値はクライアントを一意に識別できるため、Cookie は一般にセッション管理に使用されます。Cookie には、名前、単一の値、コメント、パスおよびドメイン修飾子、最大年齢、バージョン番号などのオプションの属性があります。一部の Web ブラウザーには、オプション属性の処理メソッドにバグがあるため、サーブレットの相互運用性を改善するために慎重に使用してください。
サーブレットは、
HttpServletResponse.addCookie(jakarta.servlet.http.Cookie)
メソッドを使用してブラウザーに Cookie を送信します。このメソッドは、HTTP レスポンスヘッダーにフィールドを追加して、Cookie を一度に 1 つずつブラウザーに送信します。ブラウザーは、Web サーバーごとに 20 の Cookie、合計 300 の Cookie をサポートすることが期待されており、Cookie のサイズをそれぞれ 4 KB に制限する場合があります。ブラウザーは、HTTP リクエストヘッダーにフィールドを追加することにより、サーブレットに Cookie を返します。
HttpServletRequest.getCookies()
メソッドを使用して、リクエストから Cookie を取得できます。いくつかの Cookie は同じ名前でもパス属性が異なる場合があります。Cookie は、Cookie を使用する Web ページのキャッシュに影響します。HTTP 1.0 は、このクラスで作成された Cookie を使用するページをキャッシュしません。このクラスは、HTTP 1.1 で定義されたキャッシュ制御をサポートしていません。
このクラスは、RFC 6265 で定義された Cookie をサポートします。
- 作成者:
- Various
- 関連事項:
- 直列化された形式
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 ObjectSE
clone()
この Cookie のコピーを返す標準のjava.lang.Object.clone
メソッドをオーバーライドします。boolean
equals(ObjectSE obj)
StringSE
getAttribute(StringSE name)
指定された名前に関連付けられた Cookie 属性の値を取得します。MapSE<StringSE,StringSE>
getAttributes()
setAttribute(String, String)
を介して設定されたすべての Cookie 属性の変更不可能なマッピングと、version
を除く事前定義された setter メソッドを返します。StringSE
getComment()
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。これは、RFC 6265 では不要になりました。StringSE
getDomain()
この Cookie のドメイン名を取得します。int
getMaxAge()
この Cookie の最大経過時間を秒単位で取得します。StringSE
getName()
Cookie の名前を返します。StringSE
getPath()
ブラウザーがこの Cookie を返すサーバー上のパスを返します。boolean
getSecure()
ブラウザーが安全なプロトコルでのみ Cookie を送信している場合はtrue
を返し、ブラウザーが任意のプロトコルを使用して Cookie を送信できる場合はfalse
を返します。StringSE
getValue()
この Cookie の現在の値を取得します。int
getVersion()
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。これは、RFC 6265 では不要になりました。int
hashCode()
boolean
isHttpOnly()
この Cookie が HttpOnly としてマークされているかどうかを確認します。void
setAttribute(StringSE name, StringSE value)
指定された名前に関連付けられた Cookie 属性の値を設定します。void
setComment(StringSE purpose)
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。これは、RFC 6265 では不要になりました。void
setDomain(StringSE domain)
この Cookie が提示されるドメインを指定します。void
setHttpOnly(boolean httpOnly)
この Cookie を HttpOnly としてマークまたはマーク解除します。void
setMaxAge(int expiry)
この Cookie の最大有効期間を秒単位で設定します。void
setPath(StringSE uri)
クライアントが Cookie を返す先の Cookie のパスを指定します。void
setSecure(boolean flag)
Cookie を HTTPS や SSL などの安全なプロトコルのみを使用して送信するかどうかをブラウザーに示します。void
setValue(StringSE newValue)
この Cookie に新しい値を割り当てます。void
setVersion(int v)
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。これは、RFC 6265 では不要になりました。StringSE
toString()
コンストラクターの詳細
Cookie
public Cookie(StringSE name, StringSE value)
指定された名前と値で Cookie を構築します。名前は RFC 6265 に準拠する必要があります。ただし、ベンダーは、元の Netscape Cookie 仕様に準拠した Cookie 名を受け入れる構成オプションを提供する場合があります。
Cookie が作成されると、Cookie の名前は変更できません。
値は、サーバーが送信することを選択したものであれば何でもかまいません。その値はおそらくサーバーにとってのみ重要です。Cookie の値は、
setValue
メソッドを使用して作成後に変更できます。- パラメーター:
name
- クッキーの名前value
- クッキーの値- 例外:
IllegalArgumentExceptionSE
- Cookie 名が null または空であるか、不正な文字(コンマ、スペース、セミコロンなど)を含んでいる場合、Cookie プロトコルで使用するために予約されているトークンと一致する場合- 関連事項:
setValue(java.lang.String)
,setVersion(int)
メソッドの詳細
setComment
@DeprecatedSE(since="Servlet 6.0", forRemoval=true) public void setComment(StringSE purpose)
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。これは、RFC 6265 では不要になりました。RFC 6265 のサポートの採用により、このメソッドは使用されなくなりました。呼び出された場合、このメソッドは効果がありません。
- パラメーター:
purpose
- このパラメーターは無視されます- 関連事項:
getComment()
getComment
@DeprecatedSE(since="Servlet 6.0", forRemoval=true) public StringSE getComment()
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。これは、RFC 6265 では不要になりました。RFC 6265 のサポートの採用により、このメソッドは使用されなくなりました。- 戻り値:
- 常に
null
- 関連事項:
setComment(java.lang.String)
setDomain
public void setDomain(StringSE domain)
この Cookie が提示されるドメインを指定します。ドメイン名の形式は RFC 6265 で指定されています。ドメイン名はドット (
.foo.com
) で始まり、指定されたドメインネームシステム (DNS) ゾーン (たとえば、www.foo.com
、ただしa.b.foo.com
ではなく) 内のサーバーに Cookie が表示されることを意味します)。デフォルトでは、Cookie は送信元のサーバーにのみ返されます。- パラメーター:
domain
- この Cookie が表示されるドメイン名。フォームは RFC 6265 に準拠しています- 関連事項:
getDomain()
getDomain
public StringSE getDomain()
この Cookie のドメイン名を取得します。ドメイン名は、RFC 6265 に従ってフォーマットされます。
- 戻り値:
- この Cookie のドメイン名
- 関連事項:
setDomain(java.lang.String)
setMaxAge
public void setMaxAge(int expiry)
この Cookie の最大有効期間を秒単位で設定します。正の値は、その秒数が経過すると Cookie が期限切れになることを示します。値は、Cookie の現在の年齢ではなく、Cookie が期限切れになる最大年齢であることに注意してください。
負の値は、Cookie が永続的に保存されず、Web ブラウザーが終了したときに削除されることを意味します。値がゼロの場合、Cookie は削除されます。
- パラメーター:
expiry
- Cookie の最大有効期間を秒単位で指定する整数。負の場合、Cookie は保存されません。ゼロの場合、Cookie を削除します- 関連事項:
getMaxAge()
getMaxAge
public int getMaxAge()
この Cookie の最大経過時間を秒単位で取得します。デフォルトでは、
-1
が返されます。これは、ブラウザーがシャットダウンするまで Cookie が保持されることを示します。- 戻り値:
- Cookie の最大有効期間を秒単位で指定する整数。負の場合、ブラウザーがシャットダウンするまでクッキーが保持されることを意味します
- 関連事項:
setMaxAge(int)
setPath
public void setPath(StringSE uri)
クライアントが Cookie を返す先の Cookie のパスを指定します。Cookie は、指定したディレクトリ内のすべてのページと、そのディレクトリのサブディレクトリ内のすべてのページに表示されます。Cookie のパスには、Cookie を設定するサーブレット(/catalog下にあるサーバー上のすべてのディレクトリに Cookie が表示されます。
Cookie のパス名の設定の詳細については、RFC 6265 を参照してください。
- パラメーター:
uri
- パスを指定するString
- 関連事項:
getPath()
getPath
public StringSE getPath()
ブラウザーがこの Cookie を返すサーバー上のパスを返します。Cookie は、サーバー上のすべてのサブパスに表示されます。- 戻り値:
- サーブレット名を含むパスを指定する
String
(例: /catalog - 関連事項:
setPath(java.lang.String)
setSecure
public void setSecure(boolean flag)
Cookie を HTTPS や SSL などの安全なプロトコルのみを使用して送信するかどうかをブラウザーに示します。デフォルト値は
false
です。- パラメーター:
flag
-true
の場合、安全なプロトコルを使用している場合にのみ、ブラウザーからサーバーにクッキーを送信します。false
の場合、任意のプロトコルで送信されます- 関連事項:
getSecure()
getSecure
public boolean getSecure()
ブラウザーが安全なプロトコルでのみ Cookie を送信している場合はtrue
を返し、ブラウザーが任意のプロトコルを使用して Cookie を送信できる場合はfalse
を返します。- 戻り値:
- ブラウザーが安全なプロトコルを使用する場合は
true
、それ以外の場合はfalse
- 関連事項:
setSecure(boolean)
getName
public StringSE getName()
Cookie の名前を返します。作成後に名前を変更することはできません。- 戻り値:
- クッキーの名前
setValue
public void setValue(StringSE newValue)
この Cookie に新しい値を割り当てます。バイナリ値を使用する場合は、BASE64 エンコードを使用できます。
バージョン 0 クッキーでは、値に空白、括弧、括弧、等号、コンマ、二重引用符、スラッシュ、疑問符、アットマーク、コロン、セミコロンを含めることはできません。空の値は、すべてのブラウザーで同じように動作しない場合があります。
- パラメーター:
newValue
- クッキーの新しい値- 関連事項:
getValue()
getValue
public StringSE getValue()
この Cookie の現在の値を取得します。- 戻り値:
- この Cookie の現在の値
- 関連事項:
setValue(java.lang.String)
getVersion
@DeprecatedSE(since="Servlet 6.0", forRemoval=true) public int getVersion()
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。これは、RFC 6265 では不要になりました。RFC 6265 のサポートの採用により、このメソッドは使用されなくなりました。- 戻り値:
- 常に 0
- 関連事項:
setVersion(int)
setVersion
@DeprecatedSE(since="Servlet 6.0", forRemoval=true) public void setVersion(int v)
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。これは、RFC 6265 では不要になりました。RFC 6265 のサポートの採用により、このメソッドは使用されなくなりました。呼び出された場合、このメソッドは効果がありません。
- パラメーター:
v
- このパラメーターは無視されます- 関連事項:
getVersion()
clone
public ObjectSE clone()
この Cookie のコピーを返す標準のjava.lang.Object.clone
メソッドをオーバーライドします。
setHttpOnly
public void setHttpOnly(boolean httpOnly)
この Cookie を HttpOnly としてマークまたはマーク解除します。httpOnly が true に設定されている場合、この Cookie は HttpOnly 属性を追加して HttpOnly としてマークされます。
HttpOnly Cookie は、クライアント側のスクリプトコードにさらされることは想定されていないため、特定の種類のクロスサイトスクリプト攻撃を軽減するのに役立つ可能性があります。
- パラメーター:
httpOnly
- この Cookie が HttpOnly としてマークされる場合は true、そうでない場合は false- 導入:
- Servlet 3.0
isHttpOnly
public boolean isHttpOnly()
この Cookie が HttpOnly としてマークされているかどうかを確認します。- 戻り値:
- この Cookie が HttpOnly としてマークされている場合は true、そうでない場合は false
- 導入:
- Servlet 3.0
setAttribute
public void setAttribute(StringSE name, StringSE value)
指定された名前に関連付けられた Cookie 属性の値を設定します。これは、
version
を除いて、現在のバージョンに getter/setter ペアがすでに存在する事前定義された属性と同期する必要があります。例:cookie.setAttribute("domain", domain)
が呼び出されると、cookie.getDomain()
は正確にその値を返す必要があり、その逆も同様です。- パラメーター:
name
- 値を設定する Cookie 属性の名前。大文字と小文字は区別されませんvalue
- 指定された名前に関連付けられた Cookie 属性の値。null
にすることができます- 例外:
IllegalArgumentExceptionSE
- Cookie 名が null または空であるか、無効な文字 (コンマ、スペース、セミコロンなど) が含まれているか、Cookie プロトコルで使用するために予約されているトークンと一致する場合。NumberFormatExceptionSE
- Cookie が数値を持つ既知のフィールド (Max-Age など) であるが、値を解析できない場合。- 導入:
- Servlet 6.0
getAttribute
public StringSE getAttribute(StringSE name)
指定された名前に関連付けられた Cookie 属性の値を取得します。これは、
version
を除いて、現在のバージョンに getter/setter ペアがすでに存在する事前定義された属性と同期する必要があります。例:cookie.setAttribute("domain", domain)
が呼び出されると、cookie.getDomain()
は正確にその値を返す必要があり、その逆も同様です。- パラメーター:
name
- 値を取得する Cookie 属性の名前。大文字と小文字は区別されません- 戻り値:
- 指定された名前に関連付けられた Cookie 属性の値
- 導入:
- Servlet 6.0
getAttributes
public MapSE<StringSE,StringSE> getAttributes()
setAttribute(String, String)
を介して設定されたすべての Cookie 属性の変更不可能なマッピングと、version
を除く事前定義された setter メソッドを返します。- 戻り値:
setAttribute(String, String)
および事前定義された setter メソッド (version
を除く) を介して設定されたすべての Cookie 属性の変更不可能なマッピング- 導入:
- Servlet 6.0