java判断是移动端还是pc端
- // \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 checked(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
- */
- @SuppressWarnings("static-access")
- 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=this.checked(userAgent);
- //判断是否为移动端访问
- if(isFromMobile){
- session.setAttribute("ua","mobile");
- } else {
- session.setAttribute("ua","pc");
- }
- }catch(Exception e){}
- }else{
- try{
- //获取ua,用来判断是否为移动端访问
- String userAgent = request.getHeader( "USER-AGENT" ).toLowerCase();
- if(null == userAgent){
- userAgent = "";
- }
- isFromMobile=this.checked(userAgent);
- //判断是否为移动端访问
- if(isFromMobile){
- session.setAttribute("ua","mobile");
- } else {
- session.setAttribute("ua","pc");
- }
- }catch(Exception e){}
- isFromMobile=session.getAttribute("ua").equals("mobile");
- }
- return isFromMobile;
- }
- if(check(request, response)){
- mv.setViewName("phone/index");
- }else{
- mv.setViewName("page/index");
- }
java判断是移动端还是pc端的更多相关文章
- JavaScript判断移动端及pc端访问不同的网站
JavaScript判断移动端及pc端访问不同的网站 现在很多网站都是分为两个版本,一个pc端的一个移动端的(响应式除外),针对这两个版本,就需要对访问的设备进行判断,如果是pc,就直接访问pc网站, ...
- js判断游览器是移动端还是PC端
js判断网页游览器是移动端还是PC端 <script type="text/javascript"> function browserRedirect() { var ...
- js判断是移动端还是pc端
运行页面的时候,执行到js会判断来自于移动端还是pc端,如果是移动端则跳转制定链接地址,这样在手机端会有额外的不必要浪费的加载时间 var browser={ versions:function(){ ...
- js常见的判断移动端或者pc端或者安卓和苹果浏览器的方法总结
1.js常见的判断移动端或者pc端或者安卓和苹果浏览器的方法总结 : http://www.haorooms.com/post/js_pc_iosandmobile 2.Js判断客户端是否为PC还是手 ...
- JS判断当前使用设备是pc端还是web端(转MirageFireFox)
js判断当前设备 最近用bootstrap做自适应,发现仍然很难很好的兼容web端和PC端的现实. 仔细观察百度,淘宝,京东等大型网站,发现这些网站都有对应不同客户端的子站. 站点 PC端url we ...
- 判断是移动端还是PC端
// 判断是移动端还是PC端 $http_user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USE ...
- js判断移动端还是PC端
function isMobile(){ var sUserAgent= navigator.userAgent.toLowerCase(), bIsIpad= sUserAgent.match(/i ...
- JS 判断移动端与PC端
js判断移动端与pc端 这里介绍下使用device.js插件来判断移动端设备 地址:https://github.com/matthewhudson/device.js 示例: 1 2 3 4 5 ...
- JS判断移动端还是PC端(改造自腾讯网) 仅用于宣传动画,下载页等
JS判断移动端还是PC端(改造自腾讯网 http://www.qq.com/) 本脚本仅用于宣传动画,下载页( ipad 也算pc端)等, ionic 用 ionic.platform 即可( io ...
随机推荐
- git log退出方法
英文状态下按Q
- nginx根据http_user_agent防DDOS
前端squid反向代理到nginx nginx根据http_user_agent防DDOS 首先查看访问日志,找出可疑访问 找到http_user_agent 的特征,然后再作过滤 "Moz ...
- json解析为泛型对象
一.方法 public <T> T jsonToObjByType(String str, Type type) { try { if (isValidJson(str)) { retur ...
- 第二篇:呈现内容_第一节:Control呈现
一.Control的呈现过程 在上个章节““生死有序”的控件生命周期”中,我们提到Render是控件开发的主角,但在控件树的“合成模式(Composite)”部分这位主角却缺席了(戏份太多的缘由).哦 ...
- [转]Intellij IDEA快捷键与使用小技巧
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ ...
- [转]Intellij idea创建javaWeb以及Servlet简单实现
准备:1. 安装jdk1.72. 安装tomcat1.8 一.创建并设置javaweb工程 1.创建javaweb工程File --> New --> Project... 设置工程名字: ...
- How to compare dates in Java
How to compare dates in JavaBy mkyong | January 18, 2010 | Updated : November 15, 2016 | Viewed : 93 ...
- shell curl 下载图片并另存为(重命名)
curl -o fuck.png http://img30.360buyimg.com/imgzone/jfs/t19711/232/1837927836/150222/e4cd87bb/5ad990 ...
- 转 分享我在阿里工作十年接触过Java框架设计模式
转 原文: 分享我在阿里工作十年接触过Java框架设计模式 一.前言 说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者 ...
- Knockout与Require框架同时使用时的visible绑定的问题,造成的影响,以及解决的方法。
Knockout 可以将 visible 绑定到DOM 元素上,使得该元素的hidden 或visible 状态取决于绑定的值. 查看以下knockout的描述,http://knockoutjs.c ...