DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。 DWR2.0以后新增加了JDK5的注解(Annotation)功能,使用注解功能之后可以从很大程度上简化了原来的dwr.xml的配置,使用起来非常的方便。
下面在Myeclipse上新建一个web项目来简单演示一下dwr.
需要准备的jar包:dwr.jar 和commons-logging.jar包.若新建的web项目中没有包括serverlet-api.jar,还需要手动引入此包.
步骤:
1.新建一个叫TestDwr的web项目,并在web-inf/lib下引入dwr.jar 和commons-logging.jar包 以及serverlet-api.jar
2.在src下新建一个model包,并在该包下建立一个Test类.如下所示:
package model; import org.directwebremoting.annotations.RemoteMethod; import org.directwebremoting.annotations.RemoteProxy; @RemoteProxy( name="test") public class Test { @RemoteMethod public String getString(String para) { return "return "+para; } }
3.配置 web.xml,如下
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <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> <init-param> <param-name>classes</param-name> <param-value> model.Test </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
接下面,通过Myeclipse编译发布项目,然后在浏览器中输入:http://localhost:9900/TestDwr/dwr来测试dwr配置是否成功,如下图所示:
点开 test 的链接,如下图所示:
将上图中红色部分引入index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <script type='text/javascript' src='/TestDwr/dwr/engine.js'></script> <script type='text/javascript' src='/TestDwr/dwr/interface/test.js'></script> <script type="text/javascript"> test.getString( 'test',//getString的参数 function(data){ document.write(data); }//当getString从服务器取回数据后的回调函数,data为返回的值 ); </script> </head> <body> </body> </html>
在浏览器访问:http://localhost:9900/TestDwr/
界面上显示:
"return test"
如此,本例就算成功了