Java Applet与浏览器间的通信技术

  :本文研究了Java Applet程序与互连网浏览器之间的通信技术,重点阐明了getParameter()showStatus()以及showDocument()等方法的使用技巧。

关键字Java Applet,浏览器,通信

 

在应用Java技术进行软件开发时,通常都会遇到Java Applet程序与互连网浏览器之间的通信的问题。在java.applet包中的Applet类里提供了许多方法,使之可以与浏览器进行通信,包括getCodeBase()getDocumentBase()getParameter()getParameterInfo()showStatus()getAppletInfo()等方法。另外,还有java.applet包中的的AppletContext类里的showDocument()方法。

本文重点讨论getParameter()showStatus()showDocument()的用法和技巧。

一、getParameter()方法

Java Application通过命令行接受用户参数,在Applet中,这个任务是通过HTML文件的另一个专门标记<PARAM>来完成的。从下面的例子中可以看出它的使用方法:

<HTML>

<BODY>

<APPLET code="AppletParam.class" height=60 Width=300>

<PARAM name=varname value="Liu">

<PARAM name=varnum value=30>

</APPLET>

</BODY>

</HTML>

这个HTML文件中嵌入了一个名为AppletParamApplet,同时在Applet运行时将向它传递两个字符串参数:一个参数名为varname,取值为“Liu”;另一个参数名为varnum,取值为30。可见每个<PARAM>标记都只能传递一个字符类型的参数,这个参数的名字用来把它和其他参数区分开来,用name指定,这个参数的参数值用value指定。

Applet利用getParameter()方法来获取HTML传递来的参数。这个方法的格式为:

String getParameter(String name);

该方法的功能是返回HTML中设定的值。字符串参数表示它所希望获取的HTML参数的名字(即name指定的参数名)。方法的返回值是一个字符串对象,即HTML文件中value指定的字符串,如果希望这个参数是其他类型,还要进行参数类型的转换。在处理Applet参数时,通常要给出缺省值,以防止用户未给出该参数或给出非法参数值而使程序无法执行。

下面是ApplerParam.java的源代码,注意观察Applet如何从HTML文件中获取参数。

二、showStatus()方法

Applet可以通过显示简短的状态串,报告Applet的运行情况,状态串显示在浏览器或Appletviewer窗口的底部。在浏览器中,一个Web页上的所有Applet与浏览器本身共享同一状态显示域。Applet显示状态串使用showStatus()方法,showStatus()方法就是用来在浏览器的状态条显示信息。这个方法的格式为:

void showStatus(String msg);

下面的例子说明了如何使用showStatus()方法,该程序的功能是单击按钮button,将文本框txt里的文字显示在浏览器的状态条中。

通常这一信息只是暂时性的,所以不应该用于显示重要的信息或用于调试。由于状态显示域位置不突出,并且随时可能被浏览器或其他Applet重写,因而状态串通常只应是一些不常用的辅助性的信息。对于一些至关重要的提示和警告信息,不要作为状态串显示在状态行,应该显示在Applet区域本身或是显示在标准输出上。

对于重要的信息或调试时要使用的信息,应该使用类System把它输出到标准输出,在标准输出上报告诊断信息主要用于调试Applet。另外,当一个Applet生命周期出现了未捕获的异常时也可以从标准输出看到一些消息。标准输出的确切显示位置不确定,它依赖于浏览器的实现以及对浏览器或Appletveiwer的用法,如果在UnixShell窗口使用浏览器,则往标准输出上显示的字符串将输出到shell窗口上,而在X窗口菜单使用浏览器,则标准输出将打到console窗口。Netscape Navegator一般将Applet的标准输出放到Java console窗口,该窗口由Options莱中弹出。

三、showDocument()方法

showDocument()方法是AppletContext类的方法。它可以用来请求浏览器显示一个URL地址对应的HTML文件,并且可以控制显示在哪个浏览器窗口。它的格式如下:

void showDocument(URL url);

或者

void showDocument(URL url,String target);

具有一个参数形式的showDocument()指示浏览器在指定的URL显示有关文档,它没有指出显示文档的窗口,指定的HTML文件将在Applet所在的窗口中显示。

具有两个参数的showDocurnent()进一步指定显示文档的窗口,第二个参数target可以指明显示Applet的窗口,可以取下列值:

_self”在Applet的窗口中显示文档。

_parent”在Applet窗口的父窗口中显示文档。若Applet是顶级窗口,效果同“_self”。

_top”在Applet窗口的顶级窗口显示本文档。

_blank”在一个新的无名窗口上显示文档。

windowname”在名为windowname的窗口上显示文档,这一窗口可在需要时生成。

    下面的程序在当前浏览器窗口中显示了烟台大学的主页。

如果将上面程序中的语句

ac.showDocument(u);

改为

ac.showDocument(u,"_blank");

那么程序将保留原来的浏览器窗口,然后打开一个新的浏览器显示烟台大学主页。

参考文献

1. 刘其成等. Java语言基础教程. 石油大学出版社,2001

2. 刘其成等. 基于JavaDHTML技术及其应用. 微型机与应用. 2000, 12

3. 刘其成等. 面向对象的柔性设计与控制理论. 计算机工程与应用. Vol 38, No.18

4. 刘其成等. 基于Java数据报通信技术的聊天室设计与实现. 信息技术. 2002, 8

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值