dwr.xml是你用来配置DWR的文件,默认是将其放入WEB-INF文件夹。
创建一个dwr.xml文件
dwr.xml有如下的结构:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting
2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<!-- 仅当需要扩展DWR时才需要 -->
<init>
<creator id="..." class="..." />
<converter id="..." class="..." />
</init>
<!-- 没有它DWR什么也做不了 -->
<allow>
<create creator="..." javascript="..." />
<convert converter="..." match="..." />
</allow>
<!-- 有必要告诉DWR方法签名 -->
<signatures>...</signatures>
</dwr>
每一个在类中被调用的方法需要一个<create …>有若干类型的creator,使用“new”关键字或者Spring 框
架等。
create元素是如下的结构
<allow>
<create creator="..." javascript="..." scope="...">
<param name="..." value="..." />
<auth method="..." role="..." />
<exclude method="..." />
<include method="..." />
</create>
...
</allow>
2).none: 它不创建对象,看下面的原因。 (v1.1+)
none创建器不创建任何对象,它会假设你不须要创建对象。有2个使用的原因:
? 你可能在使用的scope不是"page"(看上面),并在在前面已经把这个对象创建到这个scope中了,
这时你就不需要再创建对象了。
? 还有一种情况是要调用的方法是静态的,这时也不需要创建对象。DWR会在调用创建器之前先检
查一下这个方法是不是静态的。
对于上诉两种情况,你仍然需要class参数,用来告诉DWR它是在操作的对象类型是什么。
Converter
我们需要确认所有的参数能被转换。许多JDK提供的类型使你能够使用,但是你如果要转换你自己的代码,
就必须告诉DWR。一般是指JavaBean的参数需要一个<convert…>标签作为入口。
你不需要在dwr.xml中<allow>部分的<convert>中定义。它们默认支持。
所有主要的类型,boolean, int , double等等。
?
包装类,Boolean, Integer等等。
?
java.lang.String
?
java.util.Date 和 java.sql.Times,java.sql.Timestamp。
?
?数组(存放以上类型的)
集合类型 (List, Set, Map, Iterator等等) (存放以上类型的)
?
DOM对象(来自于DOM, XOM, JDOM和DOM4J)
两个没有默认打开的转换器是Bean 和 Object 转换器。Bean转换器可以把POJO转换成Javascript的
接合数组(类似与Java中的Map),或者反向转换。这个转换器默认情况下是没打开的,因为DWR要获得
你的允许才能动你的代码。
Object转换器很相似,不同的是它直接应用于对象的成员,而不是通过getter和setter方法。下面的例子
都是可以用object来替换bean的来直接访问对象成员。
如果你有一个在 <create ...> 中声明的远程调用Bean。它有个一参数也是一个bean,并且这个bean有
一个setter存在一些安全隐患,那么攻击者就可能利用这一点。
你可以为某一个单独的类打开转换器:
<convert converter="bean" match="your.full.package.BeanName"/>
就像你可以在creator的定义中剔出一些方法一样,converter也有类似的定义。
限制属性转换仅仅对于Bean有意义,很明显原生类型是不要需要这个功能的,所以只有
BeanConverter及其子类型(HibernateBeanConverter))有这个功能。
语法是这样的:
<convert converter="bean" match="com.example.Fred">
<param name="exclude" value="property1, property2" />
</convert>
这就保证了DWR不会调用 fred.getProperty1() 和fred.getProperty2两个方法。
分享到:
相关推荐
首先,"DWR学习笔记"提供了对DWR基础概念、核心功能以及实际应用的概述。这些笔记可能包含了DWR的基本架构,如它如何通过AJAX技术实现实时的Web交互,以及如何创建和调用服务器端的Java方法。 "DWR中文API"是DWR库...
### dwr学习笔记和总结 #### 一、DWR简介 DWR (Direct Web Remoting) 是一个简化Ajax开发的框架,它使得JavaScript能够直接调用服务器端的Java方法成为可能,无需编写复杂的Ajax代码。这极大地提高了开发效率,并...
DWR简化了Ajax(Asynchronous JavaScript and XML)应用的开发,使得开发者可以轻松地调用服务器上的Java方法,就像它们是本地JavaScript函数一样。 一、DWR的基础概念 1. **远程方法调用(RMI)**:DWR的核心功能是...
在“DWR学习笔记及经验总结”中,我们可以期待找到以下关键知识点: 1. **DWR的基本概念**:了解DWR的核心理念,包括远程方法调用(Remote Method Invocation)、反向Ajax以及它如何通过JSON或XML格式传递数据。 2...
**DWR(Direct Web Remoting)**是一种JavaScript库,它允许Web...通过深入学习和实践"DWR学习笔记和与spring整合练习",开发者可以掌握DWR的精髓,熟练运用其与Spring的整合,打造出高效、安全、易维护的Web应用程序。
【标题】:“DWR学习笔记-HelloWorld篇” 在IT领域,DWR(Direct Web Remoting)是一个开源的Java框架,它允许JavaScript在浏览器端直接调用服务器端的Java方法,实现了网页与服务器的实时交互,类似于Ajax技术,但...
### DWR学习笔记知识点 #### 一、DWR简介与安装配置 **DWR (Direct Web Remoting)** 是一种开放源代码的JavaScript库,它可以让客户端的JavaScript代码直接调用服务器端的Java方法,实现远程过程调用(RPC)功能。...
阅读"DWR学习笔记.doc"文件将有助于系统地掌握这些知识点,通过实践操作加深理解,从而更好地利用DWR构建交互性强、用户体验良好的Web应用。在学习过程中,结合源码分析可以更深入地理解DWR的工作机制,提升自己的...
DWR的创新之处在于它的"Reverse AJAX"技术,它自动生成基于Java类的JavaScript代码,使得开发者可以在JavaScript中无缝使用Java代码,同时保持Java代码在服务器端运行并能访问服务器资源。为了安全,开发者需要配置...
### dwr学习笔记pdf文件知识点概述 #### 一、DWR框架简介 - **DWR**(Direct Web Remoting)是由GetAhead公司开发的一款用于实现Ajax应用的框架。该框架的核心价值在于允许客户端JavaScript直接调用服务器端Java类...
《DWR学习笔记详解》 DWR(Direct Web Remoting)是一种开源JavaScript库,它允许在Web浏览器和Java服务器之间进行实时、双向通信,极大地增强了Web应用的交互性。DWR使得开发者能够像操作本地对象一样操作服务器端...
DWR使用笔记.chm:这可能是一份详细的DWR使用手册,包含了如何集成DWR到项目中、配置DWR引擎、创建远程接口以及处理各种交互的实例。通过阅读这份笔记,你可以了解到DWR的基本概念、配置步骤以及实际应用技巧。 dwr...
2. **创建DWR配置文件**:DWR的核心配置文件是`dwr.xml`,它定义了哪些Java类和方法可以被远程调用。在该文件中,你可以设置安全策略、错误处理、转换器等。 3. **配置Servlet**:在`web.xml`配置文件中,你需要...
总之,这个压缩包提供了一个完整的DWR学习环境,包括了必要的库文件和示例代码,对于想要深入了解DWR和AJAX开发的开发者来说,是一个非常宝贵的资源。通过深入学习和实践,你可以掌握如何利用DWR创建高效、互动的Web...
**DWR(Direct Web Remoting)学习笔记** DWR是一种Java技术,用于在浏览器和服务器之间实现双向通信,使得Web应用程序能够实时更新和交互。它允许JavaScript直接调用服务器端的Java方法,就像它们是本地函数一样,...
本笔记将深入探讨DWR的核心概念、工作原理以及实际应用。 一、DWR简介 DWR的主要目标是消除传统的HTTP请求-响应模式的局限性,提供一种更加高效、灵活的远程调用机制。通过DWR,开发者可以在浏览器中编写JavaScript...
1. **引入DWR库**:在项目中添加DWR的JAR文件,并在Web.xml中配置DWR Servlet。 2. **创建Java类和方法**:定义可以在客户端调用的Java类和方法。 3. **配置DWR**:在dwr.xml配置文件中声明可被远程调用的Java类和...