Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让两个小程序共享字段_Java_Javascript_Applet_Japplet - Fatal编程技术网

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

Java 如何让两个小程序共享字段,java,javascript,applet,japplet,Java,Javascript,Applet,Japplet,我有两个小程序。FirstApplet小程序位于主HTML页面中。主页面使用javascript window.open(…)打开嵌入第二个小程序的新页面 以下是两个小程序的定义方式: public class SecondApplet extends JApplet{ private static Long value; public void init(){ value = new Long(6); } public static void t

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

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

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()时,这些对象现在为空

有人知道为什么会发生这种行为吗?我只是感到困惑,因为两个小程序都生活在同一个JVM中

顺便说一句,我还尝试使用getAppletContext.getApplet(“secondapplet”),但它总是返回NULL。即使是getAppletContext.getApplets()也始终返回一个元素。我在HTML页面中验证了name属性,它是正确的

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


提前感谢。

它们在同一个JVM中,但它们是沙盒。它们使用不同的类加载器,并且禁止它们访问另一个applet的类加载器,因此它们也可能位于不同的JVM中。这是一个安全特性。您不希望某些恶意小程序访问所有打开的浏览器窗口中的数据


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

它们在同一个JVM中,但它们是沙盒。它们使用不同的类加载器,并且禁止它们访问另一个applet的类加载器,因此它们也可能位于不同的JVM中。这是一个安全特性。您不希望某些恶意小程序访问所有打开的浏览器窗口中的数据


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

“我只是感到困惑,因为两个小程序都生活在同一个JVM中。”它们位于不同的网页(假定也位于不同的框架/选项卡中)中,再加上两条相反的证据,这表明情况并非如此。您能安排这两个页面之间的JS通信吗?由于安全原因被阻止的AFAIU(如果逻辑上是这样的话,小程序也会被阻止)。我想我会使用JavaScript通信。我不知道小程序对小程序的安全问题,直到我知道。我没有收到任何类型的错误/警告,因此我感到困惑。“我只是感到困惑,因为两个小程序都生活在同一个JVM中。”它们位于不同的网页(假设也位于不同的框架/选项卡中)中,再加上两条相反的证据,这表明情况并非如此。你能安排这两个页面之间的JS通信吗?由于安全原因被阻止的AFAIU(如果逻辑上是这样的话,小程序也会被阻止)。我想我会使用JavaScript通信。我不知道小程序对小程序的安全问题,直到我知道。我没有收到任何类型的错误/警告,所以我感到困惑。最后一段是+1评论。第一段。答案是-1。沙盒小程序可以在同一JVM中共享非静态公共属性。第一段。答案是-1。沙盒小程序可以在同一JVM中共享非静态公共属性。