dwr使用方法

合集下载

dwr 调用方式

dwr 调用方式

DWR调用方式1. 什么是DWRDWR(Direct Web Remoting)是一个开源的Java框架,用于简化在Web应用程序中使用Ajax技术。

它提供了一种简单的方式来将Java代码暴露给JavaScript,并使得在客户端和服务器之间进行远程通信变得更加容易。

DWR允许开发人员通过直接调用服务端的Java方法来处理客户端的请求,而无需编写大量的JavaScript代码来处理网络通信。

这使得开发人员可以更专注于业务逻辑,而无需过多关注底层的网络细节。

2. DWR调用方式DWR提供了多种方式来进行远程调用,包括:2.1. 代理方式(Proxy)代理方式是最常见和推荐的一种DWR调用方式。

通过代理对象,我们可以直接调用服务端的Java方法,并将结果返回给客户端。

在客户端,我们需要首先创建一个代理对象,该对象负责与服务端进行通信。

我们可以使用dwr.engine命名空间下的Proxy对象来创建代理对象,并指定要调用的Java类和方法。

var proxy = new dwr.engine.Proxy();proxy.setRemoteClass(MyService);proxy.setRemoteMethod('myMethod');在上述代码中,MyService是服务端中定义的Java类,myMethod是该类中的一个方法。

然后,我们可以使用代理对象来调用服务端的方法,并处理返回的结果。

