`
liaokang.java
  • 浏览: 155060 次
  • 性别: 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架构中,从服务器端向多个浏览器主动推数据的一种技术。它的一种实现就是客户端向服务器请求后,服务器不立即回应,从而导致一...

    反向ajax聊天简单例子

    本文将围绕一个基于Java的反向Ajax聊天实例——"反向Ajax聊天简单例子"进行详细解析。 1. 反向Ajax原理: 反向Ajax的核心思想是通过持久连接(Persistent Connection)或轮询(Polling)等技术,使服务器能够在有...

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

    Direct Web Remoting (DWR) 是一个开源Java库,它允许在浏览器和服务器之间进行安全、高效的异步通信,即所谓的“反向AJAX”或“Comet”技术。DWR使得JavaScript能够调用服务器端的Java方法,就像它们是本地函数一样...

    ajax的DWR框架入门例子

    4. **反向AJAX(Reverse AJAX)**:DWR实现了反向AJAX,即服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求。 接下来,我们将探讨如何使用DWR进行基本操作: 1. **创建Java类**:首先,我们需要在...

    ajax框架dwr例子.rar

    - **反向AJAX**:DWR的核心技术就是反向AJAX,即由服务器主动向浏览器发送数据,而不是等待用户触发请求。 - **Remote Object**:DWR将服务器端的Java对象映射为JavaScript对象,使得在JavaScript中可以直接调用...

    Ajax的DWR入门例子

    - **配置web.xml**:在web.xml中添加DWR的Servlet配置,启用调试模式,并设置主动反向Ajax。 4. **运行与测试**: - 创建HTML或JSP页面,使用JavaScript调用SayHello.SayHelloByName()方法,传递参数并接收返回值...

    dwr服务器推送,dwr.jar,推送,服务器ajax,dwr服务推送例子

    这个过程被称为“反向Ajax”或“服务器推送”,它能够实现在不依赖用户操作的情况下,服务器主动向客户端发送数据。 DWR的核心组件包括几个部分: 1. **Engine**:这是DWR的核心,负责处理JavaScript到Java的转换和...

    dwr小例子,适合初学者使用

    1. **反向Ajax**:DWR实现了从客户端到服务器的异步通信,即JavaScript可以调用服务器端的Java方法,而无需页面刷新。这对于创建富互联网应用程序(RIA)非常有用,因为它提供了更流畅的用户体验。 2. **自动序列化...

    dwr简单教程电子书中有小例子简单易懂

    1. **反向Ajax(Reverse Ajax)**:DWR通过在后台运行的Java对象与前端JavaScript代码之间建立桥梁,实现了双向通信。这使得Web应用可以实现类似桌面应用的实时交互效果,如即时更新数据、无刷新操作等。 2. **自动...

    一个完整的用ajax反转 server push(服务器主动向页面推送数据)技术实现的web聊天室源码

    综上所述,这个Web聊天室项目涵盖了从客户端到服务器端的完整实时通信流程,是学习和实践Ajax反向推送技术的一个好例子。通过深入研究和理解这个源码,开发者可以掌握如何在实际项目中应用Server Push,提高Web应用...

    DWR入门例子(一个很好的dwr入门例子)

    - **反向AJAX**: DWR的核心理念是反向AJAX,即由服务器主动向客户端推送数据,而不仅仅是响应客户端的请求。 - **Engine**: DWR Engine是处理所有AJAX请求的核心组件,负责映射和执行远程方法。 - **允许列表**: ...

    AJAX技术之DWR框架入门

    3. **Reverse AJAX**:DWR实现了反向AJAX,即服务器主动推送数据到客户端。这对于实时应用(如聊天室、股票报价)非常有用。 4. **AutoComplete**:DWR提供了自动完成功能,用于在输入框中实现下拉提示,提高用户...

    Ajax Dwr详细资料

    1. **反向AJAX(Reverse AJAX)**: DWR允许JavaScript代码在用户浏览器上直接调用服务器端的Java方法,就像调用本地函数一样,这使得Web应用能够实现即时响应和动态更新。 2. **自动类型转换**: DWR自动处理了Java...

    dwr例子 eclipse 可用

    1. **反向Ajax**:DWR允许服务器端代码直接调用客户端的JavaScript函数,实现了双向通信,这是Ajax技术的核心特性之一。 2. **自动类型转换**:DWR自动处理Java对象与JavaScript对象之间的类型转换,减轻了开发者的...

    JAVA-DWR简单例子

    - **反向AJAX**: DWR的核心功能是实现反向AJAX,即由服务器向客户端推送数据,而不仅仅是客户端向服务器发送请求。 - **映射机制**: DWR通过XML配置或注解方式,将服务器端的Java类和方法映射到JavaScript接口上,...

    DWR例子代码

    1. **反向Ajax**:DWR的核心是反向Ajax,即服务器主动向客户端推送数据,而不是等待客户端发起请求。这种技术使得实时性成为可能,例如实时聊天应用、股票报价等。 2. **安全机制**:DWR提供了安全机制,如CSRF...

    dwr反推简单例子

    在"**dwr反推简单例子**"中,我们将会探讨如何使用DWR进行数据的反向推送,即由服务器主动向客户端推送数据,而不仅仅是响应客户端的请求。 首先,DWR的核心概念包括三个主要部分:`Engine`、`Configuration`和`...

    dwr开发学习例子

    1. **反向Ajax(Reverse Ajax)**:传统的Ajax是客户端发起请求,服务器响应。而DWR允许服务器主动推送数据到客户端,这种反向的模式在实时应用中特别有用,如聊天室或股票报价。 2. **Java对象到JavaScript对象的...

    DWR简单例子&中文文档

    DWR的核心在于它的反向Ajax机制,即服务器可以主动向客户端发送数据,而不仅仅是响应客户端的请求。它通过创建一个持久的HTTP连接,使得通信过程更加高效。在DWR中,Java对象被暴露为JavaScript接口,这样JavaScript...

    ajax 怎么设置超时(一个action执行了2遍)

    本文将深入探讨如何设置 AJAX 请求的超时,并解决一个具体的例子——一个 AJAX action 被执行了两遍的问题。 首先,我们需要了解 AJAX 请求的超时是在客户端设置的,通常通过 JavaScript 的 jQuery 库来实现。在 ...

Global site tag (gtag.js) - Google Analytics