2011-12-26 28 views

Trả lời

9

Bạn có thể đọc user-agent tiêu đề từ request để có được những chi tiết về trình duyệt

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

Tính năng này có hoạt động không? String bid = (HttpServletRequest) FacesContext.getCurrentInstance(). GetExternalContext(). GetRequest(). GetHeaders(); Trong Netbeans 7.1 cho tôi lỗi: không thể tìm thấy biểu tượng: phương thức getHeaders() –

+0

Một điều nữa. Tôi đang tìm cách hiển thị số sê-ri trình duyệt của khách hàng trong JSF? Điều này có thể không? –

+0

'getRequest()' phải được đúc, không phải là 'getHeader()'. – BalusC

20

của user agent string có sẵn theo yêu cầu của tiêu đề HTTP với tên User-Agent trình duyệt. Các tiêu đề yêu cầu nằm trong JSF có sẵn theo ExternalContext#getRequestHeaderMap():

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

Không cần phải chuyển API Servlet thô từ dưới mũ trùm JSF. Luôn luôn xem xét javadoc của ExternalContext đầu tiên bất cứ khi nào bạn cần truy cập vào yêu cầu hoặc phản hồi của servlet HTTP.

Hãy nhớ rằng các tiêu đề yêu cầu (như mọi thứ khác trong yêu cầu HTTP) là hoàn toàn có thể kiểm soát được bởi người dùng cuối. Vì vậy, đừng bao giờ cho rằng thông tin chính xác và hợp lệ. Chỉ sử dụng nó cho thống kê. Nếu bạn cần phát hiện tính năng, hãy ưu tiên sử dụng các ngôn ngữ phía máy khách như JavaScript và/hoặc CSS nếu có thể. Họ có thể làm điều đó đáng tin cậy hơn nhiều.

Các vấn đề liên quan