保存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的概念,因为它适用于少量数据.