Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Поддержка Cookie

Поддержка Cookie включает следующие темы:

Введение

Cookie являются способом хранить данные на клиентской стороне. Они использовались экстенсивно для персонализации сайтов портала, отслеживания пользовательской настройки, и журналирования в веб-сайты. Для клиентов предприятия, использующих cookie в их веб-сайтах, поддержку cookie в Плагине Java и Java, веб-Запуск облегчает развертывание Java клиентской стороны.

Поддержка Cookie позволяет приложению Java пасовать назад cookie к веб-серверу если тот cookie, порожденный из веб-сервера. Это предоставляет серверу информацию о состоянии клиента.

Поддержка Cookie в Плагине Java и Java веб-Запуск

Есть два основных типа cookie: Cookie Сеанса и Постоянные Cookie.

Cookie сеанса

Cookie сеанса сохранены в памяти во время сеанса приложения или апплета. Cookie сеанса истекают, когда апплет или выходы приложения и автоматически удаляются. Эти cookie обычно хранят ID сеанса, который не лично идентифицируем пользователям, разрешая пользователю переместиться от страницы до страницы, не имея необходимость неоднократно входить в систему. Они широко используются коммерческими веб-сайтами (например, чтобы отследить элементы, которые потребитель добавил к магазинной тележке.)

Постоянные Cookie

Постоянные cookie сохранены в персистентном хранении и не удаляются, когда приложение выходит. Они удаляются, когда они истекают. Они могут сохранить пользовательские настройки для определенного веб-сайта, позволяя то предпочтение использоваться в будущих сеансах. Постоянные cookie могут использоваться, чтобы идентифицировать отдельных пользователей, таким образом, они могут использоваться веб-сайтами, чтобы проанализировать поведение перемещения пользователей в веб-сайте. Эти cookie могут также использоваться, чтобы предоставить информацию о числах посетителей, среднее время, проведенное на определенной странице, и общей производительности веб-сайта. Они обычно конфигурируются, чтобы отследить пользователей в течение длительного периода времени, в некоторых случаях многих лет в будущее.

Поддержка

Плагин Java и Java веб-обработка поддержки Запуска обоих типов cookie на всех платформах.

Плагин Java оказывает постоянную поддержку cookie, используя базовое хранилище cookie браузера. Когда это работает в Internet Explorer, хранилище cookie в IE используется; когда это работает в Mozilla, хранилище cookie в Mozilla используется. Поскольку у каждого браузера есть различная политика cookie, обрабатывающее cookie поведение зависит от управления cookie в браузере. Например, если браузер будет сконфигурирован, чтобы отклонить сторонние cookie, то политика применится к Плагину Java, когда это будет работать в этом браузере.

Java веб-Запуск оказывает постоянную поддержку cookie на Windows, используя хранилище cookie в Internet Explorer, и обрабатывающее cookie поведение, определяется управлением cookie в IE. На Linux/Солярисе Java веб-Запуск оказывает постоянную поддержку cookie, используя ее собственную реализацию хранилища cookie.

Программируемый Доступ к Cookie

Есть несколько путей к приложению, чтобы переопределить обработку cookie по умолчанию. Четыре обрисовываются в общих чертах ниже.

void URLConnection.setRequestProperty(String key, String value)

Этот подход позволяет приложению устанавливать пользовательский заголовок cookie в URLConnection прежде, чем сделать соединение.

URL url = new URL( "http://java.sun.com/" );
URLConnection conn = url.openConnection();
conn.setRequestProperty("Cookie", "foo=bar");
InputStream is = conn.getInputStream();
.....

Когда соединение делается, пользовательский cookie был бы отправлен серверу в заголовках запроса HTTP/HTTPS.

Map<String, List<String>> URLConnection.getHeaderFields()

После того, как соединение делается, сервер может возвратить cookie в заголовках ответа HTTP/HTTPS. Подход, обрисованный в общих чертах ниже, позволяет приложению получать значение cookie через URLConnection.

URL url = new URL( "http://java.sun.com/" );
URLConnection conn = url.openConnection();
conn.connect();
.....
Map<String, List<String>> headers = conn.getHeaderFields();
List<String> values = headers.get("Set-Cookie");

String cookieValue = null;
for (Iterator iter = values.iterator(); iter.hasNext(); ) {
    String v = values.next();
     if (cookieValue == null)
         cookieValue = v;
     else
         cookieValue = cookieValue + ";" + v;
}

После того, как соединение делается, сервер может возвратить cookie в заголовках ответа HTTP/HTTPS.

Map<String,List<String>> CookieHandler.get(URI uri, Map<String,List<String>> requestHeaders)

Этот подход позволяет приложению получать cookie сеанса / постоянные cookie для данного URL:

String retrieveCookie(URL url)
{
    String cookieValue = null;

     CookieHandler handler = CookieHandler.getDefault();
     if (handler != null)   {
          Map<String, List<String>> headers = handler.get(url.toURI(), new Map<String,                                                           List<String>>());
          List<String> values = headers.get("Cookie");
          for (Iterator<String> iter=values.iterator(); iter.hasNext();) {
               String v = iter.next();

               if (cookieValue == null)
                    cookieValue = v;
               else
                    cookieValue = cookieValue + ";" + v;
          }
     }
     return cookieValue;
}

CookieHandler абстракция хранения cookie браузера/системы, таким образом, дополнительное право доступа требуется для выполнения; вышеупомянутый код будет выполняться успешно, только если приложению доверяют.

void CookieHandler.put(URI uri, Map<String,List<String>> responseHeaders)

Этот подход позволяет приложению устанавливать cookie сеанса / постоянный cookie для данного URL:

void setCookie(URL url, String value)
{
     CookieHandler handler = CookieHandler.getDefault();
     if (handler != null)   {
          Map<String, List<String>> headers= new Map<String, List<String>>();
          List<String> values = new List<String>();
          values.add(value);
          headers.put("Cookie", values);

          handler.put(url.toURI(), headers);
     }
}

CookieHandler абстракция хранения cookie браузера/системы, таким образом, дополнительное право доступа требуется для выполнения; вышеупомянутый код будет выполняться успешно, только если приложению доверяют.

Больше информации


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами