作者: 永恒の_☆地址: http://www.jb51.cc/article/p-twqllcqt-bhs.html
一、Dwr的介绍
Dwr 简称 Direct Web Remoting ,它是一个 Java Ajax远程调用的框架,利用这个框架开发可以让Ajax开发变得非常简单、快捷。 Dwr框架与匈奴开发人员在客户端都过javascript代码调用服务器段的java方法,这都依靠于服务器上运行的Dwr核心Servlet负责处理客户端的请求,将客户端请求委托到实际的java 对象中进行处理,并将结果返回给客户端。 另外Dwr能够很好的与spring集成,直接调用spring中注入的bean。
二、Dwr的准备条件
dwr2.0.jar 下载地址: http://download.csdn.net/detail/ch656409110/5894411
commons-logging.jar(查看源码可以看到Dwr运行时依赖于common-logging库)
三、Dwr执行的流程
1、首先客户端发送一个javascript的请求,dwr识别该请求之后会将请求委托到Dwr中和核心Servlet;
2、核心Servlet 会根据请求的对象以及方法去WEB-INF 下的dwr.xml中找到具体的关联对象;
3、如果满足调用的条件,那么服务器会执行该方法,并返回对应的结果,这里返回的结果会被客户端发送请求的回调函数接收;
4、客户端收到返回结果之后,做出对应的处理,整个请求结束。
四、Dwr的案例讲解
1、使用Dwr做一个简单的demo
<1>、建立Web 工程,添加Dwr的支持,这里以现有的支持struts2为基础的项目为例;
<2>、添加dwr配置文件,必须放在WEB-INF的根目录下,具体如下:
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPEdwrPUBLIC
- "-//GetAheadLimited//DTDDirectWebRemoting3.0//EN" @H_403_101@ "http://getahead.org/dwr/dwr30.dtd">
- <dwr> @H_403_101@ <allow>
- <createcreator="new"javascript="dwrDate"> @H_403_101@ <paramname="class"value="java.util.Date"></param>
- </create> @H_403_101@ </allow>
- </dwr>
根目录是<dwr>标签,里面的<allow>表示允许的方法列表,配置每一个对象都是<create>来区分的。
creator:表示创建方式,取值有new,bean等等,其中new表示新建,bean表示取现有的对象。
javascript:表示在js客户端调用的对象引用,比如这里配置的对象是java.util.Date,那么dwrDate 就是创建的对象引用,等价于java.util.Date dwrDate = new java.util.Date();
<create>里面的<param> 表示指定创建对象的声明;
name:表示声明的name的形式;
value:表示根据name绑定的具体值;
name取值有class,beanName等等,其中name="class"表示value中绑定的是类的完整限定名,name="beanName"表示value绑定的是spring中注入的对象的引用。
<3>、修改web.xml 配置文件,配置Dwr的核心servlet,具体如下: