Dwr 学习笔记
最近在学习一些Dwr的使用,感觉。。。确实强大!
dwr-3.0;
1. dwr 的优势
a) DWR ( Direct Web Remoting )是一个用来改善 web 页面与 java 类交互的远程服务端 ajax 开源框架,可以帮助开发人员开发包含 ajax 技术的网站,它可以允许在浏览器里的代码使用运行在 WEB 服务器上的 java 函数,就像它就在浏览器里一样;
i. 允许 javaScript 从 WEB 服务器上一个遵循了 AJAX 原则的 Servlet 中获取数据;
ii. 一个 JjavaScript 库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容。
b) DWR 不认为浏览器 /WEB 服务器协议是重要的 , 而更乐于保证编程界面的简单自然 . 对此最大的挑战就是把 AJAX 的异步特性和正常 JAVA 方法调用的同步 特性相结合 . 在异步模式下 , 结果数据在开始调用之后的一段时间之后才可以被异步访问获取到 .DWR 允许 WEB 开发人员传递一个回调函数 , 来异步处理 Java 函数调用过程 .
2. 基本配置:
a) dwr.xml 的配置
i. <allow> 标签里面包括可以曝露给 JavaScript 访问的东西;
1. <creat> 标签中指定 JavaScript 中可以访问的 java 类,并定义 DWR 应当如何获得要进行远程的类的实例。
a) 属性 creator 的值代表 java 类实例的生成方式, new 以为止 DWR 应当调用类的默认构造方法来获得实例,其他方式还有 spring ,通过与 IOC 容器 Spring 进行集成来获得实例等等。 JavaScript 属性指定 JavaScript 代码访问对象时使用的名称。
b) <param> 标签指定要公开给 javascript 的 java 类名;
c) <include> 标签指定要公开给 javascript 的方法,不指定则默认公开所有的方法;
d) <execute> 标签指定要防止被访问的方法。
2. <convert> 标签负责这些方法的参数和返回类型 :
a) converter="bean" 属性指定转换的方式采用 JavaBean 命名规范 ;
i. <param> 属性指定要使用那些javaBean的属性;
b) match=""com.dwr.TestBean" 属性指定要转换的 javabean 名称 ;
3. <signatures> 标签是用来声明 java 方法中 List 、 Set 或者 Map 参数所包含的确切类,以便 java 代码作出判断。
使用的是eclipse+tomcat的形式
一下是最简单的一个例子
1.java类
package test;
public class Demo {
public String sayHello (String name) {
return "Hello, " + name;
}
}
2.web.xml放在WEB-INF下
<? xml version = "1.0" encoding = "UTF-8" ?>
<! DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
< web-app id = "dwr" >
< servlet >
< display-name > DWR Servlet </ display-name >
< servlet-name > dwr -invoker </ servlet-name >
< servlet-class > uk.ltd.getahead.dwr.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 >
</ web-app >
3.dwr.xml与web.xml同级目录
<? xml version = "1.0" encoding = "UTF-8" ?>
<! DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd" >
< dwr >
< allow >
< create creator = "new" javascript = "Demo" >
< param name = "class" value = "test.Demo" />
</ create >
</ allow >
</ dwr >
a)