java 判断pc还是手机_Java判断验证访问是手机端还是PC电脑端
Java判断验证访问是手机端还是PC电脑端,在登录的时候,或者在action的execute中调用这个方法,不用改动原先的业务逻辑,即可判断请求的是否为移动端,然后再根据结果去做相应处理,应该就简单多了。
封装调用类package com.tgb.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 检测是否为移动端设备访问
*/
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);
/**
* 检测是否是移动设备访问
* @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;
}
}
}
调用方/**
* 检查访问方式是否为移动端
* @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 判断pc还是手机_Java判断验证访问是手机端还是PC电脑端相关推荐
- php 判断来源 微信客户端_PHP判断手机端、PC端 、微信代码实例
欢迎大家关注我的其他Github博客和CSDN博客,互相交流! 在这里博主为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 ...
- 微信php示例代码,PHP判断手机端、PC端、微信示例代码分享
在这里博主为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 1.判断是否是手机端function isMobile() { ...
- php判断客户端是微信,PHP判断是手机端还是PC端以及PHP判断是否是微信浏览器
这篇文章主要为大家详细介绍了PHP判断是手机端还是PC端,以及PHP判断是否是微信浏览器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了PHP判断的两个实例,一是PHP判断是手 ...
- php判断移动端和pc端访问_PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
本文实例为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 1.判断是否是手机端 function isMobile() { ...
- html页面判断是手机端访问,JS 判断手机端和pc端后跳转对应页面
判断手机端和pc端 (function () { var sUserAgent = navigator.userAgent; if (sUserAgent.indexOf('Android') > ...
- phpcmsv9实现手机端与PC端双模板的方法与详细教程(转)
现在随着智能手机的兴起,我们网站开发移动端版本也显得越来重要了,但是现在phpcms还没有开发手机版,下面我们就教大家如何让phpcms实现手机版访问,一般正常情况下我们电脑版的域名为http://w ...
- phpcms移动端和pc端_phpcms实现手机端与PC端双模板的方法
现在随着智能手机的兴起,我们网站开发移动端版本也显得越来重要了,但是现在phpcms还没有开发手机版,下面我们就教大家如何让phpcms实现手机版访问,一般正常情况下我们电脑版的域名为http://w ...
- phpcms移动端和pc端_phpcms实现手机端与PC端双模板的方法与详细教程
现在随着智能手机的兴起,我们网站开发移动端版本也显得越来重要了,但是现在phpcms还没有开发手机版,下面我们就教大家如何让phpcms实现手机版访问,一般正常情况下我们电脑版的域名为http://w ...
- nginx之自动识别手机端和pc端
Detect Mobile Browsers Detect Mobile Browsers 是外国的一套可以自动适配手机端和pc端的脚本代码.有Apache ASP ASP.NET ColdFusio ...
- 网页制作 手机端与PC端兼容
网页制作--手机端与PC端兼容 手机端与PC端使用一套代码时,随屏幕分辨率的大小变化,会产生媒体查询并实现手机端与PC端的切换 (一套代码) <meta http-equir="Cac ...
最新文章
- html读取本地txt_利用MySQL/MariaDB的逻辑缺陷伪造恶意服务端读取客户端文件
- 《JavaScript高级程序设计》Chapter 5 引用类型
- mysql lepus_MySQL 监控软件lepus天兔
- java简述标识符和保留字区别_Java 基础语法 - 流年似水莫停留的个人页面 - OSCHINA - 中文开源技术交流社区...
- Gentoo Linux 学习笔记1
- iis7 64位 操作excel的一系列问题(未完待续)
- 编译安装NTP时间服务报错
- 怎样看win10是不是永久激活的?
- php在图片左上角加入水印,如何在PHP中将图像添加到图像上,如水印
- Spark 基础 —— RDD(一)
- 单/多文档的窗体类属性修改(VC_MFC)
- Gson日期格式异常-com.google.gson.JsonSyntaxException
- Django | 静态文件处理
- 双击java安装包没有反应_eclipse安装包双击没反应怎么回事?
- OPNsense用户手册-用户界面
- 51单片机入门——蜂鸣器
- 《云知声黄伟:未来谁能成为 AI 领域的 BAT ?》笔记
- 前端图片上传问题整理
- 水仙花数徐静春c语言,今日冬至|不疾不徐,静候春来!
- [Android]按阶段编译Android kernel中的代码
热门文章
- 关于appium环境搭建
- MATLAB的非线性变换
- 连载31:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
- 51/STC12单片机SCON,PCON,TMOD寄存器定义及功能
- Java制作银行管理系统_java代码实现银行管理系统
- Win11 WSA 安卓子系统 下载安装更新
- python 网页上显示数据_Python实战【第二节】在网页上显示信息
- matlab 生命游戏
- netty权威指南(第二版)对应的源码
- NGINX转发udp、tcp