2011-12-26 26 views

Respuesta

9

Usted puede leer user-agent cabeza desde request para conseguir el detalle sobre el navegador

((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getHeaders(); 
+0

¿Esto va a funcionar? String bid = (HttpServletRequest) FacesContext.getCurrentInstance(). GetExternalContext(). GetRequest(). GetHeaders(); En Netbeans 7.1 me da error: no se puede encontrar el símbolo: método getHeaders() –

+0

Una cosa más. Estoy buscando una manera de mostrar el número de serie del navegador del cliente en JSF? es posible? –

+0

El 'getRequest()' debe ser lanzado, no el 'getHeader()'. – BalusC

20

de user agent string está disponible como cabecera de petición HTTP con el nombre User-Agent El navegador. Los encabezados de la solicitud están en JSF a disposición por ExternalContext#getRequestHeaderMap():

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
String userAgent = externalContext.getRequestHeaderMap().get("User-Agent"); 

No hay necesidad de transportar la API Servlet prima de debajo de las capuchas JSF. Siempre mire primero el javadoc de ExternalContext siempre que necesite tener acceso a la solicitud o respuesta del servlet HTTP.

Tenga en cuenta que los encabezados de solicitud (como todo lo demás en una solicitud HTTP) son totalmente controlables por el usuario final. Por lo tanto, nunca suponga que la información es correcta y válida. Úselo solo para estadísticas. Si necesita hacer una detección de características, prefiera los idiomas del lado del cliente, como JavaScript y/o CSS, si es posible. Pueden hacer eso mucho más confiablemente.

Cuestiones relacionadas