DWR实现消息推送

DWR,Direct Web Remoting 是一个开放源码的使用Apache许可协议的解决方案,它包含服务器端Java库、一个 DWR servlet以及 JavaScript库。,它的实现是基于Ajax的,可实现无刷新的效果。
这个框架最大的优点就是可以在JS中调用Java方法,传递参数,并且可以得到返回值。

不得不说Apache真的是良心组织,为开源社区做出了巨大贡献。我们都知道Apache的Logo是一片羽毛。印第安人把羽毛作为勇敢的象征,荣誉的标志,还经常插在帽子上,以向人炫耀。拥有鸟羽象征着勇敢、美貌与财富。Apache羽毛logo以及第一个站点均是由 ASF 的合伙人 Randy Terbush 在他位于内布拉斯加州的林肯市的卧室office 中所开发的,而这也是 Randy 注册 apache.org 域名的时间(1995年4月11日)。他当时标注的内容是:“作为一个团队,有幸选择‘Apache’作为其名称,是出于对印第安人发自内心的尊重,尤其 是,Apache 部落的组织方式……羽毛的神圣象征对于这些人来说简直是天作之合,颜色则是代表了我们这些 伴随 WWW 的出现的人,意味着‘觉醒’!”。

DWR 从 2.0开始增加了 push 功能 , 也就是在异步传输的情况下可以从 Web-Server 端发送数据到 Browser。

1:下载dwr.jar

放在你的Application的WEB-INF/lib目录下。
官方网址:http://directwebremoting.org/dwr/index.html

2:配置web.xml
<servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <servlet-class> org.directwebremoting.servlet.DwrServlet</servlet-class>
 </servlet>

<servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3:配置dwr.xml
<dwr>
<allow>
      <create creator="new" javascript="MessagePush">
       <param name="class" value="com.huatech.messageremind.service.MessagePush"/>
    </create>

     <create creator="new" javascript="TestPush">
       <param name="class" value="com.huatech.messageremind.service.Test"/>
    </create>
</allow>
</dwr>

javascript=”messagePush” ,messagePush 这个可以理解成别名,到时候页面中引用
param 中的value对应的代码文件 是自己定义的java类

4:页面应用

(1)应用3个JS

 <script type='text/javascript' src='dwr/engine.js'></script>
  <script type='text/javascript' src='dwr/util.js'></script>
  <script type="text/javascript" src="dwr/interface/MessagePush.js"></script> 

engine.js 文件 是dwr的引擎文件
util.js 是dwr自带的工具js
MessagePush.js 就是你在dwr.xml文件中配置的javaScript的别名

(2)在body页面的onload事件中加载几个javascript方法

<body onload="dwr.engine.setActiveReverseAjax(true);dwr.engine.setNotifyServerOnPageUnload(true,true);onPageLoad();dwr.engine.setErrorHandler(function(){});">  

dwr.engine.setActiveReverseAjax(true);
启动该页面的ReverseAjax功能

dwr.engine.setNotifyServerOnPageUnload(true,true); 这个就是当页面加载时,后台listen监听器去除失效的scriptSession,再创建新的scriptSession

onPageLoad();
自定义的javascript函数

dwr.engine.setErrorHandler(function(){});”
这个方法 防止项目已经关闭,客户页面还未关闭,页面会谈Error的问题

(3)调用后台方法
MessagePush.pageLoad();
MessagePush 是dwr.xml文件中定义的别名,pageLoad是我们在自定义后台java代码中自定义的java方法
关于参数:可以传多个。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十五楼亮哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值