`
tianting_wx
  • 浏览: 42696 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

DWR使用注意

    博客分类:
  • dwr
阅读更多

 

1、java的方法避免用 java 和 javascript的关键字。 如 try()方法 或 delete()方法。


2、在你的java类中不要出现重载。


3、在生产环境下,你可以把deprecated.js、 engine.js 、util.js 合并成一个,并放到web容器内,直接在htm.jsp中引用。(对于java代码转换成的javascript代码也可以这么做,免得每次生成javascript代码浪费时间)


4、研究一下Bean Converters。POJO java对象必须严格按照 getProperty() 、setProperty()定义。Bean Converters是按照 java对象的 get set方法工作的。DWR1.1加了Object Converters,是按private int property;这类属性工作的。
     <convert converter="bean" match="example.Fred"/>
           <param name="exclude" value="property1, property2"/>
     </convert>
    当你这样配置时,java对象转化成的javascript对象不包括property1和property2。

 
    <convert converter="bean" match="example.Fred"/>
          <param name="include" value="property1, property2"/>
    </convert> 
    反过来,java对象转化成的javascript对象只包括property1和property2。


5、<convert converter="collection" match="java.util.Collection"/>
     <convert converter="map" match="java.util.Map"/>
     这也是容易出问题的地方。

 

     如:
     package example;

     public  class  Person{
         private  String  name;
         get ... set 
         private  List  relationPerson;
         public  List  setRelationPerson(List  relationPerson){ 
              this.relationPerson = relationPerson;
         }
      }


      <convert converter="bean" match="example.Person"/>
      </convert>
      <signatures>
      <![CDATA[
        import java.util.Set;
        import example.Person; 

        Person.setRelationPerson(List<Person>);
      ]]>
      </signatures>

      在jdk1.5泛型中有写法区别


6、另外在Set、List等作为方法参数时也会出现混淆。返回集合类型不会出现问题,想想就知道了。
如:在Test类中有 public  Set  testBeanSetParam(Set  test) 这个方法,客户端得到的javascript方法可能是Test.testBeanSetParam(p0,callback);当我们 javascript调用这个方法时,鬼才知道怎么确定p0的类型,也不可能知道Set集合中该放什么类型的java对象,所以dwr的 special signatures syntax 确定这些集合和内容的类型
<signatures>
<![CDATA[
import java.util.Set;
import example.Test;

Test.testBeanSetParam(Set<TestBean>);
<!--Test.stringStringMapParam(Map<String, String>);-->
]]>
</signatures>


7、Creators
<allow>
     <create creator="..." javascript="..." scope="...">
          <param name="..." value="..."/>
          <auth method="..." role="..."/>
          <exclude method="..."/>
           <include method="..."/>
     </create> 
     ...
</allow>
为了更少的暴露业务方法,最好配置include属性
dwr支持new、script、struts....几种集成方法,也支持static方法的调用。我觉得最好的是spring,其他感觉是处理遗留问题处理。


8、engine.js 作为dwr框架客户端核心,主要完成xmlHttp或iframe的构造,我们没必要关心它如何实现。有几点创新的我们可以学习下。
Call Batching 我们可以把几个客户端请求一起放送到服务器端,减少了网络交互,但要注意依存关系和他们处理的顺序。
Call Ordering 同步异步调整。一般用默认的就好了。注意依存关系。
Remoting Hooks 钩子,"small AOP"
依存关系解释。 如果 request1() request2()两个业务逻辑方法,request2方法需要用到request1方法从服务器端返回的结果。如果调用request2时,request1还没处理或还没请求。 下拉框连动可能有这个问题。


9、util.js 、propotype.js有些重复,这让我很难受。只能改代码了,可别坏了开源协议。


10、如果你的回调方法想加其他参数
var dataFromBrowser = ...;
var callbackProxy = function(dataFromServer) {
      callbackFunc(dataFromServer, dataFromBrowser);
};
var callMetaData = { callback:callbackProxy };
Remote.method(params, callMetaData);


11、dwr1.1
1.1只能算一个bug消除版本,没有什么大的功能调整。源代码结构做了些调整。2.0有新的特征加入。


It has a far broader scope; the major new features are accessibility enhancements, and what now appears to be called 'Comet'. 在文档中提到了“Comet”,估计与DWR2.0作者想法类似。

 

 

 

 

分享到:
评论
1 楼 wujt 2008-11-06  
谢谢,在学习中

相关推荐

    DWR使用方法-step by step

    通过本文的详细介绍,我们了解了DWR的基本安装与配置过程,以及在使用过程中需要注意的细节。DWR通过简化Ajax开发流程,使得前后端交互变得更加直接与高效。遵循上述步骤,你可以快速上手DWR,实现更高级的Ajax功能...

    DWR的使用方法

    **DWR(Direct Web Remoting)使用方法详解** DWR,全称为Direct Web Remoting,是一种开源Java技术,用于在Web应用程序中实现浏览器与...然而,实际使用时还需注意安全性和性能优化,确保应用的稳定性和用户体验。

    DWR 框架使用手册

    7. **版本差异**:虽然示例基于DWR 1.1,但需要注意的是,DWR后续版本(如2.0)可能会引入新的特性、改进和API变更。因此,实际使用时应查阅对应版本的官方文档。 总的来说,DWR框架简化了前端与后端之间的交互,...

    dwr demo dwr简单使用

    9. **安全考虑**:在实际项目中,使用DWR时需要注意安全性问题。暴露给JavaScript的服务器端方法可能会引发安全风险,因此需要谨慎设置DWR的访问权限,避免敏感数据和操作被不授权的用户调用。 通过这个简单的DWR...

    dwr跨域访问以及dwr的使用+dwr.jar

    Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、安全的双向通信,有效地打破...然而,正确配置和使用DWR,以及处理好跨域安全问题,是每个开发者必须面对和解决的挑战。

    DWR3.0.jar、DWR.war和DWR2.0中文说明文档

    然而,需要注意的是,虽然DWR简化了Ajax开发,但在大型复杂项目中,可能需要考虑其他更现代的解决方案,如使用WebSocket或React、Vue等前端框架结合后端API进行通信。此外,随着技术的发展,DWR可能不再是最新的工具...

    DWR使用的jar

    Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。...在使用DWR时,需要注意安全配置和性能优化,以确保应用程序的稳定性和安全性。

    dwr.xml文件的配置和入门使用

    在使用 DWR 2.0 版本时,需要注意的是,java 里暴露类不能写在 `&lt;create&gt;` 属性里,应删除后写 在 `&lt;include method="" /&gt;` 前,写 `*java 里暴露的 class,必须写完整路径*" /&gt;`。 dwr.xml 文件的配置是 DWR 的核心...

    dwr学习教程3

    1. **性能优化**:合理设置DWR的缓存策略,避免不必要的网络请求,同时注意批处理和异步调用的使用。 2. **安全性**:启用CSP并严格限制暴露给客户端的Java方法,防止恶意代码注入。 3. **错误处理**:DWR提供了...

    dwr基础_dwr兼容三大框架+视频

    `readme.txt`通常包含项目的基本信息,如安装指南、运行步骤或注意事项,对于理解如何使用这个资源至关重要。 `我的淘宝店网址.txt`可能是作者提供的额外信息,比如相关的技术支持或者购买更多相关资源的链接。 `...

    dwr小项目及资料

    在实践中,需要注意DWR的安全设置,例如防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF),并合理设计接口,以确保良好的性能和可维护性。同时,DWR也提供了缓存机制,以减少不必要的服务器请求,提高应用效率。

    dwr结合spring使用

    DWR (Direct Web Remoting) 是一个开源的Java库,它允许在Web应用程序中实现...不过,要注意的是,虽然DWR简化了JavaScript与服务器的通信,但也可能增加系统的复杂性,因此在选择使用时应根据项目需求谨慎评估。

    dwr的使用步骤

    虽然DWR提供了便利,但也需要注意安全性。默认情况下,DWR允许所有客户端访问公开的方法,因此需要根据实际需求限制对服务器端资源的访问,防止未授权的访问。 8. **优化和扩展** 了解DWR的高级特性,如批量调用...

    Web项目下使用DWR时,配置注意事项

    NULL 博文链接:https://chaozhichen.iteye.com/blog/718812

    较全面DWR包

    然而,需要注意的是,DWR的安全性问题,例如防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF),这需要在配置和编程时采取相应的防护措施。同时,DWR虽然提供了强大的功能,但在大型复杂应用中,可能需要考虑其他更...

    dwr的资源包

    6. **LICENSE.txt**和**readme.txt**:LICENSE.txt包含了该软件的许可协议信息,readme.txt则通常提供项目的基本介绍、安装指南、使用注意事项等内容,对于理解和使用这个DWR资源包非常有帮助。 7. **pom.xml**:这...

    dwr反推简单例子

    需要注意的是,DWR虽然强大,但在现代Web开发中已经被其他技术,如WebSocket,所取代,因为WebSocket提供了更稳定、更高效的数据双向通信机制。不过,理解DWR的工作原理仍然有助于理解Web应用的异步通信机制,对于...

    DWR3实现服务器端向客户端精确推送消息

    4. **开启推送**: 使用DWR的`create`方法创建一个与服务器的连接,并监听特定事件。当服务器有新的消息时,DWR会触发这个事件,从而使客户端得到通知。 5. **处理推送消息**: 在JavaScript事件处理器中,接收并处理...

    dwr与spring整合

    **注意事项** - 确保DWR的版本与Spring的版本兼容,否则可能会出现运行时错误。 - 考虑安全性:DWR允许直接从JavaScript调用服务器端方法,可能存在安全风险,需要限制可调用的方法和对象,防止跨站脚本攻击(XSS)...

Global site tag (gtag.js) - Google Analytics