我现在在做一个库存系统,里面用到一个条码管理,需要数据采集终端登录到系统
由于这个设备的分辨率是320*240的
所以我想做两个页面,一个提供给PC客户端,一个提供给数据采集终端
可是我不知道在JSP里面怎么判断客户端是PC还是掌上电脑,JAVA程序里能判断吗?

解决方案 »

  1.   

    可以通过此方法获得request.getHeader("user-agent")返回值为String类型,有操作系统信息及浏览器信息。用JS脚本也可以实现,网上很多,就不贴出来了。
      

  2.   

     protected void Page_Load(object sender, EventArgs e)
        {
            HttpCapabilitiesBase r = (System.Web.Configuration.HttpCapabilitiesBase)Request.Browser;
            string agent = (Request.UserAgent + "").ToLower().Trim();
            LogResult(
                        "IsMobileDevice--" + r.IsMobileDevice + "\r\n" +
                        "HtmlTextWriter--" + r.HtmlTextWriter + "\r\n" +
                        "CanRenderPostBackCards--" + r.CanRenderPostBackCards + "\r\n" +
                        "Browser--" + r.Browser + "\r\n" +
                        "Type--" + r.Type + "\r\n" +
                        "SupportsJPhoneSymbols--" + r.SupportsJPhoneSymbols + "\r\n" +
                        "SupportsIModeSymbols--" + r.SupportsIModeSymbols + "\r\n" +
                        "RequiresPhoneNumbersAsPlainText--" + r.RequiresPhoneNumbersAsPlainText + "\r\n" +
                        "PreferredRequestEncoding--" + r.PreferredRequestEncoding + "\r\n" +
                        "PreferredRenderingType--" + r.PreferredRenderingType + "\r\n" +
                        "IsMobileDevice--" + r.IsMobileDevice + "\r\n" +
                        "ClrVersion--" + r.ClrVersion + "\r\n" +
                        "Request.UserAgent--" + agent + "\r\n" +
                        "agent.IndexOf(\"mozilla\")--" + agent.IndexOf("mozilla") + "\r\n" +
                        "agent.IndexOf(\"opera\")--" + agent.IndexOf("opera")
                     );
            if (r.IsMobileDevice)
            {
                Response.Write("mobile");
            }
            else
            {
                Response.Write("www");
            }
        
        }
      

  3.   

    这个问题 可以解决 无论是 前台 后台 都可以找到相应的解决方法
    如果是 java web 更好办了,一般都有默认访问的首页面,在里面加入 如下代码<script type="text/javascript" src="/MyTest/js/jquery-1.7.1.min.js"></script>
    <script language="JavaScript">
    $(document).ready(function() {
    var ua = navigator.userAgent.toLowerCase(); 
    ua=ua.toLowerCase();
    if(ua.indexOf("android")>0 || ua.indexOf("phone")>0 || ua.indexOf("pad")>0 
    || ua.indexOf("tablet")>0 || ua.indexOf("symbian")>0){ 
    self.location='/MyTest/mobile.do';
    } else{
    self.location='/MyTest/index.do';
    }
    });
              
    </script>当访问到这个页面时 会自动处理脚本 然后判断访问类型 跳转到相应页面如果想后台java处理的话 就稍微麻烦点
      
    public static boolean isPad(HttpServletRequest request){
    boolean isPad = request.getHeader("User-Agent").indexOf("iPad")>-1;
    return isPad;
    }

    public static boolean isAndroid(HttpServletRequest request){
    boolean isAndroid = request.getHeader("User-Agent").indexOf("Android")>-1;
    return isAndroid;
    }
    java只列出 ipad 跟 android移动端的 检验