Где хранить параметры конфигурации в GWT? - PullRequest
7 голосов
/ 21 января 2012

Где я могу хранить параметры конфигурации на стороне клиента?У меня нет возможности сохранять параметры в параметрах инициализации сервлета (web.xml) (потому что я должен использовать PHP).Итак, как я могу хранить параметры приложения init (например, местоположение PHP-скрипта, некоторые пароли и т. Д.) На стороне клиента?

Ответы [ 5 ]

4 голосов
/ 22 января 2012

Для этого у вас есть следующие опции:

  1. Хранить данные в коде на стороне клиента. GWT компилируется до javascript, и самый простой способ сделать это - создать класс Configuration с жестко закодированными значениями.
  2. Хранить данные в браузере. Вы можете использовать куки или HTML5 локальное хранилище
  3. Хранить данные на стороне сервера и получать их с помощью удаленного RPC.

Я бы порекомендовал вам пойти с третьим вариантом.

3 голосов
/ 23 января 2012

Вы, вероятно, будете очень счастливы, используя классы Dictionary и Cookie в GWT.

В вашем html-файле хостинга вы поддерживаете некоторые объекты javascript, объявленные как var.

При загрузке модуля вызовите класс Dictionary, чтобы получить объекты javascript, которые вы определили для хранения данных конфигурации.

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

Итак ... сегодня четверг ... у пользователя есть история посещений веб-сайта Manchester Utd FC каждый четверг и т. Д., Позвольте мне дать пользователю другую конфигурацию, основанную на контексте / алгоритме, чувствительном к пользователю. А в понедельник утром пользовательский конфиг будет включать рекламные данные для 10-часовых энергетических напитков.

Таким образом, ваш клиент gwt не должен будет запрашивать контекстные данные конфигурации с сервера.

Но, конечно же, это не способ хранения данных аутентификации / безопасности, таких как пароли. Я не думаю, что вы должны даже подумать о сохранении данных аутентификации / безопасности в коде на стороне клиента. Даже после обфускации javascript хранение таких данных является открытым приглашением к сохранению злонамеренных намерений. Такие данные, если требуется хранение на стороне клиента, лучше всего обслуживать с помощью файлов cookie на стороне клиента с использованием файлов cookie класса GWT.

1 голос
/ 22 января 2012

Стандартный, простой и легкий способ хранения непостоянных параметров (таких как пароли или любые пользовательские данные) на стороне клиента - это куки. Смотрите Печенье

Параметры констант, которые вы можете сохранить в жестком коде (статические поля в некотором классе) или в файлах .properties ( * См. Интерфейс констант GWT i18n ).

PS: я не буду рекомендовать вам хранить пароль на стороне клиента «как есть» (это небезопасно), вместо этого вы можете хранить хэш пароля (например, md5). Просто рассчитайте хэш пароля на стороне сервера и сохраните этот хеш в куки.

1 голос
/ 21 января 2012

Хранение паролей на стороне клиента? ОК, если хочешь. Просто создайте класс, который будет содержать их, может быть статическим полем или одноэлементным объектом со всеми параметрами. Может быть даже тот, с entryPoint().

0 голосов
/ 22 марта 2015

Вы можете использовать MultiValuedConfigProperties (см. Также это другое полезное руководство ) для хранения значений конфигурации. Используя их, вы можете сохранить свою конфигурацию в файле конфигурации .gwt.xml вашего модуля. Значения конфигурации будут скомпилированы в вывод JavaScript.

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