当前位置: 首页 > news >正文

java 判断请求来自手机端还是电脑端

根据当前请求的特征,判断该请求是否来自手机终端,主要检测特殊的头信息,以及user-Agent这个header

public static boolean isMobileDevice(HttpServletRequest request){
boolean b = false;
boolean pcFlag = false;
boolean mobileFlag = false;
String via = request.getHeader("Via");
String userAgent = request.getHeader("user-agent");
for (int i = 0; via!=null && !via.trim().equals("") && i < mobileGateWayHeaders.length; i++) {
if(via.contains(mobileGateWayHeaders[i])){
mobileFlag = true;
break;
}
}
for (int i = 0;!mobileFlag && userAgent!=null && !userAgent.trim().equals("") && i < mobileUserAgents.length; i++) {
if(userAgent.contains(mobileUserAgents[i])){
mobileFlag = true;
break;
}
}
for (int i = 0; userAgent!=null && !userAgent.trim().equals("") && i < pcHeaders.length; i++) {
if(userAgent.contains(pcHeaders[i])){
pcFlag = true;
break;
}
}
if(mobileFlag==true && pcFlag==false){
b=true;
}
return b;//false pc true shouji

}

 

转载于:https://www.cnblogs.com/chong518/p/9377410.html

相关文章:

  • javascript - 封装ajax
  • 一例exchange DAG 成员服务器添加数据库副本的错误
  • UI设计能力质变方法论 - 设计师, 请理解什么是组件
  • 【MyBatis】缓存配置
  • HTTP协议初步认识
  • 联想启天M715E安装硬盘保护系统和网络同传
  • 通过全备+binlog_server同步恢复被drop的库或表
  • 围观测评题(1)
  • t-sql对被除数为0除数小于被除数结果为0除法保留2位小数的处理
  • 自动化运维之Ansible服务部署
  • 并发下线程池的最佳数量计算
  • SpringMVC+MYBatis企业应用实战笔记
  • HTML5本地存储使用详解
  • 95后博士入职达摩院,14岁上大学,成阿里史上最年轻科学家
  • [Node.js]连接mongodb
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 03Go 类型总结
  • 230. Kth Smallest Element in a BST
  • angular2 简述
  • ES6系统学习----从Apollo Client看解构赋值
  • es的写入过程
  • HTTP--网络协议分层,http历史(二)
  • MobX
  • Mysql数据库的条件查询语句
  • SpiderData 2019年2月25日 DApp数据排行榜
  • 高度不固定时垂直居中
  • 力扣(LeetCode)965
  • 手机端车牌号码键盘的vue组件
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 原生js练习题---第五课
  • mysql面试题分组并合并列
  • 国内开源镜像站点
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #LLM入门|Prompt#3.3_存储_Memory
  • #QT(串口助手-界面)
  • (06)金属布线——为半导体注入生命的连接
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转载)从 Java 代码到 Java 堆
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .Net 代码性能 - (1)
  • .net反编译工具
  • .NET学习教程二——.net基础定义+VS常用设置
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [C++基础]-初识模板
  • [Django ]Django 的数据库操作
  • [docker] Docker容器服务更新与发现之consul
  • [ffmpeg] aac 音频编码