首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

DWR小结

2012-11-01 
DWR总结Dwr的简单介绍:DWR 是一个可以允许你去创建AJAX WEB 站点的JAVA 开源库。它可以让你在浏览器中的Jav

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名称", 要推送的数据);
            }
        });

热点排行