使用java/Java EE进行浏览器检测

An *_*ect 4 java servlets cross-browser detection

为了在应用程序中实现浏览器兼容性,我需要一个Java类/ Bean/Jar,它将返回以下信息:

  • 用户的当前浏览器
  • 其名称
  • 版
  • 用户的操作系统

任何想法都会非常有用.这应该适用于所有现代浏览器的最新版本,例如Chrome,Safari和Opera.我怎样才能解决这个问题呢?

Bal*_*usC 6

由于用户代理数据对更改非常敏感,并且您希望将数据维护委派给第三方,因此请考虑使用http://user-agent-string.info等公共Web服务.它们还有一个用于XML-RPC服务的Java示例.

您可以使用获取当前请求的用户代理HttpServletRequest#getHeader().

String userAgent = request.getHeader("User-Agent");
Run Code Online (Sandbox Code Playgroud)

将其用作Web服务的参数.


也就是说,如果您在HTML/CSS/MSIE区域中确实存在兼容性问题,那么您应该考虑条件注释.如果在JS区域,使用特征检测.您不应该依赖于用户代理,当然也不应该依赖于服务器端.考虑发布一个关于您认为在服务器端嗅探用户代理的问题的新问题是解决方案.你会得到更好的答案.