`
nenty
  • 浏览: 109836 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JSON-RPC-Java 和DWR比较

阅读更多
JSON-RPC-Java 和DWR比较
当前在以Java为后台的AJAX框架中,比较有名两个是JSON-RPC-Java 和DWR。

Swato与他们的共同之处是实现了JavaScript与Java 对象间的数据转换与远程方法调用。从各自提供的unitTest Demo可以看到这一实现的支持能力基本是相同的。

各自的差异主要在以下几个方面。
1.为开发人员开发前台JavaScript提供的支持。
由于采用AJAX框架后,很多View和Control的代码需要转移到前台用JavaScript实现。然而JavaScript的编程毕竟是比较痛苦的。在JSON-RPC-Java中,从服务器返回到前台的虽然是JSON--JavaScript对象,但是他没有提供组件帮助开发人员处理这些对象。对于返回XML的框架,一句一句书写DOM层次访问是比较痛苦的。
   而对于HTML DOM的操作,也是比较痛苦的,所以所以DWR提供了一系列DWRUtils来帮你减轻这一部分工作。但是对于一些需要更加灵活的View处理,利用DWRUtils仍然感觉不够用。
  在Swato中,客户端接受的数据可以是JSON(Swato的后台是直接把Java对象映射成JSON),也可以是XML(你可以从远端URL中获取XML, 它在Swato客户端引擎中被转化为JSON,参见RSS Reader的例子)。所以对于开发人员来说,它在客户端所要关心的只是JavaScript对象。(结构与Java对象或XML结构对应)。然后利用Swato提供的一些View组件(AutoSuggest, Select, Form)进行渲染。对于自定义性比较强的View控件,你可以在前端使用Template引擎 (来自TrimPath,类似于Velocity的简单语法)。甚至可以把它封装成你自己的组件,只要在其中实现gotResult与gotError函数,便可以很轻松的与Swato远程调用功能集成。参见(CRUD例子中的代码。)
   Swato力图在客户端为开发人员减轻JavaScript代码的编码量,其实Swato的unitTest例子来自于DWR。 类似的测试功能,在逻辑控制上,DWR用了几百行的JavaScript而在Swato上只需要几十行。
   不管用哪一个框架,由于JavaScript缺乏强大的编辑器和调试器,所以开发起来还是比较麻烦,对此,Swato在前台集成了fvlogger, 相当于Java方面的Log4j,为Js的开发带来更大便利。

2.后台服务的注册与访问控制方式。
   在后台服务的注册方式上,JSON-RPC-Java默认的是在Session中的Bridge里注册要使用的Java对象。这种方式有很多的限制,比如使用的时候需要JSP或者Servlet程序中来进行注册。形式不够灵活,服务的周期管理也比较麻烦。这是JSON-RPC-Java被批评的重点。


   DWR有了很大的进步,它用dwr.xml将你需要暴露的服务明确地定义在其中,在前台的JavaScript中,用<script src="xxx">的方式既可以把服务引进到客户端来。周期管理也在XML可以配置。
   而在Swato中,后台服务的暴露方式通过filter来实现,前台的调用利用一个ID值来寻访后台服务类。Swato提供了一个Spring的默认服务Loader,在Spring配置的bean ID直接可以被前台所访问到。如果你不想采用Spring,只需要替换一下filter,以你自己的方式来进行服务的暴露和权限控制。后台对象的生命周期方面,Swato采用的是request对象注入式,把你的服务对象中实现RequestAware接口,这个服务相关的生命周期便可由你灵活的进行处理。
分享到:
评论

相关推荐

    ---------DWR中文文档

    ----------------------DWR中文文档

    dwr.jar/dwr-2.0.5-src.zip/dwr.zip

    dwr资源包,包含dwr.jar/dwr-2.0.5-src.zip/dwr.zip

    服务器端ajax框架--------DWR实践总结

    从project中提取的dwr部分实现 博文链接:https://ankor.iteye.com/blog/138778

    整理好的DWR-2.0.5-src

    这个不是我的原创,原文件出至这里:...原资源包含了,源代码和API Doc,只是美中不足的是没有整理成可用的zip文档,我这特分离了一下,并重新打好包了,初步测试了一下能用。

    DWR简单配置说明---xml、java、jsp层层说明

    DWR简单配置说明---xml、java、jsp层层说明;通过jar包,web.xml,dwr.xml,jsp,java中举例子将dwr配置起来,主要是用来讲述dwr的配置。没有dwr的定义

    java 采用dwr框架构实现ajax

    java 采用dwr框架构实现ajax

    JAVA-DWR简单例子

    JAVA-DWR简单例子。

    commons-logging-1.1.1+dwr

    commons-logging-1.1.1.jar 与 dwr.jar 配合使用 前后端通信 commons-logging-1.1.1.jar 与 dwr.jar 配合使用 前后端通信 commons-logging-1.1.1.jar 与 dwr.jar 配合使用 前后端通信

    struts-2.5.2-all所有jar包

    struts2-javatemplates-plugin-2.5.2.jar, struts2-jfreechart-plugin-2.5.2.jar, struts2-json-plugin-2.5.2.jar, struts2-junit-plugin-2.5.2.jar, struts2-osgi-admin-bundle-2.5.2.jar, struts2-osgi-demo-...

    将dwr集成到spring mvc(dwr的配置是基于xml)

    将dwr集成到spring mvc(dwr的配置是基于xml)

    JAVA学习的参考学习流程

    06 开源框架 Struts 1.x --&gt; AJAX --&gt; ECSide报表组件 --&gt; Hibernate --&gt; Spring --&gt; Struts 2.0 --&gt; AJAX框架(DWR、JSON、JQuery) 07 XML 基础语法 --&gt; 解析(DOM/SAX/JDOM) 08 分布式开发 RMI --&gt; EJB 3.0 --&gt; ...

    Eclipse下Buffalo2.0例子

    它与DWR 和JSON-RPC一样,着眼于Web远程调用(Web Remoting),其简洁而实用的特性一直以来深受开发者喜爱。 Buffalo2.0最大的特点在于其性能的提升,还有完全自行实现的Java到JavaScript协议转换。得益于新的协议实现...

    dwr-3.0.jar

    最新dwr3.0的包,有需要的朋友就下载吧

    dwr的使用返回json

    dwr框架例子返回json数据,带dwr包

    spring-dwr-2.0.xsd

    spring-dwr-2.0.xsd spring 与 DWR进行配置

    dwr-1.13.jar及dwr.xml

    dwr-1.1.3.jar及dwr.xml. dwr-1.1.3与dwr-2.0的dwr.xml略有区别: dwr-1.1.3 &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...

    DWR: Easy AJAX for JAVA

    DWR for JAVA 具体开发过程详细介绍

    java dwr 使用例子

    自己总结的一个的dwr的使用说明,附有源码,以及代码的详细解释,配置文件的详细解释。完全可以运行。同时介绍了与其类似用法的dotnet版本的ajax组建。需要自己下载dwr.jar 3.0版本。或者到我的空间下载dwr.jar 3.0...

Global site tag (gtag.js) - Google Analytics