request.getHeader

每月工资一万八 / 2023-09-05 / 原文

判断是否是IE

    /**
     * 判断是否是IE
     *
     * @param request
     * @return
     */
    public static boolean isIe(HttpServletRequest request) {
        return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request
                .getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true
                : false;
    }
获取IE版本
/**
     * 获取IE版本
     *
     * @param request
     * @return
     */
    public static Double getIeVersion(HttpServletRequest request) {
        Double version = 0.0;
        if (getBrowserType(request, IE11)) {
            version = 11.0;
        } else if (getBrowserType(request, IE10)) {
            version = 10.0;
        } else if (getBrowserType(request, IE9)) {
            version = 9.0;
        } else if (getBrowserType(request, IE8)) {
            version = 8.0;
        } else if (getBrowserType(request, IE7)) {
            version = 7.0;
        } else if (getBrowserType(request, IE6)) {
            version = 6.0;
        }
        return version;
    }



    private static boolean getBrowserType(HttpServletRequest request,
    String brosertype) {
    return request.getHeader("USER-AGENT").toLowerCase()
    .indexOf(brosertype) > 0 ? true : false;
    }
 

 

判断请求是否来自移动端
    /**
     * 判断请求是否来自移动端
     */
    public static boolean isMobile(HttpServletRequest request) {
        String ua = request.getHeader("User-Agent").toLowerCase();
        String type = "(phone|pad|pod|iphone|ipod|ios|ipad|android|mobile|blackberry|iemobile|mqqbrowser|juc|fennec|wosbrowser|browserng|webos|symbian|windows phone)";
        Pattern pattern = Pattern.compile(type);
        return pattern.matcher(ua).find();
    }

这行代码使用 Java 的 Pattern 类将上面定义的正则表达式模式编译为一个正则表达式对象。这个对象将用于后续的匹配操作。

return pattern.matcher(ua).find();


  • 这行代码使用编译后的正则表达式对象 pattern 来在用户代理字符串 ua 中查找是否存在与移动设备相关的关键字。
  • pattern.matcher(ua) 创建一个匹配器对象,然后调用 find() 方法来查找是否存在匹配项。
  • 如果在用户代理字符串中找到了与移动设备相关的关键字,则 find() 方法返回 true,否则返回 false