`
临听岗岗
  • 浏览: 9722 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

dwr +spring 实现数据推送

阅读更多

     dwr是java开发的轻量级框架,主要有两大核心功能:

     1:ajax,

     2:反ajax。

    这篇文章主要介绍dwr的反ajax功能

   需要dwr.jar文件,我的版本是3.0  

   定义一个推送消息的类

package com.alfa.service;

import java.util.Collection;

import org.directwebremoting.Browser;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.ScriptSessionFilter;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;

public class SendMsg {

	public void send(String msg){
		System.out.println(msg);
		final String autoMsg = msg;
		
		Browser.withPageFiltered("/spring_mvc_010/jms/showMsg.jsp",new ScriptSessionFilter() {
			
			@Override
			public boolean match(ScriptSession arg0) {
				
				return true;
			}
		}, new Runnable() {
			ScriptBuffer sBuffer = new ScriptBuffer();
			@Override
			public void run() {
				sBuffer.appendCall("show", autoMsg);

				Collection<ScriptSession> sessions = Browser.getTargetSessions();

				for (ScriptSession scriptSession : sessions) {
					scriptSession.addScript(sBuffer);
				}		
			}
		});
		
	}
	
}

 

 

  接收消息页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<script type="text/javascript" src="${ctx }/js/jquery.js"></script>
<script type="text/javascript" src="${ctx }/dwr/util.js"></script>
<script type="text/javascript" src="${ctx }/dwr/engine.js"></script>
<script type="text/javascript">
  $(function(){
	  
	  dwr.engine.setActiveReverseAjax(true);  
      
  });
 function show(msg){
	 $("#mess").append(msg);
 }
  
 </script>
<title>Insert title here</title>
</head>
<body>
<div id="mess">55</div>
</body>
</html>

 

发送信息的页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<script type="text/javascript" src="${ctx }/js/jquery.js"></script>
<script type="text/javascript" src="${ctx }/dwr/util.js"></script>
<script type="text/javascript" src="${ctx }/dwr/engine.js"></script>
<script type="text/javascript" src="${ctx }/dwr/interface/SendMsg.js"></script>
<script type="text/javascript">
  $(function(){
	  
	  dwr.engine.setActiveReverseAjax(true);  

  });
  
  function sendMess(){
	  
	  //SendMsg.send($("#msg").val());
	  
	   $.ajax({
		  type:'POST',
		  url:'${ctx}/user/sendMess.html',
		  success:function(data){
			  alert("邮件已发送!");
		  },
		  error:function(){
			  alert("邮件发送出错!");
		  }
		  
	  }); 
	  
  }

</script>
</head>
<body>
   <input type="text" id="msg"/>
   <input type="submit" value="发送邮件" onclick="sendMess()" />
</body>
</html>

 

 

web.xml配置

<servlet>
   <servlet-name>dwr-invoke</servlet-name>
   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
   <init-param>
     <param-name>debug</param-name>
     <param-value>true</param-value>
   </init-param>
   <init-param>
     <param-name>pollAndCometEnabled</param-name>
     <param-value>true</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dwr-invoke</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

 

dwr.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC 
 "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" 
 "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
 <!-- 定义所有需要被暴露的Java方法 --> 
     <allow>
  <!-- 定义将org.apache.struts2.validators.DWRValidator创建成一个validator对象 -->
          <create javascript="SendMsg" creator="spring">
            <param name="beanName" value="sendMsg"></param>
          </create>
     </allow>
     
</dwr>

 

 

 

至于类SendMsg的send方法可以随便调用

接受信息的页面最好是静态页面,我的一个动态页面没接受到,还请知道原因的大师留言哈

 

 

分享到:
评论

相关推荐

    使用dwr+spring实现消息推送

    在IT行业中,消息推送是一项重要的技术,它使得服务器能够实时地向客户端发送数据,而无需客户端不断地轮询请求。在本教程中,我们将探讨如何利用Direct Web Remoting (DWR) 和Spring框架来实现这样的功能。 DWR是...

    dwr+spring实现后台向前台推送实例

    本实例是在一些网络资料的基础上整合出来的一个:以后台向前台页面推送消息的一个完整实例工程,采用了spring、dwr反转,实现的是后台向前台不断推送消息,并管理相关用户退出;可以用在如定时任务的桌面消息提醒之...

    DWR+spring数据推送

    通过分析这些代码,我们可以深入理解DWR如何在Spring环境中实现数据推送,以及如何优化和调试这样的系统。 总的来说,DWR+Spring的数据推送解决方案能够为Web应用提供实时、高效的交互体验,是现代Web开发中的一个...

    用DWR comet+Spring实现服务器推送的例子--网页聊天室

    Comet是一种Web编程模式,用于实现服务器向客户端的持久连接,从而实现数据的即时推送。Spring框架是Java领域广泛使用的轻量级应用框架,它可以与DWR结合,帮助开发者更方便地管理服务和组件。 在这个例子中,我们...

    dwr+spring组合.rar

    1. 实时通信:DWR通过WebSocket或者Comet技术实现服务器推送,使得数据更新无需用户触发。 2. 易于使用:DWR提供了简单的API,让JavaScript与Java的交互变得简单。 3. 安全性:DWR支持安全配置,如CSRF(跨站请求...

    dwr+spring的聊天系统

    - **通信机制**:DWR的反向AJAX功能使得服务器可以主动推送消息到客户端,实现聊天的即时性。 4. **核心功能实现**: - **注册与登录**:用户通过输入用户名和密码进行注册和登录,这些信息通过DWR发送到服务器...

    springMVC+dwr技术实现消息推送实例

    传统的Ajax技术通常依赖于浏览器发起请求,而DWR则允许服务器主动向客户端推送数据,无需等待用户的操作。这种特性使得DWR在实时应用如聊天、股票报价、在线游戏等场景中非常有用。 **消息推送原理** 消息推送的...

    dwr+spring的jar.zip

    《Spring与DWR结合实现推送服务详解》 在现代Web应用开发中,实时交互和数据推送功能变得越来越重要。为了满足这一需求,开发者们通常会采用各种技术组合,其中Spring框架与Direct Web Remoting (DWR)的结合是常用...

    dwr3.0+spring2.5实现Comet消息推送DEMO

    实现Comet消息推送功能,根据登陆人定向推送,解决刷新页面原有ScriptSession不能及时销毁的问题,DEMO比较简陋,请先进入login.jsp页面登陆。根据登陆名称判断推送目标,可登陆多个用户进行测试。

    springMvc + dwr 注解 实现消息推送

    本项目结合了Spring MVC和Direct Web Remoting (DWR)框架,利用注解的方式实现了一种高效的消息推送机制,支持对单个用户进行精确推送以及向指定成员或群组发送消息。无需额外的配置修改,极大地简化了开发流程。 ...

    dwr spring服务器主动推送示例代码

    本示例将深入探讨如何使用DWR与Spring框架集成,实现服务器主动推送功能。 首先,我们需要理解DWR的核心概念: 1. **DWR Engine**: 是DWR的核心组件,它处理客户端和服务器之间的通信,包括JavaScript到Java的调用...

    Java Dwr+Spring

    3. **双向通信**:除了客户端可以调用服务器端的方法外,服务器端也可以主动推送数据到客户端。 4. **易于集成**:DWR可以很容易地与现有的Java Web应用程序集成。 ### Spring框架 Spring框架是一个开源的应用程序...

    dwr+java+mysql实现的推技术聊天

    DWR支持这种推送模式,可以显著提升用户体验,因为用户可以立即看到新消息,而无需手动刷新页面。 总结来说,这个项目涵盖了以下知识点: 1. Direct Web Remoting (DWR):用于实现JavaScript和Java之间的双向通信。...

    DWR3实现服务器端向客户端精确推送消息

    在“DWR3实现服务器端向客户端精确推送消息”这一主题中,我们将深入探讨如何利用DWR3进行服务器到客户端的消息推送,以及这种技术的优势和应用。 首先,理解DWR3的工作原理是至关重要的。DWR3通过建立一个安全的...

    DWR推送技术大全 dwr推送聊天实例

    总的来说,DWR推送技术通过Comet实现了高效的服务器到客户端的数据推送,简化了实时Web应用的开发。结合提供的源码示例"j-jetty-dwr-comet-src",开发者可以深入理解DWR的工作原理,并学习如何在实际项目中应用这项...

    dwr在线聊天室,实时推送

    dwr 在线聊天室demo,实现在线聊天实时刷新技术。里面还有 3三个demo 有dwr+spring ,dwr+struts2 ,纯dwr. 只有charForDemo这个工程能用! 其他的可以参考一下,有问题QQ woshilouhefeng@vip.com ,QQ:652550936(这...

    dwr后台推送

    在本文中,我们将深入探讨DWR的后台推送技术,包括DWR 2.0、3.0以及与Spring集成的3.0+版本的实现方式,并结合提供的文件资源进行解析。 首先,让我们来看看DWR 2.0的推送技术。在DWR 2.0中,后台推送主要通过...

    spring mvc+dwr环境配置

    通过这些步骤的配置,可以实现在Spring MVC应用程序中使用DWR进行服务器到客户端的实时数据推送。这一整套流程对于初学者来说可能稍显复杂,但掌握了之后可以大幅提高Web应用程序的交互性和用户体验。

    spring3+dwr3实现聊天功能

    DWR3中的Server Push特性是其亮点,它能够主动将服务器端的数据推送到客户端,非常适合用于实时聊天系统,因为它可以及时将新消息推送给所有在线用户。 实现聊天功能,首先我们需要配置Spring3的环境,包括创建...

    dwr+s2sh+反推

    DWR的核心特性是反向AJAX,即服务器可以主动推送数据到客户端,而不仅仅是响应用户的请求,这大大增强了Web应用的用户体验。 S2SH框架是Struts2、Spring和Hibernate的集成,这是一种常见的MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics