DWR3.0(Direct Web Remoting)实践
2013-10-10 15:28
155 查看
“DWR is a Java library that enables Java on the server and JavaScript in a browser to interact and call each other as simply as possible. With Reverse Ajax, DWR allows Java code running on a server to use client side APIs to publish updates to arbitrary groups of browsers. This allows interaction 2 ways - browser calling server and server calling browser. DWR supports Comet, Polling and Piggyback (sending data in with normal requests) as ways to publish to browsers.”
上面的话是DWR官网给出的,浏览器请求服务器是很容易做到的,但是服务端主动与浏览器客户端的交互是一个难点。
如果服务端主动而且实时的往浏览器上push数据,有哪些办法可以做到呢?
1. 浏览器ajax请求
浏览器被动利用ajax每隔一段时间进行请求,这样的做法有些盲目且给服务端带来较大的压力。
2. 利用reverse ajax技术
服务端可以主动调用客户端的js函数,来多浏览器的内容进行实时的更新,下面通过一个实例对DWR的reverse ajax技术进行更深入的理解。
首先,需要说明的是DWR是一个基于Java的开源library,所以实例的服务端语言限定在Java;其次,这个例子的目的是服务端主动而且实时的网客户端的textarea中写数据,达到模拟console输出的效果。
在eclipse的Dynamic Web Project类型的项目中进行如下的配置开发:
1. 导入dwr.jar和commons-logging.jar
2. 配置web.xml
web.xml中加入如下的配置:
4. 服务端Java开发
服务端如果想往客户端push数据,在Java代码中调用sendMsg函数即可。
Reference: http://directwebremoting.org/dwr/index.html
From WizNote
上面的话是DWR官网给出的,浏览器请求服务器是很容易做到的,但是服务端主动与浏览器客户端的交互是一个难点。
如果服务端主动而且实时的往浏览器上push数据,有哪些办法可以做到呢?
1. 浏览器ajax请求
浏览器被动利用ajax每隔一段时间进行请求,这样的做法有些盲目且给服务端带来较大的压力。
2. 利用reverse ajax技术
服务端可以主动调用客户端的js函数,来多浏览器的内容进行实时的更新,下面通过一个实例对DWR的reverse ajax技术进行更深入的理解。
首先,需要说明的是DWR是一个基于Java的开源library,所以实例的服务端语言限定在Java;其次,这个例子的目的是服务端主动而且实时的网客户端的textarea中写数据,达到模拟console输出的效果。
在eclipse的Dynamic Web Project类型的项目中进行如下的配置开发:
1. 导入dwr.jar和commons-logging.jar
2. 配置web.xml
web.xml中加入如下的配置:
3. 配置dwr.xml 与web.xml同级的目录中新建dwr.xml并进行如下配置: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://getahead.org/dwr/dwr10.dtd"> <dwr> <allow> <create creator="new" javascript="Demo"> <param name="class" value="com.demo.redirect.DwrDemo"/> create> allow> dwr>
4. 服务端Java开发
/DeNA_Dynamic/index.html即/项目名称/page名称,show为前端的js函数,msg为参数。 5. 客户端JavaScript开发 $(document).ready(function(){ dwr.engine.setActiveReverseAjax(true); }); function show(msg){ var textarea = $("#text").append(msg+"\n"); textarea.scrollTop(textarea[0].scrollHeight - textarea.height()); }
服务端如果想往客户端push数据,在Java代码中调用sendMsg函数即可。
Reference: http://directwebremoting.org/dwr/index.html
From WizNote
相关文章推荐
- DWR (Direct Web Remoting)
- DWR(Direct Web Remoting)
- dwr(Direct Web Remoting)的使用
- DWR(Direct Web Remoting)是什么
- 面向Java开发人员的Ajax: 结合DWR(Direct Web Remoting)使用Ajax
- DWR(Direct Web Remoting)
- ExtJS 4 组件化编程,动态加载,面向对象,Direct结合成功,目前为止我的最佳实践
- 通往AJAX之捷径:DWR(Direct web Remoting)
- DWR (Direct Web Remoting)
- centos7+ docker1.12 实践部署docker及配置direct_lvm
- DWR(Direct Web Remoting)
- 面向Java开发人员的Ajax:结合Direct Web Remoting
- 评"软件工程项目管理:功能点分析方法与实践"
- 项目管理实践【三】每日构建【Daily Build Using CCNET and MSBuild】
- CJCMS系列---慢慢讲电子商务在项目中的实践之前言
- 大数据:技术与应用实践指南
- 第十二周上机实践项目——c#之随机向左移动的小动画
- wifi direct
- github入门实践(多人协作中分支的推送与抓取)
- 第一周《C语言及程序设计》实践项目7 分支结构程序体验