Получить локаль браузера из httpsession? - PullRequest
2 голосов
/ 11 марта 2010

Можно ли получить предпочтительный язык из объекта httpsession (javax.servlet.http.HttpSession)? Можно получить его из запроса на сервлет, но у меня его нет. Спасибо за любые идеи. Свен

Ответы [ 3 ]

4 голосов
/ 11 марта 2010

Предпочтительный языковой стандарт для пользователя доступен в виде заголовка запроса («Accept-Language»). Он автоматически заполняется браузером пользователя в соответствии с его предпочтениями. Затем вы можете сохранить эту информацию в сеансе пользователя и получить ее позже, когда это необходимо.

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

обычно мы не можем из HttpSession получить соответствующий объект httpRequest. Однако есть обходной путь.

Вы можете создать Фильтр, в фильтре у вас есть все, httpSession, httpRequest и т. Д. Затем создайте переменную ThreadLocal для хранения объекта HttpRequest. Или просто сохраните некоторые атрибуты запроса, которые вам нужны в ваших последующих методах.

Ваш метод должен иметь возможность получить значение ThreadLocal. HttpRequest, или языковые настройки или все, что вы сохранили ранее.

Не знаю, ответил ли это на ваш вопрос.

0 голосов
/ 11 марта 2010

Как показывает его Javadoc , не существует метода, который бы делал именно это.

Либо просто получите его из запроса (предпочтительно), либо сохраните его как атрибут сеанса самостоятельно.

...