Java小程序中的对象持久性

保存Java applet状态的好方法是什么?

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

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

小程序已获得完全权限.

解决方法:

What is a good approach to save state of a Java applet?

对于受信任的applet,有很多选择.

I can deal with object serialization/deserialization to/from a file but don’t know where it should be placed..

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

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

..or if there’s some ‘registry’ where I can just save a couple of user’s settings.

我听说Preferences级可以用于此…

This data is stored persistently in an implementation-dependent backing store. Typical implementations include flat files, OS-specific registries, directory servers and SQL databases. The user of this class needn’t be concerned with details of the backing store.

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

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

我将找到您自己的规范的文件位置(例如在user.home中),并使用0700文件(对于简单的名称/值对)XMLEncoder/XMLDecoder(对于更复杂的Java bean).

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

当然,如果此applet部署在Plug-In 2体系结构JRE中并且可以访问JNLP API,则可以使用PersistenceService.这是demo. of the PersistenceService.

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

上一篇:在战争中如何用jar文件链接类? (Java)


下一篇:java-在具有不断重新绘制的JPanel的JApplet中使用组件