Dwr的配置与应用
Dwr是什么?
·Dwr是Direct Web Remoting 的缩写。
·Dwr(Direct Web Remoting)是一个Web远程调用框架,可以让Ajax变得很方便。
·Dwr是可以从客户端的jsp页面上直接调用java代码(而不通过任何处理)。
用前配置:
·导入dwr的核心包:dwr.jar可以从其官网上下载
(http://directwebremoting.org/dwr/download.html),将该jar包放到java web项目中WEB-INF目录下的lib目录中。
·在WEB-INF目录下的web.xml配置文件在要加入dwr的servlet:
<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> <load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> |
· 加入dwr的xml配置文件:dwr.xml,放在web项目的WEB-INF目录下,下面是dwr.xml配置文件中的信息
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> <dwr> <allow> <!-- new一个Test的对象出来,在javascript中名为:MyDwr --> <create creator="new" javascript="myDwr"> <!-- 创建对象的方式,该对象是一个class,所在位置在org.zsl.dwr这个包中 --> <param name="class" value="org.zsl.dwr.Test"/> </create> </allow> </dwr> |
·Test是这样一个很简单的类:
package org.zsl.dwr; public class Test { public void getStr(String str) { System.out.println(str); } } |
·前面都是一些必要的配置,接下来就是如何在jsp页面上使用dwr了
如果定义path=<%=request.getContextPath() %>
<!-- 以下这两个js是必须导入的的,但是在项目中是找不到这两js文件的,这两个文件存在于dwr.jar文件中 --> <script type='text/javascript' src='path/dwr/engine.js'> </script> <script type='text/javascript' src='path/dwr/util.js'> </script> <!-- 这个就是在dwr.xml中所配置的js文件了,在里面配有:javascript="myDwr"所以在这里就是myDwr.js --> <script type='text/javascript' src='path/dwr/interface/myDwr.js'></script> <!-- jquery的核心包,在此导入的目的是为了方便取节点,引不引入这个包对dwr是没有任何影响的 --> <script type="text/javascript" src="path/js/jquery-1.3.2.min.js"></script> <script type="text/javascript"> function fun() { var str = $("#test"); //执行这里的时候就会在服务器端输出下面文本框中的值 myDwr.getStr(str.val()); } </script> <!-- 当该文本框失去焦点时执行fun这个函数 --> <input type="text" id="test" onblur="fun()"/> |
目前很多网站或系统中都已经把dwr推得很广泛了
<!--EndFragment-->