dwr运行原理研究

        以前曾经在做一个项目的时候用过dwr,最近有点时间想总结一下,就写出来吧。省却需要的朋友不少自己琢磨的时间。

        客户端的发送信息过程:

        透过engine.js可以看到客户端发送信息的过程。

        调 用服务器端远程方法的时候,为了减少多次和服务器端的通信,dwr允许将几个调用组成一个batch。在dwr.engine._sendData()方 法中,我们可以得知dwr将类似下面的数据封装成在request.body中。然后通过batch.req.send(request.body);发 送到服务器端。batch.req就是一个xmlHttpRequest对象或者ActiveXObject对象【根据不同的浏览器会有不同】

        在batch里面只有一个调用的时候,发送的数据形式如下:

java 代码
 
  1. callCount=1  
  2.   
  3. page=/hsell/saleroom.do  
  4.   
  5. httpSessionId=9002B6DEF1F3107925212B0F1A0E46DB  
  6.   
  7. scriptSessionId=5C5BECA8B721ACA5A23DFE9965EE15F5417  
  8.   
  9. c0-scriptName=SystemFaced           //配置的spring bean 的id或者类名  
  10.   
  11. c0-methodName=getCustomByCardId               //远程方法名  
  12.   
  13. c0-id=0  
  14.   
  15. c0-e1=string:342201198106244710               //向远程方法传递的数据  
  16.   
  17. c0-e2=string:342201198106244710  
  18.   
  19. c0-param0=Object_Object:{cardid1:reference:c0-e1, cardid2:reference:c0-e2}  
  20.   
  21. batchId=0  

 

那么将这些信息发送到哪个地址呢?

远程目的地址request.url中。url是类似于下面的这种格式。

http://localhost:8080/hsell/dwr/call/plaincall/SystemFaced.getCustomByCardId.dwr

SystemFaced.getCustomByCardId.dwr 中SystemFaced是我配置的spring bean的id或者是你自己的类名。

getCustomByCardId就是调用的远程方法名。

批量时候的情况

发送的数据类似下面的格式

java 代码
 
  1. callCount=2                    //内有两个远程调用  
  2.   
  3. page=/DWRTest/test.html  
  4.   
  5. httpSessionId=0B25A58FE06A0DF746B782F61A7F01B7  
  6.   
  7. scriptSessionId=8AE5628F0BBB54D89DE18B0F09A44785296  
  8.   
  9. c0-scriptName=Demo  
  10.   
  11. c0-methodName=getWords  
  12.   
  13. c0-id=0  
  14.   
  15. c1-scriptName=Demo  
  16.   
  17. c1-methodName=sayWords  
  18.   
  19. c1-id=1  
  20.   
  21. batchId=0  

 

目标url就是下面这种情况

http://localhost:8080/DWRTest/dwr/call/plaincall/Multiple.2.dwr

服务器端从客户端把调用的方法名和类名或者spring的bean id提取出来,根据配置文件找到对应的类和方法。然后执行之,将结果返回。

robot framework循环读取excel表操作 robot framework循环读取excel表操作 1、安装excellibrary,注意python3.7版本,需安装:robotframework-excel,robotframework-excellibrary-xwfintech 注意:网上有很多excel处理的,都是基于python2.7的,还有一些对python3以上都是修改包的方式,其实都不需要,在pip官网上有python3以上的excellibrary,名称是robotframework-excellib 2.0.0,但是该包关键字不 阅读详情

相关推荐

YALMIP介绍及怎么在Matlab中加YALMIP、SDPT3

目录YALMIP简介怎么在Matlab中加YALMIP?1. 创建决策变量:2. 添加约束:3. 参数配置4. 求解怎么在MatlabR2019a中加YALMIP?1.下载工具包2.放置工具包3.添加路径4.测试安装结果怎么在MatlabR2019a中加SDPT3? YALMIP简介 怎么在Matlab中加YALMIP? yalmip是一位“集大成者”,它不仅自己包含基本的线性规划求解算法,比如linprog(线性规划)、bintprog(二值线性规划)、bnb(分支界定算法)等,他还提供了对cpl

