Dwr的简单介绍
转自http://767045988.iteye.com/blog/777014
Dwr的简单介绍:
DWR 是一个可以允许你去创建AJAX WEB 站点的JAVA 开源库。它可以让你在浏览器中的Javascript 代码调用Web 服务器上的Java 代码,就像在Java 代码就在浏览器中一样。
DWR 包含2 个主要部分:
1>.一个运行在服务器端的Java Servlet,它处理请求并且向浏览器发回响应。
2>. 运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页
Ajax与Dwr之间有什么关系?
1.Ajax是可以说是一种创建交互式网页应用的网页开发技术,实现局部刷新等功能,采用客户端脚本与 Web 服务器交换数据。
1. Dwr是一种框架,并且它是基于Ajax的基础之上,所以Ajax的功能Dwr也具有了,能够在javascript直接调用java方法,实现局部刷新,也可以说Dwr是对Ajax的Java封装。
<convert converter="bean" match="包名.类名(这里指的是javabean类)"> </convert>
这句话是把javaBean给转换为javascript能识别的对象。
<signatures>
<![CDATA[
import java.util.List;
import 包名.类名(这里是指暴露给javascript的类,即第一个类);
import 包名.类名(这里是指返回给javascript的类,即第二个类);
第一个类名.传输list中含对象的方法名(List<第二个类名>);
第一个类名.传输map中含对象的方法名(Map<String,第二个类名>);
]]>
</signatures>
这个配置是为了能让javaBean能够运行.
<include method="方法名"/> 这个方法放在dwr.xml创建的对象下面,如果你想要哪个方法运行,method里面就写这个对象里面的那个方法的名字,在运行的时候就除了这个方法,其余的方法都不能运行.
< exclude method=”方法名”/> 这个方法和<include method=”方法名”>的功能恰恰相反,就是除了这个方法不能运行之外,其余的都能运行.
******在同一个方法里面,include和exclude是不能同时包含和排除同一个方法的,因为这个方法不知道要执行哪一个方法,也就是传说中的不兼容.
在dwr.xml生成对象是用new来生成对象的,而dwr则是调用默认的构造函数(无任何参数)来生成对象的,如果在javaBean里面生成一个有参数的构造方法的话,dwr就会报错,所以,在javaBean里面最好是生成一个空构造方法。
这里的creator属性被设置为值new,这意味着DWR应当调用类的默认构造函数(无任何参数)来获得实例
****************************Dwr2.0****ajax框架**************************
Dwr→divect web remote :直接远程方法调用
1. 导入jar包(dwr.jar)
2. 配置web.xml
<servlet>
<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. 建立dwr.xml文件,web.xml同级目录(web_inf)目录下面建立。
dwr.xml中的内容:
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="随便取个名字">
<param name="class" value="包名.类名" />
</create>
</allow>
</dwr>
4.在head之间导入js
<script type='text/javascript' src='dwr/interface/在dwr.xml随便取的那个名字.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>