dwr入门

logo

BLOGARCHIVEGITHUB

DWR简单入门

2015年5月16日

Direct Web Remoting

DWR is a Java library that enables Java on the server and JavaScript in a browser to interact and call each other as simply as possible.

新建DWR工程

新建工程DwrEx,将下载的dwr.jar和依赖包commons-logging-1.2.jar放在/WEB-INF/lib目录下,

web.xml的内容为:

<web-app xmlns = "http://java.sun.com/xml/ns/j2ee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version = "2.4">

<servlet>

<display-name>DWR Servlet</display-name>

<servlet-name>dwr-invoker</servlet-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>

</web-app>

在/WEB-INF目录下新建dwr.xml,内容为:

<!DOCTYPE dwr PUBLIC

    "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"

    "http://getahead.org/dwr/dwr30.dtd">

<dwr>

  <allow>

    <create creator="new" javascript="JDate">

      <param name="class" value="java.util.Date"/>

    </create>

  </allow>

</dwr>

启动Tomcat,访问http://localhost:8088/DwrEx/dwr/,可以看到dwr.xml中配置的java.util.Date的所有方法;由于web.xml将参数debug初始化为true,可以在页面动态调试这些方法。

creator元素

<create ...>用于将服务端的Java类公开给客户端,一般结构为,

<allow>

  <create creator="..." javascript="..." scope="...">

    <param name="..." value="..."/>

    <exclude method="..."/>

    <include method="..."/>

  </create>

  ...

</allow>

creator属性设置为new,即使用Java类的new操作获得实例;

javascript属性指定从JS访问对象时使用的名称(避免使用JS关键字);

scope属性的默认值为page;

include和exclude属性分别用于指定允许使用和限制使用的方法。

<allow>

  <create creator="new" javascript="Blah">

    <param name="class" value="java.util.Date"/>

  </create>

  ...

</allow>

将java.util.Date公开给Javascript,使用Blah来访问对象,在JavaScript中调用Blah.toString(reply)时, 使用默认构造器实例化java.util.Date,调用toString()方法返回数据到JavaScript。

convert元素

<convert ...>用于在客户端和服务端之间序列化数据,将Java返回类型序列化为JS对象,以及将被传递的JS对象序列化为合适的Java对象

<convert converter="bean" match="com.example.Person">

  <param name="exclude" value="property1, property2"/>

</convert>

convertor属性设置为bean,将JavaBean对象(Person)转化为JavaScript对象;

include/exclude同样适用于convert,参数值为变量名而不是方法名。

public class Remoted {

  public void addToFriends(Person p) {

    // ...

  }

}

public class Person {

  public void setName(String name) { ... }

  public void setAge(int age) { ... }

  // ...

}

如果Remoted类已经配置为create,可以在JS中调用,

var p = { name:"Fred", age:21 };

Remoted.addToFriends(p);

参考资料

Getting Started with DWR

The Creators

Bean and Object Converters

上一篇下一篇

© 2014 - 2017 Jemoii, powered by Hexo and hexo-theme-apollo.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • DWR入门教程 DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJA...
    彦佐阅读 6,867评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,264评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,730评论 18 399
  • dwr实现java服务器端向客户端推送消息 Ajax可以异步无刷新的从服务器端加载最新的数据 服务器主动向客户端发...
    程绩思汗汗阅读 5,447评论 0 2
  • 如果客户网速慢2g网络,打开的时候还没渲染到处都是{{}}
    c59ffede9db6阅读 2,166评论 0 0

友情链接更多精彩内容