Spec-Zone.ru › OpenJDK 21

Класс CookieManager

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

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

Since:
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 - a CookieStore для использования менеджером файлов cookie. Если null, менеджер файлов cookie будет использовать хранилище файлов 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. Часть host должна отражать либо пункт назначения файлов cookie, либо их происхождение в случае javascript.

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

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

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

© 1993, 2023, 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/21/docs/api/java.base/java/net/CookieManager.html

Spec-Zone.ru

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