DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架。可以轻松实现用js直接调用java方法。
通过一个小例子来演示一个dwr的基本使用:
①. 首先肯定要创建一个web project的,然后拷贝dwr.jar到WEB-INF\lib目录下
<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>
③. 写自己的java类
package com.tgb.dwr; /** * dwr使用测试 * @author Admin * */ public class DwrTest { public String hello(){ return "Hello!"; } }
④. 在 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> <!-- 一个实例对应一个create节点 --> <create creator="new" javascript="T1"> <param name="class" value="com.tgb.dwr.DwrTest"/> </create> </allow> </dwr>
<script type="text/javascript" src="dwr/engine.js"></script> <script type="text/javascript" src="dwr/util.js"></script> <script type="text/javascript" src="dwr/interface/T1.js"></script>
引用的第三个js文件T1.js,文件名需跟dwr.xml配置文件中的javascript属性值相同。
<script type="text/javascript"> function test1(){ T1.hello( function(data){ alert(data); } ); } </script>
上面的js代码,T1是跟dwr.xml配置文件中定义的javascript属性值相同。hello测试跟java类中的方法名一样,而且区分大小写。大小写不一致,控制台会提示:has no method 'xxx' 的错误。
最后给一个测试的效果吧:
dwr提供js直接调用java方法的功能,真心赶脚不错,虽然自己可以写异步请求,但是如果配置一下就可以使用,谁还会去费那些力气。赞一个吧。
原文链接:https://www.f2er.com/ajax/164942.html