Check User-Agent with jsf

半城伤御伤魂 提交于 2020-01-20 06:58:52

问题


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

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