JSP判断移动设备的正则
近日,我读了一篇关于天猫前端开发的文章,其中提到了作者对于天猫PHP判断移动设备的正则表达式的独到见解。经过一番仔细琢磨,我发现这个正则表达式非常实用,因此决定将其移植到JSP环境中,以供大家参考。
文章名为《在天猫,前端做什么?》,它详细介绍了天猫前端团队的工作内容和技术实践。其中,我特别关注了作者提到的移动设备识别部分。作者提到的是一段PHP代码中的正则表达式,用于判断移动设备类型。作为一名热衷于技术的开发者,我深知移动设备识别的重要性,特别是在开发跨平台应用时。我对这个正则表达式的实用性产生了浓厚的兴趣。
在JSP环境下,我们可以将这个正则表达式移植到名为index.jsp的文件中。除了直接在JSP文件中使用这段代码外,我们还可以考虑使用过滤器来进行拦截处理。使用过滤器可以在请求到达目标页面之前进行预处理,从而实现对移动设备类型的判断。通过这种方式,我们可以根据设备类型将用户重定向到其他域名,提供更加个性化的用户体验。
这个正则表达式的判断逻辑非常精准,能够有效地识别各种移动设备。将其移植到JSP环境中后,将为开发者们带来极大的便利。在日常开发中,我们可以根据需求定制自己的移动设备识别策略,从而更好地满足用户需求。
<%@page import="java.util.regex.Matcher"%>
<%@page import="java.util.regex.Pattern"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%!
// \b 代表单词边界(字母与非字母字符间的逻辑间隔)
// 字符串在编译时转码,因此使用 "\\b"
// \B 代表单词内部逻辑间隔(字母字符间的逻辑间隔)
String mobilePhoneRegex = "\\b(ip(hone|od)|android|opera m(ob|in)|windows (phone|ce)|blackberry|s(ymbian|eries60|amsung)|p(laybook|alm|rofile/midp)|nokia|fennec|htc[-_]|mobile|up\\.browser|[1-4][0-9]{2}x[1-4][0-9]{2})\\b";
String tabletRegex = "\\b(ipad|tablet|(Nexus 7)|up\\.browser|[1-4][0-9]{2}x[1-4][0-9]{2})\\b";
Pattern mobilePhonePattern = Patternpile(mobilePhoneRegex, Pattern.CASE_INSENSITIVE);
Pattern tabletPattern = Patternpile(tabletRegex, Pattern.CASE_INSENSITIVE);
public boolean checkDevice(String userAgent){
if(userAgent == null){
userAgent = "";
}
// 匹配移动设备或平板用户代理
Matcher matcherPhone = mobilePhonePattern.matcher(userAgent);
Matcher matcherTable = tabletPattern.matcher(userAgent);
return matcherPhone.find() || matcherTable.find();
} %>
<%
String pagePath = request.getContextPath();
String baseURL = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+pagePath+"/";
String userAgent = request.getHeader("USER-AGENT");
userAgent = userAgent == null ? "" : userAgent.toLowerCase();
if(checkDevice(userAgent)){
response.sendRedirect(baseURL+"download.html");
} else {
response.sendRedirect(baseURL+"index.html");
}
%>
深邃的奥秘——寒武纪的奇迹世界
在这广袤无垠的宇宙中,我们生活的地球是一个神秘而又充满魅力的所在。在这片蓝色星球上,寒武纪时代无疑是一个充满奇迹与神秘色彩的时期。让我们一同走进这个古老的时代,感受其独特的魅力。
寒武纪时代,生命的蓬勃在这里迸发而出。那是一个生机勃勃的世界,海洋是生命的摇篮。在这里,生物的种类开始繁多起来,各种奇特的生物形态层出不穷。这是一个生物演化的奇迹时代,让我们共同那些令人惊叹的生命形态。
在这个时代,海洋生物的种类繁多且独特。有的生物形态奇异,犹如科幻电影中的场景;有的则显得神秘莫测,仿佛来自另一个星球。这些生物的形态各异,反映了寒武纪时代的生物多样性和演化历程。它们在这个时代的海洋中繁衍生息,共同演绎着生命的华章。
寒武纪时代的生物演化历程是一场波澜壮阔的史诗。在这个时代,生物的演化速度空前迅速,各种生物在短时间内迅速分化、演化。这是一个生命蓬勃发展的时代,也是一个充满竞争与挑战的时代。在这个时代中,生物们不断适应环境、进化发展,为生命的繁荣谱写了辉煌的篇章。
走进寒武纪的世界,我们仿佛置身于一个神奇的梦境之中。这里的生命充满了神秘与奇迹,让我们不禁对生命的奥秘产生无尽的遐想。让我们共同这个古老的时代,感受生命的魅力与演化的奇迹。在这个充满神秘与奇幻的世界中,我们将不断发现新的奇迹,不断感受生命的魅力。
寒武纪时代是地球生命史上的一个重要篇章,也是我们生命奥秘的宝贵资源。让我们共同走进这个神奇的时代,感受生命的魅力与演化的奇迹。在这里,我们将领略到一个充满生机与活力的世界,一个令人叹为观止的奇迹世界。
微信营销
- JSP判断移动设备的正则
- 正则表达式教程之重复匹配详解
- 详解node.js的http模块实例演示
- JS封装的选项卡TAB切换效果示例
- layui实现三级导航菜单
- JavaScript中数组Array方法详解
- javascript多物体运动实现方法分析
- JavaScript实现瀑布流以及加载效果
- ECMall支持SSL连接邮件服务器的配置方法详解
- PHP使用file_get_content设置头信息的方法
- ASP.NET2.0使用Enter Key作为默认提交问题分析(附源码
- JavaScript 表单验证正则表达式大全[推荐]
- wampserver改变默认网站目录的办法
- AngularJs bootstrap搭载前台框架——基础页面
- Javascript继承机制详解
- JSP实现的简单分页显示效果代码