DWR是一种Ajax实现,他就是封装了Ajax基础代码的一个框架。
下面首先看一个DWR的小示例,看一下DWR的具体功能。
使用DWR框架第一步也是先导入相应的jar包。首先导入dwr.jar。然后导入他依赖的jar包,包括log4j.jar、common-logging.jar等
然后再web.xml中进行配置。
然后再与web.xml的同级目录下新建dwr.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>
- <?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。
@H_404_18@package dwr; public class Service { public String sayHello(String name){ return "Hello "+name; } } 在这个类中有个sayHello方法,这个方法返回一个字符串类型结果。然后再看在JSP页面中如何调用,首先在JSP中有个按钮,当点击按钮后触发相应的javascript函数。
然后再看javascript代码:
- <body>
- <input type="button" value="DWR测试" onclick="firstDwr()"/>
- </body>
- <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";