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