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电脑端相关推荐

  1. php 判断来源 微信客户端_PHP判断手机端、PC端 、微信代码实例

    欢迎大家关注我的其他Github博客和CSDN博客,互相交流! 在这里博主为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 ...

  2. 微信php示例代码,PHP判断手机端、PC端、微信示例代码分享

    在这里博主为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 1.判断是否是手机端function isMobile() { ...

  3. php判断客户端是微信,PHP判断是手机端还是PC端以及PHP判断是否是微信浏览器

    这篇文章主要为大家详细介绍了PHP判断是手机端还是PC端,以及PHP判断是否是微信浏览器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了PHP判断的两个实例,一是PHP判断是手 ...

  4. php判断移动端和pc端访问_PHP判断是手机端还是PC端 PHP判断是否是微信浏览器

    本文实例为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 1.判断是否是手机端 function isMobile() { ...

  5. html页面判断是手机端访问,JS 判断手机端和pc端后跳转对应页面

    判断手机端和pc端 (function () { var sUserAgent = navigator.userAgent; if (sUserAgent.indexOf('Android') > ...

  6. phpcmsv9实现手机端与PC端双模板的方法与详细教程(转)

    现在随着智能手机的兴起,我们网站开发移动端版本也显得越来重要了,但是现在phpcms还没有开发手机版,下面我们就教大家如何让phpcms实现手机版访问,一般正常情况下我们电脑版的域名为http://w ...

  7. phpcms移动端和pc端_phpcms实现手机端与PC端双模板的方法

    现在随着智能手机的兴起,我们网站开发移动端版本也显得越来重要了,但是现在phpcms还没有开发手机版,下面我们就教大家如何让phpcms实现手机版访问,一般正常情况下我们电脑版的域名为http://w ...

  8. phpcms移动端和pc端_phpcms实现手机端与PC端双模板的方法与详细教程

    现在随着智能手机的兴起,我们网站开发移动端版本也显得越来重要了,但是现在phpcms还没有开发手机版,下面我们就教大家如何让phpcms实现手机版访问,一般正常情况下我们电脑版的域名为http://w ...

  9. nginx之自动识别手机端和pc端

    Detect Mobile Browsers Detect Mobile Browsers 是外国的一套可以自动适配手机端和pc端的脚本代码.有Apache ASP ASP.NET ColdFusio ...

  10. 网页制作 手机端与PC端兼容

    网页制作--手机端与PC端兼容 手机端与PC端使用一套代码时,随屏幕分辨率的大小变化,会产生媒体查询并实现手机端与PC端的切换 (一套代码) <meta http-equir="Cac ...

最新文章

  1. html读取本地txt_利用MySQL/MariaDB的逻辑缺陷伪造恶意服务端读取客户端文件
  2. 《JavaScript高级程序设计》Chapter 5 引用类型
  3. mysql lepus_MySQL 监控软件lepus天兔
  4. java简述标识符和保留字区别_Java 基础语法 - 流年似水莫停留的个人页面 - OSCHINA - 中文开源技术交流社区...
  5. Gentoo Linux 学习笔记1
  6. iis7 64位 操作excel的一系列问题(未完待续)
  7. 编译安装NTP时间服务报错
  8. 怎样看win10是不是永久激活的?
  9. php在图片左上角加入水印,如何在PHP中将图像添加到图像上,如水印
  10. Spark 基础 —— RDD(一)
  11. 单/多文档的窗体类属性修改(VC_MFC)
  12. Gson日期格式异常-com.google.gson.JsonSyntaxException
  13. Django | 静态文件处理
  14. 双击java安装包没有反应_eclipse安装包双击没反应怎么回事?
  15. OPNsense用户手册-用户界面
  16. 51单片机入门——蜂鸣器
  17. 《云知声黄伟:未来谁能成为 AI 领域的 BAT ?》笔记
  18. 前端图片上传问题整理
  19. 水仙花数徐静春c语言,今日冬至|不疾不徐,静候春来!
  20. [Android]按阶段编译Android kernel中的代码

热门文章

  1. 关于appium环境搭建
  2. MATLAB的非线性变换
  3. 连载31:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
  4. 51/STC12单片机SCON,PCON,TMOD寄存器定义及功能
  5. Java制作银行管理系统_java代码实现银行管理系统
  6. Win11 WSA 安卓子系统 下载安装更新
  7. python 网页上显示数据_Python实战【第二节】在网页上显示信息
  8. matlab 生命游戏
  9. netty权威指南(第二版)对应的源码
  10. NGINX转发udp、tcp