### DWR基础知识与应用 #### 一、DWR概述 **DWR**(Direct Web Remoting)是一种开源框架,它简化了客户端与服务器之间的交互过程,使得开发者能够在浏览器端轻松地调用服务器端的Java方法,就像在本地调用一样简单。这种特性极大地降低了对JavaScript技能的要求,使得异步交互变得更加容易。 #### 二、DWR的特点 1. **易用性**:DWR的主要优势之一就是其易于使用。即使开发者对JavaScript不熟悉,也能够快速上手。 2. **无缝集成**:DWR能够与多种Java EE技术(如Spring、Struts等)无缝集成。 3. **安全性**:提供了安全配置选项,确保应用程序的安全性。 4. **灵活性**:支持多种配置方式,并且可以通过不同的方式进行扩展。 #### 三、DWR入门 **1.1 简介** DWR通过提供一系列的工具和API,帮助开发者实现客户端与服务器端的异步通信。这包括了自动化的JavaScript生成、远程方法调用等功能。 **1.2 第一个DWR程序:HelloWorld** - **1.2.1 将DWR放入你的工程** - 下载DWR库文件并将其添加到项目中。 - **1.2.2 编辑配置文件** - 修改`web.xml`和`dwr.xml`以启用DWR。 - **1.2.3 编写service** - 创建一个简单的Java类,定义可被远程调用的方法。 - **1.2.4 测试DWR** - 使用DWR提供的工具进行测试,验证服务是否可用。 - **1.2.5 编写一个jsp** - 在JSP页面中使用DWR API调用远程方法。 #### 四、配置详解 **2.1 主要配置** DWR的配置主要包括`web.xml`和`dwr.xml`两个文件。 - **2.2 常用<init-param>参数列表** - **2.2.1 安全参数**:用于设置安全相关的选项,例如是否启用CSRF保护。 - **2.2.2 Ajax服务器加载时保护参数**:控制DWR如何加载JavaScript资源。 - **2.2.3 其他参数**:包括日志级别、调试模式等。 - **2.3 日志配置** - 设置DWR的日志记录级别和格式。 - **2.4 多个dwr.xml配置和J2EE角色定义** - 支持在一个项目中使用多个`dwr.xml`文件。 - **2.5 插件配置** - 配置DWR插件以扩展其功能。 - **2.6 测试模式配置** - 开启测试模式以方便进行单元测试。 **3.1 纵览** `dwr.xml`文件主要用于定义服务接口、方法签名等信息。 - **3.2 <init>标签** - 配置DWR的初始化参数。 - **3.3 <allow>标签** - 指定哪些方法可以被远程调用。 - **3.3.1 Creator**:定义创建Java对象的方式。 - **3.3.2 Converter**:指定数据转换规则。 - **3.4 <signatures>标签** - 描述远程方法的参数类型和返回值类型。 #### 五、DWR与其他框架的整合 - **4.1 DWR与Servlet** - 通过使用特定的方法与Servlet进行交互。 - **4.2 DWR与Spring** - **4.2.1 让DWR和Spring一起工作的检查列表**:确保Spring容器能够正确初始化DWR组件。 - **4.2.2 SpringCreator**:利用Spring容器管理DWR服务。 - **4.3 DWR与JSF** - **4.3.1 JSFCreator**:使用JSF特定的Creator实现。 - **4.3.2 ServletFilter**:配置过滤器以支持JSF和DWR的集成。 - **4.4 DWR与Struts** - **4.4.1 StrutsCreator**:为Struts提供特定的Creator实现。 - **4.4.2 开始顺序**:确保正确的启动顺序以避免冲突。 - **4.5 DWR与Weblogic或PageFlow** - 针对特定的应用服务器进行配置调整。 - **4.6 DWR与Hibernate** - **4.6.1 让DWR和Hibernate一起工作的检查列表**:确保Hibernate与DWR兼容。 - **4.6.2 HibernateBeanConverter**:用于将Hibernate实体转换为客户端可以理解的形式。 - **4.6.3 Session管理**:处理跨请求的Hibernate Session管理。 - **4.7 DWR与WebWork** - **4.7.1 配置dwr.xml**:定义与WebWork相关的配置项。 - **4.7.2 在JSP中导入脚本**:在JSP页面中使用DWR。 - **4.7.3 高级**:更复杂的集成示例。 - **4.8 DWR与Acegi** - **4.8.1 问题提出**:描述安全相关的问题。 - **4.8.2 解决方案**:提供解决方案以确保安全。 #### 六、DWR中的JavaScript简介 - **5.1 简单的回调函数** - 展示如何使用回调函数处理异步响应。 - **5.2 调用元数据对象** - 获取服务端方法的信息。 - **5.3 查找回调函数** - 自动生成与Java方法对应的JavaScript函数。 - **5.4 创造一个与Java对象匹配的JavaScript对象** - 自动生成与服务器端对象相对应的客户端对象。 #### 七、engine.js功能 - **6.1 使用选项** - 配置引擎的行为。 - **6.2 选项索引** - 包括各种配置选项及其描述。 - **6.3 选项说明** - 解释每个选项的具体作用。 - **6.3.1 批量调用** - 执行多个远程方法调用。 - **6.3.2 顺序调用** - 控制调用的顺序。 - **6.3.3 错误警告和超时** - 设置超时时间和错误处理机制。 - **6.3.4 远程调Hooks** - 在远程方法调用前后执行自定义逻辑。 - **6.3.5 远程调用选项** - 控制远程调用的行为。 #### 八、util.js功能 - **7.1 $()** - 获取DOM元素。 - **7.2 addOptionsandremoveAllOptions** - 添加或移除选项。 - **7.3 addRowsandremoveAllRows** - 操作表格行。 - **7.4 getText** - 获取文本内容。 - **7.5 getValue** - 获取输入框的值。 - **7.6 getValues** - 获取多个值。 - **7.7 onReturn** - 处理回调结果。 - **7.8 selectRange** - 选择文本范围。 - **7.9 setValue** - 设置输入框的值。 - **7.10 setValues** - 设置多个值。 - **7.11 toDescriptiveString** - 转换为描述性字符串。 - **7.12 useLoadingMessage** - 显示加载提示信息。 - **7.13 Submissionbox** - 提交表单数据。 #### 九、DWR进阶 - **8.1 DWR Annotations** - **8.1.1 初始配置**:使用注解进行配置。 - **8.1.2 远程访问类**:标记可远程访问的类。 - **8.1.3 对象转换**:定义对象转换规则。 - **8.2 错误和异常处理** - **8.2.1 错误处理**:处理客户端错误。 - **8.2.2 异常**:处理服务器端异常。 - **8.2.3 找出更多的信息**:获取异常的详细信息。 - **8.3 传递额外的数据到callback函数** - 向回调函数传递附加数据。 - **8.4 从其他的URL读取数据** - 从外部URL获取数据。 - **8.5 安全** - 实现安全措施,如CSRF防护。 #### 十、范例精讲 **9.1 购物车** - **9.1.1 介绍** - 介绍购物车应用的功能。 - **9.1.2 实现目录** - 分步骤解释实现过程。 - **9.1.3 测试部署** - 部署应用并进行测试。 - **9.1.4 调用远程对象** - 展示如何调用远程服务。 - **9.1.5 实现购物车** - 实现购物车的主要功能。 - **9.1.6 调用远程的Cart方法** - 调用服务器端的Cart方法。 - **9.1.7 演示结果** - 展示应用的实际效果。 - **9.1.8 总结** - 对购物车应用进行总结。 #### 十一、附录 - **10.1 常见问题** - **10.1.1 TransformerFactoryConfigurationError** - 解决TransformerFactory配置错误。 - **10.1.2 XML解析错误** - 解决XML解析过程中遇到的问题。 - **10.1.3 使用weblogic的类路径问题** - 解决与WebLogic服务器相关的类路径问题。 - **10.1.4 没有cookies的情况下用DWR** - 在无Cookie环境下使用DWR。 - **10.2 更多资源** - 提供更多学习资源和文档链接。



































