Класс CookieManager

public class CookieManager
extends CookieHandler

CookieManager предоставляет конкретную реализацию CookieHandler, которая разделяет хранение файлов cookie от политики, связанной с приёмом и отклонением файлов cookie. CookieManager инициализируется CookieStore, который управляет хранением, и объектом CookiePolicy, который принимает решения о политике приёма/отклонения файлов cookie.

Управление HTTP-файлами cookie в пакете java.net выглядит следующим образом:

use
 CookieHandler <------- HttpURLConnection
       ^
       | impl
       |         use
 CookieManager -------> CookiePolicy
             |   use
             |--------> HttpCookie
             |              ^
             |              | use
             |   use        |
             |--------> CookieStore
                            ^
                            | impl
                            |
                  Internal in-memory implementation
  • CookieHandler является основой управления файлами cookie. Пользователь может вызвать CookieHandler.setDefault, чтобы установить конкретную реализацию CookieHanlder для использования.
  • CookiePolicy.shouldAccept будет вызываться CookieManager.put, чтобы определить, следует ли принимать и добавлять файл cookie в хранилище cookie. Пользователь может использовать любой из трёх предопределённых CookiePolicy, а именно ACCEPT_ALL, ACCEPT_NONE и ACCEPT_ORIGINAL_SERVER, или он может определить собственную реализацию CookiePolicy и указать CookieManager на её использование.
  • CookieStore — это место, где хранятся все принятые HTTP-файлы cookie. Если при создании не указано иное, экземпляр CookieManager будет использовать внутреннюю реализацию в оперативной памяти. Либо пользователь может реализовать собственную и указать CookieManager на её использование.
  • В настоящее время CookieManager использует только CookieStore.add(URI, HttpCookie) и CookieStore.get(URI). Другие методы предназначены для полноты и могут потребоваться более сложной реализации CookieStore, например, NetscapeCookieStore.

Существует несколько способов, которыми пользователь может подключить собственное поведение управления HTTP-файлами cookie, например:

  • Использовать CookieHandler.setDefault для установки новой реализации CookieHandler
  • Позволить CookieManager быть реализацией по умолчанию CookieHandler, но реализовать собственную CookieStore и CookiePolicy и указать CookieManager на их использование:
    // this should be done at the beginning of an HTTP session
    CookieHandler.setDefault(new CookieManager(new MyCookieStore(), new MyCookiePolicy()));
  • Позволить CookieManager быть реализацией по умолчанию CookieHandler, но использовать настраиваемую CookiePolicy:
    // this should be done at the beginning of an HTTP session
    CookieHandler.setDefault(new CookieManager());
    // this can be done at any point of an HTTP session
    ((CookieManager)CookieHandler.getDefault()).setCookiePolicy(new MyCookiePolicy());

Реализация соответствует RFC 2965, раздел 3.3.

Since:
1.6
См. также:
CookiePolicy

Конструкторы

Конструктор Описание
CookieManager()

Создаёт новый менеджер файлов cookie.

CookieManager​(CookieStore store, CookiePolicy cookiePolicy)

Создаёт новый менеджер файлов cookie со специфичным хранилищем файлов cookie и политикой.

Методы

Модификатор и тип Метод Описание
CookieStore getCookieStore()

Получить текущее хранилище файлов cookie.

void setCookiePolicy​(CookiePolicy cookiePolicy)

Установить политику файлов cookie для данного менеджера файлов cookie.

Методы, объявленные в классе java.net.CookieHandler

get, getDefault, put, setDefault

Методы, объявленные в классе java.lang.Object

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

Конструкторы

CookieManager

public CookieManager()

Создаёт новый менеджер файлов cookie.

Этот конструктор создаст новый менеджер файлов cookie с хранилищем файлов cookie по умолчанию и политикой приёма. Эффект аналогичен CookieManager(null, null).

CookieManager

public CookieManager(CookieStore store,
                     CookiePolicy cookiePolicy)

Создаёт новый менеджер файлов cookie со специфичным хранилищем файлов cookie и политикой.

Параметры:
store — хранилище файлов cookie, которое будет использоваться менеджером файлов cookie. Если null, менеджер файлов cookie будет использовать хранилище по умолчанию, которое является реализацией CookieStore в оперативной памяти.
cookiePolicy — экземпляр CookiePolicy для использования менеджером файлов cookie в качестве обратного вызова политики. Если null, будет использоваться ACCEPT_ORIGINAL_SERVER.

Методы

setCookiePolicy

public void setCookiePolicy(CookiePolicy cookiePolicy)

Устанавливает политику файлов cookie для данного менеджера файлов cookie.

У экземпляра CookieManager по умолчанию политика файлов cookie ACCEPT_ORIGINAL_SERVER. Пользователи всегда могут вызвать этот метод, чтобы установить другую политику.

Параметры:
cookiePolicy — политика файлов cookie. Может быть null, которая не оказывает влияния на текущую политику.

getCookieStore

public CookieStore getCookieStore()

Получить текущее хранилище файлов cookie.

Возвращает:
текущее хранилище файлов cookie, используемое менеджером файлов cookie.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/CookieManager.html

Spec-Zone .ru
спецификации, руководства, описания, API