DWR的简单理解与实现(一)
2012-07-20 11:54
267 查看
1>:DWR的原理:
它是通过动态的把java对象动态地生成为javascript对象,使得客户端通过脚本就能访问到服务器对象。就像AJAX通过XMLHttpRequest访问服务器一样。不过DWR更简单。
2>:DWR框架的搭建:
1:首先去http://directwebremoting.org/dwr/下载所需要的engine.js和util.js,下载DWR.jarjar包。
2:配置web.xml文件
3:编写我们的类
4:在WEB-INF下建立我们自己的dwr.xml
对于Teacher类和Score类的DWR.xml与这个一样,大家感兴趣可以自几建。
5:建立我们的index.jsp
这样简单地DWRk框架就是搭建好了。
3>:关于convert的一些知识
DWR帮助我们将本地的javascript脚本函数调用转变成对远程java对象函数的调用。在函数的调用过程中我们需要传递参数,这样我们就需要将本地的javascript变量转变成对应的java类型变量。这个就是Convertor的作用。DWR内部为我们编写了一些JAVA主要类型的Convertor.默认下面的数据类型会自动转换:boolean,
byte, short, int, long, float, double, char, java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Character, java.math.BigInteger, java.math.BigDecimal and java.lang.String.但是假如我们有这样一个方法A.setB(B
b),现在我们要在javascript脚本中调用该方法,我们需要传递java类型为B的参数,这个时候我们就需要配B配置Convertor
如果大家对这个convert还不是很理解请到/article/9980158.html查看。
它是通过动态的把java对象动态地生成为javascript对象,使得客户端通过脚本就能访问到服务器对象。就像AJAX通过XMLHttpRequest访问服务器一样。不过DWR更简单。
2>:DWR框架的搭建:
1:首先去http://directwebremoting.org/dwr/下载所需要的engine.js和util.js,下载DWR.jarjar包。
2:配置web.xml文件
<servlet> <display-name>dwr</display-name> <servlet-name>dwr</servlet-name> <!-- 这个其实和Struts的一样,在服务器启动时加载这个Servlet --> <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> <!-- 这个是用来查看我们DWR下可以允许调用的java类,可以输如://http://localhost:8080/工程名/dwr/查看 --> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <!-- 可能有时我们需要配置多个dwr.xml可以采用如下所示-->
<init-param> <param-name>config-dwr</param-name> <param-value>WEB-INF/dwr.xml,WEB-INF/dwr1.xml,WEB-INF/dwr2.xml</param-value> </init-param> <!-- <init-param> <param-name>config-dwr1</param-name> <param-value>WEB-INF/dwr1.xml</param-value> </init-param> <init-param> <param-name>config-dwr2</param-name> <param-value>WEB-INF/dwr2.xml</param-value> </init-param> --> </servlet> <servlet-mapping> <servlet-name>dwr</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
3:编写我们的类
public class Student { public String say(String str) { return str+"I'm a Student"; } }
public class Teacher { public String say() { return "I'm a teacher"; } }
public class Score { public String say() { return "I'm a Score"; } }
4:在WEB-INF下建立我们自己的dwr.xml
对于Teacher类和Score类的DWR.xml与这个一样,大家感兴趣可以自几建。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <allow> <!-- creator 对象创建方式通常有四种:new 、spring、null、script下面的就是new的方式 --> <create creator="new" javascript="DWRStudent"> <param name="class" value="Student"/> </create> <create creator="new" javascript="JDate"> <param name="class" value="java.util.Date" /> </create> </allow> <dwr>
5:建立我们的index.jsp
<!-- <url-pattern>/dwr/*</url-pattern> --> <!-- 对应html中这个路径,很多例子都是dwr,开始很不很明白,还以为放置的engine.js的路径 --> <script type='text/javascript' src='/Test/dwr/engine.js'></script> <script type='text/javascript' src='/Test/dwr/interface/DWRStudent.js'></script> <script type='text/javascript' src='/Test/dwr/interface/DWRScore.js'></script> <script type='text/javascript' src='/Test/dwr/interface/DWRTeacher.js'></script> <script type='text/javascript' src='/Test/dwr/interface/JDate.js'></script> <script type='text/javascript' src='/Test/dwr/engine.js'></script> <script type='text/javascript'> function displayDate() { var str = JDate.toString(); alert(str); } function displaySay() { var str=DWRStudent.say("Hello",callback); var str1=DWRScore.say(callback); var str2=DWRTeacher.say(callback); //关于回调函数其实在你调用callback时,其实就是又调用了say(),这个方法。 //data用来接收say方法的返回值,当然你也只可在回调方法时给他传参,其实我感觉真正的调用java方法执行是在回调函数使用时。 //否则返回值是“undefined”未定义的 } function callback(data) { alert(data); } </script> </head> <body> <input type="button" id="date" value=" 日期 " onclick="displayDate()"> <input type="button" id="content" value="say" onclick="displaySay()"> </body> </html>
这样简单地DWRk框架就是搭建好了。
3>:关于convert的一些知识
DWR帮助我们将本地的javascript脚本函数调用转变成对远程java对象函数的调用。在函数的调用过程中我们需要传递参数,这样我们就需要将本地的javascript变量转变成对应的java类型变量。这个就是Convertor的作用。DWR内部为我们编写了一些JAVA主要类型的Convertor.默认下面的数据类型会自动转换:boolean,
byte, short, int, long, float, double, char, java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Character, java.math.BigInteger, java.math.BigDecimal and java.lang.String.但是假如我们有这样一个方法A.setB(B
b),现在我们要在javascript脚本中调用该方法,我们需要传递java类型为B的参数,这个时候我们就需要配B配置Convertor
如果大家对这个convert还不是很理解请到/article/9980158.html查看。
相关文章推荐
- 简单理解javascript中的原型对象,实现对之间共享属性和行为
- Spring之IOC思想的理解和简单实现
- 对Thread类的继承、Runable接口的实现,以及线程池的简单理解
- 代理模式之静态代理的简单实现---理解AOP(面向切面编程)的前奏---想要理解AOP,必须先理解一下
- (C语言版)链表(一)——实现单向链表创建、插入、删除等简单操作(包含个人理解说明及注释,新手跟着写代码)
- 工厂模式的简单实现和快速理解--------(java复习)
- 一个最为简单的jquery 分页实现方法!可以用用于理解js分页的原理。
- 理解requireJS原理,实现一个简单的模块加载器
- 智能指针的理解 和 简单实现
- Recyclerview的一些个人理解与使用(二)实现一个简单的列表界面
- java8集合框架LinkedList类实现自己简单的理解
- 命名管道理解与简单C实现
- 理解 heap --- 实现一个简单的 malloc
- 理解Promise简单实现的背后原理
- java基础强化——深入理解java注解(附简单ORM功能实现)
- CAS算法实现数据更新的简单理解和ABA问题
- Spring入门Blog[七、Spring Aop的理解和简单实现]
- DWR的简单实现
- jQuery的继承extend的方法实现的简单理解
- 对dom4j的简单理解与简单实现