Я передаю код страны и код страны из пользовательского интерфейса, чтобы создать объект Locale
. Как установить этот объект Locale в HttpServletRequest
, так что любой, где в веб-приложении я могу использовать этот объект Locale, используя HttpServletRequest.getLocale()
?Как установить локаль в Java-приложении?
ответ
Значение, возвращаемое HttpServletRequest.getLocale()
, устанавливается автоматически с помощью контейнера Servlet. Из Javadocs:
Возвращает предпочтительный языковой стандарт, который клиент будет принимать контент, на основе заголовка Accept-Language. Если в запросе клиента нет , укажите заголовок Accept-Language, этот метод возвращает локаль по умолчанию для для сервера.
Если у вас есть веб-приложение, желательно, чтобы вы не запрашивали код страны и т. Д. В своем приложении, но полагаетесь на настройки/настройки браузера (т.е. устанавливаются каждым пользователем в самом браузере и применимы ко всей сети страниц, которые он посещает). Это значение передается с помощью вышеуказанного механизма и возвращается вашим HttpServletRequest.getLocale()
.
Предполагая, что это за особенность, чтобы позволить пользователю выбрать язык приложения:
Запрос является очень недолговечным объект. Если вы хотите установить его один раз, а затем сохранить значение для нескольких запросов, то сеанс лучше. Если вы имеете дело с приложением без гражданства, то клиент должен будет передать его вместе с каждым запросом.