proxy.myMethod(param1, param2, {callback: function(result) {// 处理返回结果},errorHandler: function(message) {// 处理错误信息}});在上述代码中,param1和param2是传递给服务端方法的参数。

callback函数用于处理返回结果,而errorHandler函数则用于处理错误信息。

2.2. 反向Ajax方式(Reverse Ajax)反向Ajax方式是一种特殊的DWR调用方式,它允许服务端主动推送数据给客户端。

java中DWR的使用

java中DWR的使用

java中DWR的使⽤上次分享了关于frameset框架右下⾓弹出消息。

连接在这⾥那么我们项⽬开发中不消息的内容应该都是从数据库的消息表去获取的。

⽽不是说这样写死的。

那么在java中该怎么做?最后我选择了dwr来获取并展⽰消息。

下⾯是例⼦下载地址:贴出dwr.xml代码:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPEdwrPUBLIC"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN""/dwr/dwr30.dtd"><dwr><allow><create creator="new" javascript="Msgdeal"><param name="class" value="com.msg.MsgDeal"/></create></allow></dwr>⾄于dwr我也是第⼀次使⽤~~ 所以只是分享⾃⼰使⽤的时候遇到的问题在上⾯的dwr.xml中我们配置了要调⽤的服务.下⾯贴出在jsp中如何引⽤:function Test1(){var _data = "";dwr.engine.setAsync(false);//设置同步Msgdeal.getMsg(1,function(data){_data = data;});//调⽤java中MsgDeal类的消息处理⽅法dwr.engine.setAsync(true); //设置到初始状态document.getElementById("serverResponse").value= _data; //设置获取的值if(_data > 0){//有新的消息//是消息图表闪动}else{//没有新消息}}那么我么在js中引⽤的 Msgdeal.getMsg(1,function(data){_data = data;});//调⽤java中MsgDeal类的消息处理⽅法这⾥的 Msgdeal就是我们在dwr.xml中配置的<create creator="new" javascript="Msgdeal">⾄于详细的使⽤⽅式⼤家下载下来⽰例就能看明⽩。

DWR学习

DWR学习

DWR的使用经验:1.. 需要jdom.jar和bsf.jar,否则无法跟spring整合.2.. dwr生成的javascript函数会自动加一个回调函数的参数,如原来的函数是checkExist(String name),那么生成的javascript函数是checkExist(callbackFunc,String name).3.. 注意回调函数只能有一个参数,就是服务器的返回值,如function(messFromServer),这里messFromServer是该操作在服务器上的返回值.4.. util.js里面有很多有用的方法,最好熟悉一下.5.. convert并不是必须的,只有你的函数需要传递非基本数据类型的数据时需要此项.我需要增强的,dom操作,javascriptDWR collection converter 使用摘要<convert converter="collection" match="java.util.Collection"/>但是不知道怎么用,从 Java Object --> Javascript Object 问题不大,有现成的例子可供参考:),就是 Java function 返回一个Collection,看了一下返回值在 javascript 中是的形式是一个object Array然后在 javascript 取出每一个 Object的 property (eg. object.id , ....)下面是一个应用实例---------------------DWR.XML------------------------------<dwr><allow><convert converter="bean" match="dwr.sample.Apartment"/><create creator="new" javascript="ApartmentDAO"class="dwr.sample.ApartmentDAO"><include method="findApartments"/><include method="countApartments"/><include method="addApartment"/><include method="addApartments"/><include method="addApartments2"/></create><create creator="spring" javascript="ApartmentDAO" ></create></allow><signatures><![CDATA[import java.util.*;import dwr.sample.*;ApartmentDAO.addApartments(List<Apartment>);ApartmentDAO.addApartments2(Map<String,Apartment>);]]></signatures></dwr>如果传如 java 的代码的参数是一个 Collection ,则要稍微处理以下,先照上面黑体字的声明以下传入的Collection的内部包含的类的确切类型,以便 Java 代码作出判断;如果传入的参数是一个 List,则在 Javascript 中把这些对象放在一个Array中就可以了,如果传入的参数是一个Map,原来以为是一个二维的 Array就行了,但是试过之后发现不行,看了一下例子,原来要使用这种形式: var depts={ "dept1":new department("2", "200"),"dept2":new department("3", "300") };这样传进去之后 Java 就会根据这些数据构建一个Map,。

dwr调用java方法

dwr调用java方法

dwr调用java方法
"DWR调用Java方法,简化前端与后端交互的利器"
在现代的Web开发中,前端与后端交互是一个非常重要的环节。

而Direct Web Remoting(DWR)作为一种简化前端与后端交互的工具,为开发人员提供了一种便捷的方式来调用Java方法。

通过DWR,我们可以在前端直接调用后端的Java方法,无需手动编写AJAX请求,大大简化了开发流程。

DWR的使用非常简单,只需要在后端的Java方法上添加注解,
然后在前端通过JavaScript代码即可实现调用。

这种方式不仅减少
了前端与后端的耦合度,还提高了开发效率。

另外,DWR还支持对Java对象的直接传输,无需手动转换成JSON格式,极大地简化了
数据传输的过程。

除此之外,DWR还提供了一些高级特性,比如对异常的处理、
对会话的管理等,使得前端与后端的交互更加稳定可靠。

同时,DWR
也提供了一些安全机制,确保前端只能调用到被允许的后端方法,
有效防止了潜在的安全风险。

总的来说,DWR作为一种简化前后端交互的利器,极大地提高了Web开发的效率和可靠性。

它的出现使得前端与后端的交互更加简单、便捷,为Web开发人员带来了极大的便利。

希望更多的开发者能够了解并使用DWR,从而更好地开发出高质量的Web应用。

dwr入门操作手册

dwr入门操作手册

Dwr入门操作手册DWR配置和使用设置DWR的使用是简单的:将DWR的jar文件拷入Web应用的WEB-INF/lib目录中,在web.xml中增加一个servlet声明,并创建DWR的配置文件。

DWR的分发中需要使用一个单独的jar文件。

你必须将DWR servlet加到应用的WEB-INF/web.xml 中布署描述段中去。

<servlet><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>一个可选的步骤是设置DWR为调试模式—象上面的例子那样—在servlet描述段中将debug参数设为true。

当DWR在调试模式时,你可以从HTMl网页中看到所有的可访问的Java对象。

包含了可用对象列表的网页会出现在/WEBAPP/dwr这个url上,它显示了对象的公共方法。

所列方法可以从页面中调用,允许你,第一次,运行服务器上的对象的方法。

下图显示了调试页的样子:调试页现在你必须让DWR知道通过XMLHttpRequest对象,什么对象将会接收请求。

DWR-2型低温柔度测试仪操作规程

DWR-2型低温柔度测试仪操作规程

DWR-2型低温柔度测试仪操作规程
1、将电源插头插入220V交流电源插座内,接通电源,打开控制器电源开关。

2、按标准准备好测试样品,将样品放置于冷冻液槽料架上。

3、盖上冰柜上盖,使较软的样品冷冻至较硬的手感(冰柜的温度应调至比测试温度低5℃)。

4、调节静止测试棒间距,间距大小L按公式L=D+1Q+2计算(D为移动测试棒直径、Q为卷材厚度)。

5、根据卷材种类和规格,换上相应直径的移动测试棒。

6、将冷至合适温度的样品放置于测试机的移动测试棒和静止测试棒之间。

7、将整个测试机放入冷冻液内,盖上冰柜上盖,将待测的参数输入控制器内。

8、确认(手动/自动)转换开关拨至自动一方,按“运行”键移动测试棒将进入待测状态。

9、当温度已至,控制器输出触点断开,冰柜停止制冷,测试机启动测试。

10、测试完成,控制器报警,试验人员打开冰柜上盖,目测测试结果,并拿下已测样品。

11、合上冰柜上盖,按控制器“消警”键,控制器停止报警;移动测试棒将回复至起始点。

12、试验完毕后,关闭控制器电源开关,将电源插头从插座上拔掉;
随即将仪器清理干净,以备下次使用。

一个非常好的DWR实例

一个非常好的DWR实例

DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).DWR确实是一个非常优秀的项目,它通过反射,将java翻译成javascript,然后利用回调机制,轻松实现了javascript调用Java代码。

其大概开发过程如下:1.编写业务代码,该代码是和dwr无关的。

2.确认业务代码中哪些类、哪些方法是要由javascript直接访问的。

3.编写dwr组件,对步骤2的方法进行封装。

4.配置dwr组件到dwr.xml文件中,如果有必要,配置convert,进行java和javascript类型互转。

5.通过反射机制,dwr将步骤4的类转换成javascript代码,提供给前台页面调用。

5.编写网页,调用步骤5的javascript中的相关方法(间接调用服务器端的相关类的方法),执行业务逻辑,将执行结果利用回调函数返回。

6.在回调函数中,得到执行结果后,可以继续编写业务逻辑的相关javascript代码。

下面以用户注册的例子,来说明其使用。

(注意,本次例子只是用于演示,说明DWR的使用,类设计并不是最优的)。

1.先介绍下相关的Java类User: 用户类,public class User {//登陆ID,主键唯一private String id;//姓名private String name;//口令private String password;//电子邮件private String email;//以下包含getXXX和setXXX方法.......}UserDAO:实现User的数据库访问,这里作为一个演示,编写测试代码public class UserDAO {//存放保存的数据private static Map dataMap = new HashMap();//持久用户public boolean save(User user) {if (dataMap.containsKey(user.getId()))return false;System.out.println("下面开始保存用户");System.out.println("id:"+user.getId());System.out.println("password:"+user.getPassword());System.out.println("name:"+user.getName());System.out.println("email:"+user.getEmail());dataMap.put(user.getId(), user);System.out.println("用户保存结束");return true;}//查找用户public User find(String id) {return (User)dataMap.get(id);}}DWRUserAccess:DWR组件,提供给javascript访问的。

DWR入门教程之HelloWorld

DWR入门教程之HelloWorld

DWR入门教程之HelloW orld首先到/dwr/ 下载dwr.jar ,放到WEB-INF/lib 下…负责处理客户端请求,并呼叫Java 对象的是DWRServlet ,DWR 其实也有些Model 2 的味道,只是V iew 的这一层比较弱,因为放到客户端的JavaScript 应用程序中…在web.xml 中加入DWRServlet…1<?xml version="1.0" encoding="UTF-8"?>2<web-app id="WebApp_ID" version="2.4"3xmlns="/xml/ns/j2ee"4xmlns:xsi="/2001/XMLSchema-instance"5xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd">6<display-name>dwrtest</display-name>78<servlet>9<servlet-name>dwr-invoker</servlet-name>1011<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>12<init-param>13<param-name>debug</param-name>14<param-value>true</param-value>15</init-param>16</servlet>1718<servlet-mapping>19<servlet-name>dwr-invoker</servlet-name>20<url-pattern>/dwr/*</url-pattern>21</servlet-mapping>2223</web-app>接下来写个简单的Hello 吧!1package com.dwr;23public class HelloWorld {4private String name;5public HelloWorld(){67}8public String getName() {9return name;10}11public void setName(String name) { = name;13}14public String sayHello(String name) {15return "Hello, " + name;16}1718}客户端要呼叫这个Java 对象,传给它参数,而后传回一个字符串,客户端再显示这个字符串,神奇?其实是要告诉DWRServlet 这件事,这需要一个dwr.xml,在WEB-INF目录下建立这个这个文件:1<!DOCTYPE dwr PUBLIC2"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"3"/dwr/dwr10.dtd">45<dwr>6<allow>7<create creator="new" javascript="JDate">8<param name="class" value="java.util.Date"/>9</create>10<create creator="new" javascript="Hello">11<param name="class" value="com.dwr.HelloWorld"/>12</create>13</allow>14</dwr>creator 设定为new ,表示使用Hello 的无参数建构子来生成对象,javascript 设定为Hello ,表示客户端JavaScript 程序可以使用Hello 来呼叫对应的onlyfun.caterpillar.Hello 物件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Dwr 框架基础用法
1. Web.xml 中的配置:
<servlet> <description>Direct Web Remoter Servlet</description> <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>false</param-value> </init-param> <load-on-startup>10</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
2. Dwr.xml 中的配置:
<dwr> <allow> <createcreator="new"javascript="JDate"> <paramname="class"value="java.util.Date" /> </create> <createcreator="new"javascript="DwrInvokeData"> <paramname="class"value="com.xxx.xxx.DWRACTION" />


</create> </allow> </dwr>
3. JSP 中需要引入:
<scripttype='text/javascript' src='/项目名 /dwr/interface/DwrInvokeData.js'></script> <scripttype='text/javascript' src='/项目名/dwr/engine.js'></script> <scripttype='text/javascript' src='/项目名/dwr/util.js'></script>
4. Java 代码
还需要一个 java 类 Action 中些处理方法
publicObjectTest(argType1arg1,argType2arg2,………,argTypeNargN)throws Exception{ //处理逻辑 Return Object; }
5. Javascript 调用
function test(){ //其他代码 DwrInvokeData.方法名(参数 1,参数 2,..,参数,testCallBack); //如:DwrInvokeData.Test(参数 1,参数 2,..,参数,testCallBack); //其他代码


} //回调函数中返回参数为后台处理 Action 中的返回值,可以是任意 JavaBean,基本类型,数//组,集 合等 functiontestCallBack(返回参数){ //处理界面展代码 }















相关文档
最新文档