DWR(2):DWR配置详情

article/2025/10/18 19:51:55

下面我们通过一个简单的入门项目来讲解DWR的配置。

首先新建一个maven项目,结构如下:

1 引入依赖

    <dependency><groupId>org.directwebremoting</groupId><artifactId>dwr</artifactId><version>3.0.0-RELEASE</version></dependency>

2 配置web.xml

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app id="dwr" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><display-name>Archetype Created Web Application</display-name><listener><!-- version 2 * --><!-- <listener-class>org.directwebremoting.servlet.DwrServlet</listener-class> --><!-- 2.x 和3.x版本的都可以 --><!-- <listener-class>org.directwebremoting.servlet.DwrServlet</listener-class> --><!-- 3.x版本的还可以使用下面这个 --><listener-class>uk.ltd.getahead.dwr.DWRServlet</listener-class></listener><servlet><servlet-name>dwr-invoker</servlet-name><!-- version 2 * --><!-- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> --><!-- 2.x 和3.x版本的都可以 --><!-- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> --><!-- 3.x版本的还可以使用下面这个 --><servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class><!--使用服务器推技术(反转AJAX)--><init-param><param-name>activeReverseAjaxEnabled</param-name><param-value>true</param-value></init-param><!--使用能够从其他域进行请求true:开启;false:关闭--><init-param><param-name>crossDomainSessionSecurity</param-name><param-value>false</param-value></init-param><!--运行远程js--><init-param><param-name>allowScriptTagRemoting</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>
</web-app>

