`
evilgod
  • 浏览: 48306 次
社区版块
存档分类
最新评论

Dwr反转Ajax

阅读更多
1. web.xml中需要增加的配置
<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>pollAndCometEnabled</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>crossDomainSessionSecurity</param-name>
      <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
pollAndCometEnabled表示开启“推”模式,crossDomainSessionSecurity表示允许跨域
2. 与web.xml同一目录增加dwr.xml的配置文件:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 0.4//EN" "http://www.getahead.ltd.uk/dwr/dwr.dtd"> 
<dwr>
  <allow>
    <create creator="new" javascript="AlarmRegister"  scope="session">
      <param name="class" value="com.zg.alarm.AlarmRegister" />
     <include method="register" />
    </create>
  </allow>
</dwr>
com.zg.alarm.AlarmRegister是页面中调用向服务器注册接收“alarmchange”事件的类;
<include method="register" />是该类公布出来提供给前台页面调用的方法。
3. 前台页面:
Bottom.html:

<!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=gb2312">
<title>无标题文档</title>
<script type='text/javascript' src='/common/js/util.js'></script>
<script type="text/javascript" src="/dwr/engine.js"></script>
<script type='text/javascript' src='/dwr/interface/AlarmRegister.js'> </script>
<SCRIPT>
<!--
function showAlarm(alarmType){

var alarm = $("alm");
alarm.innerHTML="<MARQUEE DIRECTION=left BEHAVIOR=SCROLL SCROLLAMOUNT=10 SCROLLDELAY=200 LOOP=1><font size=3pt>告警发生变化</font></MARQUEE>";
//getMsg();
}
//-->
</SCRIPT>
</head>
<body onload="DWREngine.setActiveReverseAjax(true);AlarmRegister.register();">
<div id="alm">
</div>
</body>
</html>


<script type='text/javascript' src='/common/js/util.js'></script>
<script type="text/javascript" src="/dwr/engine.js"></script>是需要导入的javascript文件

AlarmRegister是在dwr.xml中<create creator="new" javascript="AlarmRegister"  scope="session">公布出来的,它会由dwr框架为我们自动生成。

页面中showAlarm方法负责显示告警发生变化,当后台接收到事件时会调用这一方法。

在本页面初始化时调用DWREngine.setActiveReverseAjax(true),表示开启ajax反转功能。AlarmRegister.register()会调用到后台的com.zg.alarm.AlarmRegister类的register方法。

4. 事件注册类:
AlarmRegister.java

public class AlarmRegister {
    public AlarmRegister() {
    }

    public void register(){
        WebContext wctx = WebContextFactory.get();
        final ScriptSession scriptSession = wctx.getScriptSession();
        OmlServerManager.getInstance().registerEventProcess(new AlarmEventProcessor(scriptSession),"alarmchange");
    }
}
向OmlServerManager注册alarmchange事件,注意的是必须把scriptSession传给事件相应类AlarmEventProcessor。

5. 事件相应类:

AlarmEventProcessor.java
public class AlarmEventProcessor implements EventProcessorInterface{
    private ScriptSession scriptSession;

    public AlarmEventProcessor(ScriptSession scriptSession) {
        this.scriptSession=scriptSession;
    }


    public void processEventMsg(String string) {
        System.out.println(string);
    }

    public void processEventMsg(OmlPDU omlPDU) {
        ScriptBuffer scriptBuffer = new ScriptBuffer();

        scriptBuffer.appendScript("showAlarm(")
                .appendData("123")
                .appendScript(");");
        scriptSession.addScript(scriptBuffer);
   
    }
  }
scriptBuffer.appendScript("showAlarm(")
                .appendData("123")
                .appendScript(");");
这一代码将产生对前台页面中javascript  showAlarm方法的调用
  • dwr.rar (348.8 KB)
  • 下载次数: 1383
分享到:
评论
1 楼 crabboy 2008-07-11  
这贴很少经典,dwr推模式。
能否将代码贴全罗

相关推荐

    dwr反转AJAX聊天源码

    标题中的“dwr反转AJAX聊天源码”是指使用DWR库构建的一个聊天应用程序,其核心功能是实现实时的消息传递。这个源码示例可能包括了服务器端的Java代码,用于处理聊天消息的接收和发送,以及客户端的HTML、JavaScript...

    dwr3 反转ajax例子

    这种“反转Ajax”概念的核心在于,它不再需要传统的Ajax请求模式,即通过XMLHttpRequest对象手动构造和发送请求,而是由DWR自动处理这些细节,开发者可以专注于业务逻辑。 首先,我们需要在服务器端设置DWR配置。这...

    Dwr 推例子 反转 ajax dwr dwr推群聊 dwr聊天系统源码 聊天系统 广播系统

    DWR的核心特性是反转Ajax,即允许Java方法直接在客户端调用,仿佛它们是本地JavaScript函数一样,这大大简化了Web应用的开发。 **1. DWR的反转Ajax** 反转Ajax是DWR的关键特性,它将传统的请求-响应模型转变为一种...

    SSH框架整合DWR推反转AJAX技术做的聊天室

    没事的时候自己写的一个聊天室,用了SSH框架整合DWR推反转AJAX技术,可能有一些不合理的地方,但实现了聊天室的基本功能,希望给大家一些帮助。需要大家根据spring配置文件,配置下Mysql数据库,建一张用户表就可以...

    DWR示例与spring集成

    **DWR反转Ajax**是DWR的一个核心特性,它使得开发者可以在服务器端编写业务逻辑,然后直接调用这些逻辑,而无需关心前端如何触发请求。这种模式下,服务器可以主动向客户端推送数据,而不仅是响应客户端的请求,提高...

    dwr反转实现及时聊天

    下面将详细介绍如何在Spring MVC项目中利用DWR反转实现即时聊天。 首先,我们需要引入必要的依赖库。如描述中提到,我们需要添加以下三个JAR包到项目的类路径中: 1. `commons-logging-1.1.3.jar`:Apache Commons...

    spring+ibatis+struts2+dwr反转

    这个项目"spring+ibatis+struts2+dwr反转"整合了四个关键的Java Web开发组件,它们分别是Spring、iBatis、Struts2和Direct Web Remoting (DWR)。下面将详细介绍这些技术及其在项目中的作用。 1. **Spring框架**:...

    DWR dwr 2.0 dwr推 推 反转ajax 聊天系统 广播系统 字符串加密 历史记录 推技术 聊天系统源码 源码 注释

    这是,以上两个版本的升级版,在原有的基础上,增加了 清空聊天记录,上线通知,用户id,及登录的所在地(ip),聊天信息可选择颜色, ps: 测试的时候记得将 info.txt(聊天信息保存文件) 绝对路径覆盖源码中,以前的路径,

    spring+ibatis+struts2+dwr反转部分架包

    【标题】"spring+ibatis+struts2+dwr反转部分架包"涉及的是一个经典的Java Web开发技术栈,这个组合被广泛应用于构建基于服务端的动态Web应用程序。以下是这四个关键技术的详细介绍: 1. **Spring框架**:Spring是...

    dwr推技术反转聊天事例

    在“dwr推技术反转聊天事例”中,我们将探讨DWR如何用于构建一个实时的聊天应用程序,并分析其中的关键知识点。 首先,我们需要理解DWR的核心概念。DWR允许JavaScript在浏览器端直接调用服务器端的Java方法,而无需...

    dwr3.x demo 实例 例子

    1. **反转Ajax**:DWR的核心特性之一就是反转Ajax,它将传统的请求-响应模式反转过来,使得服务器可以直接调用客户端的JavaScript方法,而无需用户触发。这极大地简化了Ajax的使用,并增强了用户体验,因为服务器...

    dwr小项目及资料

    DWR的核心理念是反转AJAX调用,也就是说,不仅前端可以调用后端,后端也可以主动调用前端的JavaScript函数。 标题中的“dwr小项目及资料”暗示我们这是一套关于DWR的实践项目和学习资源,可能包含了一些示例代码和...

    dwr推技术实现服务器推送数据

    DWR的独特之处在于它的“反转Ajax”(Reverse Ajax)概念,即服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求。这在股票实时显示等需要即时更新信息的应用场景中非常有用。 在"股票实时显示"的应用...

    java+dwr框架实现聊天室

    使用服务器推技术(反转AJAX) &lt;param-name&gt;activeReverseAjaxEnabled &lt;param-value&gt;true ... 五、ChatManager.java 类 ChatManager.java 类是实现聊天室的核心类,主要负责处理聊天相关逻辑。该类包括以下...

    dwr实例,JavaScript调用java方法的小例子

    2. **反转Ajax**:DWR的核心概念是“反转Ajax”,即不再由服务器决定何时与客户端通信,而是由客户端决定何时调用服务器的方法。这使得用户体验更加流畅,因为交互是根据用户的操作即时触发的。 3. **Java类转换为...

    SSH框架+Ajax(运用dwr框架)综合实例

    通过这种方式,SSH框架提供了业务逻辑和数据访问,而Ajax(DWR)则增强了用户界面的交互性,使得Web应用具有更好的响应性和用户体验。 总结来说,SSH框架+Ajax(DWR)的组合提供了一种强大的开发模式,能够构建复杂...

    DWR 在线即时聊天系统,实现了对指定用户发送消息,和即时显示功能

    现在DWR的反转AJAX功能.允许我们从服务器端来控制客服端.而不需要客户端来请求.服务器可以自动把消息发给指定的客户端! 我不能把公司的代码贴出来,所以我自己写了一个DEMO,已经实现了对指定用户发送消息的功能,...

    spring与dwr整合(简单)

    Spring 和 Direct Web Remoting (DWR) 的整合是将 Spring 框架的依赖注入和控制反转特性与 DWR 的动态 Web 接口相结合,从而实现客户端 JavaScript 和服务器端 Java 代码之间的无缝交互。这种整合使得开发人员可以...

    spring mvc 自动注入+dwr

    DWR 是一个 Java 工具,它允许 JavaScript 在浏览器中直接调用服务器上的 Java 方法,从而实现异步更新页面,提供类似 AJAX 的用户体验。DWR 提供了简单的 API 和自动转换机制,使得与 Java 对象的交互变得简单。 1...

Global site tag (gtag.js) - Google Analytics