m0_51431440的博客 2万+

DWR框架的初次使用及经验总结

DWR的宣传语是 “ Easy Ajax For Java”。 需求是这样的--后端定时接受服务器发送过来的信息。并把信息每隔五秒推送一次到前端实现页面局部刷新功能! AJAX可是实现前端异步发送请求到后端,拿取数据,并实现页面局部刷新的功能! Ajax有一个很大的缺陷就是“无法满足传统桌面系统的需求——服务器端需要向客户端主动发送消息”。服务端推送技术的应用场景有很多! DWR框架技术可...

liyingying111111的专栏 560

【深度学习】通俗易懂讲解循环神经网络LSTM

目录 1、循环神经网络(Recurrent Neural Networks) 2、长依赖存在的问题 3、LSTM 网络 4、LSTMs的核心思想 5、一步一步理解LSTM 6、LSTM的变种 7、总结 1、循环神经网络(Recurrent Neural Networks) 人对一个问题的思考不会完全从头开始。比如你在阅读本片文章的时,你会根据之前理解过的信息来理解下面看到的文字。...

Nieson2012的专栏 2729

DWR相关配置

1、下载DWR dwr.jar 2、配置web.xml,添加: dwr-invoker org.directwebremoting.servlet.DwrServlet debug true dwr-invoker /dwr/* 3、新建dwr.xml,配置允许js调用的class

com185272358的专栏 823

运放偏置电路设计:如何精准计算差分放大器的电压偏移量

本文深入解析了差分放大器偏置电路的设计原理与精准计算方法,重点阐述了如何通过引入参考电压实现信号电压偏移,以适应单电源ADC的输入范围。文章结合实战案例,详细推导了偏移电压公式,并强调了电阻匹配、运放选型及PCB布局对精度和共模抑制比的关键影响,帮助硬件工程师避免常见设计陷阱。

weixin_29288313的博客 634

抖音无人直播技术全解析:从原理、实操到合规化思考

直播技术作为内容分发的核心形式,其底层依赖于流媒体协议(如RTMP)与实时音视频编码推流。通过OBS等软件进行场景合成与虚拟摄像头技术,可以实现丰富的画面包装与自动化播放。这项技术的核心价值在于突破人力与时间的限制,实现内容的持续输出与流量获取,在电商带货、品牌展示、陪伴式内容等场景中具有应用潜力。然而,单纯依赖录播循环存在高风险,平台风控系统会通过内容重复性检测与互动行为模型进行识别。因此,更可持续的方向是探索“半无人直播”或自动化辅助工具,例如利用AI数字人驱动或直播切片技术,在合规前提下提升运营效率。

weixin_29895109的博客 508

Dwr批处理

批量调用 你可以使用batch来批量的执行远程调用。这样可以减少与服务器的交互次数,所以可以提交反应速度。 一个batch以 DWREngine.beginBatch() 开始 ,并以 DWREngine.endBatch() 结束。当 DWREngine.endBatch() 被调用,我们就结束了远程调用的分组,这样DWR就在一次与服务器的交互中执行它们。 DWR会小心的处理保证所有的回调函数都...

开心的穷下去 176

基于拟蒙特卡洛模拟法的随机潮流计算matlab程序

由式(4-11)可知,蒙特卡洛模拟法的计算量不受电力系统规模大小影响,因此该方法在一些复杂的电力系统中可以得到应用,包括处理电力系统中有多个间歇性新能源接入的问题,解决系统中多个节点之间相关性问题等等。本章在此基础上提出了基于拟蒙特卡洛模拟的随机潮流计算方法,并且对拟蒙特卡洛法中的拟随机数序列进行了改进,大大提高了随机潮流的计算效率。模拟法的具体思路如下:基于实际工程问题的求解需要,建立与之相对应的随机模拟过程和随机概率模型,使得它们的参数,包括概率分布或者数学期望,能够等于问题的实际解;

weixin_47365903的博客 1795

中国大学MOOC网爬取课件案例学习

分析 先从这个网址开始分析 https://www.icourse163.org/learn/BIT-1001870001?tid=1003245012#/learn/content?type=detail&id=1004574454&cid=1005754086 进入网页后F12, 进入 Network,并选择 XHR. 然后刷新一下网页。我们要找的是从后台传到前端的信息,我发现了这个请求,里面包含一大串数据 由于这个内容很混乱,我把这数据放到 sublime Text 3 里面整理

AustinTaoo 3288

yandex 不定长旋转验证码PPOCR识别案例

可以看到,此种验证码非常变态,旋转角度不固定,干扰背景不固定,字符长度不固定,弯曲形变都是不固定的,在人眼都很难分辨验证码的情况下,其实都是对于模型来讲,也是比较困难的哈哈,传统验证码可能小几百张就能达到很好的效果了,是因为,验证码难度比较简单,通常都是4,6位定长,但是对于模型而言,无非就是增加数据量。由于该验证码的复杂度,自己写一个rcnn或者其他模型,来优化改数据集进行训练变的尤为困难复杂,所以这里强烈推荐百度飞桨的开源模型。在得到较好的loss后,导出模型。如有侵犯,请联系作者下架。

码王吴彦祖的博客 723

Python爬虫实战:全面采集国家自然科学基金项目数据的全流程指南

国家自然科学基金委员会(NSFC)支持基础研究、应用基础研究,是我国科研投入的核心项目之一。公开的项目数据包括项目名称、负责人、资助金额、年度、单位等,具备极高科研和数据分析价值。requests:基础HTTP请求库,简单直观:异步HTTP请求库,适合大规模并发:HTML解析,提取数据:处理JavaScript渲染网页pandas:数据分析与清洗:数据库存储:重试机制实现。

2201_76125261的博客 753

DWR2学习笔记(三)

四. DWR处理用户请求流程分析 1. DWR默认的URL处理器介绍 DWR的URL处理器(保存在urlMapping这个Map中),DWR会根据jsp中 <srcipt src="/dwr/engine.js" />的src属性,来判断使用哪个处理器。 { /webwork/DWRActionUtil.js=org.directwebremoting...

weixin_30748995的博客 238

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

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

雕爷学编程 2875

DWR笔记

DWR是一个Ajax开源框架,能够模拟实现前端JS代码直接调用后台java方法的效果,还能传参,接收返回值。 原理:是利用反射机制实现的。 用法要注意:调用,传参,返回值。返回值又分为常用返回值 + 自定义类的返回对象 + 集合容器的返回。 要点:概念 + 原理(反射) + 配置安装 + 用法 + 注意点

AlvinNoending的专栏 1366

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

DWR 原理简单介绍

使用DWR已经好长一段时间了,可是今天才知道它的工作原理,下面与大家分享,如果有什么不对之处,欢迎指出,大家一起讨论...           使用DWR时,页面需要导入engine.js文件,另外还需要导入DWR自动生成的文件(根据用户在dwr.xml中配置信息生成),如:logAjax.js,这个文件是在服务器端是找不到的,不过可以在浏览器的缓存中可以找到。如果页面引入如下:    ...

A2k 193

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

dwr概述

1、DWR: Easy AJAX for JAVA 作为一个java open source library,DWR可以帮助开发人员完成应用AJAX技术的web程序。它可以让浏览器上的javascript方法调用运行在web服务器上java方法。 DWR主要由两部门组成。javascript与web服务器通信并更新web页;运行在web服务器的Servlet处理请求并把响应发回浏览器。 DWR采用

zzy2007的专栏 399

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

DWR问题

同样的web.xml,dwr.xml在本机的resin3.0,Tomcat5下始终不能配置成功,而放到内网却可以。不管内网还是本机,始终提示那个js文件没有找到,没有生成。以下摘录工作原理:通过研究uk.ltd.getahead.dwr.DWRServlet这个servlet来研究下dwr到底是如何工作滴。代码 web.xml配置    s

Bob@优快云 759

Dwr 学习研究

 DWR是Direct Web Remoting 的缩写。DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单. DWR 是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR servlet 以及 JavaScript 库。虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC ...

topMan'blog 123

dwr推送技术深入研究

原文地址:https://www.cnblogs.com/momo1210/p/6283578.html DWR 工作原理:   是通过动态把 Java 类生成为 Javascript。它的代码就像 Ajax 一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR 负责数据的传递和转换。这种从 Java 到JavaScript的远程调用功能的方式使DW...

weixin_30421525的博客 261

DWR3实现服务器端向客户端精确推送消息

研究了一天半,终于模拟出了这个功能,网上DWR的资料不少,但是真正实现客户端向服务器端精确推送消息的只有两篇文章。但是代码都只有一部分,向我这种刚开始学习DWR的人来说要看懂真的蛮难。不过即便如此,http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html这片文章还是给了我很大帮助,再次表示感谢,下面我将这两天的研究详细记录下

爱春秋 1万+

DWR学习 之一

这段时间较闲,研究了一番dwr.发现dwr实现的AJAX有些地方确实很是先进.比如动态生成javascript代码;隐藏的http协议;javascript于java代码交互的是javascript对象(或字符串)等. 以下是我临时译的一些东西.本来想全译,发现dwr实在是简单,就随便写了.英文居差,现一把. 1、DWR: Easy AJAX for JAVA 作为一个java open sour

Coolingverse 专栏 1057

关于DWR直接返回结果的研究

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34283445的博客 140

DWR学习

http://getahead.ltd.uk/dwr/ 这段时间较闲,研究了一番dwr.发现dwr实现的AJAX有些地方确实很是先进.比如动态生成javascript代码;隐藏的http协议;javascript于java代码交互的是javascript对象(或字符串)等. 以下是我临时译的一些东西.本来想全译,发现dwr实在是简单,就随便写了.英文居差,现一把. 1、DWR: Easy AJAX

LaoChai的专栏 817

DWR学习详解

1、DWR: Easy AJAX for JAVA 作为一个java open source library,DWR可以帮助开发人员完成应用AJAX技术的web程序。它可以让浏览器上的javascript方法调用运行在web服务器上java方法。 DWR主要由两部门组成。javascript与web服务器通信并更新web页;运行在web服务器的Servlet处理请求并把响应发回浏览器。 DWR采用

代码将军 888

Ajax 框架 Dwr的 研究体会

在经过了一周的实践和总结之后,对Ajax框架Dwr进行了研究和应用,从中得到了一些体会,转给需要的朋友; 给我的总体感觉是: 1. 大家可以先通过一份资料详细的了解一下Ajax的实现原理,注意原理一定要熟记于心; 2. 针对大家反馈的信息,对于Ajax框架Dwr比较流行,那么就从这个框架开始入手;此时,推荐大家官方的资料是进步的最好办法,在查看官方的文档之前,我也在网上搜集了一些资料,但...

goodhouse的博客 138

EXTJS与java后台交互(一)DWR使用

最近公司的项目,前台界面用EXTJS,后台用Java写,他们之间的交互我目前接触到的有两种,简单介绍.          先介绍第一种方法:在EXTJS里直接调用Java方法.          在EXTJS里想用Java方法的需求很广泛,例如在界面想从后台取值做个判断,做个验证之类,或者要取到表格数据等.都是可以直接跟后台Java代码打交道.而我们又知道,js是脚本语言,只能在客户端执行,与...

weixin_41045798的博客 272
上一篇: 表单验证-dwr,Validator,Struts2
下一篇: Guice 1.0 用户指南
rq2
rq2
博客等级 码龄23年 1粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值