手机
当前位置:查字典教程网 >编程开发 >JSP教程 >JSP判断移动设备的正则
JSP判断移动设备的正则
摘要:看到了一篇很好的文章,《在天猫,前端做什么?》,里面有天猫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判断移动设备的正则】相关文章:

java去掉html标签 必须首先去掉双引号的正则

JSP开发入门(四)--JSP的内部对象

JSP自定义标签的实现过程

JSP基本语句用法总结

随机生成文件名的函数

Java 区分文本中的中英文字符函数

JSP学习心得

JSP自定义分页标签TAG全过程

JSP设计彩色验证码实例

JSP在Linux下的安装

精品推荐
分类导航