`
lzh166
  • 浏览: 297994 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DWR 入门知识进阶四

阅读更多
一、DWR配置说明:
DWR配置文件主要有以下四个部分组成
1、web.xml文件主要配置DWR的后台控制器和配置文件的载入
  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

2、dwr.xml的初始化配置部分Init
Init是配置DWR主要是配置业务组件的生成规则和基本数据类型的转换器配置。DWR内置了4种业务组件生成规则new、null、spring、scripts。数据类型转换器DWR内置了Boolean等16种转换器。(一般情况下可以不用配置,如果配置重复可能会有无法预料的后果)
(1)、creator元素 主要用于前台JS业务组件对象的生成器如Spring、
New、Scripts等。
<creator id="spring“
 class="uk.ltd.getahead.dwr.create.SpringCreator"/>

(2)、converter元素用于配置各种数据类型的转换器如String、Array等。
<converter id="map" 
class="uk.ltd.getahead.dwr.convert.MapConverter"/>

3、dwr.xml的业务组件发布和调用规则配置部分Allow
Allow部分是配置业务组件的发布和访问控制规则的一些参数选项,这部分是DWR配置的重点部分。其主要有以下两个子节点组成:
(1)、create元素 这个元素是配置后台业务组件的创建规则和组件方法的
访问规则。
(2)、convert元素 这个元素是配置Java对象和数据类型对应的转换器。DWR内置了所有java基本数据类型的转换器。基本数据类型的对象形式也采用同一的转换器转换。
3、dwr.xml的业务组件发布和调用规则配置部分Allow
1)Create配置元素详细说明:
属性:
Creator 
配置业务组件的创建类型。主要有四种:Spring、New、 none 、Scripts。
JavaScript
前台页面javascript引用此组件的名称。名称需要唯一。
scope
组件的作用范围或则叫做生命周期。这个和Servlet的生命周期的作用是 一样的。共Session、request、application、page四个选项。
子节点:
Param 
配置业务组件的创建参数。Name属性设置名称,value属性设置业务组件的具体路径(类全名称)。
Include
授权方式保护业务组件方法的可见性。属性method可以访问的方法名称。如果没有配置则默认为所有方法都可以访问。
exclude
排除方式保护业务组件方法的可见性。属性method设置不可以访问的方法名称。除此之外的都可以访问。如果有需要控制业务组件方法的访问权限时建议采用这种方式。
Auth
采用EJB的角色访问控制方式。Method属性设置可以访问的方法名称,role属性设置访问角色。
2)Convert配置元素详细说明:
属性:
converter 
配置数据类型的转换器。一般是设置bean转换器,因为基本类型的转换器DWR默认设置。
match
设置要使用此转换器的java实体对象。如:
<convert converter="bean" match="demo.entity.*"/>
子节点:Param对象属性的转换规则,name属性设置规则有include和exclude选项,作用和组件方法控制的一样。Value属性设置实体对象的属性。默认是所有属性都进行转换。
4、dwr.xml的业务组件方法签名配置部分Signatures
Signatures是用来配置Java Bean数据类型转换时遇到不能确定转换类型的情况。如:
Bean.setList(List a)方法,DWR设置集合a的时候就无法确定a这个集合里需要填充哪种数据类型。所以针对有输入集合对象的情况就需额外设置Signatures配置节点来设置。这个节点的配置如下:
<signatures>
  <![CDATA[
    import java.util.List;
    import demo.entity.*;
    import demo.busi.*;
    
    Customer.setAccounts(List<Account> accounts);
    DemoBusinessObject.getListSet(List<Contact> inList);
   ]]>
</signatures>
熟悉C++模板编程或java范型编程的开发人员对这些东西并不陌生。这里主要是采用范型机制来设置bean转换时的集合元素类型。注意DWR有套解析机制所以这里并不需要JDK1.5的支持。

Signatures主要有两个部分:

Import部分 和java文件的作用一样

另一部分对方法的签名进行范型的设定。返回结果的集合元素类型不需要设置,因为可以在运行时确定。

二、DWR主要组成部分



2、DWR前台引擎(Engine.js)的主要职责
1)截取每个后台组件的请求实现客户端的统一入口
2)将用于组件调用的JS参数对象重新包装组合
3)检测客户端浏览器的环境并选择最佳的数据提交方案
4)处理后台执行结果并通过执行回调函数通知客户
3、后台控制器(DWRServet)的主要职责
1)装载Servlet时初始化DWR配置参数
2)实现后台业务组件调用的服务器端统一入口
3)分发各种不同类型的请求 JS文件请求 业务调用请求等
4)输出组件执行结果(JavaScript语句)到客户端浏览器
4、业务组件执行器的主要职责
1)根据配置文件的参数确定后台组件的访问规则和生命周期
2)拆包前台传入的参数 包装组件执行结果
3)按参数类型匹配数据类型转换器
4)采用反射机制执行业务组件方法处理客户端请求
5)处理与其他系统的接口和协作 如:Spring Hibernate等
5、数据类型转换器的主要职责
1)将一系列单个的参数转换成对应的Java对象
2)将Java对象转换成JavaScript对象
6、跟踪调式DWR原码详细说明其执行步骤
1) 说明后台组件对应的前台JS文件的结构
2)查看前台JS对象的参数包装后的内部结构
3)查看总控制器分发各种类型请求代码
4)观察业务执行器对浏览器传入参数的再次分类
5)以Bean转换器说明JavaScript和Java数据类型的转换机制
6)说明业务组件执行结果的JavaScript表现形式
7)前台引擎如何处理后台传入的结果并调用回调方法

三、JS开发注意事项
1、要注意DWR异步机制带来的数据可能不同步问题
2、返回结果只能是一个值所以要详细设计返回结果类型
3、要注意Java引用传递和JavaScript值传递的差异
4、连续多次后台请求尽量采用批量调用
5、尽量将JavaScript的逻辑处理代码抽取成一个独立的文件
  • 大小: 3.1 KB
分享到:
评论

相关推荐

    DWR入门资料

    #### 三、DWR入门 **1.1 简介** DWR通过提供一系列的工具和API,帮助开发者实现客户端与服务器端的异步通信。这包括了自动化的JavaScript生成、远程方法调用等功能。 **1.2 第一个DWR程序:HelloWorld** - **...

    dwr购物车 java学习资料

    【描述】中提到的"入门的好资料"意味着这个压缩包可能包含初级到中级的教程、示例代码以及配置文档,适合初学者了解和掌握DWR的基础和进阶用法。"web.xml"和"dwr.xml"是两个关键的配置文件,它们在DWR集成到Web应用...

    Practical DWR 2 Projects

    10. **最佳实践与进阶话题**:分享DWR的最佳实践,以及更高级的主题,如自定义转换器、过滤器和扩展DWR功能。 此外,压缩包中的“使用说明.txt”可能是对书中某些内容的补充说明或快速入门指南,帮助读者更好地理解...

    DWR中文文档.pdf

    #### 一、DWR入门 **1.1 简介** DWR(Direct Web Remoting)是一种简化Ajax应用程序开发的技术。它通过提供一种简单的方式来调用服务器端的Java方法,从而使得客户端的JavaScript代码可以直接操作服务器端的Java...

    dwr中文文档

    #### 二、DWR入门 ##### 2.1 简介 - **DWR** 是一种基于Ajax的开源框架,用于简化Ajax编程过程。 - DWR通过提供一系列工具和服务,使JavaScript能够直接调用服务器端的Java方法,极大地提高了开发效率。 - 开发者...

    程序员从初级到高级知识汇集

    【程序员从初级到高级知识汇集】是一本涵盖了程序员从入门到精通所需掌握的全面知识的资料集合。本书针对初级和高级程序员,旨在提供一个系统化的学习路径,帮助程序员提升技能,成为行业专家。 1. **Java知识** -...

    java学习路线图

    Java学习路线图:从入门到精通的全面指南 在IT行业,Java作为一门经典且广泛应用的编程语言,其学习路径不仅对于初学者至关重要,对于希望深入发展的开发者同样关键。本篇将围绕“Java学习路线图”这一核心主题,...

    EXT教程EXT用大量的实例演示Ext实例

    Ext教程为使用Ext JS框架的开发者提供了大量实例和详细的说明,涵盖了从基本入门到进阶使用,再到解决遇到的问题,是一份非常实用的参考资料。通过这些实例,开发者可以快速掌握Ext JS的使用,并能高效地应用于实际...

    java框架系列

    4. Spring参考手册.pdf、spring快速入门教程.pdf、Spring开发指南.pdf:这些文档是Spring框架的官方或非官方指南,涵盖了Spring框架的各个方面,从基本的bean配置到高级的特性如Spring Boot、Spring Cloud等。...

    Ajax.基础教程资料

    - **入门书-Ajax技术手册**:适合初学者,详细介绍Ajax的基本概念和技术要点。 - **进阶书-Ajax实战手册**:深入探讨Ajax的应用场景和最佳实践。 - **参考书-Ajax骇客八十招**:提供了大量的技巧和示例,帮助开发者...

Global site tag (gtag.js) - Google Analytics