Класс CookieManager
public class CookieManager extends CookieHandler
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
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CookieManager() |
Создает новый диспетчер файлов cookie. |
CookieManager |
Создает новый диспетчер файлов cookie с указанными хранилищем файлов cookie и политикой. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Map |
get |
Получает все подходящие файлы cookie из кэша для указанного URI и добавляет их в заголовок запроса. |
CookieStore |
getCookieStore() |
Возвращает текущее хранилище файлов cookie. |
void |
put |
Добавляет в кэш все подходящие файлы cookie, например поля заголовка ответа с именем Set-Cookie2, присутствующие в заголовках ответа. |
void |
setCookiePolicy |
Задает политику файлов cookie для этого диспетчера. |
Методы, объявленные в классе CookieHandler
getDefault, setDefault | Модификатор и тип | Метод | Описание |
|---|---|---|
static CookieHandler |
getDefault() |
Возвращает общесистемный обработчик файлов cookie. |
static void |
setDefault |
Задает (или сбрасывает) общесистемный обработчик файлов cookie. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, является ли другой объект «равным» этому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
CookieManager
public CookieManager()
Этот конструктор создает новый диспетчер файлов cookie с хранилищем и политикой принятия файлов cookie по умолчанию. Результат такой же, как при вызове CookieManager(null, null).
CookieManager
public CookieManager(CookieStore store, CookiePolicy cookiePolicy)
- Параметры:
-
store—CookieStore, которое будет использоваться диспетчером файлов cookie. Если значение равноnull, диспетчер будет использовать хранилище по умолчанию — реализацию CookieStore в памяти. -
cookiePolicy— экземплярCookiePolicy, который будет использоваться диспетчером файлов cookie в качестве обратного вызова политики. Если значение равноnull, будет использоваться ACCEPT_ORIGINAL_SERVER.
Подробное описание методов
setCookiePolicy
public void setCookiePolicy(CookiePolicy cookiePolicy)
По умолчанию экземпляр CookieManager использует политику файлов cookie ACCEPT_ORIGINAL_SERVER. Пользователь всегда может вызвать этот метод, чтобы задать другую политику.
- Параметры:
-
cookiePolicy— политика файлов cookie. Может быть равноnull; в этом случае текущая политика файлов cookie не изменится.
getCookieStore
public CookieStore getCookieStore()
- Возвращает:
- хранилище файлов cookie, используемое в данный момент диспетчером.
get
public Map<String, List<String>> get(URI uri, Map<String, List<String>> requestHeaders) throws IOException
CookieHandlerПереданный аргумент URI указывает предполагаемое назначение файлов cookie. В частности, схема должна отражать, будут ли файлы cookie отправляться по протоколу HTTP или HTTPS либо использоваться в другом контексте, например в JavaScript. Часть host должна указывать либо место назначения файлов 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.