首先定義一個工具類,增加一個方法判斷請求是否來自手機:
public class StringUtil { private final static String[] agent = { "Android", "iPhone", "iPod","iPad", "Windows Phone", "MQQBrowser" }; //定義移動端請求的所有可能類型 /** * 判斷User-Agent 是不是來自于手機 * @param ua * @return */ public static boolean checkAgentIsMobile(String ua) { boolean flag = false; if (!ua.contains("Windows NT") || (ua.contains("Windows NT") && ua.contains("compatible; MSIE 9.0;"))) { // 排除 蘋果桌面系統(tǒng) if (!ua.contains("Windows NT") && !ua.contains("Macintosh")) { for (String item : agent) { if (ua.contains(item)) { flag = true; break; } } } } return flag; }
}
//在SpringMVC框架controller類中增加一個如下方法:
@Controller
@RequestMapping("/test")
public class RedBagController {
public ModelAndView testUa(HttpServletRequest request, HttpServletResponse response) throws IOException {
Map<String, Object> map = new HashMap<String, Object>(); String ua = request.getHeader("User-Agent"); if(StringUtil.checkAgentIsMobile(ua)){ map.put("mm", "來自移動端訪問"); }else{ map.put("mm", "來自PC端訪問"); }
return new ModelAndView("testUa","map",map);
}
}
//寫一個前端頁面并命名為 testUa.ftl, 代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport" id="viewport">
<meta content="telephone=no" name="format-detection">
</head>
<body>
${map.mm}
</body>
</html>
好了,將項目發(fā)布到tomcat,然后再地址欄輸入:http://localhost:8082/test/test/testUa.html 并切換手機或者電腦模式,就可以看到不同的情況了。
本文參考自百度經(jīng)驗文章,再此感謝原作者的分享!原文地址:
|