`

javascript与applet之间通讯二

阅读更多

http://fanqiang.chinaunix.net/a4/b5/20011108/0808001548.html

摘 要 : 本文着重阐述了网页开发中,通过灵活使用从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。值得一提的是,本文中程序示例加下划线的部分,要特别引起注意。
分享到:
评论

相关推荐

    Javascript与Applet之间相互通讯

    ### JavaScript与Applet之间的相互通讯 #### 一、引言 在早期的Web开发中,JavaScript与Applet的结合为开发者提供了丰富的交互性和强大的功能。本文将深入探讨这两种技术如何协同工作,以及如何在Web应用中实现...

    同一个网页中两个APPLET通讯

    在本案例中,我们需要讨论的主题是如何在同一个网页中实现两个APPLET之间的通信,并通过一个APPLET的按钮来控制另一个APPLET的线程。 首先,理解APPLET的基本结构。APPLET通常由两部分组成:Java源代码(如`.java`...

    servlet applet通讯的例子

    本示例探讨的是Servlet和Applet之间的通信机制,特别关注如何解决传递对象的问题。 1. **Servlet与Applet通信的基本原理**: - Applet可以通过JavaScript与HTML页面交互,进而与通过AJAX调用的Servlet进行通信。另...

    applet和servlet的通讯,并打印

    本文将详细探讨Applet与Servlet之间的通信以及如何利用这种通信机制实现文件的打印功能。 Applet是Java的一种小程序,它可以在用户的Web浏览器中运行,为用户提供交互式体验。而Servlet则是Java Web应用中的服务器...

    聊天系统(java+applet).rar

    《构建基于Java与Applet的网页聊天系统》 在当今互联网时代,实时通讯技术已经成为各类网站和应用不可或缺的一部分。本文将深入探讨如何使用Java和Applet技术构建一个基本的网页聊天系统,即使没有深厚的Java基础,...

    jsp源码聊天系统(java+applet)130227

    - **实时通信**:利用Applet与服务器之间的通信机制,实现用户间的即时消息传递。 - **界面友好**:Applet提供图形用户界面,使用户能够轻松地发送和接收消息。 - **扩展性**:JSP技术提供了强大的后端支持,便于...

    聊天系统(java+applet).zip

    而Java的Socket编程接口则方便地处理了客户端与服务器之间的通信。 描述中的"java+applet"表明聊天系统的客户端部分可能使用Applet实现,这使得用户无需安装额外软件就能在网页上直接参与聊天。然而,随着现代Web...

    Java到JavaScript的通信

    本主题主要探讨如何使Java Applet在现代Web环境中作为一个COM(Component Object Model)样式的二进制组件,实现与JavaScript的有效通信。 Java Applet是一种小型的Java程序,可以在客户端的Web浏览器中运行。在...

    java_and_flash.rar_flash java_java flash

    2. **Socket通信**: Java Applet可以直接通过Socket与服务器通信,Flash也可以通过Flash Player的Socket类进行网络通信。通过在服务器端设置一个中间代理,Java和Flash可以进行双向的Socket通信。这种方式提供了更...

    此系统为《聊天系统》作为毕业设计使用

    - **网络编程**:了解TCP/IP协议,理解Socket编程,用于建立客户端与服务器之间的连接。 2. **Applet前端技术**: - **Java Applet**:Applet是一种嵌入在HTML页面中的小程序,可以由Java Virtual Machine (JVM) ...

    基于SOA和ROA的整体技术架构.docx

    - **AJAX**:AJAX允许Web页面在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容,使用JavaScript异步调用服务端资源。 6. **通讯方式对比**: - Applet和Flex可以直接与服务器通信,但Applet的安全性...

    《java网络编程实例》配书光盘

    2. **网络Applet小程序**:Applet是Java的一种小型应用程序,可以在Web浏览器中运行。使用`javax.applet.Applet`类,开发者可以创建嵌入HTML页面的Java程序。不过,由于安全性和现代浏览器的限制,现在Applet的使用...

    Internet及其应用Chapter09_电子商务的技术实现.pptx

    电子商务系统根据参与主体和应用场景的不同,可以分为三类:企业内部电子商务(Intranet商务),企业与消费者之间的电子商务(B2C模式)和企业与企业之间的电子商务(B2B模式)。B2C流程包括消费者浏览网站、填写...

    JavaWeb答辩问题.doc

    2. hidden表单域的作用 hidden表单域可以用来区分多个表单、多个提交按钮等。它可以隐藏在HTML表单中,并且可以传递参数给服务器端。 3. jsp的内置对象 jsp有多个内置对象,包括pageContext、request、session、...

    java开源包2

    public class JVMine extends java.applet.Applet 简单实现!~ 网页表格组件 GWT Advanced Table GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    95. servlet之间及与jsp间的通讯 96.获取当前绝对路径 97.在servlet中操作cookie 98.使用servlet生成JPEG图象 99.在servlet中根据请求参数自动填充java对象 100.将jsp应用程序打war包 101.实现投票系统 102.使用...

    java源码包2

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

Global site tag (gtag.js) - Google Analytics