DWR2.0 helloworld 详解

DWR2.0 helloworld 详解
下载方法请参照前文
 
http://www.blogjava.net/lusm/archive/2007/03/10/103003.html

下载后,我们只需要里面的dwr.jar,把他拿出来。打myeclipse新建一个web project将该包导入
整合之后工程中的情况为


具体过程在代码中已进行注释

工程中的代码:
Hello.java
package  ajax.lusm;

public class Hello 
{
    
public String hello(String name) 
{
        
return name + " 情人节快乐!  ^_^"
;
    }

}

dwr.xml
<?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>
    
<!-- Hello为类名,ajax.lusm.Hello为类的真实地址 -->
        
<create creator="new" javascript="Hello">
            
<param name="class" value="ajax.lusm.Hello" />
        
</create>
    
</allow>
</dwr>

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
    xmlns
="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
    
<!-- 以设置下格式固定,可复制使用 -->
    
<display-name>ajaxDWR</display-name>
    
<servlet>
        
<servlet-name>dwr-invoker</servlet-name>
        
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
        
<init-param>
        
<!-- 实现调试,在debug请设置为false -->
            
<description></description>
            
<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>

 hello.js
//将要调用的函数
function
 hello() {
//DWRUtil.getValue为dwr提供的js方法,如果提示
//DWRUtil或Hello无法被识别的错误,则非常有可能是一下几个原因造成的
//1.DWR.jar没有导如工程(也可以放到web-inf/lib中)
//2.应用dwr的html文件没有导入dwr/util.js和dwr/engine.js请保持该路径存放,以避免不必要的麻烦
//3.应用dwr的html文件没有没有使用dwr/interface/类名.js该文件虽然不存在,但必须予以配置,否则将抱错。
//4.其他内容请看index.html中的说明

    var input 
= DWRUtil.getValue("input" );
//Hello类中的方法 参数分别为html中对象,这个值将作为
//callback的参数使用;另一个参数是,一个页面处理对应响应函数

        Hello.hello(input, callback);
}
//响应函数,对用户的请求做出的响应动作
function  callback(str) {
    DWRUtil.setValue(
"test"
, str);
}

index.html
<html>
    
<head>
        
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
        
<title>DWR CASE</title>
        
<!-- 这两个是必须的,来自官方,路径的写法为相对路径,且开始第一个字符不为"/" -->
        
<script type='text/javascript' src='dwr/util.js'></script>
        
<script type='text/javascript' src='dwr/engine.js'></script>
        
<!-- 这个文件不存在,当必须设定Hello.js的名称为后台类名,且路径一定是dwr/interface/类名.js -->
        
<script type='text/javascript' src='dwr/interface/Hello.js'></script>
        
<!--  这个是我们用户自己的定义的js,真实存在,存放我们自己写的js的代码,dwr2.0该代码有时候只有放当前
        目录下,程序才能正确运行 
-->

        
<script type="text/javascript" src='hello.js'></script>
    
</head>
    
<body>
        大名:
        
<input id="input" type="text" />
        
<input type='button' value='运行' onclick='hello();' />
        
<p>
            
<font color="red"><div id="test"></div>
            
</font>
    
</body>
</html>


代码打包下载


地震让大伙知道:居安思危,才是生存之道。

你可能感兴趣的:(DWR2.0 helloworld 详解)