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

标签 java spring spring-mvc browser

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

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

我需要准确的编号和版本。有什么工具可以做到这一点吗?

最佳答案

确认用户代理不安全。尽管如此,在缺乏其他方法的情况下,您应该解析一个用户代理 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());

关于java - 如何在 Spring MVC 中获取确切的客户端浏览器名称和版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28323058/

相关文章:

java - javascript 中的重定向到 JSP 不起作用(使用 Spring MVC)

java - 如何在 ServletAPI (Spring MVC) 中限制每个用户的请求

java - 在 spring jdbctemplate 中传递不带单引号的字符串

java - 使用单个字符串变量在 @Requestparam 中传递多个键

java - 将二维数组中的第二列和第三列检索到数组

java - "camel-activemq"与 "activemq-camel"之间的区别

java - 同时更新列表中的对象

Spring Security 和 ExtJS - session 超时时重定向到登录页面

java - 如何使用 AJAX 更新 Wicket DataView?

java - “Cannot find symbol”或 “Cannot resolve symbol”错误是什么意思?