今天花了点时间研究了一下DWR,跑了一个demo,记录一下我的研究过程.
DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.
英文不错的可以直接看官方的英文入门,http://getahead.org/dwr/getstarted
两种方式入门dwr
1.直接从http://getahead.org/dwr/download下载war的程序部署到本机,体验一下dwr能做什么.
2.动手跑一个Hello World,复杂点,但是推荐这种方式.
动手操作步骤:
开始之前请在myeclipse下建立web工程dwrWeb
1.下载jar包,放到你的java web应用的WEB-INF/lib 目录下.
注意:从dwr2.0开始,需要用到commons-logging包,没有的到这里下载: http://commons.apache.org/logging/
2.编辑web.xml,加入servlet,让web应用支持dwr
-
<?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"
-
servlet="">
-
<servlet>
-
<display-name>DWR Servlet</display-name>
-
<servlet-class>
-
org.directwebremoting.servlet.DwrServlet
-
</servlet-class>
-
</servlet>
-
<servlet-mapping>
-
</servlet-mapping>
-
</web-app>
Tips:servlet-class中的uk.ltd.getahead.dwr.DWRServlet是dwr1.0的写法,2.0中虽然可用,但是不推荐.
在web.xml的同级目录下建立dwr.xml文件,这个配置文件定义了dwr可以创建和调用哪些java类
注意的一点:
<create creator=”new” javascript=”Demo”>中的javascript的值不能是关键字
3.建立java类文件
-
-
public final class Demo
-
{
-
public String hello(String name)
-
{
-
}
-
}
4.建立js文件
-
Demo.hello(name, function(data) {
-
});
5.建立html文件
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
<html>
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
<script type='text/javascript' src='/dwrWeb/dwr/interface/Demo.js'></script>
-
<script type='text/javascript' src='/dwrWeb/dwr/engine.js'></script>
-
<script type='text/javascript' src='/dwrWeb/dwr/util.js'></script>
-
<script type='text/javascript' src='hello.js'></script>
-
</head>
-
-
<body>
-
<input type="text" name="name" value="Hello World!">
-
<br>
-
<input type="button" onclick="hello();" value="提交">
-
<br>
-
<span id="result" style="background: #eeffdd; padding: 10px"></span>
-
</body>
-
</html>
前三个js并不是实际存在于我们的项目中的,而是通过的路径的映射指向了其他的文件.
好了,大功告成,部署到tomcat上运行http://localhost:8080/dwrWeb看看吧.
效果如下:


我的和你的一樣,為什麽我的就不行呢?
我的在javascript中不認識dwr下定義的java類
瀚海 Says @ 08-07-29 10:25 上午
@瀚海 你把完整的工程下载了看看吧