Check User-Agent with jsf

人走茶凉 提交于 2019-11-29 11:56:09

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.

It is sent in the User-Agent http header.

HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
String userAgent = request.getHeader("user-agent");

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>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!