Java 无法从标头中正确获取“用户代理”
`嗨 我试图在servlet过滤器中获取用户的浏览器信息。我使用了一个简单的代码,见下文Java 无法从标头中正确获取“用户代理”,java,http,servlets,httprequest,servlet-filters,Java,Http,Servlets,Httprequest,Servlet Filters,`嗨 我试图在servlet过滤器中获取用户的浏览器信息。我使用了一个简单的代码,见下文 String userAgent = request.getHeader("User-Agent"); 用户使用的是谷歌浏览器,上面的代码打印如下 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 它打印了所有主要浏览器的名称,而不是在
String userAgent = request.getHeader("User-Agent");
用户使用的是谷歌浏览器,上面的代码打印如下
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
它打印了所有主要浏览器的名称,而不是在应用程序运行后获取名称。这里怎么了?这里什么都没有
例如,让我们考虑返回的字符串是
Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/41.0.2228.0 Safari/537.36
那么解释是
ChromeChrome 41.0.2228.0
Mozilla ==>
MozillaProductSlice. Claims to be a Mozilla based user agent, which is only true for Gecko browsers like Firefox and Netscape. For all other user agents it means 'Mozilla-compatible'. In modern browsers, this is only used for historical reasons. It has no real meaning anymore
5.0 ==> Mozilla version
Windows NT 6.1 ==> Operating System Windows 7
AppleWebKit ==> The Web Kit provides a set of core classes to display web content in windows
537.36 ==> Web Kit build
KHTML ==> Open Source HTML layout engine developed by the KDE project
like Gecko ==> like Gecko...
Chrome Name ==> Chrome
41.0.2228.0 ==> Chrome version
Safari ==> Based on Safari
537.36 ==> Safari build
Description: Free open-source web browser developed by Google.
Chromium is the name of the open source project behind Google Chrome, released under the BSD license.
您可以在下面的链接中找到更多信息
单击页面上的每个链接以获取更多信息这是Chrome的用户代理字符串。这是不同浏览器使用的所有用户代理字符串的列表。有关更多帮助,请参阅最新浏览器,让服务器认为它可以兼容呈现复杂内容。说来话长。有关更多信息,请参见此。