看到了一篇很好的文章, 《在天猫,前端做什么?》,里面有天猫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来判断浏览设备的方法