Java 应用程序如何识别特定的浏览器

How can a java application identify a specific browser?

本文关键字:浏览器 识别 应用程序 何识别 Java      更新时间:2023-09-26

如何识别浏览器是 Firefox 还是 Chrome?基本上,我希望应用程序仅在用户注册的特定浏览器上运行。对于此方案,我希望我的应用程序识别用户正在使用的浏览器,以了解是否允许应用程序运行。

我正在使用java servlet。

我尝试了浏览器的本地存储,但可以在无法控制的情况下从我的应用程序中删除它。如果可以使用本地存储,请告诉我如何操作。

(是的,我可以获取浏览器信息,但我想使用浏览器标识允许我的应用程序用户从中运行应用程序的特定计算机;否则,我需要限制该用户访问我的应用程序。

从 HTTP requeste 标头获取用户代理属性。

  String userAgent=req.getHeader("user-agent");
  String browserName = "";
  String  browserVer = "";
  if(userAgent.contains("Chrome")){ //checking if Chrome
        String substring=userAgent.substring(userAgent.indexOf("Chrome")).split(" ")[0];
        browserName=substring.split("/")[0];
        browserVer=substring.split("/")[1];
    }
    else if(userAgent.contains("Firefox")){  //Checking if Firefox
        String substring=userAgent.substring(userAgent.indexOf("Firefox")).split(" ")[0];
        browserName=substring.split("/")[0];
        browserVer=substring.split("/")[1];
    }
httpRequest.getHeader("user-agent")

请在 servlet 中使用以下代码来了解哪个浏览器正在访问您的 servlet。

String userAgent = request.getHeader("user-agent");
public class MyServlet extends HttpServlet
{  
   @Override
   public void doGet(final HttpServletRequest aRequest,   
                     final HttpServletResponse aResponse) throws ServletException, IOException
   {  
       final String agent = aRequest.getHeader("user-agent");
       // agent will looks like  
       // Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0
       // Mozilla/2.0 (compatible; MSIE 6.0; Windows NT 5.2)
       // Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
       // etc.
   }
}

这是代码:

String userAgent = req.getHeader("user-agent");
UserAgent ua = UserAgent.parseUserAgentString(userAgent);
Version browserVersion = ua.getBrowserVersion();
String browserName = ua.getBrowser().toString();
int majVersion = Integer.parseInt(browserVersion.getMajorVersion());

或者使用可以轻松地从javascript代码中获取浏览器详细信息,如下所示 - 浏览器代号=导航器.app代号 浏览器名称 = navigator.appName 浏览器版本 = navigator.appVersion