DWR框架

DWR框架与dwrUtil工具类深入解析与实践 Direct Web Remoting (DWR) 是一个开源的 Java 库,它允许开发者通过 JavaScript 在浏览器端直接调用服务器端 Java 方法。它极大地简化了 AJAX 应用程序的开发,因为它处理了所有底层的通信细节,使得开发者可以专注于编写业务逻辑。DWR 的主要目标是将 JavaScript 代码从后端逻辑中解放出来,创建一个简易的方式来将后端对象暴露给前端,无需复杂的配置和接口编写。 阅读详情

        DWR 是一个引擎,可以把服务器端 Java 对象的方法公开给 JavaScript 代码。使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。这意味着客户端代码再也不需要直接处理 XMLHttpRequest 对象或者服务器的响应。不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML。甚至不再需要编写 servlet 代码把 Ajax 请求调整成对 Java 域对象的调用。 DWR 是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR servlet 以及 JavaScript 库。虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC 工具包,但是它是最成熟的,而且提供了许多有用的功能。 DWR 是作为 Web 应用程序中的 servlet 部署的。把它看作一个黑盒子,这个 servlet 有两个主要作用:首先,对于公开的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的 JavaScript 包含存根函数,代表 Java 类上的对应方法并在幕后执行 XMLHttpRequest。这些请求被发送给 DWR,这时它的第二个作用就是把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScript。DWR 还提供了帮助执行常见的用户界面任务的 JavaScript 工具函数。

在web.xml中添加:
<servlet>
  <servlet-name>dwr-invoker</servlet-name>
  <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

 dwr.xml

<dwr>
  <!-- init is only needed if you are extending DWR -->
  <init>
    <creator id="..." class="..."/>
    <converter id="..." class="..."/>
  </init>
  <!-- without allow, DWR isn't allowed to do anything -->
  <allow>
    <create creator="..." javascript="..."/>
    <convert converter="..." match="..."/>
  </allow>
  <!-- you may need to tell DWR about method signatures -->
  <signatures>
    ...//signatures 为了识别Collections 里数据类型
  </signatures>
</dwr>

在页面中引用动态生成的javascript

<script type="text/javascript" src="[WEBAPP]/dwr/interface/Remote.js"> </script>
<script type="text/javascript" src="[WEBAPP]/dwr/engine.js"> </script>
如何引用方法:
function callBack(str) { alert(str); } Remote.method(param, callBack);
//从远程方法中返回的数据在页面反映出来

如何利用回调函数处理远程方法返回的而外数据?( Passing extra data to callbacks )

The solution is to use a Javascript closure.

参考站点:http://jibbering.com/faq/faq_notes/closures.html
闭包简单的解释是,ECMAScript允许inner functions(嵌套函数):函数可以定义在另外一个函数里面(关于嵌套函数可以看看<javascript权威指南>)。这些内部的函数可以访问outer function(父函数)的local变量,参数,其它内部函数。当内部函数被构造,并可以在函数外被获得(函数当成返回值),这个内部函数被在 outer function返回后被执行(在outer函数外执行),那一个闭包形成了。(简单的理解,function被当成数据类型传递或动态执行)。 inner function还有权利访问 那些outer function(父函数)的local变量,参数,其它内部函数。那些outer function(父函数)的local变量,参数,其它内部函数在outer function返回前就有值,并返回的inner function需要改变这些值。

Javascript closure例子
function createAClosure()
{
var local = 0;
return function(){return ++local;};
}
var c1 = createAClosure();  //第一个闭包,嵌套函数返回的值保存在c1
var c2 = createAClosure(); //第二个闭包
document.write(c1() + "<br/>"); //1
document.write(c1() + "<br/>"); //2
document.write(c1() + "<br/>"); //3
document.write(c2() + "<br/>"); //1
document.write(c2() + "<br/>"); //2


