主要是根据 HttpServletRequest request 中的请求头所带的参数 user-agent来获取
String ua= request.getHeader("User-Agent");
if(StringUtil.checkAgentIsMobile(ua)){
system.out.println("来自移动端访问");
}else{
system.out.println("来自PC端访问");
}
StringUtil.java
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;"))) {
// 排除 苹果桌面系统
if (!ua.contains("Windows NT") && !ua.contains("Macintosh")) {
for (String item : agent) {
if (ua.contains(item)) {
flag = true;
break;
}
}
}
}
return flag;
}
}
该代码片段展示了如何利用JavaServlet中的HttpServletRequest对象获取请求头中的User-Agent信息,然后通过StringUtil类的checkAgentIsMobile方法判断访问是否来自移动端。如果User-Agent不包含WindowsNT或特定的桌面系统标识,则认为是移动端访问。
1939

被折叠的 条评论
为什么被折叠?



