Класс CookieManager
public class CookieManager extends CookieHandler
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
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CookieManager() |
Создает новый менеджер файлов cookie. |
CookieManager |
Создает новый менеджер файлов cookie со значениями хранилища файлов cookie и политики файлов cookie. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Map |
get |
Получает все применимые файлы cookie из кэша файлов cookie для указанного URI в заголовке запроса. |
CookieStore |
getCookieStore() |
Получает текущее хранилище файлов cookie. |
void |
put |
Устанавливает все применимые файлы cookie, например, поля заголовка ответа, именованные Set-Cookie2, присутствующие в заголовках ответа, в кэш файлов cookie. |
void |
setCookiePolicy |
Устанавливает политику файлов cookie для данного менеджера файлов cookie. |
Методы, объявленные в классе java.net.CookieHandler
getDefault, setDefault
Подробное описание конструкторов
CookieManager
public CookieManager()
Этот конструктор создаст новый менеджер файлов cookie с хранилищем файлов cookie и политикой принятия по умолчанию. Эффект аналогичен CookieManager(null, null).
CookieManager
public CookieManager(CookieStore store, CookiePolicy cookiePolicy)
- Параметры:
-
store-CookieStore, используемый менеджером файлов cookie. Еслиnull, менеджер файлов cookie будет использовать стандартное значение, которое является реализацией CookieStore в оперативной памяти. -
cookiePolicy- экземплярCookiePolicy, используемый менеджером файлов cookie в качестве обратного вызова политики. Еслиnull, будет использоваться ACCEPT_ORIGINAL_SERVER.
Подробное описание методов
setCookiePolicy
public void setCookiePolicy(CookiePolicy cookiePolicy)
У экземпляра CookieManager политика файлов cookie ACCEPT_ORIGINAL_SERVER по умолчанию. Пользователи всегда могут вызвать этот метод, чтобы установить другую политику файлов cookie.
- Параметры:
-
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Переданный в качестве аргумента URI определяет предполагаемое использование файлов cookie. В частности, схема должна отражать, будут ли файлы cookie отправлены по протоколу http, https или использованы в другом контексте, например, в JavaScript. Часть хоста должна отражать либо пункт назначения файлов cookie, либо их происхождение в случае JavaScript.
Реализация должна учитывать URI и атрибуты файлов cookie и параметры безопасности, чтобы определить, какие из них должны быть возвращены.
Реализаторы протокола HTTP должны убедиться, что этот метод вызывается после добавления всех заголовков запроса, относящихся к выбору файлов cookie, и перед отправкой запроса.
- Определяется:
-
getв классеCookieHandler - Параметры:
-
uri-URI, представляющий предполагаемое использование файлов cookie -
requestHeaders- Map из имен полей заголовка запроса к спискам значений полей, представляющих текущие заголовки запроса - Возвращает:
- неизменяемая карта из заголовков управления состоянием, с именами полей "Cookie" или "Cookie2" до списка файлов cookie, содержащих информацию о состоянии
- Выбрасывает:
-
IOException- если произошла ошибка ввода-вывода - См. также:
put
public void put(URI uri, Map<String, List<String>> responseHeaders) throws IOException
CookieHandler- Определяется:
-
putв классеCookieHandler - Параметры:
-
uri-URI, откуда берутся файлы cookie -
responseHeaders- неизменяемая карта от имён полей к спискам значений полей, представляющих поля заголовка ответа - Выбрасывает:
-
IOException- если произошла ошибка ввода-вывода - См. также:
© 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