当前位置: 代码迷 >> Web前端 >> 一个DWR入门的事例
  详细解决方案

一个DWR入门的事例

热度:74   发布时间:2012-11-06 14:07:00.0
一个DWR入门的例子

这次因为项目的原因,又要开始研究DWR了。

?

什么是DWR?
??? DWR是一个Open Source的 java项目。DWR可以让JavaScript调用运行在Web服务器里面的JAVA程序。简单一点或者专业一点就是Easy AJAX for JAVA.

?

官方网站:http://directwebremoting.org/

?

?

?

刚刚在网上找了一个例子,因为下的是最新DWR版本,怎么和网上的例子有点不同,稍微改了一下就可以用了。

?

1. 增加web.xml的设置

?

<servlet>    
<servlet-name>dwr-invoker</servlet-name>    
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>    
</servlet>    
<servlet-mapping>    
<servlet-name>dwr-invoker</servlet-name>    
<url-pattern>/dwr/*</url-pattern>    
</servlet-mapping>

?这里其实只是增加了一个Servlet而已,这个Servlet拦截了所有/dwr/*的请求。

?

2. 增加dwr.xml文件

?

我们在WEB-INF文件夹里面增加一下dwr.xml用来设置js里面调用的类文件,文件的代码如下:

?

<?xml version="1.0" encoding="UTF-8"?>    
<!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="MyTest" scope="application">    
<param name="class" value="com.tntxia.dwr.DWRTest"/>    
</create>    
</allow>    
</dwr>

?

?3. 写真正业务逻辑的代码

?

接下来,我们可以定义Java类来实现业务逻辑了。

?

package com.tntxia.dwr;

public class DWRTest {   
    public DWRTest(){   
       
    }   
    public String getMyName(){      
        return "Hello Ajax";      
    }      
  
}

?4. 最后,我们写一个JSP来展现结果

?

<%@ page language="java" contentType="text/html; charset=GB18030"  
  pageEncoding="GB18030"%>   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
<html>   
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">   
<title>DWR - Test Home</title>    
<script type='text/javascript' src='dwr/interface/MyTest.js'></script>    
<script type='text/javascript' src='dwr/engine.js'></script>   
<script type='text/javascript' src='dwr/util.js'></script>   
<script language="javascript">    
    var mycall=function callBack(data){   
        dwr.util.setValue("demo1",data);   
    }   
    function showMyName(){   
        MyTest.getMyName(mycall);   
    }   
    function clearName(){   
        demo1.value="";   
    }   
</script>    
</head>    
<body>   
    <h1>Ajax Test Page</h1>       
    <input type="button" value="显示姓名" onclick="javascript:showMyName()">      
    <input type="button" value="清空" onclick="javascript:clearName()"><br>       
    <input type="text" id="demo1"><br>       
  
</body>    
</html>   
?

大功告成,dwr就这么简单

?

  相关解决方案