DWR框架
DWR介绍: DWR是一个WEB远程调用框架,利用这个框架可以让AJAX开发变得很简单,利用DWR可以在客户端利用JavaScript直接调用服务器端的Java方法并返回值给JavaScript,就想好直接本地客户端调用一样。 DWR原理: DWR工作原理就是Java类生成JavaScript,它的代码就像Ajax一样,用户感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端。 DWR下载: DWR的下载地址为:http://directwebremoting.org/dwr/download,最新版为3.0.这里下载的应用包为dwr.war,解压后将dwr.jar包放在Web工程的WEB-INF/lib/目录中。
DWR包含2个主要部分: 1.一个运行在服务器端的Java Servlet,它处理请求并向浏览器发回响应. 2.运行在浏览器端的JavaScript,他发送请求而且还能动态更新网页。 DWR工作环境配置: 配置web.xml:为了让DWR的核心Servlet起作用,必须在web.xml文件中配置核心Servlet,配置代码如下:
dwr.xml是用来配置DWR的文件,默认是将其放在WEB-INF文件夹下,它的配置代码如下: copy
1.<init>标签:在初始化部分用来创建远程beans,而且这个类能被用来以某种过程转换。如果想定义一个新的creator或者converter,就要在此被声明,在init部分的定义只是告诉DWR这些扩展类的存在,给出了如何使用的信心。这种方式很像Java中的import语句,多数类需要在使用前先import一下。每个creator和converter都用id属性,以便在后面使用时直接饮用id值。 2.<allow>标签:allow部分定义了DWR能够创建和转换的类,每一个在类中被调用的方法需要一个create元素,可以使用“new”关键字或者Spring框架创建creator。<allow>元素的结构如下: <allow> creator的属性: a).creator="new":创建对象,使用new创建对象安全(DWR创建的对象生存时间越短,多次调用中间的值不一致的错误机会越少),内存消耗低(如果站点用户量非常大,这个创造器可以减少VM的内存溢出). b).creator="none":不创建对象,可能在使用的scope不是“page”,并在前面已经把这个对象创建到这个scope中了,这时就不需要在创建对象了。还有一种情况是要调用的方法是静态的,这时也不需要创建对象,DWR会在调用创建器之前先检查一下这个方法是不是静态的。 对于上述 a、b两种情况,仍需要class参数,用来告诉DWR它是在操作的对象类型是什么。 javascript="aaa"在浏览器里创建的对象名,避免使用JavaScript保留字。这个名字将在页面里作为js被导入。例如: <create creator="new" javascript="service"> scope属性: param元素:被用来指定创造器的其他参数,每种构造器各有不同,“new”创造器需要知道创建的对象类型是什么。 include和exclude元素:允许一个创造器去限制进入类的方法。一个创造器必须指定include列表或exclude列表之一。如果是include列表则暗示默认的访问策略是“拒绝”,include中指定的方法列表是允许访问的方法。如果是exclude列表则暗示默认的访问策略是“允许”,exclude中的每个方法就是拒绝访问的方法。例如: <create creator="new" javascript="service"> auth元素: <signatures>标签:DWR使用反射机制在装换过程中找到它应该使用的类型。有时无法获得信息的类型,在这种情况下需要在此处用方法签名给予暗示。signatures段使用DWR能确定集合中存放的数据类型。例如下面的定义中我们无法知道list中存放的是什么类型。 public class Check{ public void setResults(List list){...} } signatures段暗示DWR应该用什么类型去处理。格式与JDK5中的泛型一样,它的定义原型为: <signatures> <![CDATA[import java.util.List;import com.example.Check;Check.setResults(List<Integer> list);]]> </signatures> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |