站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题构建适用不同客户端的J2EE网络应用程序

构建适用不同客户端的J2EE网络应用程序

摘要: 学习如何使用构造不仅支持浏览器而且还支持WAP、IMODE及其他客户端设备的国际化网络应用程序
<iframe align=right marginWidth=0 marginHeight=0 src="http://www.chinabyte.com/tag/cont_flash_software.html" frameBorder=0 width=360 scrolling=no height=300></iframe>
  引言:学习如何使用构造不仅支持浏览器而且还支持WAP、IMODE及其他客户端设备的国际化网络应用程序。

  在今天竞争日趋激烈的世界上,许多商业行为变得越来越全球化,以便达到最大的收益。 这就成了一个问题,因为由那些商业机构开发的应用程序必须适用于许多国家里使用不同语言的消费者。 使事情变得越来越复杂的是,以前功能有限的应用程序客户端—台式电脑和浏览器—也在快速的发展。新的客户端类型包括便携计算机、手提电话和其它小型设备。所以,国际经营机构有必要增加开发和设计成本合算、可升级并可维护的具有把内容是用多种语言发送到多种设备上的解决方案--换句话说,就是在全球经济圈中把应用程序发送到不同的客户端上。

  本文是一个个案研究,设计并且开发一个基于J2EE的可扩充的、可升级的并且经济合算的应用程序以满足不同客户端的需要。样品应用程序的目标不仅是个人计算机用户而且可以是WAP移动式电话和iMode电话,而且它使用可针对各个地区需要定制和可本地化的国际化技术来迎合国际社会。

<table cellPadding=0 width="73%" border=0> <tr> <td>
图1:一个典型的应用程序方案,使用不同的运行于一个公共服务器的基于国际互联网络的应用程序的用户设备。 </td></tr></table>
  使用根据客户端语言与设备的多种格式和语言应答的需要意味着必须执行两个主要任务的服务器应用程序:

  1. 为提出请求的设备确定适当的输出格式,举例来说:

   · 如果请求是从Web上发出的,那么输出HTML格式。

   · 如果请求是从一个iMode设备上发出的,那么输出CHTML格式。

   · 如果请求是从一个WAP设备上发出的,那么输出WML格式。

  2. 支持I18N(国际化)。 那意味着输出将使用适当的语言,而且日期和数字格式也应该与客户端所在的地区匹配。

  名为“网关(gateway)”的专用服务器软件模块把客户端的请求翻译成为HTTP请求。 举例来说,一个WAP网关负责把WSP请求转换成为HTTP请求(反之亦然)以及分析和解释应答。 同样地,使用一个VoiceXML请求,由一个Voice浏览器组成的网关负责识别语言和DTMF输入,把它转换成为一种标准请求格式,并且把VoiceXML应答转换成为语音。

  一些可能存在的问题

  表格1给了一些不同的客户应用程序的上会出现的问题以及可能的解决方案。

<table cellSpacing=0 cellPadding=0 width=600 border=1> <tr> <td>需要考虑的问题</td> <td>参考答案 </td></tr> <tr> <td vAlign=top>怎样为多用户客户端提供支持?</td> <td vAlign=top>为所有的用户客户端使用公共的服务器端代码。
使用XML和Xslt。 XML文件包含为所有的客户端所共用的数据。XSLT执行把XML改变成为适合于各个用户端的格式的转化请求。

设置的生成的应答依靠适用于请求的设备的MIME类型。举例来说,为了响应一个WML请求,MIME类型必须被设置为text/vnd.wap.wml。
</td></tr> <tr> <td>在服务器还是在客户端执行XSLT转化?</td> <td vAlign=top>总是使用服务器端转化。并不是所有的客户端都支持客户端转换。 </td></tr> <tr> <td>怎样为I18N客户端提供支持? </td> <td vAlign=top>必须使用UTF-8编码格式。
使用ResourceBundle和Message Bundle类以及java.text程序包。 </td></tr> <tr> <td>应用程序可以使用cookies作为状态管理吗? </td> <td vAlign=top>不可以。</td></tr> <tr> <td>不使用cookies,怎样管理session数据?</td> <td vAlign=top>使用URL重写不支持cookies的客户端。 </td></tr> <tr> <td>使用绝对URL还是相对URL来引用服务器资源? </td> <td vAlign=top>使用绝对的URL,以避免不支持相对URL的客户端潜在的问题。 </td></tr></table>



↑返回目录
前一篇: Java图形用户界面设计
后一篇: 将Java加密技术同Windows结合起来