一,DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.
二,配置
1、拷贝dwr.jar文件
2、修改web.xml文件,添加dwr servlet配置:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>/
<!--以上用这个类也可以uk.ltd.getahead.dwr.DWRServlet--!>
<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><!--每一个文件在访问时,程序会自动加/dwr..-->
</servlet-mapping>
3、在web-inf下面添加dwr.xml配置文件
//作用:Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用。
4、创建页面
需引入以下javascript:
<script src='dwr/interface/testClass.js'></script>//在配置文件中以怎么为对象就以怎么为命名,为dwr自动产生( <create creator="new" javascript="testClass.js">)
<script src='dwr/engine.js'></script>
<script src='dwr/util.js'></script>
其中TestClass.js是dwr根据配置文件自动生成的,engine.js和util.js是dwr自带的脚本文件。
与spring结合使用
<create creator="spring" javascript="Intro">
<param name="beanName" value="id" />//beanName为固定形式,id为bean中配置的<bean id=""..>
</create>
在jsp中对javascript调用函数时,function dwr()不能以dwr命名
基础部分:
dwr.util.getValue("id");//可以获取到值
1, object.method1(para1,para2,..,);//这种是进行赋参,2
2, object.method1(para1,function(data){
alert(data);//这个为返回值,自行处理
});
3, object.method1(para1,method2);
function method2(data){
alert(data);
}//2,3为两种不同的返回值 类型
dwr的配置文件详解(指明标签中包括可以暴露给javascript访问的东西。)
<?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="T3">
<param name="class" value="com.wqy.DataBaseHandle"/>
<include method="testMethod1"/>//说明了这个T3在javaScrip中只能访问这个方法,没有声明时,代表全部可以。
<exclude method="testMethod2">//标签指定要防止被访问的方法。
</create>
<!--
<converter>标签则负责这些方法的参数和返回类型。convert元素的作用是告诉DWR在服务器端Java 对象表示和序列化的JavaScript之间如何转换数据类型。DWR自动地在Java和JavaScript表示之间调整简单数据类型。这些类型包括Java原生类型和它们各自的封装类表示,还有String、Date、数组和集合类型,
如当一个集合中加了User的自定义类对象,则要进行声明。bean是有getter setter类型,还有object类型
其他的array,list...是默认开放的。
-->
<convert converter="bean" match="com.wqy.User" javascript="user"/>
</allow>
</dwr>
2,进行传对象
//进行传一个Bean ,User(string username,string password)的对象
如以下:因满足条件,
1,必须要有set方法
2,必须在convert里面进行转化<convert match="com.wqy.User" converter="bean" ></convert>
3,java方法中void testMethod5(User user)相对应的传进来
Function callTestMethod5(){
//定义要传到java方法中的参数
var data;
//构造参数,data实际上是一个object
data1 = { username:"user", password:"password" }
testClass.testMethod5(data);
}
3,如果传的参数是数组、List
Function callTestMethod7(){
//定义要传到java方法中的参数
var data;
//构造参数,data实际上是一个object数组,即数组的每个元素均为object
data = [
{
username:"user1",
password:"password2"
},
{
username:"user2",
password:" password2"
}
];
testClass.testMethod7(data);
}
function callBackFortestMethod(data){
//其中data接收方法的返回值
for(var property in data){
var bean = data[property];
alert(bean.username);
alert(bean.password);
}
}
4,如果返回值为map的值/或者传的参数为Map
function test2(){
T5.hello(
function(datas){
//循环获取Map中的内容
for(var prop in datas){
alert("key="+prop+",value="+datas[prop]);
}
}
);
}、、可以以这种形式获取值
//可以以这种方式传map参数进去
如果java的方法的参数为Map(假设其key为String,value为TestBean),则在调用该方法的javascript函数中用如下方法构造要传递的参数:
function callTestMethod (){
//定义要传到java方法中的参数
var data;
//构造参数,date实际上是一个object,其属性名为Map的key,属性值为Map的value
data = {
"key1":{
username:"user1",
password:"password2"
},
"key2":{
username:"user2",
password:" password2"
}
};
testClass.testMethod(data);
}
并且在dwr.xml中增加如下的配置段
<signatures>
<![CDATA[
import java.util.List;
import com.dwr.TestClass;
import com.dwr.TestBean;
TestClass.testMethod7(Map<String,TestBean>);
]]>
</signatures>
//标签是用来声明java方法中List、Set或者Map参数所包含的确切类,以便java代码作出判断。
分享到:
相关推荐
在这个“dwr基础_dwr兼容三大框架+视频”资源中,重点是介绍如何在MyEclipse环境中使用DWR与Spring、Struts2和Hibernate这三大主流Java框架集成。这三大框架分别是: 1. **Spring**:是一个全面的Java应用框架,...
1. **DWR基础介绍**: 介绍DWR的概念、优点和工作原理。 2. **环境搭建**: 演示如何在J2EE项目中集成DWR,配置相关文件。 3. **创建可调用的Java服务**: 展示如何定义Java类和方法,以及如何在`dwr.xml`中暴露它们...
一、DWR基础介绍 DWR的核心功能在于提供了一种简单的方式,让JavaScript可以调用服务器端的Java方法,就像调用本地函数一样。这通过AJAX(Asynchronous JavaScript and XML)技术实现,使得Web应用程序能够异步更新...
**DWR基础教程 开发案例** DWR,全称Direct Web Remoting,是一个开源的Java库,用于在Web应用程序中实现Ajax(异步JavaScript和XML)功能。它简化了JavaScript和服务器端Java代码之间的交互,使得开发者能够在...
总结来说,"dwr基础范例 MyEclipse"这个示例涵盖了DWR的基本使用,包括在MyEclipse中的配置、Java方法的暴露、JavaScript的调用以及与数据库的交互。通过学习这个示例,开发者可以快速掌握DWR在实际项目中的应用,...
### DWR基础学习知识点详解 #### 一、DWR概览与入门 DWR(Direct Web Remoting)是一种简化客户端JavaScript调用服务器端Java方法的技术,它使得远程过程调用(RPC)变得像本地调用一样简单。DWR通过AJAX技术在...
首先,"DWR学习笔记"提供了对DWR基础概念、核心功能以及实际应用的概述。这些笔记可能包含了DWR的基本架构,如它如何通过AJAX技术实现实时的Web交互,以及如何创建和调用服务器端的Java方法。 "DWR中文API"是DWR库...
2. **基本概念**:解释了Reverse Ajax、C/sweetalert、Batching和Caching等核心概念,这些是DWR实现其功能的基础。 3. **使用DWR生成的JavaScript API**:DWR自动生成JavaScript接口,使得前端可以直接调用服务器端...
3. **dwr.ppt** - 这可能是一个PPT演示文稿,可能包含了DWR的基础概念、工作原理、配置教程以及一些示例,有助于快速理解DWR的使用。 4. **dwr** - 这可能是DWR的源码或者示例项目的文件夹,用户可以通过查看这些...
- **简单的回调函数**:介绍如何使用DWR进行异步调用,并在调用完成后执行回调函数。 - **调用元数据对象**:元数据对象包含关于服务和方法的信息,可以用来动态生成客户端调用代码。 DWR2.0中文文档不仅是一份详尽...
3. **DWR的API介绍**:讲解DWR的主要接口,如`Util`、`Call`、`Engine`等,以及它们在实际应用中的用法。 4. **安全配置**:讲解如何通过配置白名单和过滤器来确保DWR的安全性。 5. **DWR的高级特性和实践**:包括...
这一步是使用DWR进行Ajax开发的基础准备。 #### 三、编辑配置文件 配置DWR涉及到对`web.xml`文件的修改以及创建`dwr.xml`文件。 ##### 修改`web.xml` 在`web.xml`文件中,需添加以下内容: ```xml ...
JavaScript作为Web开发中的基础语言,是实现DWR和Ajax功能的关键。 **压缩包文件解析** - **dwr.jar**:这是DWR的核心库文件,包含了所有必要的类和资源,用于在浏览器和服务器之间建立通信。 - **standard.jar**...
在“DWR框架基础(实现helloworld)”中,我们将学习如何搭建DWR的基本环境,并通过一个简单的“Hello, World”示例来理解其工作原理。以下是一个详尽的步骤和知识点介绍: 1. **安装与配置**: - **Eclipse集成**...
#### Struts2的Ajax支持介绍 **Struts2** 是一个流行的MVC(Model-View-Controller)架构框架,它主要用于构建Java Web应用程序。Struts2提供了强大的功能来帮助开发者简化开发流程并提高效率。其中,**Ajax支持**...
下面将详细介绍DWR的相关知识点。 **1. DWR基本概念** DWR的核心功能是提供一种安全、高效的机制,让JavaScript可以调用服务器上的Java方法,就像它们是本地函数一样。这种双向通信技术使得开发者可以在不刷新整个...
### DWR介绍与知识点梳理 #### 一、DWR概览 **DWR** (Direct Web Remoting) 是一种简化Ajax编程的技术框架。它通过在客户端JavaScript和服务器端Java之间建立一个透明的桥梁,使得开发者可以直接从JavaScript调用...
1. **DWR基础**:介绍DWR的基本概念,如Reverse Ajax、远程对象(Remote Objects)以及如何在项目中集成DWR框架。 2. **安装与配置**:讲解如何在Web应用程序中配置DWR,包括添加依赖、配置XML文件(dwr.xml)以及...
1. **DWR基础概念**:DWR的核心组件包括一个服务器端的引擎(DWR Engine),一个处理客户端请求的Servlet(DWRServlet),以及一系列JavaScript库,如Util、Create、Call等,用于在客户端进行AJAX调用。 2. **DWR与...