Spec-Zone.ru › OpenJDK 24

Класс CookieManager

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

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


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

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

  • Используйте 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.

С тех пор:
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, например, поля заголовка ответа, именованные Set-Cookie2, присутствующие в заголовках ответа, в кэш файлов cookie.
void setCookiePolicy(CookiePolicy cookiePolicy)
Устанавливает политику файлов cookie для данного менеджера файлов cookie.

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

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

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

setCookiePolicy

public void setCookiePolicy(CookiePolicy cookiePolicy)
Устанавливает политику файлов cookie для данного менеджера файлов 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. Часть хоста должна отражать либо пункт назначения файлов 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, присутствующие в заголовках ответа, в кэш файлов cookie.
Определяется:
put в классе CookieHandler
Параметры:
uri - URI, откуда берутся файлы cookie
responseHeaders - неизменяемая карта от имён полей к спискам значений полей, представляющих поля заголовка ответа
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
  • CookieHandler.get(URI, Map)

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/net/CookieManager.html

Spec-Zone.ru

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