DWR,全称是Direct Web Remoting,直接web远程?我的理解是可以用JavaScript直接调用java方法吧,当然JavaScript是没有权限直接调java方法的,中间还经过了若干过程,dwr做的,就是帮我们处理了这个繁琐的中间过程。
public String getDate(){
//举个例子,js处理日期比较麻烦,java则比较顺手
return new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
}
<script type="text/javascript">
//如果我们在javascipt里面能调用我们的java方法,那该多好,dwr帮你完成这一切
Ajax.getDate(function(time){
//这里我们就能得到一个14位的时间了,感觉是不是和java里面调用static方法一模一样呢?神似Calendar.getInstance() ?
alert(time);
});
</script>
-------------------------------------------------------------------
用的人很多了这个,jquery的ajax也不错,但是一直倾向于用dwr,感觉就像直接调用java方法一样,简单方便,也不需要自己处理太多东西,特别是中文处理方面,比jquery强好多。
本文实际上是DWR官方
OverView的简版:
1. 下载 dwr.jar 和 commons-logging
2. 在web.xml中配置dwr
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-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. 在WEB-INF目录下新建dwr.xml文件
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="JDate">
<param name="class" value="java.util.Date"/>
</create>
<!--
修改“your.java.Bean”为你的类路径
Demo这个名字也是随便命的,这个名字以后用来调用你your.java.Bean这个类,如下面这个,以后用Demo.getName()之类的,就表示调用Bean类里面的getName方法
-->
<create creator="new" javascript="Demo">
<param name="class" value="your.java.Bean"/>
</create>
</allow>
</dwr>
4. 已经配完了,简单吧,下面做个demo
这里是我的dwr.xml
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="Demo">
<param name="class" value="com.djwl.core.dwr.TestDWR"/>
</create>
</allow>
</dwr>
com.djwl.core.dwr.TestDWR
package com.djwl.core.dwr;
public class TestDWR {
public String getName(String name){
return "my name is: " + name;
}
}
javascript代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>index.htm</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=gbk">
<script type="text/javascript" src="/dwr/interface/Demo.js"></script>
<script type="text/javascript" src="/dwr/engine.js"></script>
<script type="text/javascript">
<!--
window.onload = function(){
/**
* 方法一
* @param {Object} data
*/
Demo.getName("huxiao", {
callback:function(data){alert(data)}
});
/**
* 方法二,这两种都是可以的,选用自己喜欢的
* @param {Object} data
*/
Demo.getName("胡晓", function(data){
alert(data);
});
}
//-->
</script>
</head>
<body>
</body>
</html>
5. dwr传的参数不止是string or int……还支持object
你可以在JavaScript端定义一个person对象,然后传给java端,在java端用一个Person person接收,回传的时候也支持json。下面是JavaScript代码,java的就不用写了吧
var person = function(){
this.name = "huxiao";
this.age = 18;
}
6. 怎么获取HttpServletRequest 或者 HttpServletResponse 呢?
在dwr里面非常简单,需要他是吧,什么都不用做,直接就拿来用
/**
* <p>功能描述:在这里,我添加了两个参数,那么dwr就会自动给我们传过来request和response,前台代码不变</p>
*
* @param name
* @param request
* @param response
* @return
* @author 胡晓 <BR> kskr@qq.com <BR>
* 时间:2010-3-15 下午09:29:51 <BR>
*/
public String getName(String name, HttpServletRequest request, HttpServletResponse response) {
System.out.println(request.getRemoteAddr());
return "my name is: " + name;
}
分享到:
相关推荐
**Ajax学习——DWR的参考书和实用案例学习总结** DWR(Direct Web Remoting)是一种优秀的开源框架,专门用于简化Web应用程序中的Ajax(Asynchronous JavaScript and XML)开发。Ajax技术允许网页在不刷新整个页面...
这个"ajax框架dwr例子.rar"是一个针对初学者的教程资源,旨在帮助理解如何在实际项目中使用DWR进行Ajax开发。 DWR的核心功能在于提供了一个简单的方法来调用服务器端的Java方法,并将结果直接返回到客户端的...
标题中的“SSH框架+Ajax(运用dwr框架)综合小实例”指的是在Web开发中,使用Struts2、Spring和Hibernate三大主流Java EE框架(SSH)结合Ajax技术,并通过Direct Web Remoting (DWR) 框架进行前端与后端交互的一个实战...
本项目“一个Ajax和DWR框架的最简单2个应用--简易聊天室”旨在通过这两个技术的结合,实现一个基本的在线聊天功能。 Ajax是一种不刷新整个页面即可与服务器交换数据并更新部分网页的技术,它通过JavaScript异步调用...
**DWR(Direct Web Remoting)**是一种基于Java的Ajax框架,主要用于在Web浏览器和服务器之间进行异步通信。DWR允许开发者使用JavaScript直接调用服务器端的Java方法,极大地简化了Web应用的开发,提高了用户体验,...
从最简单的角度来说,DWR 是一个引擎,可以把服务器端 Java 对象的方法公开给 JavaScript 代码。使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。这意味着客户端代码再也不需要直接处理 ...
**SSH框架与DWR整合详解** SSH框架,全称为Spring、Struts和Hibernate的缩写,是Java开发中常用的三大框架。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts则处理MVC模式中的Controller部分,而...
DWR (Direct Web Remoting) 是一个开源Java框架,它允许Web应用程序在客户端JavaScript和服务器端Java代码之间进行实时通信,无需使用XMLHttpRequest或JSONP等传统Ajax技术。这个框架简化了复杂的Ajax开发,使开发者...
DWR(Direct Web Remoting)框架是一个开源的Ajax框架,旨在简化Web应用程序中客户端与服务器端的交互。在v2.0.5版本中,它提供了丰富的功能和易用性,使得开发人员能够轻松地在JavaScript和Java之间进行远程方法...
DWR是一种强大且易于使用的Java Ajax框架,它极大地简化了前端与后端之间的交互过程,使得开发者能够更加专注于业务逻辑的实现而非底层的技术细节。无论是对于新手还是经验丰富的开发者来说,DWR都是构建高质量、高...
DWR的核心功能在于提供了一种简单的方式来调用服务器上的Java方法,并将结果返回到浏览器,这在创建富互联网应用程序(RIA)时非常有用。 在DWR框架中,配置文件起着至关重要的作用,它是连接客户端和服务器端的...
DWR(Direct Web Remoting)是一个开源框架,用于在JavaScript和Java之间建立实时的、双向的通信。这个小练习是初学者了解并实践DWR框架的好机会,它可以帮助你掌握如何将DWR集成到Web应用中,实现客户端与服务器端...
在这个"Dwr最简单例子(2.0)"中,我们将探讨如何使用DWR 2.0设置一个基础的应用程序,以便理解其核心概念和工作原理。首先,我们需要了解DWR的基本组件: 1. **配置文件**:DWR的配置文件(通常为`dwr.xml`)定义了...
Ajax_DWR小测试是一个针对初学者的实践项目,旨在帮助理解DWR(Direct Web Remoting)框架的应用。DWR是一种JavaScript库,它允许在浏览器和服务器之间进行实时、异步的通信,无需刷新页面,极大地提高了Web应用的...
这个“最简单的dwr例子”可能是一个入门教程,帮助开发者理解如何使用DWR来创建异步、动态的Web应用程序。 DWR的核心功能在于提供了一个桥梁,使得JavaScript可以调用服务器端的Java方法,就像它们是本地函数一样,...
这是我用dwr做的一个例子,非常好懂,就是一个文本框,旁边一个按钮,连接了mysql数据库,在文本框里输入注册名,如果数据库里面已有,就会在旁边提示出来,用的是DWR技术,DER是ajax技术里的一个框架,简单易学,只要看了我这...
在这个场景中,我们将讨论如何使用DWR来实现简单的文件上传功能。 文件上传是Web应用中常见的一种用户交互方式,通常涉及到前端的HTML表单、后端的处理逻辑以及可能的文件存储策略。DWR通过提供对Java方法的远程...