`
conkeyn
  • 浏览: 1505076 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

DWR Reverse Ajax 显示服务器的时间

阅读更多

第一步:最基本也是最重要的,要记得配置web.xml中与reverse ajax相关的参数。

 

<init-param>
	<description>是否激活反向Ajax</description>
	<param-name>activeReverseAjaxEnabled</param-name>
	<param-value>true</param-value>
</init-param>

 可增加额外的两个参数:

                <init-param>
			<description>在WEB启动时是否创建范围为application的creator</description>
			<param-name>initApplicationScopeCreatorsAtStartup</param-name>
			<param-value>true</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>

 

第二步:编写Java 的时钟代码:

package learn.dwr.reverse;

import java.util.Date;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.directwebremoting.Browser;
import org.directwebremoting.ServerContextFactory;
import org.directwebremoting.ui.dwr.Util;

/**
 * title: 时钟
 * 
 * @author Administrator
 * @时间 2009-11-21:下午07:11:56
 */
public class MyClock implements Runnable {
	// 这个active必需用static,使用transient标识是无法使用哦。
	protected static boolean active = false;

	public MyClock() {
		ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(
				1);
		executor.scheduleAtFixedRate(this, 1, 1, TimeUnit.SECONDS);
	}

	@Override
	public void run() {
		if (active) {
			setClockDisplay((new Date()).toString());
		}
	}

	public synchronized void toggle() {
		active = !active;
		if (active) {
			setClockDisplay("Started");
		} else {

			setClockDisplay("Stopped");
		}
	}

	public void setClockDisplay(final String output) {
		String page = ServerContextFactory.get().getContextPath()
				+ "/reverseajax/clock.html";
		System.out.println(page + "  " + output);
		Browser.withPage(page, new Runnable() {
			public void run() {
				Util.setValue("clockDisplay", output);
			}
		});

	}
}

 

第三步:把MyClock类配置到dwr.xml中内容如下:

<create creator="new">
	<param name="class" value="learn.dwr.reverse.MyClock" />
</create>

 注意: creator = "new" ,每当我们点击“Start/Stop ”按钮时,它会自动生成一个新的Clock 对象,此时我们应该把设置范围, scope = "application" ,用 application 范围时,它就不会再每次点击“ Start/Stop ”时创建新的 Clock 对象,因为 Clock 对象,只有应用程序启动时创建一个Clock对象。

 

第四步:创建/reverseajax/clock.html语言件,并编写HTML代码,其内容如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Reverse ajax 时钟案例</title>
<script type='text/javascript' src='/learnajax/dwr/interface/MyClock.js'></script>
<script type='text/javascript' src='/learnajax/dwr/engine.js'></script>
<script type='text/javascript' src='/learnajax/dwr/util.js'></script>

<script type="text/javascript">
window.onload = function (){
	dwr.engine.setActiveReverseAjax(true);
}
</script>

</head>

<body>
<input type="button" value="Start/Stop" onclick="MyClock.toggle();"/>
<h2 id="clockDisplay"></h2>


</body>
</html>
 

DWR Rerverse AJAX 的高级应用。

http://www.ibm.com/developerworks/cn/java/j-jettydwr/

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics