怎么让应用系统既支持PC访问也支持手机访问?

ITeye上的各位老师好!
我有个问题想请教下,比如我做个J2EE的应用,放到服务器上,让它既支持PC访问也支持手机访问。类似于用手机
访问百度,他有个移动版和传统版的切换,怎么让网站支持手机的显示效果好些。

从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分支中的代码,这样代码会变得难以维护,所以不推荐。

是,楼上说的很详细了。曾做过一个分析项目,支持android手机访问。
楼上说的很清楚了。
(1)区分头部信息。判断PC和手机访问。
[code="java"]
tring userExplorerType = request.getHeader("user-agent");
if(userExplorerType.toLowerCase().indexOf("mobile") != -1)
[/code]
(2)手机访问的页面,建议做成两套。要不然后期维护特麻烦。