说明:

        <url-pattern>/dwr/*</url-pattern> 中dwr是dwr中配置的路径,util.js和engine.js都在dwr下面配置。具体见页面中导入js的说明。

3 新建dwr.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN""http://directwebremoting.org/schema/dwr30.dtd">
<dwr><allow><create creator="new" javascript="service"><param name="class" value="test.Service"/></create></allow>
</dwr>

说明:

<create creator="new" javascript="service">,creator的属性值固定,可以是new,struts,spring,不是随意取名,javascript的值是在页面中调用的名称。

<param name="class" value="test.Service"/>中的value为调用java类的全路径

4 编写push方法

package test;public class Service {public String sayHello(String name) {String msg = " hello " + name;return msg;}
}

5 前端页面触发push方法和回调函数显示推送消息

<%@ page language="java" pageEncoding="UTF-8"%><html>
<head><title>My JSP 'first_dwr.jsp' starting page</title><script type='text/javascript' src='/dwr/util.js'></script><script type='text/javascript' src='/dwr/engine.js'></script><script type='text/javascript' src='/dwr/interface/service.js'></script><script type="text/javascript">function firstDwr(){service.sayHello(document.getElementById('data').value,callBackHello);}function callBackHello(data){alert(data)}</script>
</head>
<body>
<tr><td><input id="data" type="text" name="data" /><input type="button" name="but" value="测 试" onclick="firstDwr()"></td>
</tr>
</body>
</html>

说明:

        <script type='text/javascript' src='/dwr/util.js'></script> /dwr/是web.xml中配置的

        <script type='text/javascript' src='/dwr/engine.js'></script> /dwr/是web.xml中配置的

    <script type='text/javascript' src='/dwr/interface/service.js'> /dwr/是 web.xml 中配置的,service.js 是在 dwr 中配置的文件名,如下图:

 一定要统一,否则浏览器会报“对象未初始化错误”;按照这样的配发dwr就可以使用了,如果还想更深的学习和使用,你只需将 java 类继续改造或者 dwr.xml 文件继续配置。

注意事项:

        无需将 util.js 和 engine.js 拷贝到项目的 js 目录下面;

        Js 引入的时候,是 web.xml 中配置的路劲,如/dwr/*。

输入文本点击测试会返回数据,效果如下:


http://chatgpt.dhexx.cn/article/5uCPut33.shtml

相关文章

DreamWeaver下如何应用CSS样式

首先介绍一下CSS样式的属性&#xff1a; CSS样式属性被分为八大类&#xff1a;类型&#xff0c;背景&#xff0c;区块&#xff0c;边框&#xff0c;列表&#xff0c;定位&#xff0c;扩展。 类型主要定义文本的字体&#xff0c;大小&#xff0c;颜色&#xff0c;行高和修饰等…

DW的基本操作

1、首先先打开我们的DW软件。 2、进去之后点新建创建一个HTML的文档。 3、在桌面先创建一个文件夹&#xff0c;方便放文档之类的。 4、进去之后鼠标右键点右上角的Untitled- &#xff0c;再点另存为找到你之前创的那个文件夹&#xff0c;点进去&#xff0c;然后把他存放在这个文…

【CF #782 Div2】 A-D

A. Red Versus Blue 题目 分析 红方蓝方打比赛&#xff0c;确定红方比蓝方厉害&#xff0c;连胜的概率最低&#xff0c;排出比赛结果可能的序列。 因为R比B多&#xff0c;所以考虑在B之间插入R&#xff0c;b个B需要将R分为b1组&#xff0c;需要连胜数最小&#xff0c;就把R…

Dreamweaver css选择器

在 CSS 中&#xff0c;选择器是选取需设置样式的元素的模式。 下面我们介绍几种常用选择器: 元素选择器:通过选择html标签设置css样式 示例&#xff1a;直接选取p标签设置文本颜色 类选择器&#xff1a;通过设置class类设置css样式 注意&#xff1a;class命名不能以数字开头…

dw在html链接css代码怎么写,dw怎么链接css样式?

dw链接外部css样式的方式&#xff1a;在HTML文档中使用<link href"css文件的地址"rel"stylesheet"type"text/css"/>语句链接外部css样式。 Dreamweaver简称DW&#xff0c; 那么&#xff0c;我们想在外部写一个dw的外部样式&#xff0c;可是…

给DW2XLS源代码增加了同时导出多个dw的代码(合并多个dw)

给DW2XLS源代码增加了合并多个dw的代码。现在共享下载 客户定制的&#xff0c;如果后期我有修改的话&#xff0c;我会继续释放出来供下载的。 现在只是简单的合并&#xff0c;如果上下两个dw的栏位宽度不适合。需要自己修改改进。 换言之&#xff0c;适合上下两个dw栏位宽度…

PB导出数据excel格式dw2xls

PB导出数据excel格式dw2xls 使用DW2XLS控件 语法 uf_save_dw_as_excel ( dw, filename ) 参数 dw A reference to the datawindow object filename A string whose value is the name of the file you want to create. If filename is not on the operating systems sea…

FFT算法实现与分析MATLAB

FFT算法实现 厚 2.1实验目的 I、加深对快速傅里叶变换的理解。 II、掌握 FFT 算法及其程序的编写。 III、掌握算法性能评测的方法。 IV、熟悉MatLab编程。 2.2实验原理 一个连续信号Xa(t)的频谱可以用它的傅里叶变换表示为&#xff1a; 如果对该信号进行理想采样&#x…

采用FPGA实现FFT算法

关注、星标公众号&#xff0c;精彩内容每日送达 来源&#xff1a;网络素材 随着数字技术的快速发展&#xff0c;数字信号处理已深入到各个学科领域。在数字信号处理中&#xff0c;许多算法如相关、滤波、谱估计、卷积等都可通过转化为离散傅立叶变换(DFT)实现&#xff0c;从而为…

[笔记]FFT算法

前言 对于学通信的人来说&#xff0c;在学到数字信号处理时都会学到一个东东&#xff0c;叫做快速傅里叶变换(Fast Fourier Transform,简称FFT)。这东西真的挺有用的&#xff0c;但是只要有那么一点用的东西&#xff0c;就是特别难的。(现在也有很多不完整的地方&#xff0c;以…

c语言实现fft原理,新手小白一看就会,FFT算法的原理详解

原标题:新手小白一看就会,FFT算法的原理详解 相信网上现在有很多关于FFT的教程,我曾经也参阅了很多网上的教程,感觉都不怎么通俗易懂。在基本上的研究FFT,并且通过编程的形式实现之后。我决定写一篇通俗易懂的关于FFT的讲解。因此我在接下来的叙述中尽量非常通俗细致的讲解…

FFT算法实现,python,Java

FFT算法实践报告 FFT基本原理 代码链接: link. DFT 在讨论FFT之前&#xff0c;我们需要先了解以下DFT。所谓的DFT其实就是两个矩阵做点乘。 多项式可以有两种表示方法&#xff0c;一种是系数表示法&#xff0c;另一种是点值表示法。 这两种表示法之间是可以转换的&#xff…

MATLAB FFT算法的应用

目录 一&#xff0c;实验原理 二&#xff0c;实验内容 1、实现2N点实数序列 2、已知某序列​编辑在单位圆上的N64等分样点的Z变换为&#xff1a; 3、周期为N的余弦序列&#xff1a; 1&#xff0c;求该序列N点FFT 2&#xff0c;求该序列2N点FFT 3&#xff0c;求该序列N/2点…

FFT算法实现

关于FFT算法的原理这里就不多说了&#xff0c;具体参考有关书籍。 DFT与FFT运算量的比较 N点DFT的运算量 复数乘法 复数加法 一个X(k) N N-1 N个X(k)&#xff08;N点DFT&#xff09; N*N N(N-1) N点FFT的运算量 复数乘法 复数加法 N个X(k) (N/2)*log2N N*log2N 如…

使用python手写FFT算法

FFT(Fast Fourier Transform) 是 DFT(Discrete Fourier Transform)的快读实现&#xff0c;它在机理上没有改变DFT的算法&#xff0c;只是在实现上采用的巧妙的实现。 使 O ( N 2 ) O(N^2) O(N2)的实现变成了 O ( N l o g 2 N ) O(Nlog_2N) O(Nlog2​N)的实现&#xff0c;优化算…

C语言实现FFT算法

C语言实现FFT算法 fft1d.c和fft1d.h见https://download.csdn.net/download/weixin_43216875/12009644 1 fft1d.h #ifndef FFT1D_H #define FFT1D_H#include "math.h"#define PI 3.1415926535897932384626433832795028841971typedef struct complex //复数类型 {flo…

Matlab实现DITFFT算法

这段时间刚好在学习数字信号处理的快速傅立叶变换&#xff0c;也刚好应着老师布置的作业用matlab实现N点的FFT。 方法也是采用教科书上的DITFFT&#xff0c;当然关键也就是分治的思想&#xff0c;分成奇偶序列&#xff0c;再观察旋转因子和步长的不同来编写算法 该算法首先的部…

FFT算法的C语言实现

FFT算法的C语言实现 &#xff1a;数字信号处理 需要注意的几个点 #mermaid-svg-Q0Cv61uzu3GVxhM0 .label{font-family:trebuchet ms, verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Q0Cv61uzu3GVxhM0 .label text{fill:#333}#mer…

优雅的FFT算法

简 介&#xff1a; 利用FFT算法实现快速傅里叶变换&#xff0c; 在理论、工程中具有非常广泛的应用。 除了能够在合适的计算平台完成FFT算法&#xff0c;同时还需要注意到它在频谱分析中可能带来的频率混叠以及频率泄露等问题。 关键词&#xff1a; FFT&#xff0c;算法实现 #m…

STM32 FFT算法实现

DSP 库运行环境搭建 在 MDK 里面搭建 STM32F4 的 DSP 运行环境(使用.lib 方式)是很简单的&#xff0c;分为 3 个步骤&#xff1a; 1&#xff0c; 添加文件。 首先&#xff0c;我们在例程工程目录下新建&#xff1a;DSP_LIB 文件夹&#xff0c;存放我们将要添加的文件&#xff…