gpt4 book ai didi

java - 如何让两个小程序共享字段

转载 作者:行者123 更新时间:2023-11-29 09:30:46 25 4
gpt4 key购买 nike

我有两个小程序。 FirstApplet 小程序位于主 HTML 页面中。主页面使用 javascript window.open(...) 打开一个嵌入了 SecondApplet 小程序的新页面。

下面是两个小程序的定义方式:

public class SecondApplet extends JApplet{
private static Long value;
public void init(){
value = new Long(6);
}
public static void testValue(){
System.out.println(value);
}
}

public class FirstApplet extends JApplet{
public void testValue(){
SecondApplet.testValue();
}
}

现在我的问题是 FirstApplet 何时调用

SecondApplet.testValue() 

静态字段失去了它的值,现在它的值为 0。我还试验了我自己的对象模型,它们在 SecondApplet init() 方法中被实例化,但当调用 FirstApplet.testValue() 时,这些对象现在为 NULL。

有人知道为什么会出现这种行为吗?我很困惑,因为两个小程序都在同一个 JVM 中。

顺便说一句,我也试过使用 getAppletContext.getApplet("secondapplet") 但它总是返回 NULL。甚至 getAppletContext.getApplets() 也总是返回一个元素。我在 HTML 页面中验证了 name 属性,它是正确的。

如果这是安全问题,我只是想补充一点,我没有收到任何类型的错误或警告。

提前致谢。

最佳答案

它们在同一个 JVM 中,但它们在沙盒中。它们使用不同的类加载器,而且它们被禁止访问其他小程序的类加载器,所以它们还不如在不同的 JVM 中。这是一项安全功能。您不希望某些恶意小程序访问您所有打开的浏览器窗口中的数据。

在不同的浏览器窗口之间共享数据是一件棘手的事情,本应如此。如果你真的需要这样做,你应该告诉我们你的具体要求是什么。也就是说,为什么您需要共享数据?

关于java - 如何让两个小程序共享字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com