Dwr具体是什么

前端之家收集整理的这篇文章主要介绍了Dwr具体是什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

dwr.xml的大体结构如下:

[html] view plain copy
  1. <!DOCTYPEdwrPUBLIC
  2. "-//GetAheadLimited//DTDDirectWebRemoting2.0//EN"
  3. "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
  4. //整个配置文件的大体结构如下:
  5. <dwr init>
  6. creatorid="..."class="..."/>
  7. converterid="..."class="..."/>
  8. </allowcreatecreator="..."javascript="..."scope="..."paramname="..."value="..."createconvertconvertor="..."match="..."signatures ...
  9. >


<init> 部分声明那些用于建立远程bean和在方法调用中转换bean的类.这部分是可选择性配置的,如果你想定义一个新的creator(创造器)或者converter(转换器),那么就必须在部分中声明,每个creator和converter需要有个id属性来允许以后进行引用。

<allow> 部分定义了DWR能够创建和转换的类,以供javascript 访问。

<create> 标签中指定 javascript 中可以访问的 java 类,并定义 dwr 应当如何获得要进行远程的类的实例。

其中 javascript=" testClass " 属性指定 javascript 代码访问对象时使用的名称

creator是类构造器,creator="new" 属性指定 java 类实例的生成方式, new 意味着 DWR 应当调用类的默认构造函数来获得实例,其他的还有 spring 方式,通过与 IOC 容器 Spring 进行集成来获得实例等等。

默认情况下DWR1.1有8种创造器。它们是:

    • new: 用Java的new关键字创造对象。
    • none: 它不创建对象。 (v1.1+)
    • scripted:通过BSF使用脚本语言创建对象,例如BeanShell或Groovy。
    • spring: 通过Spring框架访问Bean。
    • jsf:使用JSF的Bean。 (v1.1+)
    • struts:使用Struts的FormBean。 (v1.1+)
    • pageflow: 访问Beehive或Weblogic的PageFlow。 (v1.1+)
还有一个属性为scope@H_301_302@,默认为page@H_301_302@,其值还有application、session、request、script。
<creator>下的配置节点:

<param> 标签指定要公开给 javascript 的 java 类名。

<include> 标签指定要公开给 javascript 的方法不指定的话就公开所有方法

<exclude> 标签指定要防止被访问的方法

<auth> 标签指定一个J2EE角色作为访问控制检查。


<convert> 标签由于dwr只支持json的数据格式,因此在dwr中我们要读取javaBean中的属性,就必须将其转换成json的数据格式,这需要配置convert进行转换。

DWR已经默认定义和初始化了常用的Converter,他们分别如下:

    converterid="null"
  1. class="uk.ltd.getahead.dwr.convert.NullConverter"converterid="primitive"
  2. class="uk.ltd.getahead.dwr.convert.PrimitiveConverter"converterid="bignumber"
  3. class="uk.ltd.getahead.dwr.convert.BigNumberConverter"converterid="string"
  4. class="uk.ltd.getahead.dwr.convert.StringConverter"converterid="date"
  5. class="uk.ltd.getahead.dwr.convert.DateConverter"converterid="array"
  6. class="uk.ltd.getahead.dwr.convert.ArrayConverter"converterid="map"
  7. class="uk.ltd.getahead.dwr.convert.MapConverter"converterid="collection"
  8. class="uk.ltd.getahead.dwr.convert.CollectionConverter"converterid="bean"
  9. class="uk.ltd.getahead.dwr.convert.BeanConverter"converterid="hibernate"
  10. class="uk.ltd.getahead.dwr.convert.HibernateBeanConverter"converterid="dom"
  11. class="uk.ltd.getahead.dwr.convert.DOMConverter"converterid="dom4j"
  12. class="uk.ltd.getahead.dwr.convert.DOM4JConverter"converterid="jdom"
  13. class="uk.ltd.getahead.dwr.convert.JDOMConverter"converterid="xom"
  14. class="uk.ltd.getahead.dwr.convert.XOMConverter"converterid="servlet"class="uk.ltd.getahead.dwr.convert.ServletConverter"/>

在convert中,还可以设定param进行授权访问控制,例如:

    convertconverter="bean"match="com.tgb.DwrTest"paramname="include"value="property1,property2"convert>

其中include表示只允许value中的属性可以访问,exclude表示除了value中的属性,其他属性均可访问。如果不设定param,则所有属性均可访问。

原文链接:https://www.f2er.com/ajax/162932.html

猜你在找的Ajax相关文章