在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(); } }