2017-07-25 97 views
0

所以我正在創建一個java桌面程序。該程序轉到在jsp上運行的身份驗證網頁。這樣做使用javafx webview(它運行在WebKit上)檢測Javafx webview

我的問題是如何檢測網頁是否使用java webview訪問,然後如果不斷開或重定向客戶端以幫助降低垃圾郵件身份驗證請求。

回答

2

JavaFX WebView允許您使用WebEngine上的user agent property來設置用戶代理字符串。您可以使用它來將用戶代理設置爲您希望的任何內容。然後,當WebView客戶端請求網頁時,它將在用戶代理標頭中提供此值。您的服務器代碼可以查詢用戶代理標題,然後根據結果採取它認爲必要的任何操作。

this answer,對於用戶代理字符串的缺省輸出是:

User Agent:  Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.44 (KHTML, like Gecko) JavaFX/8.0 Safari/537.44 

作爲WebEngine文檔中所指出的,這個值可以JavaFX的版本和操作系統之間進行切換。很可能,默認情況下將始終包含文本JavaFX,因此如果用戶代理字符串包含文本JavaFX,則只需檢查服務器即可。否則,如果你想超級確定,那麼你可以編寫你的JavaFX客戶端來明確地設置用戶代理字符串爲你在服務器上檢查的值。

要了解如何在JSP檢查用戶代理,請參閱:

這將表明你會寫是這樣的:

<c:if test="${fn:contains(header['User-Agent'],'JavaFX')}"></c:if>