java后台判断客户端是手机/PC并返回不同页面的实例

所属分类: 软件编程 / java 阅读数: 29
收藏 0 赞 0 分享

这个代码其实不是由我本人发现的,而是在翻看公司项目时无意间发现,觉得很实用所以拿出来大家分享。

框架:Struts2+spring+ibatis,

主要实现是依靠Http请求头Header中的 "User-Agent" 来完成,好了, 废话不多说直接上代码。

Action中:

public String execute() { 
    HttpServletRequest request = ServletActionContext.getRequest(); 
    boolean isMoblie = JudgeIsMoblie(request); 
    if(isMoblie){ 
      return "phone"; 
    } 
    return "pc"; 
  } 
   
  public boolean JudgeIsMoblie(HttpServletRequest request) { 
    boolean isMoblie = false; 
    String[] mobileAgents = { "iphone", "android", "phone", "mobile", 
        "wap", "netfront", "java", "opera mobi", "opera mini", "ucweb", 
        "windows ce", "symbian", "series", "webos", "sony", 
        "blackberry", "dopod", "nokia", "samsung", "palmsource", "xda", 
        "pieplus", "meizu", "midp", "cldc", "motorola", "foma", 
        "docomo", "up.browser", "up.link", "blazer", "helio", "hosin", 
        "huawei", "novarra", "coolpad", "webos", "techfaith", 
        "palmsource", "alcatel", "amoi", "ktouch", "nexian", 
        "ericsson", "philips", "sagem", "wellcom", "bunjalloo", "maui", 
        "smartphone", "iemobile", "spice", "bird", "zte-", "longcos", 
        "pantech", "gionee", "portalmmm", "jig browser", "hiptop", 
        "benq", "haier", "^lct", "320x320", "240x320", "176x220", 
        "w3c ", "acs-", "alav", "alca", "amoi", "audi", "avan", "benq", 
        "bird", "blac", "blaz", "brew", "cell", "cldc", "cmd-", "dang", 
        "doco", "eric", "hipt", "inno", "ipaq", "java", "jigs", "kddi", 
        "keji", "leno", "lg-c", "lg-d", "lg-g", "lge-", "maui", "maxo", 
        "midp", "mits", "mmef", "mobi", "mot-", "moto", "mwbp", "nec-", 
        "newt", "noki", "oper", "palm", "pana", "pant", "phil", "play", 
        "port", "prox", "qwap", "sage", "sams", "sany", "sch-", "sec-", 
        "send", "seri", "sgh-", "shar", "sie-", "siem", "smal", "smar", 
        "sony", "sph-", "symb", "t-mo", "teli", "tim-", /*"tosh",*/ "tsm-", 
        "upg1", "upsi", "vk-v", "voda", "wap-", "wapa", "wapi", "wapp", 
        "wapr", "webc", "winw", "winw", "xda", "xda-", 
        "Googlebot-Mobile" }; 
    if (request.getHeader("User-Agent") != null) { 
      for (String mobileAgent : mobileAgents) { 
        <span class="comment" style="margin: 0px; padding: 0px; border: none; color: rgb(0, 130, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px;">//这里本宝宝表示不怎么了解它的内部原理,但是知道个大概意思就得了。</span> 
        if (request.getHeader("User-Agent").toLowerCase() 
            .indexOf(mobileAgent) >= 0) { 
          isMoblie = true; 
          break; 
        } 
      } 
    } 
    return isMoblie; 
  } 

Struts2

<span style="white-space:pre">    
</span><action name="name" class="你自己的action类"> 
      <result name="pc">download/main.jsp</result> 
      <result name="phone">download/productPH.jsp</result> 
    </action> 

好了,代码就只是这么多,木有了木有了。。。 是不是感觉很简单的说,

虽然不是我写出来的,但是看到这个代码,也是有一种收获的,其实很多设置都是包含在请求头中的,因为不管是什么浏览器什么设备,它要通过http去调用一个请求,那么它就必定是有http协议,只要精通http协议,那么啥事都好办(表示本屌目前不懂http协议,而后努力学习学习,再来装逼)~~

以上这篇java后台判断客户端是手机/PC并返回不同页面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

java实现背单词程序

这篇文章主要为大家详细介绍了java实现背单词程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java实现单词查询小程序

这篇文章主要为大家详细介绍了java实现单词查询小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java程序开发环境配置图文教程

这篇文章主要为大家详细介绍了Java程序开发环境配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解ssh框架原理及流程

在本文中小编给大家整理的是关于ssh框架原理及流程的相关知识点内容,有此需要的朋友们可以学习下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解springmvc常用5种注解

在本篇里我们给大家总结了关于springmvc常用5种注解相关知识点以及实例代码,需要的朋友们参考下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作(2)

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot假死诊断实战记录

这篇文章主要给大家介绍了关于Spring Boot假死诊断的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java计时新姿势StopWatch详解

这篇文章主要介绍了Java计时新姿势StopWatch,最近公司来了个大佬,从他那里学到不少东西,其中一个就是计时的新姿势「StopWatch」,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现点击按钮弹出新窗体功能

这篇文章主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多