我正在使用Java EE 6和所有参考实现,我想知道如何根据访问页面的设备生成不同的响应?在我开发JSF页面的那一刻,我定位了在PC上运行的浏览器。但是,当用户使用智能手机浏览页面时,我想生成另一个HTML结构(即使用另一个JSF页面)。
现在您想知道,“为什么不使用CSS媒体查询?”。是的,我可以,但这只能对布局进行有限的控制。有人可以给我一些提示,告诉我在哪里以及开始阅读这些内容吗?
我不想使用Spring,我知道他们有类似的东西。
答案 0 :(得分:1)
我不想使用Spring,我知道他们有类似的东西。
然后重新发明它(咳嗽)。
Let's look how they did it。根据下面引用的Spring Mobile documentation,
LiteDeviceResolver
默认
DeviceResolver
实施基于作为detection algorithm一部分实施的“lite”Wordpress Mobile Pack。此解析程序仅检测移动设备的存在,并且不检测特定功能。启用此解析程序无需特殊配置,只需配置默认的DeviceResolverHandlerInterceptor即可为您启用。
似乎他们已将this piece of PHP code移植到this piece of Java code。您也可以这样做(注意许可证规则!)。最明智的地方是servlet filter,然后根据检测结果发送重定向。
答案 1 :(得分:0)
我认为您需要查看HTTP_USER_AGENT。
没有使用Java的经验,但请查看System.getEnv(“HTTP_USER_AGENT”)。
它应该返回用户代理的字符串名称。您应该在常用用户代理的网络列表中找到,这样您就可以轻松地将它们分类为移动用户或非移动用户。
答案 2 :(得分:0)
检查HTTP标头
用户代理
您可以使用Servlet API检索它:http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getHeader%28java.lang.String%29