剩余57页未读,继续阅读


- 粉丝: 194
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 通用型LSTM深度学习时间序列预测模型-基于PyTorch框架实现的可配置化长短时记忆网络-支持多维特征输入与多步预测-包含完整训练评估可视化流程-适用于船舶力学数据分析-自然语言.zip
- 基于Matlab的车牌识别系统的研究.caj
- 主要用于VisDrone数据集目标检测
- 基于ERA5历史气象再分析数据构建中国2020年全域风光资源时空分布图谱与出力因子计算模型-高分辨率气象网格化处理-风电光伏容量因子时序模拟-可再生能源发电特性分析-区域差异化评估.zip
- ROS下基于单目相机3d目标检测模型SMOKE的TensorRT推理工程
- 武汉理工大学实验课程作业代码归档与学习参考项目-包含计算机科学与技术专业各类实验课程的完整代码实现与详细说明-数据结构-算法设计-操作系统-计算机网络-数据库系统-编译原理-软件工.zip
- GESP学习资料集(2025.08.25)K.pdf
- ROS 环境下单目相机 3D 目标检测模型 SMOKE 的 TensorRT 推理工程
- 电子信息技术在智能交通信号灯控制中的有效运用.docx
- fakersshbackdoor.c
- 浅析大数据时代背景下的计算机网络安全及防范措施.docx
- 免费电话哪个好-六款网络免费电话对比评测.doc
- 大数据时代计算机网络安全存在的问题及解决对策研究.docx
- 2018年信息系统项目管理师复习精华笔记.doc
- 酒钢选矿自动化系统工程施工组织设计(审定).doc
- 基于linux的shell菜单脚本源码.zip


