Spec-Zone.ru › OpenJDK 27

Класс CookieManager

java.lang.Object
java.net.CookieHandler
java.net.CookieManager
public class CookieManager extends CookieHandler
CookieManager предоставляет конкретную реализацию CookieHandler, которая отделяет хранение файлов 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, чтобы задать конкретную реализацию CookieHandler.
  • CookieManager.put вызывает CookiePolicy.shouldAccept, чтобы определить, следует ли принять файл 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());
        

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

С версии:
1.6
Внешние спецификации
  • RFC 2965: механизм управления состоянием HTTP
См. также:
  • CookiePolicy

Краткое описание конструкторов

Конструктор Описание
CookieManager()
Создает новый диспетчер файлов cookie.
CookieManager(CookieStore store, CookiePolicy cookiePolicy)
Создает новый диспетчер файлов cookie с указанными хранилищем файлов cookie и политикой.

Краткое описание методов

Модификатор и тип Метод Описание
Map<String, List<String>> get(URI uri, Map<String, List<String>> requestHeaders)
Получает все подходящие файлы cookie из кэша для указанного URI и добавляет их в заголовок запроса.
CookieStore getCookieStore()
Возвращает текущее хранилище файлов cookie.
void put(URI uri, Map<String, List<String>> responseHeaders)
Добавляет в кэш все подходящие файлы cookie, например поля заголовка ответа с именем Set-Cookie2, присутствующие в заголовках ответа.
void setCookiePolicy(CookiePolicy cookiePolicy)
Задает политику файлов cookie для этого диспетчера.

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

getDefault, setDefault
Модификатор и тип Метод Описание
static CookieHandler getDefault()
Возвращает общесистемный обработчик файлов cookie.
static void setDefault(CookieHandler cHandler)
Задает (или сбрасывает) общесистемный обработчик файлов cookie.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Метод завершения устарел и будет удален в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

CookieManager

public CookieManager()
Создает новый диспетчер файлов cookie.

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

CookieManager

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

Подробное описание методов

setCookiePolicy

public void setCookiePolicy(CookiePolicy cookiePolicy)
Задает политику файлов cookie для этого диспетчера.

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

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

getCookieStore

public CookieStore getCookieStore()
Возвращает текущее хранилище файлов cookie.
Возвращает:
хранилище файлов cookie, используемое в данный момент диспетчером.

get

public Map<String, List<String>> get(URI uri, Map<String, List<String>> requestHeaders) throws IOException
Описание скопировано из класса: CookieHandler
Получает все подходящие файлы cookie из кэша для указанного URI и добавляет их в заголовок запроса.

Переданный аргумент URI указывает предполагаемое назначение файлов cookie. В частности, схема должна отражать, будут ли файлы cookie отправляться по протоколу HTTP или HTTPS либо использоваться в другом контексте, например в JavaScript. Часть host должна указывать либо место назначения файлов cookie, либо их источник в случае использования в JavaScript.

Реализация должна учитывать URI, а также атрибуты и параметры безопасности файлов cookie, чтобы определить, какие из них следует вернуть.

Реализации протокола HTTP должны гарантировать, что этот метод вызывается после добавления всех заголовков запроса, связанных с выбором файлов cookie, и до отправки запроса.

Определено в:
get в классе CookieHandler
Параметры:
uri — URI, представляющий предполагаемое назначение файлов cookie
requestHeaders — Map, сопоставляющая имена полей заголовка запроса со списками значений полей и представляющая текущие заголовки запроса
Возвращает:
неизменяемое отображение заголовков управления состоянием с именами полей "Cookie" или "Cookie2" на список файлов cookie, содержащих информацию о состоянии
Вызывает исключение:
IOException — если происходит ошибка ввода-вывода
См. также:
  • CookieHandler.put(URI, Map)

put

public void put(URI uri, Map<String, List<String>> responseHeaders) throws IOException
Описание скопировано из класса: CookieHandler
Добавляет в кэш все подходящие файлы cookie, например поля заголовка ответа с именем Set-Cookie2, присутствующие в заголовках ответа.
Определено в:
put в классе CookieHandler
Параметры:
uri — URI, откуда получены файлы cookie
responseHeaders — неизменяемое отображение имен полей на списки значений полей, представляющее возвращенные поля заголовка ответа
Вызывает исключение:
IOException — если происходит ошибка ввода-вывода
См. также:
  • CookieHandler.get(URI, Map)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API