近来在开发一个基于手机上网的项目。遇到的第一件事情就是,该项目需要同时支持手机和PC。详细的说:当pc登陆上来,访问的是html;当手机登陆上来就是wml。 
   那我们怎么来判断呢? 
   入正题,下面说说我的解决办法。 
- 
 
 - 
 
 - 
 
 - 
 
 - 
 
 - 
  
 - 
public static boolean choose(String userAgent) {  
 - 
    if (userAgent.indexOf("Noki") > -1 ||   
 - 
            userAgent.indexOf("Eric") > -1 ||   
 - 
            userAgent.indexOf("WapI") > -1 ||   
 - 
            userAgent.indexOf("MC21") > -1 ||   
 - 
            userAgent.indexOf("AUR") > -1  ||   
 - 
            userAgent.indexOf("R380") > -1 ||   
 - 
            userAgent.indexOf("UP.B") > -1 ||   
 - 
            userAgent.indexOf("WinW") > -1 ||   
 - 
            userAgent.indexOf("UPG1") > -1 ||   
 - 
            userAgent.indexOf("upsi") > -1 ||   
 - 
            userAgent.indexOf("QWAP") > -1 ||   
 - 
            userAgent.indexOf("Jigs") > -1 ||   
 - 
            userAgent.indexOf("Java") > -1 ||   
 - 
            userAgent.indexOf("Alca") > -1 ||   
 - 
            userAgent.indexOf("MITS") > -1 ||   
 - 
            userAgent.indexOf("MOT-") > -1 ||   
 - 
            userAgent.indexOf("My S") > -1 ||  
 - 
            userAgent.indexOf("WAPJ") > -1 ||  
 - 
            userAgent.indexOf("fetc") > -1 ||  
 - 
            userAgent.indexOf("ALAV") > -1 ||   
 - 
            userAgent.indexOf("Wapa") > -1 ||   
 - 
            userAgent.indexOf("Oper") > -1) {  
 - 
        return true;  
 - 
    } else {  
 - 
        return false;  
 - 
    }  
 - 
}  
 
 
参数userAgent: 
- 
String userAgent = request.getHeader("User-Agent");  
 
 
有人说可以根据来访的IP来判断,好像是行不通的。当采用wap上网方式还好判断;一旦采用net来访问,往往也是可以获取独立的IP的。 
还有人说可以用HTTP_ACCEPT来判断,判断访问过来的终端是否支持wml,这样问题又会出现,如果某个浏览器既能支持wml和html,或者现在很多智能手机既能支持wml和html,你还是没招了!服务器端通过http请求区分是mobile还是pc,布布扣,bubuko.com
服务器端通过http请求区分是mobile还是pc
原文:http://blog.csdn.net/tfy1332/article/details/23037149