Pet*_*zov 7 java jsf jboss web-applications jsf-2
是否可以使用JSF获取用户的浏览器ID号?我将JBoss 7用于应用程序服务器.
Bal*_*usC 20
浏览器的用户代理字符串可用作具有名称的HTTP请求标头User-Agent.请求标头位于JSF中,可通过ExternalContext#getRequestHeaderMap()以下方式获得:
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
String userAgent = externalContext.getRequestHeaderMap().get("User-Agent");
Run Code Online (Sandbox Code Playgroud)
无需从JSF引擎盖下运输原始Servlet API.ExternalContext每当需要访问HTTP servlet请求或响应时,请始终查看第一个javadoc .
请记住,请求标头(与HTTP请求中的其他内容一样)可由最终用户完全控制.所以永远不要认为信息是正确和有效的.仅用于统计.如果您需要进行功能检测,请尽可能使用JavaScript和/或CSS等客户端语言.他们可以更可靠地做到这一点.
您可以从中读取user-agent标题request以获取有关浏览器的详细信息
((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getHeaders();
Run Code Online (Sandbox Code Playgroud)