dwr.xml 和 web.xml 不再多说,网上很多
jsp:
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/include/global.jsp"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=BIG5">
<title>Insert title here</title>
<script src="${pageContext.request.contextPath}/dwr/interface/SynMsg.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/dwr/engine.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/dwr/util.js" type="text/javascript"></script>
<script type="text/javascript">
function init() {
dwr.engine.setActiveReverseAjax(true);
}
function sendMessage() {
SynMsg.addMessage(dwr.util.getValue("producer"),dwr.util.getValue("consumer"),dwr.util.getValue("text"));
}
function receiveMessages(messages) {
var consumer = "${appConext_userName}";
var temp;
for (var data in messages) {
if(messages[data].consumer ==consumer && messages[data].text != ''){
temp = " " + dwr.util.escapeHtml(messages[data].text) + "" + temp;
}
}
dwr.util.setValue("chatlog", temp, { escapeHtml:false });
}
</script>
</head>
<body onload="dwr.engine.setActiveReverseAjax(true);sendMessage();">
<div id="demoDiv">
<p>
<input type="hidden" name="producer" value="${appConext_userName}"/>
consumer: <input id="consumer" name="consumer" />
Your Message:
<input id="text" onkeypress="dwr.util.onReturn(event, sendMessage)"/>
<input type="button" value="Send" onclick="sendMessage()"/>
</p>
<hr/>
<ul id="chatlog" style="list-style-type:none;">
</ul>
</div>
</body>
</html>
Java
public class SynMsg {
public static LinkedList<Msg> msgs = new LinkedList<Msg>();
/**
* @param text
* The new message text to add
*/
public void addMessage(String producer,String consumer,String text) {
// Make sure we have a list of the list 10 messages
if (StringUtils.isNotBlank(text)) {
System.out.println(producer+"--"+consumer+"--"+text);
msgs.addFirst(new Msg(producer, consumer, text));
while (msgs.size() > 10) {
msgs.removeLast();
}
}
// Clear the input box in the browser that kicked off this page only
Util.setValue("text", "");
// For all the browsers on the current page:
Browser.withCurrentPage(new Runnable() {
public void run() {
// Clear the list and add in the new set of messages
// Util.removeAllOptions("chatlog");
// Util.addOptions("chatlog", subMsgs("sgy"), "text");
ScriptSessions.addFunctionCall("receiveMessages", msgs);
}
});
}
分享到:
相关推荐
总结,通过这个简单的DWR聊天室实例,我们可以了解到DWR在实现动态Web应用中的重要作用,以及如何使用DWR来构建实时交互的Web系统。对于希望提升Web开发技能的开发者来说,深入学习DWR是一个值得投入的方向。
在这个场景中,我们关注的是DWR的三个不同版本的JAR文件:dwr2.0.5.jar、dwr2.0.6.jar以及dwr3.rc1.jar。 1. **DWR 2.0.x 版本**: DWR 2.0.x 是DWR的一个较早版本系列,其中2.0.5和2.0.6是两个连续的小版本更新。...
这个压缩包文件"dwrtest"很可能包含了9个经典的DWR实例,这些实例通常会展示DWR的主要功能和用法。以下是关于DWR的一些关键知识点的详细介绍: 1. **远程方法调用(RMI-like)**: DWR的核心特性是能够像本地方法一样...
在这个"Dwr做的一个聊天室例子"中,我们可以深入探讨DWR如何被用来创建一个简单的在线聊天系统。 1. **DWR基础** DWR的核心功能是提供了一个安全且高效的机制,使得JavaScript可以调用服务器端的Java方法,就像...
3. **实时更新**:DWR支持长轮询、WebSocket等技术,使得聊天室的消息能够实时显示在用户界面上。 **项目结构与工作流程** 1. **服务器端**:Spring配置了DWR的上下文,并提供了一个或多个Java类,这些类包含了处理...
### dwr实例教程知识点解析 #### 一、DWR简介及功能特点 DWR(Direct Web Remoting)是一种简化Ajax应用开发的技术框架。它能够使客户端的JavaScript代码直接调用服务器端的Java方法,实现数据的实时交互。与传统...
**基于DWR推送技术的聊天室** DWR(Direct Web Remoting)是一种JavaScript到Java的反向Ajax库,它允许Web应用在浏览器和服务器之间进行实时通信,从而实现动态、交互性强的Web应用。DWR的核心功能在于提供了一种...
在这个"Dwr3.x demo 实例 例子"中,我们可以学习到以下几个关键知识点: 1. **反转Ajax**:DWR的核心特性之一就是反转Ajax,它将传统的请求-响应模式反转过来,使得服务器可以直接调用客户端的JavaScript方法,而...
在本项目"jsp DWR框架推模式实现的聊天室"中,我们将探讨如何利用DWR的推送(Push)模式来构建一个实时的在线聊天应用。** 首先,我们需要了解DWR的基本工作原理。DWR通过在浏览器和服务器之间建立一个持久连接,...
Java+dwr 框架实现聊天室 Java+dwr框架实现聊天室是使用Java语言和dwr框架实现的服务器推技术,实现了实时通信的聊天室功能。下面将详细介绍该技术的实现过程和相关知识点。 一、dwr 框架简介 dwr(Direct Web ...
在这个"DWR3消息推送(聊天Demo)"项目中,开发者提供了一个使用DWR3实现的简单聊天应用,让我们来详细了解一下这个示例中的关键知识点。 首先,我们要理解DWR3的核心特性。DWR3是DWR(Direct Web Remoting)的第三个...
dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr实例dwr...
在"聊天DWR推送"实例中,我们可能会看到以下关键技术点: - **聊天室接口**:服务器端定义了一个或多个处理聊天消息的Java类,这些类提供了添加、获取和广播消息的方法。 - **JavaScript接口**:DWR自动生成了与...
1. **DWR配置**: 在DWR的配置中,我们需要在`dwr.xml`文件中定义允许JavaScript访问的Java类和方法。这通常包括对服务层(Service Layer)或业务逻辑层(Business Logic Layer)的类的映射。在这个例子中,可能有...
1. **配置DWR:** 首先需要在Web应用的`web.xml`中配置DWR的Servlet,设置允许的类和方法,以便JavaScript可以调用。 2. **创建Java服务:** 在SpringMVC的控制器中,创建一个处理消息推送的方法,可能涉及到数据库...
在本项目“学DWR时候写的一个简单的聊天室”中,DWR被用于实现用户之间的实时通信。用户可以通过浏览器发送消息,而无需刷新页面,因为DWR可以实现在后台与服务器进行通信并更新页面内容。 【Hibernate ORM框架】 ...
压缩包内的"chat(dwrAjax反转)"文件可能是DWR聊天室的示例,它展示了如何使用DWR的推技术实现一个简单的实时聊天应用。在这个示例中,用户可以通过JavaScript与服务器进行交互,发送消息,同时服务器也能在接收到新...
【标题】"DWR jquery 聊天室 SSH" 是一个基于特定技术栈构建的实时聊天应用程序。这个项目的核心在于整合了三个主要的开源技术:Direct Web Remoting (DWR), Spring Security (SSH), 和 jQuery。下面将详细介绍这三...
总结来说,DWR网页聊天室Demo为我们提供了一个学习和实践DWR技术的良好平台,它展示了如何使用DWR实现实时的浏览器与服务器通信,以及如何构建一个简单的在线聊天应用。通过研究和理解这个示例,开发者能够更好地...
本实例主要关注DWR的消息推送功能,这在创建实时更新的应用如聊天室、股票报价或在线游戏等场景中非常有用。 1. **DWR框架概述** DWR框架的核心是将Java对象暴露给JavaScript,使得前端可以像操作本地对象一样操作...