dwr工具入门

2023-11-08

    DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet(小应用程序)中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容.

   下面开始测试:

一.引入dwr.jar包

二.新建一个Test.java类:

package com.dwr;

public class Test {
	public String hello(){
		String welcome = "DWR, Hello World!!!";
		System.out.println(welcome);
		return welcome;
	}
	
}
三.在WEB-INF下新建dwr.xml配置文件(最后到dwr工程文件中去Copy比较方便),修改内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>
  <allow>

    <!-- intro - for the test on index.html -->
    <create creator="new" javascript="T">
      <param name="class" value="com.dwr.Test"/>
    </create>

  </allow>
</dwr>
四.在web.xml中添加如下内容:

<servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <display-name>DWR Servlet</display-name>
    <description>Direct Web Remoter Servlet</description>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
    <!-- 下面的参数最好加上,在Tomcat6.0上测试不需要添加这个参数,7.0的时候不添加好像会报一个Session Error的错误 -->
     <init-param>  
        <param-name>crossDomainSessionSecurity</param-name>  
        <param-value>false</param-value>  
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>
五.新建jsp文件,index.jsp,在jsp中需要添加的如下内容:

<script type='text/javascript' src='dwr/interface/T.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type="text/javascript">
	function clickMe() {
		T.hello(
			function(datas){
				alert(datas);
			}	
		);
	}
</script>

六.访问http://localhost:8080/DWR_0100_HelloWorld/   ,点击clickMe按钮,窗口弹出:DWR, Hello World!!!,后台也打印:DWR, Hello World!!!,测试成功

特别注意点:dwr.xml中javascript=“T”和jsp页面上引入的javascript文件<script type='text/javascript' src='dwr/interface/T.js'></script>,还有javascript函数中T.hello...这三个地方的T的名字必须统一,否则测试不成功……


另外,dwr还有一种配置方式,与spring继承配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://getahead.org/dwr/dwr20.dtd">

<dwr>
  <allow>
    <create creator="new" javascript="cnToSpell">
        <param name="class" value="com.onnet.utils.CnToSpell"/>
    </create>
    <create creator="spring" javascript="payDwr">
      <param name="beanName" value="payDwr" />
    </create>
  </allow>
