你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 专家论坛
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文件中获取参数。

import java.applet.Applet;

import java.awt.Graphics;

public class AppletParam extends Applet{    //定义主类

private String name;    //用于接收HTML参数的程序变量

        private int num;

        public void init(){

       name=getParameter("varname");   //接收HMTL中传递的参数

            num=Integer.parseInt(getParameter("varnum"));

        }

public void paint(Graphics g){

g.drawString("Hello "+name+" ! Your are "+num+" years old.",10,20);

        }

}

二、showStatus()方法

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

void showStatus(String msg);

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

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

public class UIApplet extends Applet implements ActionListener{

TextField txt;

Button button;

 

public void init(){

            txt=new TextField(10);

            add(txt);       //填加文本域组件

 

       button=new Button("Show");

            button.addActionListener(this);

            add(button);    //填加按钮组件

}

public void actionPerformed(ActionEvent e){//响应按钮事件的事件处理方法

            showStatus(txt.getText());      //将文本域内容显示在状态行

        }

}

通常这一信息只是暂时性的,所以不应该用于显示重要的信息或用于调试。由于状态显示域位置不突出,并且随时可能被浏览器或其他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的窗口上显示文档,这一窗口可在需要时生成。

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

import java.applet.*;

import java.net.URL;

import java.net.MalformedURLException;

public class sd extends Applet{

     public void init(){

    String us="http://www.ytu.edu.cn";  //www.ytu.edu.cn为烟台大学主页地址

  URL u=null;

        AppletContext ac=getAppletContext();    //定义AppletContext类的对象ac

        try{

          u=new URL(us);

   }catch(MalformedURLException e){

           System.err.println("Malformed URL:"+us);

        }

   if(u!=null){

           ac.showDocument(u);      //在当前浏览器窗口显示烟台大学主页

   }

     }

}

如果将上面程序中的语句

ac.showDocument(u);

改为

ac.showDocument(u,"_blank");

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

参考文献

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

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

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

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

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089