- 浏览: 36785 次
- 性别:
- 来自: 北京
文章分类
DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.
DWR允许使用客户端Javascript来与服务端Java程序进行交互,他实际上是帮助开发者隐藏了很多的开发细节。不用辛苦的去使用XMLHTTP,DWR是客户端-服务端的AJAX比较好的解决方案。
它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet(小应用程序)中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容.
DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.
这个从JAVA到JavaScript的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但是不需要浏览器插件的好处.
DWR不认为浏览器/WEB服务器协议是重要的,而更乐于保证编程界面的简单自然.对此最大的挑战就是把AJAX的异步特性和正常JAVA方法调用的同步特性相结合.在异步模式下,结果数据在开始调用之后的一段时间之后才可以被异步访问获取到.DWR允许WEB开发人员传递一个回调函数,来异步处理Java函数调用过程<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><span style="font-size: 10pt"> <span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> </shapetype></span></span></shapetype>
DWR Javascript库中常用函数的使用
设置异步/同步模式
默认情况下,DWR以异步的方式跟服务器通信,即可以同时向服务器发送请求,如果想要改为同步的方式,可以调用:dwr.engine.setAsync(false);
获得对某个页面元素对象的引用
$(“元素的ID或名称”)
对列表元素的支持
dwr.util.removeAllOptions()
dwr.util.addOptions()
dwr.util.getValue()
dwr.util.setValue()
Dwr的一个应用:
官方网址: http://getahead.org/dwr
下载dwr.jar,将其加入web-inf/lib目录
修改web.xml文件,添加DWRServlet的映射
<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>
<stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><lock aspectratio="t" v:ext="edit"> </lock>
配置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.dwr.Test1"/>
</create>
</allow>
</dwr>这个配置的意思是,要创建的是Test1对象的javascript库,而且这个库的名字叫test1,同时,这也是我们在JSP页面上调用这个对象的时候所使用的名称,请看下面的JavaBean代码和JSP实例:
4、下面是Test1这个JavaBean的源代码:
package com.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方法的返回值
发表评论
-
Tomcat解决URL传中文的方法
2007-09-28 19:03 826在TOMCAT-HOME/conf/server.xm ... -
介绍两个jsp上传组件commons-fileupload和SmartUpload(部分来自网页)
2007-09-28 21:39 1071第1个上传组件commons-fileupload ==== ... -
仍一个能增减行的javascript
2007-10-08 18:52 708<html><head> <s ... -
jFreeChart(动态web应用)
2007-10-09 14:12 733JFreeChart 1.0.2的动态应用,根据数据库中的 ... -
jFreeChart初探(静态应用)
2007-10-09 14:17 560初学JFreeChart,整理一个例子:(部分来自网页) ... -
初探tomcat连接池
2007-10-11 18:30 527相关工具: tomcat版本5.5 ,mysql,drp(数据 ... -
初探struts中的(Converter)的一个例子
2007-10-18 19:09 551Struts中的Converter可以将一些特定对象转换成字符 ... -
other
2007-10-19 18:23 611最近正在抽时间研究jive的源代码,如果有谁想 ... -
struts(il8n)实现国际化的一个例子
2007-10-19 20:45 791struts利用在session中放一个local对象来 ... -
struts中自定义taglib函数例子
2007-10-21 12:43 614首先建立自己的函数:package com.struts; ... -
一个从另一个打开页面返回值的javascript例子
2007-11-16 14:52 730今天写项目的时候用到了需要从另一个打开页面取值的j ... -
struts中利用ExceptionHandler处理异常
2007-11-22 13:33 625在Struts1.X的版本中加入了对异常的处理 ... -
java群
2007-12-03 20:25 63刚健了一个java群,用于大家互相探讨java,共同促进学习, ... -
ibatis学习(三)---ibatis与spring的整合
2007-12-07 18:26 1965Spring通过DAO模式,提供了对iBATIS的良好支持 ... -
ibatis学习(二)--ibatis使用介绍
2007-12-07 18:27 679SqlMapClient对象 这个对象是iBatis操作 ... -
ibatis学习(一)--ibatis介绍以及用例
2007-12-07 18:31 610介绍 iBATIS是以SQL为中 ... -
dwr实现级联菜单
2007-12-08 10:39 751Dwr的介绍请见:http://www.blogjava. ... -
JSF学习及应用一-(安装配置)
2007-12-11 09:38 700JSF(JavaServer Faces) JSF是JA ... -
JSF学习及应用二-(用例)
2007-12-11 09:41 536实例1 1、 创建一个JSP 2、 在相同的路径下,用. ... -
JSF学习及应用三-(与spring整合)
2007-12-11 09:46 622JSF与Spring整合的原理是获得彼此的上下文引用,以此 ...
相关推荐
详细介绍了dwr及dojo框架的配置及具体应用,是一个很好的实例,可供学习
DWR框架的应用示例,献给新人,新人学习还是可以的。
NULL 博文链接:https://topmanopensource.iteye.com/blog/383733
记录dwr学习,简单的小应用
学习对象:熟悉JavaScript, 了解JSTL, servlet/JSP, Struts 1.2, Hibernate, Spring, Ajax技术。 该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的...
AJAX高级的应用--DWR框架使用的学习笔记,包括spring结合DWR的使用。
内容包括: DWR教程.txt DWR实例教程.txt DWR学习.txt DWR应用总结.txt DWR购物车实例 DWR与界面开发 一个简单的例子 DWR 入门与应用-林信良(良葛格).doc
包含文件上传、访问无参数方法,返回对象、List 、Map,传值List|map
是我开发的一个dwr的例子,程序采用较先进的ajax技术,欢迎大家学习指导
介绍ajax技术和dwr框架,从ajax的requesthttp对象到dwr框架方法,学习就可用,是java应用方面
简要介绍ajax架构中dwr的应用及上手引导,新手学习之必备良药。
dwr实例开发,一个简单的DWR实例,旨在学习DWR的应用与开发。
1.针对SpringMVC注解的配置,可起到入门的作用 2.Spring+JdbcTemplate事物管理 ...4.Spring实现DWR注解方式的应用配置 5.Spring配置拦截器 6.Spring通过拦截器实现防止重复提交实例 对学习,会起到非常好的效果
OA办公自动化管理系统是一个...通过学习这个资料包,开发者可以掌握Struts1.2、Hibernate3.0、Spring2和DWR等技术的应用,提高自己的开发技能。同时,这个资料包也为企业提供了一个可靠的、成熟的办公自动化管理系统,
本人在学习过程中所写的一个较为完整的例子,由于设计单位的一些业务,删除了部分,不过大体还可以应用,针对初学者会有一些帮助,高手没入。
教会如何从零开始学习java 表(1) 面授课程技术 NO. 类别 01 操作系统 Windows --> Linux 02 中间件 Tomcat --> JBoss 03 数据库 MySQL --> Oracle 04 JAVA SE 环境搭建 --> 基础程序 --> 面向对象 --> 应用开发 ...
用flex开发过程中积累下来的资料,供flex初学者学习! 以下为部分资料标题: /***************************************/ 在tomcat中部署安装Flex Data Services (LiveCycle DS) [转]_baidu_百度空间 基于flex4技术...
dwr是框架中验证应用的,还有Ajax配置文件等等。真的很有用,初学者要好好学习哦
我们在学习了Java各种基础知识之后,最需要做的就是学会应用,开发一些项目把所学的知识应用起来,下面的这个《顺发物流管理系统源码》实战项目就是比较好的练手教程。 业务描述:本系统是基于JavaWeb开发的《顺发...
在javaEE应用中,SSH的组合已经家喻户晓,而Ajax技术也已经遍地开花。我们一般会使用遵循MVC设计模式的Struts来规范程序结构,使用优秀的ORM组件Hibernate来简化数据库访问操作,使用系统黏合剂Spring来提高开发效率...