在B/S模式下,有时候客户端需要获取IP地址和操作系统的环境变量,或者服务端不好获取的某些客户端环境,这时Applet就能派上用场,它是Java客户端小程序,可在客户端执行,那么得到上述值就不成问题。但是怎样将这些值显示在页面上呢?这里用到了Dom技术,将IP地址显示在页面的指定位置<div id="virtualIP"></div>。
import java.applet.Applet;
import org.w3c.dom.html.HTMLDivElement;
import org.w3c.dom.html.HTMLDocument;
import com.sun.java.browser.dom.DOMAccessor;
import com.sun.java.browser.dom.DOMAction;
import com.sun.java.browser.dom.DOMService;
/**
* 页面不需要刷新来获取客户端的值
* @author S.J
* @version 1.0, 11/03/2009
*/
public class MyApplet extends Applet {
private DOMService ds = null;
private HTMLDocument doc = null;
private HTMLDivElement virtualIP = null;
private String status;
public void init(){
try{
ds = DOMService.getService(this);
doc = (HTMLDocument)ds.invokeAndWait(new DOMAction(){
public Object run(DOMAccessor accessor){
return accessor.getDocument(MyApplet.this);
}
});
// 获取页面上显示IP的对象
virtualIP = (HTMLDivElement)doc.getElementById("virtualIP");
}catch(Exception e){
e.printStackTrace();
}
}
public void start(){
Thread t = new Thread(){
public void run(){
try{
// 每2秒钟重新获取IP并显示在页面上
while(true){
// 根据实际情况获取真实的IP
status = "0.0.0.0";
virtualIP.setAttribute("innerHTML", status);
Thread.sleep(2000);
}
}catch(Exception e){
e.printStackTrace();
}
}
};
t.start();
}
}