一直没用过dwr了,现在想起来回顾下,所以转了下面基础入门
DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.
DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.
要使用dwr要先下载http://getahead.org/dwr/
下载内容
DownloadVersion 2.0.3Size
JAR File: dwr.jar(489Kb)
WAR File:dwr.war(2.14Mb)
Sources:dwr-2.0.3-src.zip (20.78Mb)
首先看下工程里面:
图片地址:http://s1.sinaimg.cn/bmiddle/5a39b0c745afa751edce0
多了dwr.jar(dwr jar包),dwr.xml(dwr的配置文件),dwr20.dtd(在编辑xml配置文件时,提供自动提示功能),其实web.xml配置文件也配置了dwr的servlet,来看下:
图片:http://s14.sinaimg.cn/bmiddle/5a39b0c706f7f73c7622d
至于这个url为什么还要用"/dwr/*"还不是很清楚,我想的是如果客户端有请求过来经过dwr的都被指定的servler处理(个人理解)。
在来看下dwr.xml的配置:
图片:http://s8.sinaimg.cn/bmiddle/5a39b0c745afa9aa7c017
红线框的是关于dwr智能提示的配置,里面蓝线框的是上面提到的dwr20.dtd的路径,如果路径或者文件名不对,那么前面就会出现警告:
http://s8.sinaimg.cn/bmiddle/5a39b0c745afaaa4f8ed7
如果出错了也无所谓,只不过是不能智能提示,如果你能把这写节点记住的话,那就不需要了,否则就把dwr20.dtd拷贝到与dwr.xml相同的目录下。
在看重要的部分dwr的节点:
<allow>标签中包括可以暴露给javascript访问的东西。
<create>标签中指定javascript中可以访问的java类,并定义DWR应当如何获得要进行远程的类的实例。creator="new"属性指定java类实例的生成方式,new意味着DWR应当调用类的默认构造函数来获得实例,其他的还有spring方式,通过与IOC容器Spring进行集成来获得实例等等。javascript="sayHello"属性指定javascript代码访问对象时使用的名称。
<param>name这里一般用class指一个类,value指类的全名,包括包名。
好了配置文件我们算做好了,在来看看jsp中在JavaScript中所做的配置。
http://s6.sinaimg.cn/bmiddle/5a39b0c745afae100f2e5
第一个是dwr的引擎js文件,第二个是用户自己要访问java的类的js文件。
在来看看JavaScript调用java类的方法
http://s1.sinaimg.cn/bmiddle/5a39b0c745afaed9a6f20
注意这里的sayHello还有上面配置的sayHello.js(文件名)要和dwr.xml中配置JavaScript的名字要相同,否则就报错。
下来看下java类中的方法。
http://s6.sinaimg.cn/bmiddle/5a39b0c745afafee0cfa5
在上面的JavaScript中有人就想问,为什么调用Hello的方法时要传入一个函数。来说下,第一个是java方法的参数,第二个方法是回调函数,这个函数是负责接受JavaScript调用java类后返回的结果。
到这里一个简单的dwr框架就搞完了,来先看下是否成功,启动jsp的服务器,然后下图:
点击查看文件,先把里面所有的东西删除了,然后浏览你的jsp页面,就出出现一下2个文件
http://s11.sinaimg.cn/bmiddle/5a39b0c745afb1ad6b19a
就是我们刚才配置的两个js文件,如果客户端通过JavaScript调用sayHello.Hello的话,那么就会由sayHello.js处理,然后转交给engine引擎,之后由引擎向服务器请求。
来看下效果,
http://s12.sinaimg.cn/bmiddle/5a39b0c745afb24869bdb
很好,看来运行很好,但是发现个问题,我刚才在配置文件里配置的com.dwr.sayHello中所有的方法我们都可以访问的嘛?其实并不是这样的,要是不设置的话,就默认允许调用所有的方法,要是想要指定的方法允许访问,那么就要在dwr.xml中配置了。来看:
http://s15.sinaimg.cn/bmiddle/5a39b0c745afb36d6d7ae
原文http://blog.sina.com.cn/s/blog_5a39b0c70100bgdh.html
分享到:
相关推荐
dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr
1、 导入dwr.jar包 2、 在web.xml中配置dwr,如下: <!-- 配置DWR --> <servlet-name>dwr-invoker org.directwebremoting.servlet.DwrServlet <init-param> <param-name>debug</param-name> ...
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行直接的交互,从而实现在Web应用程序中的Ajax功能。DWR的主要目标是简化前后端的数据交换,提高用户体验,使得Web应用能够像桌面...
DWR (Direct Web Remoting) 是一种开源Java技术,它允许Web应用程序在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用服务器端的Java方法,极大地简化了客户端和服务器端的数据交换。本笔记将...
**DWR(Direct Web Remoting)**是一种Java技术,它允许Web应用程序在客户端与服务器之间进行实时通信,而无需刷新整个页面。通过DWR,我们可以使用JavaScript直接调用服务器端的Java方法,实现Ajax(Asynchronous ...
这个压缩包包含了DWR的三个主要版本:DWR1.0、DWR2.0和DWR3.0的jar包,这些jar包是运行DWR应用的核心组件。 DWR1.0: DWR1.0是DWR项目的早期版本,主要目标是简化Web应用中的异步通信。在这个版本中,DWR提供了一个...
DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现动态的Web应用。DWR简化了AJAX(Asynchronous JavaScript and XML)的开发,使得开发者可以像调用...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的JavaScript到服务器端Java对象的通信。这个技术允许开发者在浏览器中直接调用服务器端的方法,极大地简化了AJAX(Asynchronous JavaScript ...
这个压缩包包含了DWR的三个关键组件:DWR3.0.jar,DWR的实例war文件,以及DWR2.0的中文说明文档。以下是关于这些组件的详细知识: 1. **DWR3.0.jar**: DWR3.0.jar是DWR框架的核心库,包含所有必需的类和接口,...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现JavaScript和服务器端Java代码之间的双向通信。这个教程包含了一系列的文档和资源,帮助开发者深入理解和使用DWR。 首先,"DWR学习笔记"提供了对...
DWR(Direct Web Remoting)是一个开源的Java库,它为Web应用程序提供了强大的Ajax功能。通过DWR,前端JavaScript可以直接调用后端Java方法,从而实现动态、实时的Web交互,提升用户体验。这个主题主要围绕DWR的两个...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许在JavaScript和服务器端Java之间进行双向通信,实现Web应用程序的Ajax功能。DWR使得动态网页能够与后台服务器进行实时交互,无需刷新整个页面,提高了用户体验...
**DWR配置文件详解** Direct Web Remoting (DWR) 是一种开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行双向通信。DWR的核心配置文件是`dwr.xml`,该文件定义了DWR允许访问的Java对象、...
DWR (Direct Web Remoting) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时通信,无需使用插件或复杂的JavaScript框架。DWR简化了AJAX(Asynchronous JavaScript and XML)开发,使开发者可以像...
Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr...
Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用Java方法,从而实现了富互联网应用(RIA)的功能。DWR2.0是DWR的一个版本,...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的JavaScript到服务器端Java对象的通信。这个“DWR中文教程(外带DWR包)”为初学者提供了一个全面的入门指南,帮助理解并掌握DWR的基本概念和...
### DWR中文文档知识点概述 #### 一、DWR简介 **DWR(Direct Web Remoting)** 是一个开源的类库,旨在帮助开发者轻松构建包含AJAX技术的网站。其核心价值在于允许浏览器中的JavaScript代码能够直接调用运行在Web...
Direct Web Remoting (DWR) 是一种开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。DWR的主要功能是通过AJAX技术在客户端和服务器之间进行实时通信,使得用户界面...