Постоянство объектов в апплетах Java - PullRequest
1 голос
/ 31 октября 2011

Каков хороший подход к сохранению состояния Java-апплета?

Я могу иметь дело с сериализацией / десериализацией объекта в / из файла, но не знаю, где он должен быть размещен или есть некоторыеRegistry ', где я могу просто сохранить пару настроек пользователя.

Эти настройки зависят от оборудования, поэтому я хочу сохранить их на клиенте.

Полное разрешение дано апплету.

Ответы [ 2 ]

3 голосов
/ 31 октября 2011

Что является хорошим подходом для сохранения состояния Java-апплета?

Для доверенного апплета существует множество вариантов.

Я могу разобратьсяс сериализацией / десериализацией объекта в / из файла, но не знаю, где он должен быть размещен ..

Поместите информацию в подкаталог user.home.

  • user.home будет местом для записи.
  • Подкаталог (например, основанный на имени пакета класса апплета), чтобы избежать столкновения с настройкамифайлы других приложений.

.. или, если есть какой-то «реестр», где я могу просто сохранить пару настроек пользователя.

Я слышалчто класс Preferences может использоваться для этого ..

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

Звучит здорово, не так ли?Единственная проблема в том, что мне никогда не удавалось привести пример, когда значения сохраняются между запусками!


Сериализация объекта сопровождается огромным предупреждением, что он может прерваться в любой момент.


Я бы выбрал расположение файла вашей собственной спецификации (например, в user.home) и либо использовал бы файл Properties (для простых пар имя / значение) XMLEncoder / XMLDecoder (для более сложных Java-бинов).

Для первого см. Этот небольшой пример .Последний описан в коротком примере в верхней части JavaDocs.


Конечно, если этот апплет развернут в JRE архитектуры Plug-In 2 и имеет доступ к JNLP API, он можетиспользуйте PersistenceService.Вот демоверсия .PersistenceService.

Даже апплет в песочнице может использовать PersistenceService - он похож на концепцию Cookies в том, что он предназначен для небольших объемов данных.

1 голос
/ 18 мая 2012

API-интерфейс персистентности представляется хорошим подходом, когда необходимо сохранять данные между сеансами браузера: http://docs.oracle.com/javase/1.4.2/docs/guide/plugin/developer_guide/persistence.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...