dwr.xml是DWR的配置文件。默认情况下,应该把它放到WEB-INF目录(web.xml的目录)下
dwr.xml文件的结构如下:
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"><dwr> <!-- init is only needed if you are extending DWR --> <init> <creator /> <converter /> </init> <!-- without allow, DWR isn't allowed to do anything --> <allow> <create creator="..." javascript="..."/> <convert converter="..." match="..."/> </allow> <!-- you may need to tell DWR about method signatures --> <signatures> ... </signatures></dwr>
这里是一些必须理解的术语 - 参数会被converted,远程Bean会被created。所以如果你有一个叫A的bean,它有一个方法叫A.blah(B) 那么你需要一个A的creator和一个B的converter。
allow段落里面定义的试DWR可以创建和转换的类。
dwr.xml文件中的create元素的结构如下:
<allow> <create creator="..." javascript="..." scope="..."> <param value="..."/> <auth method="..." role="..."/> <exclude method="..."/> <include method="..."/> </create> ...</allow>
这里的多数元素都是可选的 - 你真正必须知道的是指定一个creator和一个javascript名字。
creator属性 是必须的 - 它用来指定使用那种创造器。
默认情况下DWR1.1有8种创造器。它们是:
如果你需要写自己的创造器,你必须在init部分注册它。
javascript属性 用于指定浏览器中这个被创造出来的对象的名字。你不能使用Javascript的关键字。
scope属性 非常类似servlet规范中的scope。它允许你指定这个bean在什么生命范围。选项有"application", "session", "request" 和"page"。这些值对于Servlet和JSP开发者来说应该相当熟悉了。
scope属性是可选的。默认是"page"。如果要使用"session"需要cookies。当前的DWR不支持ULR重写。
param元素 被用来指定创造器的其他参数,每种构造器各有不同。例如,"new"创造器需要知道要创建的对象类型是什么。每一个创造器的参数在各自的文档中能找到。请查看上面的链接。
include和exclude元素 允许创造器来限制类中方法的访问。一个创造器必须指定include列表或exclude列表之一。如果是include列表则暗示默认的访问策略是"拒绝";如果是exclude列表则暗示默认的访问策略是"允许"。
例如要拒绝防范除了setWibble()以外的所有方法,你应该把如下内容添加到dwr.xml中。
<create creator="new" javascript="Fred"> <param value="com.example.Fred"/> <include method="setWibble"/></create>
对于加入到create元素中的类的所有方法都是默认可见的。
auth元素 允许你指定一个J2EE的角色作为将来的访问控制检查:
<create creator="new" javascript="Fred"> <param value="com.example.Fred"/> <auth method="setWibble" role="admin"/></create>
new创造器在DWR中已经默认声明了:<creator /> 。你不需要在dwr.xml文件中添加这段话,它已经存在于DWR的内部dwr.xml文件中了。
这个创造器通过类默认的够早函数创造对象实例。用new创造器有一些好处:
你可以通过下面的方式使用new创造器来创造远程调用Bean:
<allow> <create creator="new" javascript="Blah"> <param value="java.util.Date"/> </create> ... </allow>
这些代码把 java.util.Date 映射成Javascript,并且命名为Blah,所以在Javascript中当你调用Blah.toString(reply) 那么一个新的 java.util.Date 就会通过默认的构造函数创造出来, 然后 toString() 方法被调用,然后结果数据返回给reply方法(在这个例子中date是字符串格式)。
'创造器不创建任何对象 - 它会假设你不需要创建对象。这有可能是对的,有两个原因。
你可能在使用的scope不是"page"(看上面),并在在前面已经把这个对象创建到这个scope中了,这时你就不需要再创建对象了。
还有一种情况是要调用的方法是静态的,这时也不需要创建对象。DWR会在调用创建器之前先检查一下这个方法是不是静态的。
对于上诉两种情况,你仍然需要class参数,用来告诉DWR它是在操作的对象类型是什么。
创造器在DWR中已经默认声明了:<creator />
这个创造器用BSF来执行脚本得到Bean,例如:
<allow> ... <create creator="script" javascript="EmailValidator"> <param value="beanshell"/> import org.apache.commons.validator.EmailValidator; return EmailValidator.getInstance(); </param> </create> ...</allow>
script创造器有如下参数:
要使用这个创造器,你需要把一些辅助库放到WEB-INF/lib文件夹下:,你要用的。
当一个类是用script创造出来的,并且scope是session或application,如果你的脚本改变,session中的类和script中的类就不一致了。这样会出现错误。虽然web容器不用重启,但是用户需要先登出(或以某种方式清空session),然后再登录。
当clazz参数不为空,并且用来创造新实例,DWR简单的调用 class.newInstance() 方法。这种方法是没问题的,除非脚本正在用某个参数创建一个类,或者调用某个函数来配置这个类。不幸的是,每次请求都要重新运行script并造成上面的问题
分享到:
相关推荐
dwr配置文件详解 dwr.xml配置文件详解 dwr配置文件是Direct Web Remoting(DWR)的核心组件之一,它负责配置DWR的各种设置和参数。在本文中,我们将详细介绍dwr配置文件的结构和配置方法,并探讨它在实际应用中的...
**DWR.xml配置详解** Direct Web Remoting (DWR) 是一个开源的Java库,它允许Web应用程序在浏览器和服务器之间进行实时的、安全的、跨域的通信。DWR的核心在于XML配置文件,即`dwr.xml`,它是DWR与应用服务器交互的...
### DWR.xml配置文件详解 #### 一、DWR配置文件结构与作用 DWR(Direct Web Remoting)是一个开源的Ajax框架,它允许在浏览器端JavaScript代码直接调用服务器端Java方法,从而简化了传统的AJAX编程。DWR.xml是DWR...
《DWR(Direct Web Remoting)配置详解与JSP页面应用实践》 DWR,全称为Direct Web Remoting,是一个开源Java库,它允许在浏览器和服务器之间进行实时的、安全的JavaScript到Java的调用,实现了AJAX的核心功能。在...
#### 三、DWR配置详解 1. **Servlet配置**:DWR通过`DWRServlet`处理客户端请求。`DWRServlet`必须被正确配置,包括其名称、类名以及映射的URL路径等。 2. **初始化参数**:初始化参数用于设置DWR的行为特性,例如...
**DWR.xml配置文件详解** 1. **DWR.xml结构**:DWR.xml文件通常位于Web应用的WEB-INF目录下,它是DWR引擎的配置中心,定义了哪些Java类可以被远程调用,以及如何处理这些调用。文件主要由三部分组成:`<dwr>`根元素...
### DWR.xml配置文件详解 #### 一、概述 DWR (Direct Web Remoting) 是一个简化Ajax开发的Java框架,它允许JavaScript直接调用服务器端的Java方法,从而简化了客户端与服务器之间的交互过程。在DWR中,配置文件dwr...
DWR的核心配置主要包含在两个文件中:`web.xml` 和 `dwr.xml`。 ##### web.xml `web.xml` 文件主要用于定义DWR Servlet及其映射规则: ```xml <servlet-name>dwr-invoker <servlet-class>org....
#### 三、dwr.xml配置详解 **纵览**:`dwr.xml`是DWR的核心配置文件,用于定义服务和方法的可访问性、转换器等。 **标签**:用于配置全局属性,如默认的转换器等。 **标签**: - **Creator**:定义如何创建服务...
《DWR AJAX 项目中的 "dwrweb.xml" 文件详解》 在开发Web应用程序时,AJAX(Asynchronous JavaScript and XML)技术常被用来实现页面的异步更新,提高用户体验。Direct Web Remoting (DWR) 是一个开源的Java库,它...
**DWR配置文件详解** Direct Web Remoting (DWR) 是一种开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行双向通信。DWR的核心配置文件是`dwr.xml`,该文件定义了DWR允许访问的Java对象、...
4. **dwr.xml配置详解** - **标签**:配置DWR的一些全局设置,如调试模式等。 - **标签**: - **Creator**:定义如何创建可远程调用的对象实例。例如,可以使用Spring容器创建对象。 - **Converter**:定义对象...
在DWR的配置过程中,主要涉及到两个关键文件:`dwr.xml`和`web.xml`。`dwr.xml`是DWR的核心配置文件,它定义了哪些Java类和方法可以被JavaScript访问。例如: ```xml <dwrfactory name="dwr"> <!-- 允许访问...
DWR配置详解 DWR(Direct Web Remoting)是一种基于Java的AJAX框架,用于实现Web应用程序的远程方法调用。下面是DWR配置的详细解释: 一、配置环境 1. 导入DWR的依赖jar包,包括dwr.jar和commons-logging.jar。 2...
#### 一、DWR配置详解:web.xml中的关键设置 ##### 1. 最小配置 在web.xml中,DWR的最基础配置涉及创建一个名为`dwr-invoker`的servlet,其类为`uk.ltd.getahead.dwr.DWRServlet`。此servlet负责处理所有DWR相关的...
#### 二、dwr.xml配置文件解析 ##### 1. 文件结构 `dwr.xml` 文件是DWR的核心配置文件,它定义了哪些服务器端对象和服务可以被远程访问以及它们如何被远程访问。`dwr.xml` 文件通常位于项目的`WEB-INF`目录下,并...