如何在 Spring MVC 中获取确切的客户端浏览器名称和版本?

How to get the exact client browser name and version in Spring MVC?

我正在开发 Spring MVC 应用程序,我需要访问客户端浏览器名称和版本。

我在我的操作中有一个 HttpServletRequest 的实例作为参数并使用 request.getHeader("User-Agent") 方法,但这在 Internet Explorer 9 中返回了 Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

我需要确切的数字和版本。有什么工具可以做到这一点吗?

确认用户代理不安全。尽管如此,在没有其他方法的情况下,你应该解析一个 user-agent header,这实际上并不容易,因为组合的数量太多了。除非你想自己动手,否则我建议

http://www.bitwalker.eu/software/user-agent-utils

源代码位于

https://github.com/HaraldWalker/user-agent-utils

用法非常简单

UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
System.out.println(userAgent.getBrowser().getName() + " " + userAgent.getBrowserVersion());

解析 User-Agent Http Header 结果的有用库:browscap-java