`
csyakka
  • 浏览: 5060 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dwr3.0 反推

    博客分类:
  • ajax
阅读更多

      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>

 

 

 

 

分享到:
评论

相关推荐

    dwr3.0文档和jar包

    DWR 3.0是该技术的一个版本,提供了许多增强的功能和改进,旨在简化开发过程并提高性能。 在DWR 3.0中,有几个核心概念和技术点值得深入探讨: 1. **AJAX通信**:DWR的核心功能是通过AJAX(Asynchronous ...

    dwr3.0.jar

    DWR3.0是DWR的一个重要版本,它提供了许多增强的功能和改进,以提高开发者的工作效率和用户体验。 DWR的核心功能在于它提供了一种安全且高效的方式,使得JavaScript可以调用服务器端的Java方法,仿佛这些方法就在...

    dwr3.0.jar_ajax

    标题中的“dwr3.0.jar_ajax”暗示了这个压缩包包含了DWR3.0的核心库文件,即dwr3.0.jar。这个JAR文件是DWR的核心组件,包含了所有必需的类和资源,使得开发者可以在服务器端与JavaScript进行交互,实现异步更新和...

    DWR3.0 jar包API文档

    DWR3.0是DWR的一个重要版本,它提供了许多增强的功能和改进,使得开发人员能够更高效地构建动态、交互式的Web应用。 DWR3.0的JAR包包含了所有必要的类和资源,用于在服务器端集成DWR框架。这个JAR文件通常会包含...

    dwr dwr包 dwr3.0文档 dwr3.0.jar

    DWR3.0是该框架的一个版本,提供了许多增强的功能和改进,使得开发人员可以更加便捷地构建富互联网应用程序(RIA)。 在DWR3.0中,有几个核心概念和技术点值得深入探讨: 1. **AJAX 支持**: DWR通过AJAX技术使...

    dwr3.0+SSH2

    【标题】"dwr3.0+SSH2"是一个基于Java技术的Web应用程序开发框架的组合,其中DWR(Direct Web Remoting)是用于在浏览器和服务器之间进行实时通信的库,而SSH2则通常指的是Struts2、Spring和Hibernate这三大开源框架...

    DWR3.0官方中文入门教程以及dwr3.0jar

    DWR3.0是该技术的一个重要版本,提供了许多增强的功能和改进,使得开发人员能够更高效地构建富互联网应用程序(RIA)。 本入门教程主要涵盖了以下知识点: 1. **DWR的基本概念**:DWR的核心理念是通过JavaScript在...

    dwr3.0搭建与讲解

    在本教程中,我们将深入探讨DWR 3.0的搭建过程以及其基本概念。 ### 1. DWR 3.0 概述 DWR 3.0 是DWR项目的一个重要版本,它提供了改进的性能和更多的特性。DWR的核心理念是打破浏览器与服务器之间的障碍,使得...

    dwr3.0以及相关中文文档

    DWR 3.0是该框架的一个版本,提供了增强的功能和性能改进。在这个版本中,DWR提供了更友好的API,增强了安全性,并支持更多的数据类型转换。 DWR的核心功能在于它能够自动处理JavaScript对象与Java对象之间的映射,...

    dwr3.0反向实例

    在"DWR 3.0反向实例"中,我们将深入探讨这个版本的新特性、配置过程以及如何通过一个简单的Clock实现来演示其工作原理。 DWR 3.0相对于早期的2.0版本,引入了一些重要的改进,包括性能提升、错误处理机制的优化以及...

    dwr-3.0.jar

    最新dwr3.0的包,有需要的朋友就下载吧

    DWR3.0.jar、DWR.war和DWR2.0中文说明文档

    这个压缩包包含了DWR的三个关键组件:DWR3.0.jar,DWR的实例war文件,以及DWR2.0的中文说明文档。以下是关于这些组件的详细知识: 1. **DWR3.0.jar**: DWR3.0.jar是DWR框架的核心库,包含所有必需的类和接口,...

    DWR3.0实现下载

    《DWR3.0实现下载》 DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript和服务器端的Java代码进行交互,从而实现在Web应用中进行动态的Ajax更新。在DWR 3.0版本中,开发者可以更加方便地处理文件下载...

    dwr3.0.rar

    通过解压 "dwr3.0.rar",你将获得DWR 3.0的完整源码、文档、示例以及部署所需的资源。这将帮助你深入了解DWR的工作原理,并在实际项目中快速应用。对于学习和开发基于Java的Web应用,特别是需要利用AJAX技术来提升...

    dwr3.0 jar noncla

    DWR3.0版本是其一个重要的迭代,它引入了多项改进和新特性。在这个讨论中,我们将深入探讨DWR3.0、"noncla"组件以及它与JSF(JavaServer Faces)和Spring框架的集成。 首先,DWR3.0的主要亮点在于其增强了性能和...

    DWR3.0自己学习时的资料(jar包帮助文档等)

    DWR3.0是DWR的一个重要版本,它提供了许多增强的功能和改进,使得开发人员能够更高效地构建动态、交互式的Web应用。 DWR的核心功能包括: 1. **远程方法调用(RMI-like)**:DWR允许JavaScript代码直接调用服务器端...

    DWR3.0应用

    **DWR3.0应用详解** DWR (Direct Web Remoting) 是一种JavaScript库,它允许Web应用程序在客户端和服务器之间进行实时通信,无需刷新页面。DWR3.0是其一个重要版本,提供了对现代浏览器的支持,包括新版的Opera,但...

    DWR3.0 全部文件

    DWR3.0是其一个重要版本,带来了许多改进和新特性,使得开发人员能够更方便地实现AJAX功能。 在"**DWR3.0全部文件**"中,我们可以期待找到一系列资源,包括但不限于: 1. **DWR3.0的API文档**:这个文档提供了关于...

    Dwr3.0 与 Dwr2.0 区别

    ### DWR 3.0 与 DWR 2.0 的区别 DWR(Direct Web Remoting)是一种用于简化 AJAX 应用程序开发的技术。它允许客户端 JavaScript 直接调用服务器端 Java 方法,从而降低了 AJAX 编程的复杂度。DWR 的最新版本为 3.0...

Global site tag (gtag.js) - Google Analytics