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

引言:学习如何使用构造不仅支持浏览器而且还支持WAP、IMODE及其他客户端设备的国际化网络应用程序。

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

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


图1:一个典型的应用程序方案,使用不同的运行于一个公共服务器的基于国际互联网络的应用程序的用户设备。

使用根据客户端语言与设备的多种格式和语言应答的需要意味着必须执行两个主要任务的服务器应用程序:

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

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

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

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

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

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

一些可能存在的问题

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

需要考虑的问题 参考答案
怎样为多用户客户端提供支持? 为所有的用户客户端使用公共的服务器端代码。

 

使用XML和Xslt。 XML文件包含为所有的客户端所共用的数据。XSLT执行把XML改变成为适合于各个用户端的格式的转化请求。

设置的生成的应答依靠适用于请求的设备的MIME类型。举例来说,为了响应一个WML请求,MIME类型必须被设置为text/vnd.wap.wml。

 

在服务器还是在客户端执行XSLT转化? 总是使用服务器端转化。并不是所有的客户端都支持客户端转换。
怎样为I18N客户端提供支持? 必须使用UTF-8编码格式。

 

使用ResourceBundle和Message Bundle类以及java.text程序包。

应用程序可以使用cookies作为状态管理吗? 不可以。
不使用cookies,怎样管理session数据? 使用URL重写不支持cookies的客户端。
使用绝对URL还是相对URL来引用服务器资源? 使用绝对的URL,以避免不支持相对URL的客户端潜在的问题。
时间: 2024-08-04 08:17:42

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

用开源工具创建BlackBerry应用程序,第3部分 构建社交网络应用程序

在数字时代,社交网络应用程序对消费者和业务市场的影响是最有吸引力的 奇迹之一.营销专家改变了与潜在客户打交道的方式,具有相同志趣的群体能够 快速组建起来,这都与社交网络分不开.2008 年秋季的美国总统竞选表明,社 交网络已经成为成功的政治竞选的一部分.社交网络与流行的.强大的 BlackBerry 平台的结合将是一个充满活力的组合.本教程是"用开源工具 创建 BlackBerry 应用程序"系列的第 3 部分,它探索了为何 BlackBerry 是编写和部署社交网络应用程序的强大移动

一个用于J2EE应用程序的Backbase Ajax前端

动态HTML技术已经出现了多年.最近,Google的最新Web应用程序GMail.Google Suggests和Google Maps,在前端页面中重新引入了基于标准的DHTML开发模型.Google证明了,DHTML开发模型能够让开发人员创建具有可视化吸引力和高度交互式的Rich Internet Application(丰富网络应用程序,RIA). Adaptive Path公司的Jesse James Garrett为这个基于标准的RIA开发模型创造了术语Ajax (Asynchrono

精通J2EE应用程序开发之交叉分析J2EE

j2ee|程序 在不久前的一段时间内,Java 开发人员在准备一个新的企业 Java 开发项目时,事先就知道将要使用的工具.当时,一切都很简单:J2EE 是新的,HTML 浏览器是公认的用户界面标准,而复杂性(至少从推测的角度而言)已成为过去的事情.而如今,事情变得如此复杂. "开发人员面对的选择令人眼花缭乱." 开发人员面对的选择令人眼花缭乱,从"轻型容器"(如 Spring.NanoContainer 或 HiveMind)到"web 框架"

10个有用的界面设计的网络应用程序

 近年来,越来越多的桌面应用程序移植到互联网上面的.没有了平台限制和安装要求且作为一种服务模式的软件看起来很吸引人的.网络应用程序界面设计的核心是网页设计:但是,它的焦点主要集中在功能上面.为了和桌面程序竞争,网络应用程序必须提供简单,直观的以及响应快速的用户界面,这样才能减少用户完成事情的时间和精力.        过去我们没有用应有的方法来关注网络应用程序,现在该是仔细地研究一些有用的技术和设计方案,以便使网络应用程序更加友好和漂亮的.这篇文章阐述了第一部分我们在现代网络应用程序上面关于设计

J2EE应用程序的Web层状态复制

大多数具有一定重要性的 Web 应用程序都要求维护某种会话状态,如用户购物车的内容.如何在群集服务器应用程序中管理和复制状态对应用程序的可伸缩性有显著影响.许多 J2SE 和 J2EE 应用程序将状态存储在由 Servlet API 提供的 HttpSession 中.本文作者分析了状态复制的一些选项以及如何最有效地使用 HttpSession 以提供好的伸缩性和性能. 不管正在构建的是 J2EE 还是 J2SE 服务器应用程序,都有可能以某种方式使用 Java Servlet -- 可能是直接

一个用于J2EE应用程序的异常处理框架

在大多数Java项目中,大部分代码都是样板代码.异常处理就属于此类代码.即使业务逻辑只有3到4行代码,用于异常处理的代码也要占10到20行.本文将讨论如何让异常处理保持简单和直观,使开发人员可以专心于开发业务逻辑,而不是把时间浪费在编写异常处理的样板代码上.本文还将说明用于在J2EE环境中创建和处理异常的基础知识和指导原则,并提出了一些可以使用异常解决的业务问题.本文将使用Struts框架作为表示实现,但该方法适用于任何表示实现. 使用checked和unchecked异常的场景 您是否曾经想过

PHP5中使用Web服务访问J2EE应用程序(1)

j2ee|php5|web|web服务|程序|访问 很多 Web 开发人员喜欢 PHP 的丰富功能和简单易用,但有时候他们需要访问 J2EE 应用程序服务器中已有的业务逻辑.本文将通过一些例子说明如何通过 PHP 5 中新的 SOAP 扩展使用 Web 服务来访问 J2EE 应用程序,而不必脱离 PHP 环境,也不用学习新的编程模型. PHP.Web 服务和 SOAP 简介 本文将介绍如何从 PHP 脚本中访问企业应用程序.您可能是一位 PHP 程序员,需要为部门 Web 应用程序编写代码,以便

Visual C#中用WMI编写网络应用程序

visual|程序|网络 WMI是Windows Management Instrumentation的简称,即:视窗管理规范.在Windows 2000或以后的版本中均安装得有,NT4.0则需要安装WMI的核心组件.通过WMI可以获取远程计算机的各种数据信息,控制远程计算机的各种行为,而这就像操作本地机一样方便.简单. 一.WMI简介 WMI从根本上说应该为一种服务,并且对于本地不同的用户,WMI所有的权限也不一样.计算机超级用户可以为计算机中的每一个用户,设定不同的WMI权限.在默认状态下,

PHP5中使用Web服务访问J2EE应用程序

j2ee|php5|web|web服务|程序|访问 很多 Web 开发人员喜欢 PHP 的丰富功能和简单易用,但有时候他们需要访问 J2EE 应用程序服务器中已有的业务逻辑.本文将通过一些例子说明如何通过 PHP 5 中新的 SOAP 扩展使用 Web 服务来访问 J2EE 应用程序,而不必脱离 PHP 环境,也不用学习新的编程模型. PHP.Web 服务和 SOAP 简介 本文将介绍如何从 PHP 脚本中访问企业应用程序.您可能是一位 PHP 程序员,需要为部门 Web 应用程序编写代码,以便