Как получить идентификатор браузера пользователя с помощью JSF? - PullRequest
7 голосов
/ 26 декабря 2011

Можно ли получить идентификационный номер браузера пользователя с помощью JSF? Я использую JBoss 7 для сервера приложений.

Ответы [ 2 ]

20 голосов
/ 27 декабря 2011

Строка браузера агента пользователя доступна в виде заголовка HTTP-запроса с именем User-Agent. Заголовки запроса в формате JSF доступны по ExternalContext#getRequestHeaderMap():

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
String userAgent = externalContext.getRequestHeaderMap().get("User-Agent");

Нет необходимости извлекать необработанный API сервлетов из-под колпаков JSF. Всегда обращайте внимание на javadoc ExternalContext в первую очередь, когда вам нужен доступ к запросу или ответу сервлета HTTP.

Имейте в виду, что заголовки запроса (как и все остальное в HTTP-запросе) полностью контролируются конечным пользователем . Поэтому никогда не допускайте, чтобы информация была правильной и действительной. Используйте это только для статистики. Если вам необходимо определить особенности, настоятельно рекомендуется использовать языки на стороне клиента, такие как JavaScript и / или CSS, если это возможно. Они могут сделать это намного надежнее.

9 голосов
/ 26 декабря 2011

Вы можете прочитать заголовок user-agent из request, чтобы получить подробную информацию о браузере

((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getHeaders();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...