DWR总结
Dwr的简单介绍:
DWR 是一个可以允许你去创建AJAX WEB 站点的JAVA 开源库。它可以让你在浏览器中的Javascript 代码调用Web 服务器上的Java 代码,就像在Java 代码就在浏览器中一样。
DWR 包含2 个主要部分:
1>.一个运行在服务器端的Java Servlet,它处理请求并且向浏览器发回响应。
2>. 运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页
Ajax与Dwr之间有什么关系?
1.Ajax是可以说是一种创建交互式网页应用的网页开发技术,实现局部刷新等功能,采用客户端脚本与 Web 服务器交换数据。
2.Dwr是一种框架,并且它是基于Ajax的基础之上,所以Ajax的功能Dwr也具有了,能够在javascript直接调用java方法,实现局部刷新,也可以说Dwr是对Ajax的Java封装。
放在dwr.xml里面
想要在JavaScript里面传入一个带有List的参数,并且是值传入的是java对象的时候我们需要这个配置
<signatures>
<![CDATA[
import java.util.List;
import 包名.类名(这里是指暴露给javascript的类,即第一个类);
import 包名.类名(这里是指返回给javascript的类,即第二个类);
第一个类名.传输list中含对象的方法名(List<第二个类名>);
]]>
</signatures>
放在dwr.xml里面
想要在JavaScript里面传入一个带有Map的参数,并且是值传入的是java对象的时候我们需要这个配置
<![CDATA[
.....
.....
......
第一个类名.传输map中含对象的方法名(Map<第二个类名>);
]]>
放在dwr.xml里面
意思就是你要暴露的方法,也就是说除了这个方法,其他的都不能调用.
<create>
......
<include method="方法名"/>
</create>
这个是反暴露的方法,也就是说除了这个方法能调之外,其他的方法都能调;
<create>
......
<exclude method="方法名"/>
</create>
注意:
在dwr.xml里面配置的JavaBean的对象是用new来生成的,所以我们最好把JavaBean里面加一个空的构造方法;
dwr 3.0版本: 推技术: (之前我们用的都是拉技术)
拉: 请求——>服务器——>响应 (服务器占被动)
推: 服务器——>jsp (服务器占主动权)
推技术使用配置
1 在web.xml配置
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<!-- This should NEVER be present in live -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
2 在要推送的页面body加入 onload="dwr.engine.setActiveReverseAjax(true); "
3 进行数据数据推送
String page = ServerContextFactory.get().getContextPath() + "/推送的页面";
Browser.withPage(页面变量(即page), new Runnable() {
public void run() {
Util.setValue("页面id名称", 要推送的数据);
}
});