Spec-Zone.ru › OpenJDK 25

Класс 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 и политикой обработки файлов cookie.

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

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

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

getDefault, setDefault

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

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

setCookiePolicy

public void setCookiePolicy(CookiePolicy cookiePolicy)
Задаёт политику обработки файлов cookie для этого менеджера.

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

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

getCookieStore

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

get

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

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

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

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

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

put

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/CookieManager.html

Spec-Zone.ru

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