java后台如何判断是移动端还是pc端的访问请求

                                                   java后台如何判断是移动端还是pc端的访问请求

主要是根据  HttpServletRequest request  中的请求头所带的参数 user-agent来获取:

String userAgent = request.getHeader("user-agent");

if (userAgent.indexOf("Android") != -1) {
    // 安卓

  String defaultFailureUrl = "/login_moblie.jsp";
     System.out.println("Android访问!!!" + "没有登录,返回的页面===" +defaultFailureUrl);
         ......
} else if (userAgent.indexOf("iPhone") != -1 || userAgent.indexOf("iPad") != -1) {
    // 苹果

      String defaultFailureUrl = "/login_moblie.jsp";
     System.out.println("iPhone/iPad访问!!!"+ "没有登录,返回的页面==="+ defaultFailureUrl);

   ......
    
} else {   // 电脑
        String defaultFailureUrl = "/login.jsp";
       System.out.println("电脑访问!!!"+ "没有登录,返回的页面===" + defaultFailureUrl);

     ......//逻辑处理
}

对判断后添加自己的逻辑处理。

下面是不同的访问打印的结果:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36
电脑访问!!!没有登录,返回的页面===/login.jsp

//安卓端
Mozilla/5.0 (Linux; Android 6.0; MZ-M5 Note Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/45.0.2454.94 Mobile Safari/537.36
  Android访问!!!没有登录,返回的页面===/login_moblie.jsp

//苹果端
Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53
  iPhone/iPad访问!!!没有登录,返回的页面===s/login_moblie.jsp

//安卓
Mozilla/5.0 (Linux; Android 6.0; DIG-AL00 Build/HUAWEIDIG-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043305 Safari/537.36 MicroMessenger/6.5.10.1080 NetType/WIFI Language/zh_CN
  Android访问!!!没有登录,返回的页面===/login_moblie.jsp




原文地址:https://www.cnblogs.com/wyf-love-dch/p/7154651.html