1
DWR包含2个主要部分:
一个运行在服务器端的Java Servlet,它处理请求并且向浏览器发回响应。
运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页。
DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样,你感觉调用就像发生在浏览器端,
但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。
2
Java 从根本上讲是同步机制,然而 AJAX 却是异步的。所以你调用远程方法时,当数据已经从网络上返回
的时候,你要提供有反调 (callback) 功能的 DWR。
3
DWR动态在JavaScript里生成一个AjaxService类,去匹配服务气端的代码。由eventHandler去调用它,
然后DWR处理所有的远程细节,包括倒置 (converting) 所有的参数以及返回Javascript和Java之的值。
实例:
1,首先下载dwr.jar 放进lib目录中。
2,配置web.xml文件
3,编写后台处理类
4,编写dwr.xml放进web-inf文件夹下
5,编写jsp页面
6 访问之后点击按钮可以看到服务器饭回来的数据。
DWR包含2个主要部分:
一个运行在服务器端的Java Servlet,它处理请求并且向浏览器发回响应。
运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页。
DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样,你感觉调用就像发生在浏览器端,
但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。
2
Java 从根本上讲是同步机制,然而 AJAX 却是异步的。所以你调用远程方法时,当数据已经从网络上返回
的时候,你要提供有反调 (callback) 功能的 DWR。
3
DWR动态在JavaScript里生成一个AjaxService类,去匹配服务气端的代码。由eventHandler去调用它,
然后DWR处理所有的远程细节,包括倒置 (converting) 所有的参数以及返回Javascript和Java之的值。
实例:
1,首先下载dwr.jar 放进lib目录中。
2,配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<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>
3,编写后台处理类
package com.dwr.action;
public class Person {
public String getPersonName()
{
return "chenchaoyang";
}
}
4,编写dwr.xml放进web-inf文件夹下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting
2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="service">
<param name="class" value="service.PersonService" />
<include method="getPersonName">
</include>
</create>
</allow>
</dwr>
5,编写jsp页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<script type='text/javascript' src='dwr/interface/service.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type="text/javascript">
function getMyname()
{
service.getPersonName("chenchaoyang",myCallBack);
}
function myCallBack(data)
{
alert(data);
}
</script>
</head>
<body>
<input type="text">
<input type="button" value="获取服务器上的名字" onclick="getMyname()">
</body>
</html>
6 访问之后点击按钮可以看到服务器饭回来的数据。