package com.tgb.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 检测是否为移动端设备访问 * * @author : Cuichenglong * @group : tgb8 * @Version : 1.00 * @Date : 2014-7-7 下午01:34:31 */ public class CheckMobile { // \b 是单词边界(连着的两个(字母字符 与 非字母字符) 之间的逻辑上的间隔), // 字符串在编译时会被转码一次,所以是 "\\b" // \B 是单词内部逻辑间隔(连着的两个字母字符之间的逻辑上的间隔) static String phoneReg = "\\b(ip(hone|od)|android|opera m(ob|in)i" +"|windows (phone|ce)|blackberry" +"|s(ymbian|eries60|amsung)|p(laybook|alm|rofile/midp" +"|laystation portable)|nokia|fennec|htc[-_]" +"|mobile|up.browser|[1-4][0-9]{2}x[1-4][0-9]{2})\\b"; static String tableReg = "\\b(ipad|tablet|(Nexus 7)|up.browser" +"|[1-4][0-9]{2}x[1-4][0-9]{2})\\b"; //移动设备正则匹配:手机端、平板 static Pattern phonePat = Pattern.compile(phoneReg, Pattern.CASE_INSENSITIVE); static Pattern tablePat = Pattern.compile(tableReg, Pattern.CASE_INSENSITIVE); /** * 检测是否是移动设备访问 * * @Title: check * @Date : 2014-7-7 下午01:29:07 * @param userAgent 浏览器标识 * @return true:移动设备接入,false:pc端接入 */ public static boolean check(String userAgent){ if(null == userAgent){ userAgent = ""; } // 匹配 Matcher matcherPhone = phonePat.matcher(userAgent); Matcher matcherTable = tablePat.matcher(userAgent); if(matcherPhone.find() || matcherTable.find()){ return true; } else { return false; } } }
使用方式:
/** * 检查访问方式是否为移动端 * * @Title: check * @Date : 2014-7-7 下午03:55:19 * @param request * @throws IOException */ public boolean check(HttpServletRequest request,HttpServletResponse response) throws IOException{ boolean isFromMobile=false; HttpSession session= request.getSession(); //检查是否已经记录访问方式(移动端或pc端) if(null==session.getAttribute("ua")){ try{ //获取ua,用来判断是否为移动端访问 String userAgent = request.getHeader( "USER-AGENT" ).toLowerCase(); if(null == userAgent){ userAgent = ""; } isFromMobile=CheckMobile.check(userAgent); //判断是否为移动端访问 if(isFromMobile){ System.out.println("移动端访问"); session.setAttribute("ua","mobile"); } else { System.out.println("pc端访问"); session.setAttribute("ua","pc"); } }catch(Exception e){} }else{ isFromMobile=session.getAttribute("ua").equals("mobile"); } return isFromMobile; }
相关推荐
java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011...
java 泛型类的类型识别示例 java 泛型类的类型识别示例 java 泛型类的类型识别示例
利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据...
java验证码识别 JAVA知识巩固 源码 java验证码识别 java验证码识别
java识别pdf图片中的文字,代码,demo,都有
Java OCR 图像智能字符识别技术,可识别中文。具体详见:http://blog.csdn.net/white__cat/article/details/38461449
java手写识别超级准确,界面很好看,swing实现,j
java 验证码识别 ocr java 验证码识别 ocr
Java OCR 图像智能字符识别-文字识别Demo。能够识别中文
主要为大家详细介绍了识别率很高的java文字识别技术,亲测,希望对大家有帮助,感兴趣的小伙伴们可以参考一下
条形码识别Google版,jar包,源代码
java识别文件编码格式(无三方JAR包)
ImageComparerUI——基于Java语言实现的相似图像识别,基于直方图比较算法。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font...
Java 验证码识别,可识别多种不同类型的验证码,Java 验证码识别,可识别多种不同类型的验证码Java 验证码识别,可识别多种不同类型的验证码
根据OFD文件打包规范编写的OFD电子发票关键信息识别与读取。整个类无第三方引用包,使用纯dom编写,使用方便稳定。程序可识别出电子发票上的发票代码、发票号码、合计税额、合计金额、开票日期等信息,且读取后不...
JAVA开发的车牌定位及识别程序,res\image目录中包含可用于测试的图片,PlateRecognition.java类为程序入口。
java 人脸识别,一个开源项目.rar
图片OCR识别文字,通过图片识别出文字,java -jar jar包名称 运行
java验证码识别示例
一个国外的Java写的虹膜识别的程序,里面有程序的介绍。