Java 如何获得用户';使用JSF的浏览器id?

Java 如何获得用户';使用JSF的浏览器id?,java,jsf,web-applications,jsf-2,jboss,Java,Jsf,Web Applications,Jsf 2,Jboss,是否可以使用JSF获取用户的浏览器id号?我使用JBoss 7作为应用服务器。您可以从请求中读取用户代理标题,以获取有关浏览器的详细信息 ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getHeaders(); 浏览器的名称为HTTP请求头,名称为User-Agent。请求头位于JSF中,可通过以下方式获得: 无需将原始ServletAPI从JSF框架下拖出。每

是否可以使用JSF获取用户的浏览器id号?我使用JBoss 7作为应用服务器。

您可以从
请求
中读取
用户代理
标题,以获取有关浏览器的详细信息

((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getHeaders();
浏览器的名称为HTTP请求头,名称为
User-Agent
。请求头位于JSF中,可通过以下方式获得:

无需将原始ServletAPI从JSF框架下拖出。每当需要访问HTTPServlet请求或响应时,请始终查看first的javadoc


请记住,请求头(与HTTP请求中的所有其他内容一样)是可由最终用户完全控制的。因此,永远不要假设这些信息是正确和有效的。仅用于统计。如果您需要进行功能检测,如果可能的话,强烈推荐JavaScript和/或CSS等客户端语言。他们可以更可靠地做到这一点。

这行得通吗?字符串bid=(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest().getHeaders();在Netbeans 7.1中,还有一个错误:找不到符号:方法getHeaders()。我正在寻找一种在JSF中显示客户端浏览器序列号的方法?这可能吗?必须强制转换
getRequest()
,而不是
getHeader()
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
String userAgent = externalContext.getRequestHeaderMap().get("User-Agent");