`

DWR详解

    博客分类:
  • ajax
阅读更多
什么是DWR(Direct Web Remote)?
DWR是一种AJAX解决方案!

DWR包括一个java库,以及一套javascript,使得我们可以用一种非常简单的方式,在页面上使用javascript直接调用后台的java对象!
DWR架构




DWR的javascript库包括几个部分:dwr的javascript引擎(即对AJAX调用的封装)、dwr提供的一些非常有用的辅助javascript函数库、以及dwr自动帮我们生成的专门用于调用后台JavaBean方法的javascript库!

Dwr在运行的时候,动态生成一个javascript库,这个库是对后台javabean调用的封装,我们可以直接使用这个库来实现直接调用JavaBean的目的!

注意:是在运行的时候动态生成!

下面我们来看看如何安装和使用(基于DWR2.x版本):
如何下载、安装与使用?
官方网址: http://getahead.org/dwr

1、 下载dwr.jar,将其加入web-inf/lib目录
2、 修改web.xml文件,添加DWRServlet的映射
 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
<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>
  
</web-app>


3、 配置dwr,即在WEB-INF目录下,添加dwr.xml文件,让dwr知道在运行的时候应该给哪些JavaBean生成相应的javascript库!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
  <allow>
    <create creator="new" javascript="test1">
      <param name="class" value="com.bjsxt.dwr.Test1"/>
    </create>
  </allow>
</dwr>

这个配置的意思是,要创建的是Test1对象的javascript库,而且这个库的名字叫test1,同时,这也是我们在JSP页面上调用这个对象的时候所使用的名称,请看下面的JavaBean代码和JSP实例:

4、下面是Test1这个JavaBean的源代码:
package com.bjsxt.dwr;


public class Test1 {

	public String sayHello(String name){
		return "你好,"+name;
	}

}


5、在JSP中的使用!

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test1.js"></script>
<title>Insert title here</title>
<script type="text/javascript">
function sayHello(){
	test1.sayHello("李四ddd",
		function(data){
			alert(data);
		}
	);
}
</script>
</head>
<body>
<a href="#" onclick="sayHello()">Test1</a>
</body>
</html>

让我们简单看一下这个JSP文件:首先引入DWR中的两个核心javascript库:engine.js和util.js,它们分别是dwr中的核心引擎库和辅助工具函数库!

第三个引入的dwr/interface/test1.js,实际上这个文件并不存在,这是由dwr在运行的时候动态生成的!test1这个名称,跟dwr.xml文件中配置的对应对象的javascript属性一致!

而且,我们在使用的时候,直接使用test1这个名称,作为这个对象的引用。直接调用这个对象的方法:sayHello,这个方法的名称必须与JavaBean中的方法名称一致!

sayHello方法有一个参数,同时返回一个值。我们可以直接传递参数,同时指定一个javascript函数来处理这个返回值(如上例所示)。

 如何传递参数
 如果要调用的方法有参数,则将参数放在前面
 如何处理返回值
 定义一个函数来处理返回值,这个函数有一个参数,就是JavaBean方法的返回值

DWR Javascript库中常用函数的使用
 设置异步/同步模式
 默认情况下,DWR以异步的方式跟服务器通信,即可以同时向服务器发送请求,如果想要改为同步的方式,可以调用:dwr.engine.setAsync(false);
 获得对某个页面元素对象的引用
 $(“元素的ID或名称”)
  • 大小: 14.5 KB
分享到:
评论

相关推荐

    dwr中文详解

    比较全面的介绍了dwr在各方面的应用,简单入手!从参数配置开始教你!由浅到深让你成为一个dwr高手!

    DWR详解 ajax

    DWR (Direct Web Remoting) 是一个开源框架,专门用于简化AJAX(Asynchronous JavaScript and XML)技术在Web应用中的实现。DWR的核心目标是使JavaScript能够直接调用服务器端的Java方法,就像它们是在客户端运行...

    dwr技术详解.doc

    DWR (Direct Web Remoting) 是一种开源的Java库,专为开发人员提供方便地在Web应用中使用AJAX(Asynchronous JavaScript and XML)技术。DWR的核心功能是使JavaScript能够调用服务器端的Java方法,仿佛这些方法是...

    DWR配置文件详解,DWR配置

    **DWR配置文件详解** Direct Web Remoting (DWR) 是一种开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行双向通信。DWR的核心配置文件是`dwr.xml`,该文件定义了DWR允许访问的Java对象、...

    dwr配置文件详解 dwr.xml配置文件详解

    dwr配置文件详解 dwr.xml配置文件详解 dwr配置文件是Direct Web Remoting(DWR)的核心组件之一,它负责配置DWR的各种设置和参数。在本文中,我们将详细介绍dwr配置文件的结构和配置方法,并探讨它在实际应用中的...

    SSH集成DWR

    **SSH集成DWR详解** SSH(Struts + Spring + Hibernate)是Java开发中常见的Web应用框架,它结合了Struts的MVC设计模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能,提供了强大的企业级应用开发...

    Ajax Dwr详细资料

    **Ajax DWR详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下更新部分网页的技术,极大地提升了用户体验。而Direct Web Remoting (DWR) 是一个开源Java库,它使得JavaScript和Java...

    ajax_DWR 中文文档

    **Ajax与DWR详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,大大提升了用户体验。Ajax的...

    ajax_DWR中文文档

    **Ajax和DWR详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,为用户提供更加流畅的...

    在Spring中使用dwr

    ### 在Spring中集成DWR详解 #### 一、前言 Direct Web Remoting (DWR) 是一个简化Ajax开发的框架,它允许JavaScript调用Java方法,并且可以在服务器端执行这些方法,然后将结果返回给客户端。DWR与Spring框架的...

    ajax框架:dwr》实战(包括整合)

    ### DWR 框架详解及实战应用 #### 一、DWR 快速入门 **1. DWR 简介** DWR (Direct Web Remoting) 是一种用于简化 Ajax 开发的 Java 库。它允许前端 JavaScript 直接调用后端 Java 对象的方法,从而减少了开发人员...

    DWR和strut.docx

    \n\n**DWR详解**\nDWR的核心特性是将服务器端的方法暴露给JavaScript,允许在客户端直接调用,简化了Ajax的实现。DWR主要组件包括:\n\n1. `dwr.xml`:DWR的配置文件,定义了哪些服务器端的方法可以被客户端调用。\...

    JAVA AJAX框架 DWR

    **JAVA AJAX框架 DWR详解** DWR(Direct Web Remoting)是一个开源的Java库,它使得JavaScript和服务器端的Java代码可以直接进行交互,无需处理复杂的HTTP请求和响应。这种技术在Web开发中被称为Ajax(Asynchronous...

    DWR学习案例详解(数据库)

    本案例详解将重点探讨DWR在数据库操作中的应用。 首先,理解DWR的基本工作原理至关重要。DWR通过在浏览器和服务器之间创建一个HTTP长连接,允许JavaScript调用服务器上的Java方法,并将结果返回给前端。这一过程...

Global site tag (gtag.js) - Google Analytics