DWR(Direct Web Remoting)
DWR is a Java library that enables Java on the server and JavaScript in a browser to interact and call each other as simply as possible.
Dwr能让在服务器端的java代码和浏览器客户端的javascript代码尽可能简单的相互调用。
DWR is Easy Ajax for Java!
一、 环境搭建
1. 新建web工程。
2. 从官网下载dwr3.0 rc2,也是当前最新版本,并引入类路径。
3. dwr依赖于logging.jar,也需要引入类路径下面。
4. 配置web.xml如下:
dwr-invokerorg.directwebremoting.servlet.DwrServletdebugtruedwr-invoker/dwr/*
5. 新建一个java类,代码如下:
packagecom.yokoboy.dwr.service;public classDwrDemo {publicString getHello(String name) {return name + " 你好!";
}
}
6. 在web.xml 同目录下面新建dwr.xml,代码如下:
6. 新建MyDwr.jsp文件,代码如下:
Demo.getHello(name, dwrHandler);
}//这是dwr的一个回调函数,data参数即java方法getHello(String name)的返回值 functiondwrHandler(data) {
alert(data);
}
提交 "> Dwr Demo //此函数中可以调用java类的方法,除了java方法本身的参数外,还要将回调函数名作为参数传给java方法 functionsayHello(name) {Demo.getHello(name, dwrHandler);
}//这是dwr的一个回调函数,data参数即java方法getHello(String name)的返回值 functiondwrHandler(data) {
alert(data);
}
提交其中用到了jquery,需要自行导入。
发布网站,访问MyDwr.jsp即可查看效果!
二、说明
1. 查看jsp源代码,最上面引入了几个js文件,实际上是不存在的,不用考虑它们在哪儿。
2. 其中engine.js和util.js是固定的。另外的一个js的名称就是dwr.xml中配置的类名。
这些js的路径基本是:app_root/dwr/....模式的,一定要写对。
3. 访问 “app_root/dwr” ,这是dwr本身提供了一个测试环境,可以直接执行服务器端函数中的方法。
其中MyDate里面的函数是java.util.Date类里面的方法。
4. 打开web.xml 文件。里面配置了一个servlet,“url-pattern”配置的是“/dwr/*”,所以拦截所有已dwr开头的请求。
url-pattern”如果改成了/ddd/*,页面中都需吧dwr该成ddd
5. 再看dwr.xml文件(这个文件名不能改,必须是dwr),里面“create了两个javascript”,再看源代码中,确实使用Demo作为实例来引用 com.yokoboy.dwr.service.DwrDemo里面的方法。