问题
I want to check the user agent of my client. (If it's possible the browser type/version)
But I don't know how do that...
Thank you for your help.
回答1:
It is OK, I have find. I use :
final HttpServletRequest request =(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
final String userAgent = request.getHeader("user-agent");
System.out.println(userAgent);
Thank you for your help.
回答2:
It is sent in the User-Agent
http header.
HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
String userAgent = request.getHeader("user-agent");
回答3:
In a JSF2 page, you can print the user agent directly via the request object:
<h:outputText value="#{request.getHeader('user-agent')}" />
But don't forget to use the h-namespace ;-)
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
You can then respond via functions to different browsers.
Example:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<p>
User-Agent: <h:outputText value="#{request.getHeader('user-agent')}" />
</p>
<h:panelGroup rendered="#{fn:containsIgnoreCase(request.getHeader('User-Agent'), 'Firefox')}">
<p>
Hello Firefox!
</p>
</h:panelGroup>
</h:body>
</html>
来源:https://stackoverflow.com/questions/9688069/check-user-agent-with-jsf