### DWR中文手册知识点概述
#### 一、DWR概览
DWR(Direct Web Remoting)是一种简化Ajax编程的框架,它使客户端JavaScript能够直接调用服务器端的Java方法,如同调用本地方法一样简单。DWR的核心是提供了一种机制,允许服务器端Java代码与客户端JavaScript代码进行无缝交互,而无需编写复杂的Ajax调用。
#### 二、DWR的安装与配置
##### 1.1 DWR入门
DWR的入门包括基本的安装步骤和第一个程序的运行。需要将DWR库添加到项目中,然后在`web.xml`中配置DWR的servlet和初始化参数。接着,创建一个简单的Java服务类,并编写相应的JSP页面来调用这个服务。
##### 1.2 web.xml配置
`web.xml`是Web应用程序的重要配置文件,其中DWR相关的配置主要包括servlet的定义和初始化参数。初始化参数如`debug`、`scriptCache`、`scriptPath`等用于控制DWR的行为,如调试模式、脚本缓存路径等。
##### 1.3 dwr.xml配置
`dwr.xml`是DWR的核心配置文件,用于定义服务、方法签名、转换器、创建器等。例如,`<allow>`标签用于控制哪些类和方法可被远程调用,`<converters>`标签用于指定数据类型的转换规则,`<creators>`标签则用于定义如何创建服务对象实例。
#### 三、DWR与主流框架的整合
DWR可以与多种Java EE框架进行整合,如Spring、JSF、Struts、WebLogic、Hibernate、WebWork和Acegi等。
##### 3.1 DWR与Spring
整合DWR与Spring通常需要配置SpringCreator,以便DWR可以从Spring容器中获取服务对象。此外,还需要在Spring的配置文件中定义DWR相关的bean,以实现服务对象的注入。
##### 3.2 DWR与JSF
DWR与JSF的整合主要通过JSFCreator来实现,这使得DWR可以在JSF环境中工作,从而实现更丰富的客户端交互。
##### 3.3 DWR与Struts
整合DWR与Struts需要使用Strutscreator,以及正确配置servlet过滤器,确保DWR请求能够正确处理。
##### 3.4 DWR与Weblogic或PageFlow
DWR在Weblogic服务器上的配置可能需要额外的安全设置和角色定义,以适应其特定的环境。
##### 3.5 DWR与Hibernate
DWR与Hibernate的整合需要考虑Session管理,以及使用HibernateBeanConverter来处理Hibernate实体的序列化和反序列化。
##### 3.6 DWR与WebWork
在WebWork中整合DWR涉及到在`dwr.xml`中配置WebWorkCreator,并在JSP页面中正确导入DWR脚本。
##### 3.7 DWR与Acegi
DWR与Acegi(Spring Security的前身)的整合主要是解决安全性问题,确保只有授权的用户才能访问特定的服务方法。
#### 四、DWR中的JavaScript编程
DWR不仅简化了服务器端的Java编程,同时也提供了丰富的JavaScript API,用于客户端的Ajax调用。例如,简单的回调函数可以让JavaScript异步地调用服务器端方法,并处理返回的结果。
#### 五、DWR的使用场景与优势
DWR适用于构建高度交互式的Web应用程序,特别是在需要实时数据更新、复杂表单处理和动态内容加载的场景下。通过DWR,开发者可以减少JavaScript的编码量,提高开发效率,同时还能保持代码的清晰度和可维护性。
DWR作为一款优秀的Ajax框架,不仅简化了Ajax编程的复杂度,还提供了与多种Java EE框架无缝整合的能力,使得开发出高性能、高互动性的Web应用变得更加容易。对于希望在Web开发中充分利用Ajax技术的开发者而言,掌握DWR无疑是一项重要的技能。