DWR 例子

      先让我们简单了解一下什么是DWR,英文全称:Direct Web Remoting,它是一个web远程调用框架,利用这个可以让AJAX开发变得简单一些,它包含服务器端 Java 库、一个 DWR servlet 以及 JavaScript 库,虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC远程过程调用协议 RPCRemote Procedure Call protocol   远程过程调用(RPC)是1种通过网络从远程计算机程序上请求服务.而不需要解底层网络技术协议. 工具包,但是它是最成熟的,而且提供了许多有用的功能。使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉这意味着客户端代码再也不需要直接处理 XMLHttpRequest 对象或者服务器的响应。不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML,直接把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScript,然后我们在页面对应触发即可。

     下面让我们来实现一个简单的例子,以页面上有一个usernamepassword文本框,当在页面输入信息后,password文本框失去焦点后,将输入的usernamepassword信息存入到数据库中为例。

1、新建工程,并将DWR.JAR包加到工程中。

2、修改WEB.XML文件。将下列代码加到WEB.XML文件中

 

这里要注意一下:我不知道大家有没有遇到过,我在自己写demo时,遇到过错误:

java.lang.IllegalArgumentException: DefaultContainer can't find a classes

at org.directwebremoting.impl.DefaultContainer.getBean(DefaultContainer.java:216)

  atorg.directwebremoting.annotations.AnnotationsConfigurator.configure(AnnotationsConfigurator.java:50) 

  at org.directwebremoting.servlet.DwrServlet.init(DwrServlet.java:121)

 

     这是因为在DWRMaillist里面搜索了一下,还有答案,原来DWR2.0 加入了JDK5的注释(annotations).DwrServlet初始化的时候会去检查注释的类,找不到就抱错了。解决方案只需在原先的web.xml中加上:

        <init-param>        

      <param-name> classes </param-name>

      <param-value> java.lang.Object </param-value>

      </ init-param>

这样就ok了,

       

 3、编写将usernamepassword存入数据库中的操作代码。

附上代码:

 

4,创建dwr.xml WEB-INF目录下面

  

5,打开测试页。http://localhost:8080/工程名/dwr  你就可以看到你的类拟定的JAVASCRIPT名。

6,编写js文件:hello.js

     

 

7,接下来就是页面得编写了

      

至此,一个简单demo就ok了,这样一来,就能当页面改变时,数据库同步改变得效果,感觉很棒~

 

另附:

Create告诉DWR应当公开给AJAX请求的服务端类。并定义DWR如何获得要进行远程的类的实例。Create的元素creator的值有下面几个。

New 告诉dwr框架调用类的默认的构造方法来取得实例。

Scripted 选择值则代表允许使用一些脚本语言。比如用beanshell来创建类的实例对象。。这在类无法通过配置远程调用时候用用。

Spring 代表允许远程调用spring bean.

Creator元素与paramname值选择时代表的意思。

Creator

Paramname

Paramvalue

new

Class

允许远程调用的完整类的名称

scripted

language

BSF支持的语言名称

scripted

script

供远程调用的对象脚本

spring

Location*

任何从location起始的参数名称,每个参数代表一个spring配置文件

spring

beanName

可以从配置文件中取得的bean的名称

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值