### dwr3初学者使用说明 #### 一、简介 Direct Web Remoting(简称DWR)是一种开源技术,它使得JavaScript能够直接调用Java方法变得简单。DWR3是DWR的一个版本,它提供了更为丰富的功能和更好的性能。本文档旨在帮助初学者快速搭建并配置一个基本的DWR环境,并通过一个简单的示例来了解其基本工作原理。 #### 二、DWR3的安装与配置 ##### 1. 添加依赖 为了使用DWR3,首先需要在项目中添加相应的jar包。根据部分给定的内容来看,至少需要添加`dwr.jar`和`dwr2.0.jar`,并且因为`dwr2.0.jar`依赖于`commons-logging`库,所以也需要添加这个库。 ```xml <!-- Maven依赖 --> <dependency> <groupId>org.directwebremoting</groupId> <artifactId>dwr</artifactId> <version>3.x.x</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> ``` 如果使用的是非Maven项目,则需要手动下载这些jar包并添加到项目的类路径中。 ##### 2. 配置`web.xml` DWR3需要在`web.xml`中进行配置,主要包括添加监听器和servlet的配置。具体配置如下: ```xml <listener> <listener-class>org.directwebremoting.servlet.DwrListener</listener-class> </listener> <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> ``` - `<listener>`:定义了一个监听器`DwrListener`,用于初始化DWR。 - `<servlet>`:定义了一个名为`dwr-invoker`的servlet,该servlet是DWR的核心组件之一,用于处理客户端的请求。 - `<init-param>`:设置了调试模式为`true`,这样可以在开发过程中更容易地调试代码。 - `<servlet-mapping>`:将`dwr-invoker`映射到`/dwr/*`,意味着所有以`/dwr/`开头的URL都会被转发到DWR servlet进行处理。 ##### 3. 配置`dwr.xml` `dwr.xml`文件用于配置DWR中的各种设置,如允许哪些Java对象可以被远程访问等。例如: ```xml <dwr> <allow> <create creator="new" javascript="slt"> <param name="class" value="com.dwr.Select"/> </create> </allow> </dwr> ``` - `<dwr>`:DWR的根元素。 - `<allow>`:允许某些操作,这里指允许创建`com.dwr.Select`类型的对象。 - `<create>`:指定可以通过JavaScript创建的对象。 - `<param>`:指定创建对象时的参数,这里指定了创建`com.dwr.Select`对象。 #### 三、编写示例代码 ##### 1. JSP页面 JSP页面负责显示界面并与服务器端交互。以下是一个简单的JSP页面示例: ```html <%@ page language="java" pageEncoding="utf-8" %> <html> <head> <title>dwr</title> <script type="text/javascript" src="/testDwr/dwr/engine.js"></script> <script type="text/javascript" src="/testDwr/dwr/util.js"></script> <script type="text/javascript" src="/testDwr/dwr/interface/slt.js"></script> <script type="text/javascript"> function proSelect() { slt.selectPro(proUtil); } function proUtil(data) { var result = data.split(","); DWRUtil.addOptions("province", result); } function citySelect() { slt.selectCity(DWRUtil.getValue("province"), cityUtil); } function cityUtil(data) { var result = data.split(","); DWRUtil.removeAllOptions("city"); DWRUtil.addOptions("city", result); } </script> </head> <body onload="proSelect();"> 省:<select id="province" onchange="citySelect();"></select> 市:<select id="city"></select> </body> </html> ``` - `<script>`标签加载了DWR相关的JavaScript文件,包括`engine.js`、`util.js`以及定义远程调用接口的`slt.js`。 - JavaScript函数实现了下拉列表的功能,包括省份和城市的联动选择。 ##### 2. Java后端代码 接下来是Java后端代码示例: ```java package com.dwr; public class Select { public String selectPro() { return "请选择,省,广东省,江苏省"; } public String selectCity(String str) { if ("请选择".equals(str)) { return "请选择"; } else if ("省".equals(str)) { return "请选择,南京,苏州"; } else if ("广东省".equals(str)) { return "请选择,广州,深圳"; } else { return "请选择,杭州,宁波"; } } } ``` - `Select`类定义了两个方法:`selectPro`和`selectCity`,分别用于返回省份和城市的数据。 - 方法的实现逻辑较为简单,主要是根据传入的参数返回不同的数据。 #### 四、总结 通过以上步骤,我们已经完成了一个基于DWR3的基本配置。此示例展示了如何通过DWR实现前后端之间的远程调用,从而简化了JavaScript与Java之间复杂的数据交换过程。对于初学者来说,这是一个很好的起点,可以从中学到DWR的基本用法和配置方法。
(2) 配置web.xml
<listener>
<listener-class>org.directwebremoting.servlet.DwrListener</listener-class>
</listener>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
(3) 配置dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="slt">
<param name="class" value="com.dwr.Select "></param>
</create>
</allow>
</dwr>
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕设和企业适用springboot智能制造平台类及数字货币管理平台源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及在线教育管理系统源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及在线药品管理平台源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及在线音乐平台源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及资产管理平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及电影票务系统源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及自动化控制系统源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及客户服务智能化平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及客户管理系统源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及企业管理智能化平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及数据可视化平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及团队协作平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及网络安全防护平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及物流追踪系统源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及医疗信息管理平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及线上文件管理系统源码+论文+视频.zip