Remoting Options (设置同步或异步)
To set the synchronisity on a global level:
DWREngine.setAsync(true);
Or to set it on a call level:
Remote.method(params, { callback:function(data) { ... }, async:true });
Or to set it on a batch level:
涉及修改或者添加,更新数据库时,要添加如下代码,保持数据的实时性.
DWREngine.beginBatch(); Remote.method1(params, callback1); Remote.method2(params, callback2); DWREngine.endBatch({ async:true });


DWREngine.setVerb(verb)(设置动作POST/GET)
For example, to set the remoting verb on a global level:
DWREngine.setVerb("GET"); Or to set it on a call level:
Remote.method(params, { callback:function(data) { ... }, verb:"GET" }); Or to set it on a batch level:
DWREngine.beginBatch(); Remote.method1(params, callback1); Remote.method2(params, callback2); DWREngine.endBatch({ verb:"GET" });

 


 

CAN开发笔记(TI开发者推荐笔记) 查阅了很多资料没有查阅到关于5728芯片CAN模块寄存器的介绍,希望通过本文能给做CAN驱动的后来者有一点参考意义,我也是刚接触CAN模块有些不足请各位多多指正。 由下图所示是CAN模块初始化流程图 首先要开始初始化,设置CAN位时间,然后配置message objects, 完成初始化。 1.开始初始化 首先要控制DCAN_CTL 寄存器,该寄存器是CAN模块的总控制器,很多配置通过... 阅读详情

相关推荐

100个Python代码大全:学完这篇从Python小白到架构师

Python是一种广泛使用的高级编程语言,以其简洁优雅、易于学习和强大的库而闻名。无论你是一位经验丰富的程序员还是初学者,都可以从这种语言的丰富资源中受益。在本篇博客中,我将分享100个实用的Python代码示例,旨在帮助你掌握Python编程,并在日常工作中提高效率。

penggerhe的博客 1万+

DWR的使用以及DWR中工具JS文件的使用

DWR介绍: DWR本身是一个AJAX框架。 作用: 允许开发人员在客户端通过JavaScript代码调用服务器端的Java方法。 可以使用DWR中的util.js文件中包含了一些工具函数,通过这些函数的帮助,将简化JavaScript操作。 DWR框架主要由两部分组成: 1.客户端JavaScript代码直接调用服务器端Java方法. 2.服务器上运行的...

u012878236的专栏 860

ENVI 5.3与IDL 8.5安装指南:从下载到激活的完整流程

本文提供了一份详细的ENVI 5.3与IDL 8.5安装教程,涵盖从获取安装包、运行主程序、安装许可证到关键文件替换的完整流程。指南重点解决了激活过程中的常见问题,并分享了个人实践经验,旨在帮助用户,特别是遥感图像处理初学者,一次性顺利完成软件部署,为后续的科研与开发工作奠定基础。

weixin_29213827的博客 545

DWR的工作原理和优缺点

一直以来,我都认为DWR是逆ajax的框架,其实这样理解,是很不全面的,逆ajax只是它的一部分而已。   针对DWR的理解,简单的说就是”简化数据的获取“,用专业的语言来说,那就是通过客户端的engine.js作为客户端的引擎和服务端的dwr.jar作为服务端的引擎,以RPC的方式来获取数据。   举个栗子,比如用户的注册 服务端,有一个入口,com.zy.action.regist.ja

卖克的专栏 9972

ArcGIS 10.4 Desktop安装步骤。

步骤 1 :安装 LicenseManager 有了安装包以后,我们进入安装包文件目录,如图所示,首先需要安装ArcGIS license manager,即点击打开图中红色框中exe文件。 PS:安装 LicenseManager,关于 License 的安装路径一般默认即可,因为很小的,装C 盘也无所谓了,当然了自己改了也可以的,但是不建议! 即便修改路径,建议只改盘符,不修改相对路径方式! 如:C:\Program Files (x86)\ArcGIS\License10.6 修改为 D:\.

IT爱好者 2万+

