java如何识别是移动端还是pc端的访问

很简单,直接看代码吧.

工具类:

public class CheckUserAgent {

    /**
     * 定义移动端请求的所有可能类型
     */
    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;
    }
}

调用:

            final String userAgent = request.getHeader("user-agent");
            if(!CheckUserAgent.checkAgentIsMobile(userAgent)){
                response.sendRedirect("/springboot/login");
                logger.info("调用【WebSecurityConfig.clearAndRespond】方法来自pc端访问");
            }

 

你可能感兴趣的:(java如何识别是移动端还是pc端的访问)