</dwr>


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dwr工具入门 的相关文章

  • Angular - 如何从 DOM 中删除我使用过 $compile 的元素?

    我需要的是两个 ng views 的功能 因为我不能 我想更改某些内容的innerHTML 并编译它 我遇到的问题是 当我再次更改内容时 我可以编译 但是 Angular 是否会自行删除绑定 或者我必须手动执行此操作 如果是这样 怎么办 编
  • 是否存在 IsCallable 为 false 但 IsConstructor 为 true 的 JS 对象?

    ECMAScript 规范函数可调用 https www ecma international org ecma 262 6 0 index html sec iscallable当且仅当其参数具有 Call 内部方法时返回 true 它在
  • 为什么 iife 在一个简单的例子中不起作用?

    我不明白为什么函数表达式调用不起作用并抛出错误 你能给我解释一下吗 var a function x alert x function a 1 谢谢大家 任务比我想象的要容易得多 这是因为 JS 将 IIFE 解析为函数的参数调用 这样做时
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • Chrome 中的性能问题

    我目前正在从事一个相对较大的项目 使用 AngularJs 构建 应用程序的一部分是一个表单 您可以向其中添加任意数量的页面 不幸的是 添加了很多不必要的垃圾 即表示表单模型的对象可能会变得非常大 在某些时候 Chrome 基本上无法处理它
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 图像无法在带有 DOM 的 IE 中加载:控制台中的 7009 错误(无法解码)

    当在 IE 中的单个页面上加载许多图像时 在 IE11 中重现 其中一些图像开始加载失败 并在控制台中出现类似以下警告的内容 DOM7009 无法解码 URL 处的图像 某些唯一的 url 当我查看网络流量时 似乎确实从服务器收到了每个图像
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有
  • 代码镜像错误:未捕获错误:扩展集中无法识别扩展值([对象对象])

    全部 我目前正在从事一个React Electron项目 该项目的目标是完成一个Markdown编辑器 当我配置codemirror 该程序报告错误说 Uncaught Error Unrecognized extension value
  • 对于只触及我的工作表的 Google 表格脚本,收到“此应用程序未经验证”

    我正在编写一个 Google Sheets 脚本 我只想访问与 gs 文件关联的同一电子表格中的数据 似乎我应该有权在自己的电子表格中运行脚本 但是每当我运行一个函数时 我都会得到一个This app isn t verified信息 我该
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • React-JSX

    react JSX 这种在js里面写标签的语法叫JSX 所谓的JSX其实就是JS的对象 JSX就是Javascript和XML结合的一种格式 React发明了JSX 利用HTML语法来创建虚拟DOM 当遇到 lt JSX就当HTML解析 遇
  • 如何以管理员的身份唤起powershell

    使用运行窗口打开带管理员权限的PowerShell 1 按下组合键Windows R以打开运行窗口 输入powershell然后按下回车键 2 Windows PowerShell会以当前用户的权限去执行 3 如果你想要从普通模式转至管理员
  • 【Spring Boot 初识丨九丨 外部化配置(三)】类型安全配置属性

    上一篇讲了 Spring Boot 的外部化配置的加载顺序及一些简单的属性说明 本篇来讲一讲 外部化配置类型安全属性 Spring Boot 初识 Spring Boot 初识丨一 入门实战 Spring Boot 初识丨二 maven S
  • DPB详解

    解码图像缓存器 decoded picture buffer DPB 用于存放解码图像 DPB中既存在参考图像也存在非参考图像 那些不用于参考的图像输出后会被移除出DPB DPB的容量由SPS中的sps max dec pic buffer
  • 关于CNN中的maps

    1 feature maps 在每个卷积层 数据都是以三维形式存在的 你可以把它看成许多个二维图片叠在一起 其中每一个称为一个feature map 在输入层 如果是灰度图片 那就只有一个feature map 如果是彩色图片 一般就是3个
  • ESP32开发路程LVGL篇(三)——显示图片

    目录 显示图片 在线转换图片 图片加入项目 主函数代码 参考 LVGL 图片 显示图片 本文利用的方式 通过工具将图片转化为 c文件 写入单片机程序并进行烧录 这种方式实现起来较为简单 但是由于硬件限制 图片的大小会受限 且占用内存 可以用
  • Mysql数据库10万条数据多表联合查询速度过慢解决方案

    点我 查看原文 问题描述 今天在写项目时发现之前好好的查询接口突然挂了 检查后发现原来是有人往数据里新增了10万条数据 以至于Mysql语句执行的特别慢就不行了 原因 原因也简单这个接口原本是一张组织机构表关联区域表 组织标准类型表 币种表
  • xxl-job任务管理平台的配置与使用

    xxl job任务管理平台的配置 是否启用job executor 如果设置为false 则不初始化 job executor enable true web port server port 8083 调度中心部署根地址 选填 如调度中心
  • Linux 粘滞位 suid sgid

    粘滞位 o t 针对目录赋权 目录中创建的文件只有创建者才可以删除 命令 chmod o t 目录名 删除权限用减即可 sgid g s 针对目录建立权限 在该目录中建立的文件所属组继承父目录的属组 命令 chmod g s 目录名 删除权
  • java实体类非空判断@NotEmpty、@NotNull等注解无效解决

    1 引入Spring Hibernate Validator的依赖 此Hibernate 非Hibernate ORM框架的Hibernate
  • node deno_Deno手册:带有代码示例的TypeScript运行时教程

    node deno I explore new projects every week and it s rare that one grabs my attention as much as Deno did 我每周都会探索新的项目 很少
  • 专业招聘人吐血心得,华为Offer这不是白送吗!

    从事IT行业专项招聘很久了 接触华为OD也有几年的时间 遇到过大批非常想进到华为并提升自己的技术的大牛候选人们 其中会有部分曾有过优秀的行业经验或是院校背景的 因为畏惧机考 没通过的 也有性格测试挂了的以及离成功更近的面试挂了的等等情况 而
  • mybatis和springmvc的本质区别与应用场景

    Hibernate 是一个标准的ORM 对象关系映射 框架 入门门槛较高 不需要程序员自己写sql代码 sql语句自动生成 但是 对于sql的优化 修改就比较困难了 应用场景 适用于需求变化不多的中小型项目 因为sql语句都是系统以及写好的
  • 辞职的时候,如果老板挽留你,你会怎么办呢?

    俗话说 流水不腐 户枢不蠹 职场上 人员流动也是颇为正常的事情 我们说如果你想离开 一般有三种情况 第一种 全公司人民 包括老板 烧高香 送 瘟神 似地把你送走 第二种 他们的态度不温不火 持保留意见 就是您走和留的关系不大 第三种 老板要
  • 5 款阿里常用代码检测工具,免费用!

    作者 喻阳 面临问题 在日常研发过程中 我们通常面临的代码资产问题主要分为两大类 代码质量问题和代码安全漏洞 1 代码质量问题 代码质量其实是一个老生常谈的话题 但问题是大家都知道它很重要 却又不知道如何去提升和维护这一团队的共同财产 一方
  • Cannot query the value of property ‘javaLauncher‘ because it has no value available.

    背景 使用 gradlew nativeCompile报错 原因 未配置JAVA HOME 参考链接 解决 配置JAVA HOME即可sudo vim etc profile export JAVA HOME opt graalvm jdk
  • python语言实现:已知一行由英文字母(A-Z,a-z)和数字(0-9) 组成的字符串的加密规则如下:大写英 文字母向后移1位,如A一B,B一C, 丫一Z,Z一A;小写英文字母向后移2位,如 a-c...

    用Python实现该加密规则 可以使用ord 和chr 函数 def encrypt s r for c in s if A lt c lt Z r chr ord c 1 elif a lt c lt z r chr ord c 2 el
  • 关于react-Ant Design框架Button按钮的基础用法

    前言 最近在学习react Ant Design框架 把button组件一些基础用法记录一下 引入框架 使用组件 基础按钮 首先我们得导入Ant Design和里面的button 才能进行使用 当然得确保之前在项目中你安装了Ant Desi
  • FPGA时序约束-设置伪路径和设置异步时钟

    什么是设置伪路径 伪路径是指该路径存在 但该路径的电路功能不会发生或者无须时序约束 创建伪路径的好处 可以减少工具运行优化时间 增强实现结果 避免在不需要进行时序约束的地方花费较多时间 设置伪路径一般用在 跨时钟域 一但上电就被写入数据的寄
  • dwr工具入门

    DWR是一个开源的类库 可以帮助开发人员开发包含AJAX技术的网站 它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数 就像它就在浏览器里一样 它包含两个主要的部分 允许JavaScript从WEB服务器上一个遵循了AJAX原