Spec-Zone.ru › OpenJDK 8

Класс 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 для установки конкретной реализации CookieHanlder, которая будет использоваться.
  • 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, например, NetscapeCookieSotre.

Существуют различные способы, которыми пользователь может подключить своё поведение управления 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
См. также:
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 будет использовать хранилище файлов 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 — URI, представляющий предполагаемое использование файлов cookie
requestHeaders — карта из имён полей заголовка запроса к спискам значений полей, представляющих текущие заголовки запроса
Возвращает:
неизменяемая карта из заголовков управления состоянием, с именами полей "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, 2020, 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.

Spec-Zone.ru

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