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