DWR学习笔记-HelloWorld篇

1. DWR 简介
   DWR是一个Java开源库,帮助你实现Ajax网站。
    它可以让你在浏览器中的Javascript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样。
    DWR主要包括两部分:
        在服务器上运行的Servlet来处理请求并把结果返回浏览器。
        运行在浏览器上的Javascript,可以发送请求,并动态改变页面。
    DWR会根据你的Java类动态的生成Javascript代码。这些代码的魔力是让你感觉整个Ajax调用都是在浏览器上发生的,但事实上是服务器执行了这些代码,DWR负责数据的传递和转换。
    这种Java和Javascript之间的远程调用会让DWR用户感觉像是曾经习惯使用的RMI或SOAP的RPC机制。而且这一过程还不需要额外的浏览器插件。
    Java是同步的,而Ajax是异步的。所以当你调用一个远程方法时,你要给DWR一个回调函数,当数据从网络上回来时,DWR会调用这个函数.

2. 如何使用DWR
   2.1. 下载DWR
         下载地址http://getahead.ltd.uk/dwr/download
          我下载的是dwr-2.0.5版本
   2.2  安装DWR
        创建一个Web工程,将dwr.jar放到Web工程webapp的WEB-INF/lib目录下  
   2.3 修改配置文件
       修改web.xml文件

 
  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <display-name>DWR Servlet</display-name>
    <description>Direct Web Remoter Servlet</description>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

    <!-- 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>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>




       在webapp/WEB-INF/目录下增加dwr.xml文件,内容为

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>
  <allow>
    <create creator="new" javascript="Publisher" scope="application">
      <param name="class" value="hellodwr.HelloDWR"/>
    </create>
  </allow>
</dwr>

 

 2.4 编写HelloDWR类

    

package hellodwr;

public class HelloDWR {
    public String sayHello(String name) {
    	return "Hello " + name;
    }
}

 

 2.5 测试DWR

      这是一个非常有用的功能,特别对于初学者来说,可以查看自己编写的DWR是否部署成功,结果是否正确

      讲工程部署到应用服务器中(本例用Tomcat5.5.26),启动服务。

      访问地址: http://localhost:8080/hellodwr/dwr

   

Classes known to DWR:
HelloDWR (hellodwr.HelloDWR) 

 

  点击HelloDWR,会看到刚才写的sayHello方法,点击execute看看结果

Methods For: HelloDWR (hellodwr.HelloDWR)
To use this class in your javascript you will need the following script includes:

  <script type='text/javascript' src='/hellodwr/dwr/interface/HelloDWR.js'></script>
  <script type='text/javascript' src='/hellodwr/dwr/engine.js'></script>

In addition there is an optional utility script:

  <script type='text/javascript' src='/hellodwr/dwr/util.js'></script>


There are 10 declared methods:

sayHello(  ); [execute] "Hello DWR" ---执行结果

 

 2.6 WEB页面调用

       引入js

<script type='text/javascript' src='<%=appPath%>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=appPath%>/dwr/util.js'></script>
<script type='text/javascript' src='<%=appPath%>/dwr/interface/HelloDWR.js'></script>

 

  js调用

//调用DWR函数
function invokeDWR() {
    HelloDWR.sayHello('DWR', callback);
}

//回调函数
function callback(obj) {
    alert(obj);
}

invokeDWR();//调用dwr,提示"Hello DWR"

  

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农丁丁

你的认可是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值