我的问题是在applet中存储一些用户输入以减少用户操作。
我为此使用静态字段。但是我注意到,如果用户转到浏览器中的多个选项卡-新的“线程”(或类似的东西)启动了,而这个新线程中的静态类为空。也许还有另一种解决方案可以在applet中保存一些数据?
编辑
好。更多细节。我有一个用于数字签名的小程序。用户一次选择证书(X509Certificate)并将其用于签署所有文档。我有这样的课:
public class CertificateContainer
{
private static X509Certificate certificate;
...
最佳答案
不同浏览器选项卡中的小程序是独立程序。根据浏览器和Java-Plugin,它们甚至可以在不同的VM中运行,但是即使在同一VM中,它们也很可能具有独立的类加载器,并且将无法通过静态变量进行通信。
如果需要存储用户数据,则可以使用JNLP API,例如PersistenceService。
使用1.6 Sun插件,仅当您的小程序由JNLP加载时才可用;在IcedTea插件(随某些版本的OpenJDK发行)中,它也可用于由常规applet标记加载的小程序(不带JNLP)。
(我不知道小程序将如何使用CookieHandler。)