【问题标题】:Object persistence in Java appletsJava 小程序中的对象持久性
【发布时间】:2011-12-18 17:52:21
【问题描述】:

保存 Java 小程序状态的好方法是什么?

我可以处理文件的对象序列化/反序列化,但不知道它应该放在哪里,或者是否有一些“注册表”,我可以只保存几个用户的设置。

这些设置取决于硬件,因此我想将其保存在客户端上。

已授予小程序完全权限。

【问题讨论】:

    标签: java serialization applet persistence


    【解决方案1】:

    Applet Persistence API 似乎是需要在浏览器会话之间保留数据时的好方法:http://docs.oracle.com/javase/1.4.2/docs/guide/plugin/developer_guide/persistence.html

    【讨论】:

      【解决方案2】:

      保存 Java 小程序状态的好方法是什么?

      对于受信任的小程序,有很多选择。

      我可以处理文件的对象序列化/反序列化,但不知道应该放在哪里..

      将信息放在user.home 的子目录中。

      • user.home 将是一个可写的地方。
      • 一个子目录(例如基于小程序类的包名),以避免与其他应用程序的设置文件冲突。

      ..或者如果有一些“注册表”,我可以保存一些用户的设置。

      我听说Preferences 类可以用于那个..

      此数据永久存储在依赖于实现的后备存储中。典型的实现包括平面文件、特定于操作系统的注册表、目录服务器和 SQL 数据库。这个类的用户不需要关心后备存储的细节。

      听起来很整洁,不是吗?唯一的麻烦是我从来没有能够举出一个例子,让值在运行之间保持不变!


      对象序列化带有一个巨大的警告,它可能随时中断。


      我会选择您自己规范的文件位置(例如在 user.home 中)并使用 XMLEncoder/XMLDecoderProperties 文件(对于简单的名称/值对)(对于更复杂的Java bean)。

      对于前者,请参阅此little example。后者在 JavaDocs 顶部的一个简短示例中进行了描述。


      当然,如果这个小程序部署在 Plug-In 2 架构 JRE 中并且可以访问 JNLP API,它可以使用PersistenceService。这是demo. of the PersistenceService

      即使是沙盒小程序也可以使用PersistenceService - 它类似于 Cookie 的概念,因为它适用于少量数据。

      【讨论】:

        猜你喜欢
        • 2010-12-26
        • 1970-01-01
        • 2011-12-25
        • 2021-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-07
        • 2011-12-31
        相关资源
        最近更新 更多