一、DWR介绍

  DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript,就好像浏览器调用一样(DWR根据Java类来动态生成JavaScrip代码). DWR支持Spring(JavaScript远程调用spring bean)还支持一个可选的commons-logging日记操作.

二、DWR使用(加示例)

  1,添加dwr.jar包到服务器WEB-INF/lib下,另外该目录下也应有commons-logging.jar包

  2,在web.xml下添加以下配置:

<servlet>
<display-name>DWR Servlet</display-name>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

  3,WEB-INF目录下创建添加dwr.xml配置文件:

<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
"http://getahead.org/dwr/dwr30.dtd"> <dwr>
<allow>
<create creator="new" javascript="JDate">
<param name="class" value="java.util.Date"/>
</create>
<create creator="new" javascript="Demo">
    <!--value值为要使用的java类 -->
<param name="class" value="org.getahead.dwrdemo.simpletext.Demo"/>
</create>
  <!-- 使用spring bean -->
  <create creator="spring" javascript="DWRUser">
      <param name="beanName" value="DWRUser" />
   </create>
</allow>
</dwr>

  从以上配置可看出,<create>有两种配置方式,一种直接使用java类,另一种与spring结合,使用spring bean。

  4,在页面中添加:

<script src='/[YOUR-WEBAPP-CONTEXT]/dwr/interface/[YOUR-SCRIPT].js'></script>
<script src='/[YOUR-WEBAPP-CONTEXT]/dwr/engine.js'></script>
<scriptsrc='/[YOUR-WEBAPP-CONTEXT]/dwr/util.js'></script>

  这里,/dwr/是一个虚拟的路径,这个文件目录不一定存在。

  5,官方示例:

  html网页(放在web应用根目录下):

<html>
  <head>
    <script type='text/javascript' src='dwr/interface/Demo.js'></script>
    <script type='text/javascript' src='dwr/engine.js'></script>
    <script type='text/javascript' src='dwr/util.js'></script>
  </head>
  <script type='text/javascript'>
    function update() {
      var name = dwr.util.getValue("demoName");
      Demo.sayHello(name, showData); //回调函数 showData
    }
    function showData(data) {
      dwr.util.setValue("demoReply", data);
    }
  </script>
<body>
<p>
Name:
<input type="text" id="demoName"/>
<input value="Send" type="button" onclick="update()"/>
<br/>
Reply: <span id="demoReply"></span>
</p>
</body>
</html>

  java类Demo,上面的dwr.xml配置为:

package org.getahead.dwrdemo.simpletext;
public class Demo {
public String sayHello(String name) {
return "Hello, " + name;
}
}

以上是简单示例,更多内容请查看官方文档。

最新文章

  1. WPF 自定义ContextMenu且为左键点击显示
  2. ubuntu 安装mongodb
  3. 软件测试—— junit 单元测试
  4. WaterWave
  5. JMeter入门(2):一个简单实例
  6. USB-CSW之旅
  7. Leetcode::JumpGame
  8. leetcode--007 word break I
  9. div的onblur事件
  10. Function:html结构转字符串形式显示
  11. redis缓存清除
  12. Digao 连接Mysql 连接不上解决办法
  13. 解决 EDAS:Upload failed: The right margin is 0.535 in on page 1 问题
  14. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第七集之SSH远程连接——克隆与更改配置】
  15. 为什么MySQL不推荐使用子查询和join
  16. RHEL7 配置临时IP 测试
  17. Ubuntu 登陆界面无限循环问题 以及 root用户无法使用命令问题
  18. eclipse installer 安装的新版本 eclipse 导入旧版本 eclipse 插件
  19. bzoj 3669: [Noi2014]魔法森林(并查集+LCT)
  20. HTML学习-01

热门文章

  1. HDU1102 Constructing Roads —— 最小生成树
  2. 「LuoguP1402」 酒店之王(最大流
  3. 算法实现c语言--02
  4. MTK HDMI 流程
  5. OpenCV在Zedboard上的移植
  6. Tyvj1052(树形DP)
  7. 六、mysql语法
  8. storyBoard学习教程一(页面跳转)
  9. 【Linux学习】Linux文件系统1--文件系统的目录结构
  10. C#基础之--线程、任务和同步:一、异步委托