Java与JavaScript可以互相补充,以开发功能更完美的Web应用程序。本文归纳了笔者编程中曾使用过的,涉及到有关JavaScript与Java、Java Applet小程序之间互访的问题的一些方法,仅供参考。
一、从JavaScript中访问Java方法
一、从JavaScript中访问Java方法
在HTML脚本中可以用JavaScript直接调用Java中的方法,只需要在调用语句前用“java.lang.”加以表示即可。具体语句用法如下例所示:java.Lang.System.Out.println(“Hello!”)但此种方法只适用于Netscape Navigator,一般不提倡在Web应用程序中使用。
二、从JavaScript中访问Java Applet小程序中的方法和变量
通过JavaScript提供的Applet对象,JavaScript代码可以访问Java的变量和方法,具体步骤和用法示例如下。需要注意的是,JavaScript提供的applet对象具有name属性,而没有方法和事件处理器。
步骤:
1) 将要访问的Java Applet小程序的方法和变量声明为Public,且必须在Public类中声明;2) Java Applet小程序要先装入才能访问,尽管applet对象没有定义onLoad事件,但可以在HTML文档的〈body〉标志中,指定使用Window对象的onLoad事件处理器;3) Java Applet小程序可以用JavaScript的applet对象来访问。
示例:
“mytest.htm”
//通过调用accessApplet()装入小程序
“Testtext.java”
import java.applet.*;
……
public class Testtext extends Applet
{……
public void setText(String s) //setText()必须声明为“public”
{
text=s;
repaint();
}
三、在Java Applet小程序中使用JavaScript
Live Connect提供了Java与JavaScript的接口,可以允许在Java Applet小程序中使用JavaScript。具体步骤如下:1) 在HTML脚本中使用〈APPLET〉标志的MAYSCRIPT属性,以允许Java Applet小程序访问脚本;2) 将netscape. JavaScript包导入Java Applet小程序;
3)在Java Applet小程序中用JSObject类的getWindow(方法创建JavaScript窗口的句柄;
4)在Java Applet小程序中用JSObject类的getMember(方法访问JavaScript对象;
5) 在Java Applet小程序中用JSObject类的eval(方法调用JavaScript方法。
示例:
“ReadForm. Java”
import netscape.javascript.JSObject;import netscape.javascript.JSException;
……
win=JSObject.getWindow(this); // 获取JavaScript窗口句柄,引用当前文档窗口doc=(JSObject)win.getMember("document"); // 访问JavaScript对象form=(JSObject)doc.getMember("textForm");textField=(JSObject)form.getMember("textField");text=(String) textField.getMember("value"); //获取文本区的值
……
win.eval("alert(\"This alert comes from Java!\")");
//调用JavaScript的alert()方法
……
“User.htm”
……
Enter text and then click display text:
//必须使用MAYSCRIPT属性标志
附表列举了JSObject类的方法和描述,更详细的说明可以参考MSDN。值得一提的是,本文中程序示例加下划线的部分,要特别引起注意。
java代码示例学习
回覆刪除请求授权标头