Dwr初认识
来源:互联网 发布:网络用语奶是什么意思 编辑:程序博客网 时间:2024/05/22 10:51
转载地址:http://blog.csdn.net/u013628152/article/details/52069501
1、介绍
是一个框架,允许JavaScript通过DWR访问服务器上的Java代码。
2、组成和原理
基于AJAX的框架,包含两个主要部分:
一个运行在服务器端的JavaServlet,它处理请求并且向浏览器发回响应;
一个运行在浏览器端的Javascript,它发送请求而且能动态更新网页。
DWR的工作原理是,通过反射,将java翻译成javascript,然后利用回调机制,轻松实现了javascript调用Java代码
大大简化了编写ajax的工作量,它不需要任何网页浏览器插件就能运行在网页上。
3:优点
(1)浏览器兼容;
(2)json的封装;
(3)多种对象的转换;
(4)可以写更少的JS代码,做更多的事情。
4:应用
注意怎么应用,可以参考前一篇文章。《DWR消息推送技术》
(这个标题有点狭隘O(∩_∩)O~)
- 1
- 2
- 3
- 1
- 2
- 3
页面引用了三个js,第一个js是dwr的引擎,第二个js是dwr的工具类,第三个js是dwr自动生成的。
当访问页面时,并执行engine.js时,由于在web.xml配置了/dwr路径。
(注意:在web.xml中配置DwrServlet的url-pattern,需要指到engine.js引擎所在的目录,否则DWR无法自动生成js文件)
DWR的DwrServlet会处理请求,然后将engine.js以流的形式发送给浏览器,
根据dwr.xml配置的class路径,找到对应的java类,根据java类自动生成MessagePush.js,并同样以流的形式发送给浏览器,MessagePush.js都可以在浏览器的缓存里找到。
dwr.xml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
java代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
//广播
public static void sendBroadcastMessage(final String message) {
Browser.withPage(“/dwr/”,new Runnable(){
public void run(){
ScriptSessions.addFunctionCall(“showMessage”, message);
}
});
}
}
自动生成的MessagePush.js
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
可见,当我们在页面中使用MessagePush.sendMessageSingle(param);
调用服务器端Java的方法sendMessageSingle()时,实际上是执行是
dwr.engine._execute(p._path, ‘MessagePush’, ‘sendMessageSingle’, arguments);该请求同样被DwrServlet处理,然后在dwr.xml中查询到MessagePush的对应项目,然后根据配置信息,自己根据反射生成对象或者由spring注入对象,然后调用方法sendMessageSingle() ,将处理结果返回给浏览器,最后执行回调函数.
- Dwr初认识
- 初步认识DWR框架
- 闲谈DWR1 —DWR的初步认识
- 2. Comet 与DWR推送技术认识
- dwr
- dwr
- dwr
- DWR
- DWR
- DWR
- dwr
- dwr
- DWR
- DWR
- DWR
- dwr
- dwr
- dwr
- 【LeetCode】 416. Partition Equal Subset Sum
- js中object类型中的三个方法
- 一文搞懂HMM(隐马尔可夫模型)
- 【JZOJ 3870】单词检索
- Android学习之模块化过程多渠道编译详解
- Dwr初认识
- uva 11987 带删除的并查集
- shell之输出重定向(理解2>&1)
- IO流_throws的方式处理异常
- 关于关系型数据库表的设计
- 设计模式之命令模式的作用
- HTTP状态码列表
- 注册表操作
- react-native(Fetch网络请求数据)