快速业务通道

精通Grails: Grails与移动Web - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
Web 开发策略

您已经知道为三种基本设备创建内容都需要什么工具,现在的任务是如何根据需要使用它们。有三种 基本的策略可供选择。

为移动内容创建独立的、专用的网站

正如前面看到的一样,m 是许多 Web 站点所采用的策略。Google、Yahoo! 以及 CNN,都设置了一个 m 域,它独立于主站点,用于提供移动内容。如果改动域名系统(Domain Name System,DNS)的话,可 以创建一个类似 http://mysite.org/mobile 的 URL。您也可以注册一个移动内容专用的 .mobi 域。

监听用户代理

每一个 Web 浏览器在请求数据时都向服务器表明身份。可以利用这个信息来提供为设备定制的内容。 (http://twitter.com 使用的就是这种技术)。

访问 http://davisworld.org/echo.gsp。清单 15 中的页面只用了个简单的循环,就回应了 HTTP 的 请求:

清单 15. 显示 Request Header

<h2>Request Headers</h2> <table border="1">   <tr>    <th>Header</th>    <th>Value</th>   </tr>   <g:each in="${request.headerNames}" var="${name}">    <tr>     <td>${name}</td>     <td>${request.getHeader(name)}</td>    </tr>   </g:each> </table>

精通Grails: Grails与移动Web(11)

时间:2011-07-29 IBM Scott Davis

正如您在图 11 中所看到的,当我打开 http://davisworld.org/echo.gsp 时,Firefox 浏览器提供 了足够身份提示:

图 11. 查看 HTTP header

根据图 11 中展示的 user-agent 字符串,就可以断定请求程序通过 Intel CPU 运行 Mac 系统。对 于 OS(10.5)、HTML 呈现引擎(Gecko)、和真实浏览器(Firefox)的版本,您已经很熟悉了。清单 17 展示了其他常见的用户-代理字符串:

清单 17. 常见的用户-代理字符串

BlackBerry7520/4.0.0 Profile/MIDP-2.0  Configuration/CLDC-1.1    UP.Browser/5.0.3.3 UP.Link/5.1.2.12 Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)    AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a  Safari/419.3 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)

通过捕获 request.getHeader("user-agent") 值为请求浏览器提供适当的内容。

发回浏览器接受的内容

第三种策略就是满足浏览器的所有请求。每一个请求都会包含一个 accept 值和一个 user-agent 值 。Firefox 返回的 accept 值如下:

text/html,application/xhtml+xml,application/xml;

这告诉服务器 Firefox 偏好 text/html。如果服务器不包含 text/html 数据,那么它可以发送 application/xhtml+xml。如果两者都没有的话,服务器会在列表中逐个查找,直到找到一个可以返回的 MIME 类型。

WAP 1.x 浏览器需要 text/vnd.wap.wml,更现代的手机会需要 application/vnd.wap.xhtml+xml。只 要多加注意,聪明的开发者便可以返回适当的数据。

当然,这三种策略并不是相互排斥的。您可以全部选用,确保您的网站已经准备好为全球 33 亿的手 机用户提供服务了。

结束语

让 Grails 应用程序便于手机使用的方法有很多种,可以不做任何改动(对于 iPhone 而言)、做很 小的改动(对于 XHTML-MP 设备而言)、或者全部重写(对于 WML 1.x 设备而言)。借助文中所介绍的 这些仿真器和验证器,您一定可以实现顺利支持移动 Web。

在下一篇文章中,您将会学习如何处理 Grails 中的遗留数据库。您将学习 Mapping DSL、使用 Hibernate 注释和 HBM 文件。学会了这些技术,您就可以让 Grails 使用现有

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号