• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP判断移动设备的正则
    看到了一篇很好的文章, 《在天猫,前端做什么?》,里面有天猫php判断移动设备的正则(个人猜测),觉得很好用,于是就决定移植到JSP里面。

    jsp文件名为 index.jsp,其实也可以使用过滤器来进行拦截,然后跳转到其他域名去。

    完整代码如下:
    复制代码 代码如下:

    %@page import="java.util.regex.Matcher"%>
    %@page import="java.util.regex.Pattern"%>
    %@ page language="java" pageEncoding="UTF-8"%>
    %!

    // \b 是单词边界(连着的两个(字母字符 与 非字母字符) 之间的逻辑上的间隔),
    // 字符串在编译时会被转码一次,所以是 "\\b"
    // \B 是单词内部逻辑间隔(连着的两个字母字符之间的逻辑上的间隔)
    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";
    String tableReg = "\\b(ipad|tablet|(Nexus 7)|up.browser"
    +"|[1-4][0-9]{2}x[1-4][0-9]{2})\\b";
    Pattern phonePat = Pattern.compile(phoneReg, Pattern.CASE_INSENSITIVE);
    Pattern tablePat = Pattern.compile(tableReg, Pattern.CASE_INSENSITIVE);

    public boolean checkMobile(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;
    }
    }
    %>
    %
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    //
    String userAgent = request.getHeader( "USER-AGENT" ).toLowerCase();

    if(null == userAgent){
    userAgent = "";
    }
    if(checkMobile(userAgent)){
    response.sendRedirect(basePath+"download.html");
    //request.getRequestDispatcher("/download.html").forward(request,response);
    } else {
    response.sendRedirect(basePath+"index.html");
    //request.getRequestDispatcher("/index.html").forward(request,response);
    }
    //
    %>

    !DOCTYPE html>
    html lang="zh-cn">
    head>
    base href="%=basePath%>">

    title>测试移动设备跳转/title>
    meta http-equiv="pragma" content="no-cache">
    meta http-equiv="cache-control" content="no-cache">
    meta http-equiv="expires" content="0">
    meta http-equiv="keywords" content="测试,移动设备,跳转">
    meta http-equiv="description" content="测试移动设备跳转">
    !--
    link rel="stylesheet" type="text/css" href="styles.css">
    -->
    /head>

    body>

    div id="pagecontent" style="min-height:500px;_height:500px;">

    正在运行!br>
    /div>

    /body>
    /html>
    您可能感兴趣的文章:
    • js判断当前页面在移动设备还是在PC端中打开
    • js判断浏览器类型及设备(移动页面开发)
    • JS和css实现检测移动设备方向的变化并判断横竖屏幕
    • javascript判断移动端访问设备并解析对应CSS的方法
    • JS判断移动端访问设备并加载对应CSS样式
    • js判断是否是移动设备登陆网页的简单方法
    • js判断设备是否为PC并调整图片大小
    • JS如何判断移动端访问设备并解析对应CSS
    • Js如何判断客户端是PC还是手持设备简单分析
    • JavaScript根据CSS的Media Queries来判断浏览设备的方法
    上一篇:spring动态bean注册示例分享
    下一篇:jsp文件绝对路径的设置方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP判断移动设备的正则 JSP,判断,移动,设备,的,正则,