保姆级教程!Python爬虫爬取知乎回答,保存为Markdown文件

本教程实现了知乎公开回答的完整爬取与Markdown保存,核心流程为「请求页面→解析作者/时间/正文/图片→下载图片→保存MD文件」,步骤清晰,代码可直接复用关键特性:支持合并/单文件两种保存模式、自动下载图片并引用、中文乱码防护、非法文件名过滤,满足日常整理知乎回答的需求新手友好:无需复杂配置,仅需修改知乎问题URL即可运行,全程无坑,5分钟内可看到运行结果灵活扩展:支持进阶优化(登录、分页、格式完善),可根据个人需求调整功能。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1232

JavaWeb DWR框架介绍

一.DWR简介   (1)DWR包含两个主要部分:       1. 运行在服务器端的servlet控制器(DwrServlet),它负责接收请求,调用相应业务逻辑进行处理,向客户端返回响应。       2.运行在浏览器端的JavaScript,它负责向服务器端发送请求,接收响应,动态更新页面   (2)DWR的配置       1.准备工作。          首先要导入两个jar包(dwr....

yyf461033903的博客 1万+

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

本文聚焦OpenClaw从测试环境走向生产环境的核心痛点,围绕“性能优化、安全加固、监控运维”三大维度展开实操讲解。先明确生产环境硬件/系统选型标准,再通过硬件层资源管控、模型调度策略、缓存优化等手段提升响应速度(实测响应效率提升50%+);接着从网络、权限、数据三层构建安全防护体系,集成火山引擎安全方案拦截高危操作;最后落地TenacitOS可视化监控与Prometheus告警体系,配套完整故障排查清单和虚拟实战案例。全文所有配置、代码均经实测验证,兼顾新手入门实操性和进阶读者的生产级部署需求。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 3404

DWR对象作用范围

DWR系列 DWR脚本AjaxJavaScriptWeb  DWR对象作用范围 在应用dwr的时候需要创建一个业务对象,也就是远程的业务对象。通过前台的客户端也就是js脚本,去访问这个后台的对象,这个后台对象必然有一个作用范围,为什么这么说?因为我们在开发web项目的时候,http协议是无状态的,对于无状态的协议,我们如果想保存状态的信息,怎么办?这是一个比较重要的问题。也就是说我们只

hanxinis的专栏 1193

家庭弱电最实用的功能,网线面板如何接线

按照规范,我国宽带入户线按B接法,即568B标准,从后面看,从左到右:1橙白,2橙,3绿白,4蓝,5蓝白,6绿,7棕白,8棕,即和水晶头的接法一致。做水晶头的时候,要注意排好线序,把8根线的头剪齐,留下大约1.8公分,插入水晶头的时候,水晶头要尾巴向下,把线插到水晶头的底端,用网线钳子夹紧。具体是:第1脚——橙白、第2脚——橙色、第3脚——绿白、第4脚——蓝色、第5脚——蓝白、第6脚——绿色、第7脚——棕白、第8脚——棕色,除了四根带颜色的线橙、绿、蓝、棕外,每一根白线上都有线标橙、绿、蓝、棕。

qq_43416206的博客 1672

cdk&java | 分子sdf文件生成

sdf

ASKCOS博客 1089

DWR框架学习

我的理解:DWR框架是javaWeb中前后端直接交互的解决方案,用DWR框架,前端js能够直接调用后端服务,后端服务也可以直接调用前端js函数。 配置: (1)需要Dwr.jar 包,pom配置如下: <dependency> <groupId>org.directwebremoting</groupId> ...

dingduowang4794的博客 149

【雕爷学编程】Arduino智能家居之DS18B20温度传感器

1、温度和湿度控制:通过连接温度传感器和湿度传感器,Arduino可以实时监测室内环境的温度和湿度,并通过控制空调、加热器或加湿器等执行器,实现室内温湿度的自动调节。设计用户友好的界面和操作方式,提供简单直观的控制和反馈机制,以及考虑用户习惯和需求,能够提升系统的整体用户体验。这意味着用户可以根据自己的需求和创意,自定义和定制智能家居系统的功能和外观。5、能源管理:Arduino可以与电能监测模块和智能插座等设备结合使用,实时监测家庭能源的使用情况,并通过自动控制电器设备的开关,实现能源的有效管理和节约。

雕爷学编程 2873

DWR框架的使用

DWR框架的使用 1、DWR框架概述官方网站:http://getahead.ltd.uk/dwr/index DWR -- Drect Web Remotingu      开源,免费的Ajax框架u      将Java类发布为JavaScript可调用的脚本对象u      提供JavaScript工具类,简化页面编码 2、为什么要使用DWR 

jiedamu的专栏 800

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

dwr框架介绍

转: 【DWR框架】过时了吗? 置顶 2018年06月02日 11:59:02 许你笑颜 阅读数:4129 版权声明: https://blog.csdn.net/smileyan9/article/details/80545795 对于这个问题,一般态度有三种: 1. 当然过时了,Ajax我们可以使用jQuery很容易就可以实现,何必使用DWR这个需要...

weixin_30662109的博客 165

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

dwr框架搭建

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发 包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。 下面就开始写我们的第一个dwr程...

chuwuling4009的博客 185

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

DWR框架入门

DWR入门DWR(Direct Web Remoting)是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR Servlet 以及 JavaScript 库。虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC 工具包,但是它是最成熟的,而且提供了许多有用的功能。为什么要使用DWR,我们首先介绍基本AJAX流程,从中可以看到引

zhouyi_cute的专栏 890

DWR框架搭建与使用

1、简介 DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。以上是摘自百度百科里面的定义。它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScr

hu1991die的专栏 4522

【DWR框架】过时了吗?

对于这个问题,一般态度有三种:1.    当然过时了,Ajax我们可以使用jQuery很容易就可以实现,何必使用DWR这个需要配置,需要担心java代码泄露的危险的。2. 当然没有过时,现在仍然有不少项目需要这个框架来实现一些效果,怎么说也是一个很不错的框架,使用方便,能够适应各种框架中。3.    不好说。对于这个问题我们不急于立即得到答案,我们可以看一下这个论坛https://bbs.csdn...

Smileyan's blog 2万+

DWR框架实现AJAx

DWR 框架实现ajax客户端--js服务端--servlet+xml  两者--》服务端的后台组件(类)通过js代码,来调用。需要用到得dwr包:dwr.jar,commons-logging.jar包将DwrServelet配置在web.xml中,它是用来1 接受前台对后端组件得调用请求,并完成对后台组件得创建和调用                                       

javakeikei的专栏 1294

DWR框架简介

DWR框架简介 DWR框架是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器的JavaScript代码中调用Web服务器的Java代码,就像Java代码在浏览器中一样。DWR工作原理是通过动态把Java类生成JavaScript,让使用者感觉调用就像发生在浏览器端。 2、DWR的使用场合 当我们的业务需要在页面不提交的情况下访问服务器端并实现页面数据局部刷新时...

大道至简 218

Dwr框架入门教学

Dwr框架入门教学 DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。 虽然现在慢慢被淘汰了,但是还是很多公司在用的,还是有必要简单的学习下以便不时之需 dwr 支持和spring结合,或者dwr +SSM 结合, 需要自己研究研究 dwr官方文档: http://directwebremoting.or

weixin_45203607的博客 1904

dwr框架应用

 dwr框架所以来的jar包有:dwr.jar ,   jakarta.jar ,    commons-validator.jar . 在web.xml中配置                                                       mydwr                                uk.ltd.getahead.dwr.DW

MadProgramer的专栏 446
上一篇: 身动如浪,心静如冰
下一篇: AOP vs Decorator
danning
博客等级 码龄22年 5粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值