`
kesun_shy
  • 浏览: 486400 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

DWR的使用

阅读更多

刚做一个项目用到了dwr这个技术。来跟大家分享一下

dwr的作用是反向ajax的推技术。主要实现就是即时的提醒。可以用来做流程的审批,在线的提醒等功能。

首先进行准备工作

1.搭好一个框架。实现登陆就可以。我用的是S2SH框架进行测试的。

2.搭好框架之后,加入dwr.jar包。进行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>  

        <convert converter="bean" match="com.test.model.User"/>  

        <create creator="new" javascript="MessageManager">  

             <param name="class" value="com.test.util.MessageManager"/>  

        </create>  

    </allow>  

</dwr> 

这个配置文件中,User是我用户实体类,MessageManager是用来做提醒控制的工具类,可以在JS里调用MessageManager里的方法,来实现即时提醒功能、

 

3.页面上需要添加的JS

dwr/interface/MessageManager.js

dwr/engine.js

dwr/util.js

js/messageInfo.js // 用来弹出提醒框

js/chat.js

function login() {

var userid = $("#userid").val();//页面是用jstl写一个hidden的input进行存放登陆人ID

/* 把登陆人ID传入java类中,当作KEY来存放进MAP */

MessageManager.sysUsersList(userid, true, function(data) {

});  

}   

/**  

* 页面初始化  

*/ 

function init() { 

dwr.engine.setActiveReverseAjax(true); // 激活反转 必须重要

login();

}   

window.onload = init;//页面加载完毕后执行初始化方法init

4.web.xml里的配置  很重要。配置不好,会无法弹出提醒框,或者反映迟缓

web.xml中配置 很重要

<!-- DWR2配置 -->

<servlet>

<servlet-name>dwr-invoker</servlet-name>

<servlet-class>

org.directwebremoting.servlet.DwrServlet

</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>true</param-value>

</init-param>

<init-param>

<param-name>activeReverseAjaxEnabled</param-name>

<param-value>true</param-value>

</init-param>

<init-param>

<param-name>initApplicationScopeCreatorsAtStartup</param-name>

<param-value>true</param-value>

</init-param>

<init-param>

<param-name>maxWaitAfterWrite</param-name>

<param-value>100</param-value>

</init-param>

<load-on-startup>4</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dwr-invoker</servlet-name>

<url-pattern>/dwr/*</url-pattern>

</servlet-mapping>

配置基本就结束了,然后我说一下我对dwr的理解。

 dwr主要就是内部实现了通过JS访问java实体类。在messageManager里需要一个MAP,我们可以当他是一个容器。当每个用户登陆的时候,可以会把ID,和当前登陆页面的sessionScript当作一个键值对存放入MAP中。然后前台添加消息时,可以在JS里调用MessgerManager中的一个发送方法进行提醒,发送方法中主要是实现取到接收人的ID,然后从MAP中把发送人的sessionScript取出,如果存在,就可以对那个页面进行弹出的操作。

弹出框的操作Util util = new Util(scriptSession);

                 util.addFunctionCall("showdiv","messageDiv",210,126,"您有新消息","新消息",msg);这样实现。dwr内部封装的方法,showdiv,messageDiv是在messageinfo.js里的一个显示方法,两个数字是长宽,一个大标题,一个小标题,msg是显示内容。

 

主要就是登陆时把类似页面对象的东西存起来,这个页面可以进行弹出操作。当进行发送消息这样的操作时,在JS里执行下后台的发送方法。取出存好的页面对象,完成发送。

 

 

把messageinfo.png改成messageinfo.js   chat.png改为chat.js   MessageManager.png改为MessageManager.java  文件传不上来。。杯具


  • 大小: 6.9 KB
  • 大小: 1.1 KB
  • 大小: 3.2 KB
分享到:
评论
1 楼 sunlifei 2011-08-25  
俺觉得你这篇博客写的相当的好啊 支持了 学习了~~

相关推荐

    DWR使用方法-step by step

    ### DWR使用方法详解:逐步指南 #### 一、引言 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它允许在浏览器端直接调用服务器端的方法,如同调用本地对象一样简单。本篇文章将从安装DWR、配置相关文件到...

    java dwr 使用例子

    对于初学者来说,这是一个很好的起点,它涵盖了DWR基本的使用方式和配置,同时也提供了一个可运行的示例,帮助理解Ajax通信的工作原理。通过深入学习和实践,你可以利用DWR构建更复杂的交互式Web应用。

    Ajax的DWR使用

    **Ajax的DWR使用** Direct Web Remoting (DWR) 是一种开源JavaScript库,它使得在Web应用程序中实现Ajax(Asynchronous JavaScript and XML)技术变得简单。DWR允许JavaScript与服务器端Java对象直接通信,无需编写...

    dwr 使用例子,一目了然

    标题"使用DWR的例子"暗示我们将讨论如何在实际项目中应用DWR。DWR的核心特性包括自动类型转换、安全机制、缓存管理以及错误处理等。在这个例子中,我们可能会看到如何配置DWR引擎,创建Java服务,以及在客户端...

    最完整的DWR入门文档及DWR使用案例

    这个“最完整的DWR入门文档及DWR使用案例”包含的资源无疑将帮助你深入理解和高效使用DWR。 首先,DWR的核心功能是提供了一种跨域的通信机制,使得前端JavaScript可以直接调用后端Java方法,就像操作本地函数一样,...

    一个简单的dwr使用示例

    这个"一个简单的dwr使用示例"旨在为初学者提供一个基础的DWR应用搭建教程。 一、DWR简介 DWR的核心功能是提供了动态的JavaScript到Java的调用,使得前端开发者可以在不刷新页面的情况下更新部分网页内容,提升用户...

    DWR使用步骤详解DWR使用步骤详解

    4. **反射机制**:根据`dwr.xml`的配置,DWR使用Java的反射机制动态地加载指定的类(例如,HelloWorld),实例化对象,并调用相应的方法(如test)。 5. **结果返回**:调用完成后,结果被序列化并返回到JavaScript...

    dwr使用入门总结

    dwr使用入门总结,适合想入门的dwr学者。

    dwr使用例子配置和使用

    下面我们将详细探讨DWR的配置和使用方法。 首先,配置DWR涉及以下几个关键步骤: 1. **引入DWR库**:在项目中添加dwr.jar,这是DWR的核心库,包含了所有必要的类和接口。 2. **创建Java类**:定义你需要在客户端...

    [DWR(Ajax)]DWR使用笔记.chm

    [DWR(Ajax)]DWR使用笔记.chm

    DWR使用步骤DWR使用步骤

    默认情况下,DWR使用异步方式发送请求,这意味着JavaScript中的调用可能不会按照预期顺序执行。如果需要同步执行,可以使用`DWREngine.setAsync(false)`来设置为同步方式。 3. **Servlet方法示例**: 例子中的`...

    ajax框架dwr使用的jar包

    ajax框架dwr使用的jar包,欢迎下载

    dwr使用文档

    ### dwr使用文档知识点梳理 #### 一、DWAR(Direct Web Remoting)简介 - **定义**:Direct Web Remoting (DWR) 是一种开源框架,它简化了客户端JavaScript与服务器端Java代码之间的交互。DWR使得JavaScript可以...

    dwr说明dwr说明dwr说明

    DWR (Direct Web ...总的来说,DWR提供了一种高效且易于使用的解决方案,使得开发者能够构建高度互动的Web应用,同时减少了传统AJAX技术的复杂性。通过学习和掌握DWR,你可以更轻松地创建动态、响应式的网页应用。

    DWR的使用方法

    **DWR(Direct Web Remoting)使用方法详解** DWR,全称为Direct Web Remoting,是一种开源Java技术,用于在Web应用程序中实现浏览器与服务器之间的实时双向通信。它允许JavaScript直接调用Java方法,就像它们在...

    DWR 框架使用手册

    DWR通过在客户端和服务器之间建立一个通信层,使得开发者可以轻松地在JavaScript中使用Java对象,极大地简化了前后端交互的复杂性。 DWR的核心组件包括: 1. **DWRServlet**:这是DWR的主要入口点,它是一个...

Global site tag (gtag.js) - Google Analytics