DWR是一种Ajax实现,他就是封装了Ajax基础代码的一个框架。
下面首先看一个DWR的小示例,看一下DWR的具体功能。
使用DWR框架第一步也是先导入相应的jar包。首先导入dwr.jar。然后导入他依赖的jar包,包括log4j.jar、common-logging.jar等
然后再web.xml中进行配置。
<servlet> <servlet-name>dwr_servlet</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_servlet</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>然后再与web.xml的同级目录下新建dwr.xml并且添加以下内容
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd"> <dwr> <allow> <create javascript="service" creator="new"> <param name="class" value="dwr.Service"/> </create> </allow> </dwr>
关于该XML中的内容以及写法不进行详细解释,这里只是一个演示实例,进行一个简单的解释。
dwr标签是这个xml文件的顶级标签,相关的属性标签全都是这个标签的子标签。allow标签使DWR能够找到相应的java类。
在allow类中首先创建一个新的javascript,这个javascript的名字叫做service,create=“new”表示创建方式是new方式初始化,通过new初始化的类在param标签指定生成的类。然后在看相应的类,这个类在包dwr下,类名叫做Service。
package dwr; public class Service { public String sayHello(String name){ return "Hello "+name; } }在这个类中有个sayHello方法,这个方法返回一个字符串类型结果。
然后再看在JSP页面中如何调用,首先在JSP中有个按钮,当点击按钮后触发相应的javascript函数。
<body> <input type="button" value="DWR测试" onclick="firstDwr()"/> </body>然后再看javascript代码:
<script type="text/javascript" src="dwr/util.js"></script> <script type="text/javascript" src="dwr/engine.js"></script> <script type="text/javascript" src="dwr/interface/service.js"></script> <script type="text/javascript"> function firstDwr(){ service.sayHello("admin",callBackHello); } function callBackHello(data){ alert(data); } </script>
注意在使用前必须导入util.js和engine.js,关于这两个js文件这里不做详细介绍。
然后将自己写的类映射成的javascript引入。这里的src的地址中"dwr/interface"是固定的,后面的service.js是你生成的javascript的名称,也就是在dwr.xml文件中使用create标签生成的名称。
这样一个简单的DWR应用程序搭建完成了。当点击JSP页面中的按钮时,会弹出一个对话框,对话框的内容是“Hello admin";
原文链接:/ajax/163986.html