- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个小程序。 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/
我是一名优秀的程序员,十分优秀!