展会信息港展会大全

JSP判断移动设备的正则 android软件开发教程
来源:互联网   发布日期:2016-03-01 10:39:35   浏览:1682次  

导读:天猫php判断移动设备的正则(个人猜测),觉得很好用,于是就决定移植到JSP里面,大家可以参考下看到了一篇很好的文章, 《在天猫,前端做什么?》,里面有天猫php判断移动设备的正则(个人猜测)...

天猫php判断移动设备的正则(个人猜测),觉得很好用,于是就决定移植到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>

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港