DWR运行实例

来源:互联网 发布:ubuntu php环境搭建 编辑:程序博客网 时间:2024/04/30 11:12

 

DWR是一个框架。DWR是基于AJAX的框架,它可以让浏览器上的javascript方法调用运行在web服务器上java方法。这就需要包含两个部分:一个运行在服务器端的Java Servlet,它处理请求,调用对应的Java代码并且向浏览器发回响应;运行在浏览器端的Javascript,它发送请求而且能动态更新网页。

DWR采用新颖的方法实现了AJAX,在java代码基础上动态的生成javascript代码。DWR负责把Java类生成为对应的Javascript。每个类都生成一个可以处理这个类请求的Javascript文件。用户的网页只要引用这些Javascript就可以发送请求而且能动态更新网页,然而真正的代码是运行在web服务器上的java code。出与安全考虑,开发者必须配置哪些java class暴露给DWR.(dwr.xml)

 

这种从(java到javascript)调用机制给用户一种感觉,好象常规的RPC机制,或RMI or SOAP.但是它运行在web上,不需要任何浏览器插件。

 

 

 

DWR运行原理:

1)读dwr.xml,在该xml文件中定义的Javascript假设是Test,它对应的类为Test,DWR动态使用Test类生成Test.js,其中的方法也就是调用后台类的同名方法;

2)运行阶段:

客户端:触发事件调用一个方法——>从自己的js中调用了上面的Test.js中的方法t1——>调用客户端的AJAX引擎engin.js发出请求

服务器端:Web容器接到请求,找上下文路径:/dwr/匹配dwr中对应的servlet——>读dwr.xml;根据js名匹配creator定义;依据creator方法创建实例(反射);调用方法,得到返回值——>out出去。

客户端:回调处理,调用客户端的回调处理(自己写的方法)。

 

 

 

 1. webapps下新建文件夹dwrTest,建立src和WEB-INF文件夹。WEB-INF下新建classes,lib文件夹和web.xml。下载dwr.jar包,放到WEB-INF/lib文件夹下。

 

 

 2. 配置web.xml

 

 

 

 

 

 

 

 

3. 在src文件夹中写服务端代码文件Test.java 和User.java

 

 

 

 

 

 

 

 

 

 

编译

javac User.java -d /opt/apache_tomcat_6.0.26/webapps/dwrTest/WEB-INF/classes

javac Test.java -d /opt/apache_tomcat_6.0.26/webapps/dwrTest/WEB-INF/classes

 

 

 4. 于web.xml同目录下添加并配置dwr.xml。参数配置详见http://blog.csdn.net/HEYUTAO007/archive/2010/07/13/5732630.aspx

 

 

 

 

 

 5. dwrTest下面建立jsp页面getInfo.jsp

 

 

 

 

6 启动tomcat后,输入http://localhost:8080/dwrTest/dwr,可以看到dwr暴露给用户的类:

 

 

 

点击连接,是详细信息:

 

 

下面是自动生成的Test.js的内容:

 

 

 

 

 

7 访问 getInfo.jsp,结果:

 

点击 第一个按钮:

 

 

点击 第二个按钮: