文档章节

DWR 3.0 入门示例教程

J
 Java编程思想
发布于 2014/01/09 09:00
字数 931
阅读 60
收藏 1

DWR(Direct Web Remoting)

DWR is a Java library that enables Java on the server and JavaScript in a browser to interact and call each other as simply as possible.

Dwr能让在服务器端的java代码和浏览器客户端的javascript代码尽可能简单的相互调用。

DWR is Easy Ajax for Java!

 官网:http://directwebremoting.org/dwr/index.html

 

 

一、 环境搭建

1. 新建web工程。

2. 从官网下载dwr3.0 rc2,也是当前最新版本,并引入类路径。

3. dwr依赖于logging.jar,也需要引入类路径下面。

4. 配置web.xml如下:

复制代码
   <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.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>
复制代码

5. 新建一个java类,代码如下:

复制代码
package com.yokoboy.dwr.service; public class DwrDemo { public String getHello(String name) { return name + " 你好!";
    }
}
复制代码

 

6. 在web.xml 同目录下面新建dwr.xml,代码如下:

复制代码
<?xml version="1.0" encoding="UTF-8"?> <dwr> <allow> <!--配置的一个演示类,javascript="Demo" 表示可以在页面中用Demo这个名称指向DwrDemo这个java类,类中的方法可以在前台调用 --> <!-- creater="new"表示每调用一次时,都需要new一个 --> <create creator="new" javascript="Demo"> <param name="class" value="com.yokoboy.dwr.service.DwrDemo" /> </create> <!-- java类库类 --> <create creator="new" javascript="MyDate"> <param name="class" value="java.util.Date" /> </create> <!-- 测试阶段使用,运营阶段不要使用 --> <!-- convert元素用于数据类型转换,即java类和javascript之间相互转换 --> <convert converter="exception" match="java.lang.Exception" /> <convert converter="bean" match="java.lang.StackTraceElement" /> </allow> </dwr>
复制代码

6. 新建MyDwr.jsp文件,代码如下:

复制代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML> <html> <head> <base href="<%=basePath%>"> <title>Dwr Demo</title> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/Demo.js'></script> <script type='text/javascript' src='${pageContext.request.contextPath}/js/jquery1.8.js'></script> <script type="text/javascript"> //此函数中可以调用java类的方法,除了java方法本身的参数外,还要将回调函数名作为参数传给java方法  function sayHello(name) {
        Demo.getHello(name, dwrHandler);
    } //这是dwr的一个回调函数,data参数即java方法getHello(String name)的返回值  function dwrHandler(data) {
        alert(data);
    } </script> </head> <body> <input> <button onclick="sayHello($('input').val());">提交</button> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML> <html> <head> <base href="<%=basePath%>"> <title>Dwr Demo</title> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/Demo.js'></script> <script type='text/javascript' src='${pageContext.request.contextPath}/js/jquery1.8.js'></script> <script type="text/javascript"> //此函数中可以调用java类的方法,除了java方法本身的参数外,还要将回调函数名作为参数传给java方法  function sayHello(name) {
        Demo.getHello(name, dwrHandler);
    } //这是dwr的一个回调函数,data参数即java方法getHello(String name)的返回值  function dwrHandler(data) {
        alert(data);
    } </script> </head> <body> <input> <button onclick="sayHello($('input').val());">提交</button> </body> </html>
复制代码

其中用到了jquery,需要自行导入。

 

发布网站,访问MyDwr.jsp即可查看效果!

 

二、说明

 1. 查看jsp源代码,最上面引入了几个js文件,实际上是不存在的,不用考虑它们在哪儿。

 2. 其中engine.js和util.js是固定的。另外的一个js的名称就是dwr.xml中配置的类名。
   这些js的路径基本是:app_root/dwr/....模式的,一定要写对。

3. 访问 “app_root/dwr” ,这是dwr本身提供了一个测试环境,可以直接执行服务器端函数中的方法。

    其中MyDate里面的函数是java.util.Date类里面的方法。

4. 打开web.xml 文件。里面配置了一个servlet,“url-pattern”配置的是“/dwr/*”,所以拦截所有已dwr开头的请求。
    url-pattern”如果改成了/ddd/*,页面中都需吧dwr该成ddd

5. 再看dwr.xml文件(这个文件名不能改,必须是dwr),里面“create了两个javascript”,再看源代码中,确实使用Demo作为实例来引用             com.yokoboy.dwr.service.DwrDemo里面的方法。 

本文转载自:http://www.cnblogs.com/yokoboy/p/3249383.html

J
粉丝 28
博文 167
码字总数 10302
作品 0
广州
程序员
私信 提问
Dwr技术与ssh2的相关配置技术摘要

平台:win7 myeclipse10 struts2 hibernate 3.3 spring3.0 相关重要文件: web.xml dwr.xml dwr.js engine.js util.js Common-logging.jar ssh2的配置 1、引入struts2 hibernate3.3 spring 3......

西行侠客
2014/03/26
442
0
dwr配置完成后,测试,找不到配置的js

在浏览器输入http://localhost:7001/rycx/dwr/engine.js和http://localhost:7001/rycx/dwr/util.js都可以找到对应的js,但是输入http://localhost:7001/rycx/dwr/interface/ZDRY.js就找不到自......

秦菁
2013/03/15
2.2K
3
DWR 3.0 RC2 发布

DWR3.0 RC2版发布,该版本包含众多bug修复,以及性能改进。 bug修复详细记录: [DWR-9] - Wrong collection returned when same function name called consecutively [DWR-117] - Annotatio......

咖啡碼農
2011/07/01
2.8K
4
DWR Getting Started

DWR Getting Started with DWR 入门一下DWR 第一步还是按照官网的Getting Started...只要5步就跑起来了 两个jar包,web.xml中配置,dwr.xml中配置 ![Getting Started with DWR][1] Demo.java...

豆仔
2012/11/12
72
0
分享30本关于flash方面的学习书籍(免费下载)

分享30本关于flash方面的学习书籍(免费下载) 1、flash_ActionScript_3.0实用教程 2、ActionScript+3.0编程精髓中文版 3、ActionScript3.0运算符及表达式 4、ActionScript3.0数据类型 5、A...

邓剑彬
2012/12/03
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
533
13
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
19
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
12
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部