2012-01-21 2 views
6

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

ответ

4

Для этого у вас есть следующие варианты: данные

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

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

+0

спасибо, но как насчет какого-нибудь файла, где я могу изменить URL-адрес места сценария php ПОСЛЕ компиляции? Проблема с классом конфигурации не очень хорошая. Для получения информации от сервера мое приложение должно знать URL-адрес сервера. Я не хочу, чтобы URL-адрес жесткого кода, я хочу исключить его в какой-то файл, который можно прочитать в RUNTIME/ – MyTitle

+0

. Код GWT - это java, и он должен быть скомпилирован и на стороне клиента нет файлов свойств. Альтернативой является сохранение информации в каком-то JS-файле, который можно заменить во время выполнения. –

1

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

1

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

Постоянные параметры, которые вы можете хранить в жёстко (статические поля в некотором классе) или в resoures .Properties файлов (See GWT i18n constants interface).

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

2

Возможно, вы очень довольны использованием классов словаря и Cookie в GWT.

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

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

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

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

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

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

0

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

Смежные вопросы