1.Cookieを設定する
次のようにコードをコピーします。
クッキー クッキー = 新しい Cookie("キー", "値");
cookie.setMaxAge(60);
有効期間を 60 秒に設定します。負の値に設定すると、ブラウザーのプロセス Cookie (メモリに保存されます) となり、ブラウザーを閉じると無効になります。
次のようにコードをコピーします。
cookie.setPath("/test/test2");
Cookie のパスを設定します。設定されていない場合は、現在のパスになります (サーブレットの場合は、request.getContextPath() + web.xml で構成されたサーブレットの URL パターン パス部分です)。
次のようにコードをコピーします。
応答.addCookie(クッキー);
2. クッキーを読む
このメソッドは、現在のパスと「直接の親パス」のすべての Cookie オブジェクトを読み取ることができます。Cookie がない場合は、null を返します。
次のようにコードをコピーします。
Cookie[] クッキー = request.getCookies();
3.Cookieの削除
次のようにコードをコピーします。
クッキー クッキー = 新しい Cookie("キー", null);
cookie.setMaxAge(0);
Cookie をすぐに削除するには 0 に設定します。
次のようにコードをコピーします。
cookie.setPath("/test/test2");
指定したパスの Cookie を削除します。パスが設定されていない場合、デフォルトでは現在のパスの Cookie が削除されます。
次のようにコードをコピーします。
応答.addCookie(クッキー);
4. 注: パス構造は次のとおりであると仮定します。
次のようにコードをコピーします。
テスト/テスト2/テスト345/テスト555/テスト666
a. 同じキー名を持つ Cookie (値は同じでも異なっていても構いません) は、異なるパスに存在できます。
b. 削除時に、現在のパスの下にキー「key」を持つ Cookie が存在しない場合は、すべての親パスが照会され、取得後に削除操作が実行されます (自分に最も近い 1 つの親パス Cookie のみを削除できます)。時間)
FF。Cookie を削除するには、Cookie の設定に使用したのと同じパスを指定する必要があります。また、そのパスは、大文字、小文字、または混合サイズに関係なく、Cookie キー名に指定する必要があります。
IE。キー名が小文字の場合、現在のパスが /test/test2 で、見つからない場合は /test、/test555、/test345 をクエリし、それでも見つからない場合は / をクエリします。 (/test555/test666 はクエリされません)
キー名が大文字と小文字が混在しているか、大文字が使用されている場合、パスが指定されていない場合、デフォルトで現在のパスが削除され、上向きのクエリは実行されません。
c. Cookie を読み取る場合、直接の親パスの Cookie のみを読み取ることができます。
現在のパスが/test/test2の場合、読み込むキーは「key」です。現在のパスを読み取った後、/test も読み取る必要があり、/test を読み取った後は / も読み取る必要があります。
d. Java Web プロジェクトで作業する場合、一般的な Web サーバー (Tomcat や Jetty など) は異なる Web アプリケーションを管理するためにコンテキストを使用するため、各コンテキストには異なるパスがあります。
特にサーバー内に複数のWebApplicationが存在する場合は、/というパスでCookieを設定しないでください。誤動作の原因となりますのでご注意ください。 (もちろんドメイン名が同じであることが前提です)