`

dwr学习

阅读更多
第一篇 第一个hello world

“DWR是AJAX的JAVA实现”。

现在就来配置DWR,写出第一个Hello World。

1.

先安装DWR的jar包(我们以dwr2.0为例)

下载地址:http://getahead.org/dwr/download

把dwr.jar包放到你的项目里的webapp/WEB-INF/lib下面。

2.

配置WEB-INF/web.xml

在web.xml文件里添加如下内容:

<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>


PS:如果你下载的不是dwr2.0的版本,以上内容应该为

<servlet>

<servlet-name>dwr-invoker</servlet-name>

<servlet-class>

  uk.ltd.getahead.dwr.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>



3.

写一个非常简单的类

比如:

package dao;

public class Hello {

public String sayHello(){

    return "hello world!";

}

}



4.

配置dwr.xml

在webapp/WEB-INF(和web.xml文件同级的目录)下新建一个xml文件,名称为dwr。

编辑dwr.xml,添加如下内容:
<!DOCTYPE dwr PUBLIC

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

"http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>

<allow>

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

<param name="class" value="dao.Hello"/>

</create>

</allow>

</dwr>


PS:<allow> 表示允许哪些类可以被访问,<create>表示在前台的jsp页面中能远程调用的JavaBean的javascript的类名和创建方法,<param>表示javascript类能调用的JavaBean是哪个。

如上面我们用new的方法来创建一个javascript类,名称为MyHello,这个javascript类能在前台的jsp页面中调用dao包中的Hello类里的方法。


5.测试

新建一个jsp页面,内容如下

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>My JSP 'index.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--<link rel="stylesheet" type="text/css" href="styles.css">-->

<script src="dwr/interface/MyHello.js"></script>

<script src="dwr/util.js"></script>

<script src="dwr/engine.js"></script>

<script type="text/javascript">

function hello()

{

MyHello.sayHello(helloBack);

}

function helloBack(data)

{

dwr.util.setValue("show",data);

}

</script>

</head>

<body>

<input type="button" value="我要向世界问好!" onclick="hello()">

<div id="show">这里将要显示出hello world,这是通过dwr调用Hello类中的sayHello()方法返回的结果!</div>

</body>

</html>


PS:

其中

<script src="dwr/interface/MyHello.js"></script>

<script src="dwr/util.js"></script>

<script src="dwr/engine.js"></script>

是加载一些必要的javascript,MyHello.js就是你能够远程调用的javascript。

<script type="text/javascript">

function hello()

{

MyHello.sayHello(helloBack);

}

function helloBack(data)

{

dwr.util.setValue("show",data);

}

</script>


当点击按钮时调用hello(),MyHello.sayHello(helloBack);就是在异步调用Hello类中的sayHello()方法,然后将结果交给helloBack函数来处理,在这个函数中,返回的字符串就保存在data变量中,于是我们通过dwr提供的一个工具dwr.util.setValue()向<div id="show"> </div> 中添加内容。

结束语:

这只是一个hello world程序,简单的向大家介绍一下dwr的用法,下篇文章将向大家详细介绍。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics