`
liaokang.java
  • 浏览: 152750 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

反向ajax小例子

    博客分类:
  • ajax
阅读更多
所谓反向ajax是指服务器端通过一系列API来控制浏览器端元素,实际上反向控制只是一种形象的说法,能够操作浏览器页面元素的只能是客户端脚本,只是在服务器端加入一系列操作客户端元素的API这样问题就解决了
既然要实现反向ajax,首先要设置反向ajax的参数,在web.xml中设置参数
 <init-param>
         <param-name>activeReverseAjaxEnabled</param-name>
         <param-value>true</param-value>
 </init-param>

客户端页面在加载的时候需要指定
<body onload="dwr.engine.setActiveReverseAjax(true);">
完整代码如下,客户端页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>利用反向ajax实现页面聊天</title>

		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="this is my page">
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">

		<script type="text/javascript" src="dwr/interface/DWRHelper.js"></script>
		<script type="text/javascript" src="dwr/engine.js"></script>
		<script type="text/javascript" src="dwr/util.js"></script>
		<script type="text/javascript">
		function sendMessage(){
			DWRHelper.addMessage(dwr.util.getValue("myText"));
		}
	</script>

	</head>

	<body onload="dwr.engine.setActiveReverseAjax(true);">
	
		<input type="text" id="myText" />
		<input type="button" value="发送" onclick="sendMessage()" />
		
		<div style="width: 300px; height: 300px; border: 1px solid blue">
			<ul id="chatlog"></ul>
		</div>
	</body>
</html>

src="dwr/interface/DWRHelper.js"中的DWRHelper必须与DWRHelper.addMessage(...)名称必须相一致

服务器端代码如下

package com.lamp;

import java.util.Collection;
import java.util.LinkedList;

import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;

public class DWRHelper {
	LinkedList<Message> messages = new LinkedList<Message>();
	public void addMessage(String text) {
		
		if (text.trim().length() > 0 || text != null) {
			messages.addFirst(new Message(text));
			while (messages.size() > 10) {
				messages.removeLast();
			}
		}
		System.out.println(text);
		WebContext context = WebContextFactory.get(); // 获得容器上下问

		String currentPage = context.getCurrentPage(); // 获得当前页面

		Util util = new Util(context.getScriptSession());

		util.setValue("myText", ""); // 清空当前编辑框

		Collection sessions = context.getScriptSessionsByPage(currentPage); // 打开当前页面的所有会话集合

		Util utilAll = new Util(sessions);

		utilAll.removeAllOptions("chatlog");		//清空原来列表的内容

		utilAll.addOptions("chatlog", messages, "text");	//将消息显示在列表中

	}

}


bean类Message如下

package com.lamp;

public class Message {
	private String text;

	public Message() {
	}
	
	public Message(String text) {
		this.text = text;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

}


dwr.xml需设置为
<create javascript="DWRHelper" creator="new"
			scope="application">
			<param name="class" value="com.lamp.DWRHelper"></param>
		</create>
		<convert match="com.lamp.Message" converter="bean">
			<param name="include" value="id,text"></param>
		</convert>
分享到:
评论

相关推荐

    反向Ajax的小例子

    dwr实现的在线即时聊天demo,比较简化的一个反向ajax例子, &lt;br&gt;everse Ajax主要是在BS架构中,从服务器端向多个浏览器主动推数据的一种技术。它的一种实现就是客户端向服务器请求后,服务器不立即回应,从而导致一...

    dwr的例子 反向AJAX 实现时时提醒

    dwr反向ajax使用,即时提醒。WEB网页实现右下角时时弹出提醒DIV

    反向ajax聊天简单例子

    本例子是在ajax官方上下载的,经过我反编译成java代码,简单易懂,并带有jar包省去了大家再去寻找jar包的时间。

    dwr课件,java,反向ajax

    基本例子,返回各种类型解析,后台返回list ,后台返回map,获得dwr上下文代码

    dwr3.0反向实例

    网上的资源很多都是2.0的,将dwr官网的Clock实现,简单明了。是使用反向Ajax的好用的参考例子,配置文件全。

    comet的demo

    一个简单的comet实现的例子程序,就是comet实现长链接,反向ajax实现

    Ext 开发指南 学习资料

    8.5.5. 反向操作,ext把json变成字符串 8.6. 小声说说scope 8.7. 菜单和工具条 8.7.1. 至简至廉的菜单 8.7.2. 丰富一点儿的多级菜单 8.7.3. 单选多选,菜单里搞这套 8.7.4. 小把戏,定制好的菜单 8.7.5. SplitButton...

    EXT教程EXT用大量的实例演示Ext实例

    8.5.5. 反向操作,ext把json变成字符串 8.6. 小声说说scope 8.7. 菜单和工具条 8.7.1. 至简至廉的菜单 8.7.2. 丰富一点儿的多级菜单 8.7.3. 单选多选,菜单里搞这套 8.7.4. 小把戏,定制好的菜单 8.7.5. ...

    EXT2.0中文教程

    8.5.5. 反向操作,ext把json变成字符串 8.6. 小声说说scope 8.7. 菜单和工具条 8.7.1. 至简至廉的菜单 8.7.2. 丰富一点儿的多级菜单 8.7.3. 单选多选,菜单里搞这套 8.7.4. 小把戏,定制好的菜单 8.7.5. SplitButton...

    select2cascade

    select2cascade 进行选择级联的助手。... 反向:按desc(true)或asc(false)排序-默认值:false 例子: {父级:$('#order'),子级:$('#spect'),网址:'/ api / example /',字段:'名称',s

    PHP和MySQL WEB开发(第4版)

    5.3.3 理解字母大小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本的函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回一个值 ...

    PHP和MySQL Web开发第4版pdf以及源码

    5.3.3 理解字母大小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本的函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回...

    PHP和MySQL Web开发第4版

    5.3.3 理解字母大小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本的函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回...

    DWR.xml配置文件说明书(含源码)

    一种不能采用默认方式定义的converter就是Bean Converter,这个是将POJO对象转换成javascript相关的数组,反向也一样.基于安全因素的考虑这种类型的converter不能采用默认的方式实现. 假设有个bean并且通过语句设置成...

Global site tag (gtag.js) - Google Analytics