一 Dwr 是什么?
DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码(javascript)使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.
它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet(小应用程序)中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容.
DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.
二 .dwr的使用事例
1 .从网站http://getahead.ltd.uk/dwr/下载dwr.jar,放入放到WEB-INF/lib中
2.在web.xml中引用包中的一个servlet:
至于<convert converter="bean" match="com.hf.dwr.Person"/>,因为我们需要将其作为一个返回对象传回客户端,所以需要配置一下。
DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码(javascript)使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.
它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet(小应用程序)中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容.
DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.
二 .dwr的使用事例
1 .从网站http://getahead.ltd.uk/dwr/下载dwr.jar,放入放到WEB-INF/lib中
2.在web.xml中引用包中的一个servlet:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<description>
</description>
<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. 创建Hello.java,和Person
package com.hf.dwr;
public class Hello {
String name="";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person getPerson(String value) {
Person per=new Person();
per.setName(value);
System.out.println(per.getName());
return per;
}
}
package com.hf.dwr;
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
4.创建dwr.xml文件,并在里面配置Hello.java
<?xml version="1.0" encoding="UTF-8"?>
<!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="Hello">
<param name="class" value="com.hf.business.dwr.helloTest"/>
</create>
<convert converter="bean"
match="com.hf.dwr.Person"/>
</allow>
</dwr>
Creator设定为new,表示使用Hello的无参构造函数生成对象,javascript设定为Hello,表示客戶端JavaScript程式可以使用Hello来调用的com.hf.business.dwr.HelloTest.Hello 的函数。
至于<convert converter="bean" match="com.hf.dwr.Person"/>,因为我们需要将其作为一个返回对象传回客户端,所以需要配置一下。