|
摘 要:本文着重阐述了网页开发中,通过灵活使用从JAVASCRIPT语言中访问JAVA的方法、从JAVASCRIPT中访问JAVASCRIPT小程序的方法与变量,以及在JAVA APPLET小程序中使用JAVASCRIPT等技术,实现这几种网页开发语言的互相补充,以开发更完美的WEB应用程序。 JAVASCRIPT是用于HTML环境的开发语言,提供了能够响应WEB页面事件的脚本,可以完全访问浏览器窗口的各个方面,善于合并HTML、JAVA APPLET小程序、插入件、服务器方程序和其他WEB组件,形成完全集成的WEB应用程序。而JAVA是功能强大的著名开发语言,能够支持WEB应用程序的开发,用于开发高级WEB对象,并提供实现嵌入WEB页面的可执行内容,具有更强的编程功能,可以作为JAVASCRIPT功能的良好补充,只不过这些功能被限制在有限的浏览器窗口区中。 JAVA与JAVASCRIPT可以互相补充,以开发功能更完美的WEB应用程序。本文归纳了笔者编程中曾使用过的,涉及到有关JAVASCRIPT与JAVA、JAVA APPLET小程序之间互访的问题的一些方法,仅供参考。 一、从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” <HTML> <HEAD> <SCRIPT LANGUAGE="JAVASCRIPT"> FUNCTION ACCESSAPPLET() { SETTIMEOUT("CHANGETEXT(I LIKE JAVASCRIPT!)",1000); SETTIMEOUT("CHANGETEXT(I LIKE JAVASCRIPT AND JAVA!)",2000); SETTIMEOUT("CHANGETEXT(I LIKE JAVA!)",3000); SETTIMEOUT("ACCESSAPPLET()",4000); } FUNCTION CHANGETEXT(S) { WINDOW.DOCUMENT.TESTTEXT.SETTEXT(S) //此处调用JAVAAPPLET小程序的SETTEXT()方法 //注意,小程序的名字必须为〈APPLET〉标志 NAME属性所标识 } </SCRIPT> </HEAD> <BODY ONLOAD="ACCESSAPPLET()"> //通过调用ACCESSAPPLET()装入小程序 <APPLET CODE="TESTTEXT.CLASS" NAME="TESTTEXT" WIDTH=450 HEIGHT=150> </APPLET> </BODY> </HTML> “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” …… <BODY> <FORM NAME="TEXTFORM"> <P>ENTER TEXT AND THEN CLICK DISPLAY TEXT: <INPUT TYPE="TEXT" NAME="TEXTFIELD" SIZE="20"></P> </FORM> <APPLET CODE="READFORM.CLASS" WIDTH=200 HEIGHT=100 NAME="READAPP" MAYSCRIPT> //必须使用MAYSCRIPT属性标志 </APPLET> </BODY>

附表列举了JSOBJECT类的方法和描述,更详细的说明可以参考MSDN。值得一提的是,本文中程序示例加下划线的部分,要特别引起注意。
|