DWR之DWR是面向web的RPC(或者AJAX-RPC)
2011-12-10 18:29
239 查看
DWR之DWR是面向web的RPC(或者AJAX-RPC)
----------
DWR的显著特征是提供把服务器端代码视为浏览器中javascript代码的方法,这是DWR的首创。DWR是java和javascript相结合的开源库。通过它,可以简单容易地构建Ajax程序,无需深入了解XMLHttpRequest的编码细节。它容许你通过客户端的javascript,采用看似调用浏览器本地代码的方法来调用服务器端的代码。这就是DWR(Direct Web
Remoting)中直接(Direct)的含义。
如果了解RPC,就会了解DWR的功能和调用机制。在RPC中,客户端代码发出调用,在大多数情况下会借助于某种代理存根函数或者对象。无论这些代理存根如何实现,都会依次通过底层的RPC库发出请求。在通常情况下,被调用的代码位于另一台计算机上,请求会通过一些网络协议发送到远程计算机。现在,在RPC库中,服务器端组件会接收请求,并通过其他代理存根对象传递到目的地,即位于远程计算机的被调用过程。服务器会执行,并在执行完成后,把结果按照相反的流程返回。
DWR的主体,也就是所谓的内核,是DWRServlet类。在很多情况下,该类是一个普通的java Servlet,但是会为我们做许多工作,其中就包括基于java类自动生成Javascript对象。在接下来第一个真实的DWR范例中,首先需要在Web页面中包含到一个Javascript文件的链接。但是,这样说会有曲解,这不是一个真实的javascript文件,例如,我们在页面中包含以下内容:
客户端的RPC库又指的是什么呢?这其实很简单,就是DWR本身的javascript部分。你随后就会看到,页面中还有一个<script>(也映射到DWRServlet),是DWR的客户端部分,能够轻易地完成所有的Ajax工作。
在DWR中,服务器端的代理存根其实没有任何东西(有些RPC实现中不包含这一部分)。
这样就可以概要理解DWR的组成,以及如何与RPC对应。
----------
DWR的显著特征是提供把服务器端代码视为浏览器中javascript代码的方法,这是DWR的首创。DWR是java和javascript相结合的开源库。通过它,可以简单容易地构建Ajax程序,无需深入了解XMLHttpRequest的编码细节。它容许你通过客户端的javascript,采用看似调用浏览器本地代码的方法来调用服务器端的代码。这就是DWR(Direct Web
Remoting)中直接(Direct)的含义。
如果了解RPC,就会了解DWR的功能和调用机制。在RPC中,客户端代码发出调用,在大多数情况下会借助于某种代理存根函数或者对象。无论这些代理存根如何实现,都会依次通过底层的RPC库发出请求。在通常情况下,被调用的代码位于另一台计算机上,请求会通过一些网络协议发送到远程计算机。现在,在RPC库中,服务器端组件会接收请求,并通过其他代理存根对象传递到目的地,即位于远程计算机的被调用过程。服务器会执行,并在执行完成后,把结果按照相反的流程返回。
DWR的主体,也就是所谓的内核,是DWRServlet类。在很多情况下,该类是一个普通的java Servlet,但是会为我们做许多工作,其中就包括基于java类自动生成Javascript对象。在接下来第一个真实的DWR范例中,首先需要在Web页面中包含到一个Javascript文件的链接。但是,这样说会有曲解,这不是一个真实的javascript文件,例如,我们在页面中包含以下内容:
<script type="text/javascript" src="myApp/dwr/interface/AjaxService.js"></script>请注意,我们引入的是javascript文件名,这其实对应的是同名的java类名。当含有这一行代码的web页面在浏览器中被解析和执行时,会向位于myApp/dwr/interface的AjaxService.js资源发出请求。该URI映射到DWRServlet。随后,Servlet会动态检查java类AjaxService,生成代表该类的javascript,并返回所生成的Javascript。因此,在页面的全局范围中,现在就有了一个名为AjaxService的javascript对象,这就是客户端代理存根。
客户端的RPC库又指的是什么呢?这其实很简单,就是DWR本身的javascript部分。你随后就会看到,页面中还有一个<script>(也映射到DWRServlet),是DWR的客户端部分,能够轻易地完成所有的Ajax工作。
在DWR中,服务器端的代理存根其实没有任何东西(有些RPC实现中不包含这一部分)。
这样就可以概要理解DWR的组成,以及如何与RPC对应。
相关文章推荐
- 面向 Java 开发人员的 Ajax: 结合 Direct Web Remoting 使用 Ajax----数据序列化不可能比这更简单了!
- 面向 Java 开发人员的 Ajax: 使用 Google Web Toolkit 开发 Ajax
- 面向 Java 开发人员的 Ajax: 结合 Direct Web Remoting 使用 Ajax
- Ajax方法执行跳转或者加载操作系统报出这样错误Sys.WebForms.PageRequestManagerParserErrorException:如何让解决
- 面向 Java 开发人员的 Ajax: Google Web
- 面向 Java 开发人员的 Ajax: 使用 Google Web Toolkit 开发 Ajax
- 面向 Java 开发人员的 Ajax: 使用 Jetty 和 Direct Web Remoting 编写可扩展的 Comet 应用程序
- ajax 开源项目 DWR & 关于 Web Serviece 以及 Axis2 技术
- 面向 Java 开发人员的 Ajax: Google Web Toolkit 入门
- 面向 Java 开发人员的 Ajax: Google Web Toolkit 入门
- 面向 Java 开发人员的 Ajax: Google Web Toolkit 入门
- 利用DWR开始在你的Web应用中使用AJAX(转载)
- DWR反向Ajax的一个简单Web聊天
- 面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit
- 面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit
- 面向 Java 开发人员的 Ajax: 使用 Jetty 和 Direct Web Remoting 编写可扩展的 Comet 应用程序
- 面向 Java 开发人员的 Ajax: Google Web Toolkit 入门(GWT)
- 面向 Java 开发人员的 Ajax: 结合 Direct Web Remoting 使用 Ajax
- extjs jquery dwr ajax flex等web前端框架技术介绍
- 面向 Java 开发人员的 Ajax: 使用 Jetty 和 Direct Web Remoting 编写可扩展的 Comet 应用程序