dwr3.0中采用的是线程阻塞的方式实现的。下面的是其实现方式。
首先加入dwr3.0的支持包。
后台模拟聊天的Message类 Message.java
package com.fendou;
public class Message {
public Message(String newtext) { id = System.currentTimeMillis(); text = newtext; if (text.length() > 256) text = text.substring(0, 256); }
public long getId() { return id; }
public String getText() { return text; }
private long id; private String text; }
|
后台模拟聊天实现类 JavaChat.java
package com.fendou;
import java.util.LinkedList;
import org.directwebremoting.Browser; import org.directwebremoting.ScriptSessions; import org.directwebremoting.ServerContextFactory; import org.directwebremoting.ui.dwr.Util;
public class JavaChat {
//模拟添加消息的方法 public void addMessage(String text) { if (text != null && text.trim().length() > 0) { messages.addFirst(new Message(text)); while (messages.size() > 10) { messages.removeLast(); } } Util.setValue("text", "");
String page = ServerContextFactory.get().getContextPath() + "/test.jsp"; //通过Brower对象来操作
Browser.withPage(page, new Runnable() { public void run() {
Util.removeAllOptions("chatlog"); Util.addOptions("chatlog", messages, "text"); } }); }
private final LinkedList<Message> messages = new LinkedList<Message>(); }
|
web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <!-- 配置成反转的方式,一定要配置 --> <init-param> <param-name>activeReverseAjaxEnabled</param-name> <param-value>true</param-value> </init-param>
<init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
</web-app>
|
dwr.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr> <allow> <create creator="new" scope="application"> <param name="class" value="com.fendou.JavaChat" /> </create> <convert converter="bean" match="com.fendou.Message" /> </allow> </dwr>
|
test.jsp文件
<!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>DWR Thin Chat Version 2.0</title> <script type='text/javascript' src='/ReverseAjax/dwr/interface/JavaChat.js'></script> <script type='text/javascript' src='/ReverseAjax/dwr/engine.js'></script> <script type='text/javascript' src='/ReverseAjax/dwr/util.js'></script>
<script type="text/javascript"> function sendMessage() { JavaChat.addMessage(dwr.util.getValue("text")); } </script>
</head>
<body onload="dwr.engine.setActiveReverseAjax(true); "> <h1> Java Chat </h1> <div id="tabContents">
<div id="demoDiv"> <p> 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> </div> </body> </html>
|
分享到:
相关推荐
DWR 3.0是该技术的一个版本,提供了许多增强的功能和改进,旨在简化开发过程并提高性能。 在DWR 3.0中,有几个核心概念和技术点值得深入探讨: 1. **AJAX通信**:DWR的核心功能是通过AJAX(Asynchronous ...
DWR3.0是DWR的一个重要版本,它提供了许多增强的功能和改进,以提高开发者的工作效率和用户体验。 DWR的核心功能在于它提供了一种安全且高效的方式,使得JavaScript可以调用服务器端的Java方法,仿佛这些方法就在...
标题中的“dwr3.0.jar_ajax”暗示了这个压缩包包含了DWR3.0的核心库文件,即dwr3.0.jar。这个JAR文件是DWR的核心组件,包含了所有必需的类和资源,使得开发者可以在服务器端与JavaScript进行交互,实现异步更新和...
DWR3.0是DWR的一个重要版本,它提供了许多增强的功能和改进,使得开发人员能够更高效地构建动态、交互式的Web应用。 DWR3.0的JAR包包含了所有必要的类和资源,用于在服务器端集成DWR框架。这个JAR文件通常会包含...
DWR3.0是该框架的一个版本,提供了许多增强的功能和改进,使得开发人员可以更加便捷地构建富互联网应用程序(RIA)。 在DWR3.0中,有几个核心概念和技术点值得深入探讨: 1. **AJAX 支持**: DWR通过AJAX技术使...
【标题】"dwr3.0+SSH2"是一个基于Java技术的Web应用程序开发框架的组合,其中DWR(Direct Web Remoting)是用于在浏览器和服务器之间进行实时通信的库,而SSH2则通常指的是Struts2、Spring和Hibernate这三大开源框架...
DWR3.0是该技术的一个重要版本,提供了许多增强的功能和改进,使得开发人员能够更高效地构建富互联网应用程序(RIA)。 本入门教程主要涵盖了以下知识点: 1. **DWR的基本概念**:DWR的核心理念是通过JavaScript在...
在本教程中,我们将深入探讨DWR 3.0的搭建过程以及其基本概念。 ### 1. DWR 3.0 概述 DWR 3.0 是DWR项目的一个重要版本,它提供了改进的性能和更多的特性。DWR的核心理念是打破浏览器与服务器之间的障碍,使得...
DWR 3.0是该框架的一个版本,提供了增强的功能和性能改进。在这个版本中,DWR提供了更友好的API,增强了安全性,并支持更多的数据类型转换。 DWR的核心功能在于它能够自动处理JavaScript对象与Java对象之间的映射,...
在"DWR 3.0反向实例"中,我们将深入探讨这个版本的新特性、配置过程以及如何通过一个简单的Clock实现来演示其工作原理。 DWR 3.0相对于早期的2.0版本,引入了一些重要的改进,包括性能提升、错误处理机制的优化以及...
最新dwr3.0的包,有需要的朋友就下载吧
这个压缩包包含了DWR的三个关键组件:DWR3.0.jar,DWR的实例war文件,以及DWR2.0的中文说明文档。以下是关于这些组件的详细知识: 1. **DWR3.0.jar**: DWR3.0.jar是DWR框架的核心库,包含所有必需的类和接口,...
《DWR3.0实现下载》 DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript和服务器端的Java代码进行交互,从而实现在Web应用中进行动态的Ajax更新。在DWR 3.0版本中,开发者可以更加方便地处理文件下载...
通过解压 "dwr3.0.rar",你将获得DWR 3.0的完整源码、文档、示例以及部署所需的资源。这将帮助你深入了解DWR的工作原理,并在实际项目中快速应用。对于学习和开发基于Java的Web应用,特别是需要利用AJAX技术来提升...
DWR3.0版本是其一个重要的迭代,它引入了多项改进和新特性。在这个讨论中,我们将深入探讨DWR3.0、"noncla"组件以及它与JSF(JavaServer Faces)和Spring框架的集成。 首先,DWR3.0的主要亮点在于其增强了性能和...
DWR3.0是DWR的一个重要版本,它提供了许多增强的功能和改进,使得开发人员能够更高效地构建动态、交互式的Web应用。 DWR的核心功能包括: 1. **远程方法调用(RMI-like)**:DWR允许JavaScript代码直接调用服务器端...
**DWR3.0应用详解** DWR (Direct Web Remoting) 是一种JavaScript库,它允许Web应用程序在客户端和服务器之间进行实时通信,无需刷新页面。DWR3.0是其一个重要版本,提供了对现代浏览器的支持,包括新版的Opera,但...
DWR3.0是其一个重要版本,带来了许多改进和新特性,使得开发人员能够更方便地实现AJAX功能。 在"**DWR3.0全部文件**"中,我们可以期待找到一系列资源,包括但不限于: 1. **DWR3.0的API文档**:这个文档提供了关于...
### DWR 3.0 与 DWR 2.0 的区别 DWR(Direct Web Remoting)是一种用于简化 AJAX 应用程序开发的技术。它允许客户端 JavaScript 直接调用服务器端 Java 方法,从而降低了 AJAX 编程的复杂度。DWR 的最新版本为 3.0...