从http请求的header中可以取出user-agent的值,根据这个值就可以判断出客户端用的是哪种设备,然后根据不同的设备返回不同的页面。比如,下面的代码可以简单地区分出终端设备是PC还是手持设备。
String header=request.getHeader("user-agent");
if(header.indexOf("Mozilla")!=-1){//PC
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
request.getRequestDispatcher("wap/login.jsp").forward(request, response);
}
然后,在做页面的时候可以针对PC和WAP分别作出两套。比如:
pc/index.jsp
wap/index.jsp
如果终端设备是PC,那么就返回pc/index.jsp给客户端,否则就返回wap/index.jsp给客户端。做得再好一些的话,还可以再进一步细分,比如iphone,ipad,android等等,都可以通过前面提到的user-agent来分析出来。
如果不想做成两套页面的话,只能在页面里加很多if分支了,不同的终端设备执行不同的if分支中的代码,这样代码会变得难以维护,所以不推荐。