<script type="text/javascript"> google_ad_client = "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot = "0989131976"; google_ad_width = 336; google_ad_height = 280; // </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 注意: 这部分假设已经对J2ME至少有一点熟悉。 前面,我曾提起用jCookieMicro库在J2ME平台的移动设备上建立与网络应用程序交互的客户系统的可能性。我仍然在开发jCookieMicro库。它的结构及用法将与jCookie库类似,除了URLConnection,jCookieMicro库将用MIDP HttpConnection对象。这部分描述了在移动应用程序(在我们的案例MIDlets中)使用成熟的cookie操作的好处。 让我们先练习在J2ME应用程序中状态管理常用的方法。诺基亚论坛一篇命名为“A Brief Introduction to Networked MIDlets”(2002年三月)的论文描述了一个方法。论文提出作为一个URL重写机制的变异工作的机制:一个在网络服务器上的servlet站点操作所有的商务逻辑和使用通常的HTTP报头传送状态信息要胜于cookies。MIDlet简单地作为一个用户界面,传递用户输入到servlet并显示结果。(更多的关于在J2ME应用程序上的状态管理的URL重写及其他方法,请读“Track Wireless Sessions with J2ME/MIDP”,Michael Juntao Yuan和Ju Long著(JavaWorld,2002年四月).) 使用上述方法,这有与此讨论相关的应用程序的解决方法,一是象一个小型网络浏览器一样与网络服务器或应用程序交互: · MIDlet从用户那里收集相关输入(比如,一个Hotmail用户名和密码) · MIDlet传送输入到servlet · Servlet用输入与网络服务器或应用程序交互(比如,Hotmail网站) · Servlet传送结果到 MIDlet(比如,一个新消息列表) · MIDlet向用户显示结果 在上述解决方法中,通用HTTP报头维护一个MIDlet和servlet间的会话。因此,servlet和MIDlet 都包含执行会话管理的逻辑。这证明前面讲过的不受欢迎的同一原因:通用代码很容易被破坏,甚至成为常规管理变化所带来的必然结果,比如服务器升级。这种方法的另一个缺点:它要求有一个在目标网络应用程序(如Hotmail)和移动应用程序之间的中间件。 对于上述方法你可以用两种办法替代jCookieMicro: 1. 将商务逻辑转移到移动应用程序上并完全消除中间servlet。在移动客户系统上用jCookieMicro进行会话管理。 2. 将商务逻辑保持在中间servlet上,但除去通用报头,并用jCookieMicro进行透明坚固的会话管理。 修改已存在的应用程序第二种方法证明更适合。第一种方法导致成本的降低和移动应用程序开发更轻松,因为它除去了服务器端资源的开销。下面的应用程序使用了第一种方法: · MIDlet从用户处收集相关输入 · MIDlet直接连接到目标网络服务器并与之交互 · MIDlet向用户显示结果 第一种方法同时也消除了将商务逻辑保持在servlet的如下一些缺点: · 一个servlet容器故障会导致整个应用程序离线,即使目标网络服务仍在运行。 · 应用程序被限制仅作为servlets展开。 在移动应用程序中进行状态管理的另一个方法在Sun无线Java开发者的一篇不依赖风俗权威的文章“Session Handling in MIDP”(2002年一月)中有描述,但包括在移动应用程序中写操作cookies的通用代码。前面关于写通用代码的缺点的讨论及使用jCookie(Micro)的优势请看上述命为“在Java中的状态管理”部分)。 自从PJAE提供连同一些Java2类的完整JDK 1.1.8平台,即使在工作中的jCookieMicro,今天你也能在PersonalJava Application Environment (PJAE)下的应用程序中使用jCookie库。。 jCookie局限性 jCookie库还有一些局限性: · 当cookie解析逻辑及安全标准插入到已存在的API(用CookieParser)时,没有一个对于核心数据结构和Cookie类有用的机制。 · 没有作性能测试。 你可以从http://jcookie.sourceforge.net/得到jCookie最近的版本以及项目源代码。有一些项目是为未来版本计划的包括: · 雅加达项目log4J logging API的使用提供了用户可配置的记录和调试。 · 用一个用户定义的控制器可简单修改jCookie行为,这可以决定解析一单个cookie是否失败将导致致命错误。 这些及其他部分的执行大量依赖于你的反馈。请在SourceForge.net的jCookie项目站点上使用邮件列表、bug追踪、特征请求等等。 取得cooking 这里提到的jCookie库能帮助减轻客户端应用程序状态开发的难度。作为前面曾提到的,其他库的执行类似于函数,但这些结构已和存在的本地java.net API远无关系。另外,没有API/库单独从事cookie操作。其他的库将cookie操作合并作为一个完整的Java 网络客户结构的一部份,结果,使用这些库涉及了整个新的学习体系。 jCookie库接近于存在的java.net对象。在普遍的URLConnection或HttpConnection两个方法调用中状态管理十分简单。你可以通过一个有用的HTTPRedirectHandler类使得状态管理更简单。在处理客户端应用程序开发者时jCookie努力把浏览器作为cookie管理器。这能成功走多远只能由你的反响决定。我将感激任何你所分享的提示或建议。
Java中的cookie管理方案(1)-与J2ME结合
Java中的cookie管理方案(2)-与J2ME结合
Java中的cookie管理方案(3)-与J2ME结合
Java中的cookie管理方案(4)-与J2ME结合
Java中的cookie管理方案(4)-与J2ME结合
最新推荐文章于 2024-08-30 18:40:43 发布