JSP判断移动设备的正则
JSP判断移动设备的正则
发布时间:2016-12-29 来源:查字典编辑
摘要:看到了一篇很好的文章,《在天猫,前端做什么?》,里面有天猫php判断移动设备的正则(个人猜测),觉得很好用,于是就决定移植到JSP里面。js...

看到了一篇很好的文章, 《在天猫,前端做什么?》,里面有天猫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="测试移动设备跳转">

<>

</head>

<body>

<div id="pagecontent">

正在运行!<br>

</div>

</body>

</html>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新JSP教程学习
热门JSP教程学习
编程开发子分类