dwr学习
DWR是一个远程调用库,用于js调用java函数或者java调用js函数。
DWR主要由下面两部分组成:
- 运行一个Java Servlet服务器,接收请求并返回结果给浏览器。
- js运行在浏览器中,负责给后台服务器发送请求并动态更新结果。
DWR Demo
以使用SpringMVC搭建服务器集成为例
maven
<dependency>
<groupId>org.directwebremoting</groupId>
<artifactId>dwr</artifactId>
<version>3.0.2-RELEASE</version>
</dependency>
config web.xml
在web.xml中添加如下内容
<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>
config dwr.xml
在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>
<!--<create creator="new" javascript="Demo">-->
<!--<param name="class" value="your.java.Bean"/>-->
<!--</create>-->
</allow>
</dwr>
配置到这里,访问 http://127.0.0.1:8080/dwr 可以测试Date。
添加页面访问Java
- 实现Java类
package spittr.web;
public class Remote {
public String getData(int index) {
return "new Date123" + index;
}
}
- 在dwr.xml中添加Remote初始化
<create creator="new" javascript="Remote">
<param name="class" value="spittr.web.Remote"/>
</create>
- 页面访问
<head>
<meta charset="UTF-8">
<script type='text/javascript' src='/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/interface/Remote.js'></script>
<script type='text/javascript' src='/dwr/util.js'></script>
<title>Title</title>
<script type="application/javascript">
Remote.getData(42, {
callback:function(str) {
alert(str);
}
});
</script>
</head>