1

我正在使用带有所有参考实现的 Java EE 6,我想知道如何根据访问页面的设备生成不同的响应?在我开发 JSF 页面时,我的目标是在 PC 上运行的浏览器。但是,当用户使用智能手机浏览页面时,我想生成另一个 HTML 结构(即使用另一个 JSF 页面)。

现在您想知道,“为什么不使用 CSS 媒体查询?”。是的,我可以,但这只会对布局提供有限的控制。有人可以给我一些提示,让我知道从哪里开始阅读关于这样做的内容和内容吗?

我不想使用 Spring,我知道他们有这样的东西。

4

3 回答 3

1

我不想使用 Spring,我知道他们有这样的东西。

然后重新发明它(咳嗽)。

让我们看看他们是如何做到的。根据下面引用的Spring Mobile 文档

LiteDeviceResolver

默认DeviceResolver实现基于作为Wordpress Mobile Pack的一部分实现的“lite”检测算法。此解析器仅检测移动设备的存在,不检测特定功能。启用此解析器不需要特殊配置,只需配置默认的 DeviceResolverHandlerInterceptor 即可为您启用。

似乎他们已经将这段 PHP 代码移植到了这段 Java 代码中。您也可以这样做(注意许可规则!)。最明智的做法是使用servlet 过滤器,然后根据检测结果发送重定向。

于 2012-04-12T01:21:00.333 回答
0

我认为您需要查看 HTTP_USER_AGENT。

没有使用 Java 的经验,但请查看 System.getEnv("HTTP_USER_AGENT")。

它应该为用户代理返回一个字符串名称。您应该在常见用户代理的 Web 列表中找到,因此您可以轻松地将它们分类为移动或非移动。

于 2012-04-09T16:26:57.947 回答
0

检查 HTTP 标头

用户代理

您可以使用 Servlet API 检索它:http: //docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getHeader%28java.lang.String%29

于 2012-04-09T17:12:13.960 回答