论坛首页 入门技术论坛

DWR入门

浏览 2232 次
锁定老帖子 主题:DWR入门
该帖已经被评为新手帖
作者 正文
   发表时间:2008-08-25  
DWR
Person.java
Java代码 复制代码
  1. package com.wangyu;   
  2. public class Person   
  3. {   
  4.     private String name;   
  5.   
  6.     public Person()   
  7.     {   
  8.     }   
  9.   
  10.     public Person(String name)   
  11.     {   
  12.         this.name = name;   
  13.     }   
  14.     public void setName(String name)   
  15.     {   
  16.         this.name = name;   
  17.     }   
  18.     public String getName()   
  19.     {   
  20.         return name;   
  21.     }   
  22.   
  23. }  
package com.wangyu;
public class Person
{
	private String name;

	public Person()
	{
	}

	public Person(String name)
	{
		this.name = name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public String getName()
	{
		return name;
	}

}

HelloDwr.java
Java代码 复制代码
  1. package com.wangyu;   
  2. import java.util.List;   
  3. import java.util.ArrayList;   
  4. import java.util.Map;   
  5. import java.util.HashMap;   
  6.   
  7. public class HelloDwr   
  8. {   
  9.     public String hello(String name)   
  10.     {   
  11.         return name + ",您好!您已经开始了DWR的学习之旅,祝您学得开心...";   
  12.     }   
  13.   
  14.     public String sendObj(Person p )   
  15.     {   
  16.         return p.getName() + ",您好!您已经学会了使用JavaBean参数...";   
  17.     }   
  18.   
  19.     public Person getBean(String name)   
  20.     {   
  21.         return new Person("服务器端" + name);   
  22.     }   
  23.   
  24.     public Cat getObject(String name)   
  25.     {   
  26.         return new Cat("服务器端" + name);   
  27.     }   
  28.   
  29.     public List<Person> getPersonList()   
  30.     {   
  31.         List<Person> result = new ArrayList<Person>();   
  32.         result.add(new Person("集合aaaa"));   
  33.         result.add(new Person("集合bbbb"));   
  34.         result.add(new Person("集合cccc"));   
  35.         return result;   
  36.     }   
  37.   
  38.     public Person[] getPersonArray()   
  39.     {   
  40.         Person[] result = new Person[3];   
  41.         result[0] = new Person("数组aaaa");   
  42.         result[1] = new Person("数组bbbb");   
  43.         result[2] = new Person("数组cccc");   
  44.         return result;   
  45.     }   
  46.     public Map<String, Person> getPersonMap()   
  47.     {   
  48.         Map<String, Person> result = new HashMap<String, Person>();   
  49.         result.put("first" , new Person("Map aaaa"));   
  50.         result.put("second" , new Person("Map bbb"));   
  51.         result.put("third" , new Person("Map cccc"));   
  52.         return result;   
  53.     }   
  54.   
  55.     public String sendList(List<Person> pl)   
  56.     {   
  57.         String result = "";   
  58.         for (Person p : pl)   
  59.         {   
  60.             result += p.getName() + "<br>";   
  61.         }   
  62.         return result;   
  63.     }   
  64.   
  65.     public String sendMap(Map<String , Person> pmap)   
  66.     {   
  67.         String result = "";   
  68.         for (String key : pmap.keySet())   
  69.         {   
  70.             result += "键" + key + " 其值为:" + pmap.get(key).getName() + "<br>";   
  71.         }   
  72.         return result;   
  73.     }   
  74. }  
package com.wangyu;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;

public class HelloDwr
{
	public String hello(String name)
	{
		return name + ",您好!您已经开始了DWR的学习之旅,祝您学得开心...";
	}

	public String sendObj(Person p )
	{
		return p.getName() + ",您好!您已经学会了使用JavaBean参数...";
	}

	public Person getBean(String name)
	{
		return new Person("服务器端" + name);
	}

	public Cat getObject(String name)
	{
		return new Cat("服务器端" + name);
	}

	public List<Person> getPersonList()
	{
		List<Person> result = new ArrayList<Person>();
		result.add(new Person("集合aaaa"));
		result.add(new Person("集合bbbb"));
		result.add(new Person("集合cccc"));
		return result;
	}

	public Person[] getPersonArray()
	{
		Person[] result = new Person[3];
		result[0] = new Person("数组aaaa");
		result[1] = new Person("数组bbbb");
		result[2] = new Person("数组cccc");
		return result;
	}
	public Map<String, Person> getPersonMap()
	{
		Map<String, Person> result = new HashMap<String, Person>();
		result.put("first" , new Person("Map aaaa"));
		result.put("second" , new Person("Map bbb"));
		result.put("third" , new Person("Map cccc"));
		return result;
	}

	public String sendList(List<Person> pl)
	{
		String result = "";
		for (Person p : pl)
		{
			result += p.getName() + "<br>";
		}
		return result;
	}

	public String sendMap(Map<String , Person> pmap)
	{
		String result = "";
		for (String key : pmap.keySet())
		{
			result += "键" + key + " 其值为:" + pmap.get(key).getName() + "<br>";
		}
		return result;
	}
}

Cat.java
Java代码 复制代码
  1. package com.wangyu;   
  2.   
  3. public class Cat    
  4. {   
  5.     private String name;   
  6.     public Cat(String name)   
  7.     {   
  8.         this.name = name;   
  9.     }   
  10. }  
package com.wangyu;

public class Cat 
{
	private String name;
	public Cat(String name)
	{
		this.name = name;
	}
}

<hr>
hellodwr.js
Js代码 复制代码
  1. //--------------------发送简单字符串参数,返回普通字符串----------------------------   
  2. function sendMessage()   
  3. {   
  4.     var name = document.getElementById("name").value;   
  5.     hello.hello(name , cb)   
  6. }   
  7. function cb(data)   
  8. {   
  9.     document.getElementById("show").innerHTML = data;   
  10. }   
  11. //-------------------发送一个JavaBean对象作为参数,返回普通字符串-------------------   
  12. function sendObject()   
  13. {   
  14.     var nameValue = document.getElementById("name").value;   
  15.     hello.sendObj({name:nameValue} , cb);   
  16. }   
  17.   
  18. //--------------------调用返回JavaBean方法----------------------   
  19. function getBean()   
  20. {   
  21.     var name = document.getElementById("name").value;   
  22.     hello.getBean(name , beanCb)   
  23. }   
  24. function beanCb(data)   
  25. {          
  26.     document.getElementById("show").innerHTML = data.name + ",您好,您已经学会了使用JavaBean返回值";   
  27. }   
  28.   
  29. //--------------------调用返回getObject方法----------------------   
  30. function getObject()   
  31. {   
  32.     var name = document.getElementById("name").value;   
  33.     hello.getObject(name , objCb)   
  34. }   
  35. function objCb(data)   
  36. {          
  37.     document.getElementById("show").innerHTML = data.name + ",是从服务器返回的猫的名字";   
  38. }   
  39. //---------------调用返回集合的方法--------------------------   
  40. function getBeanList()   
  41. {   
  42.     hello.getPersonList(listCb);   
  43. }   
  44. function listCb(data)   
  45. {   
  46.     var result='';   
  47.     for (var i = 0 ; i < data.length ; i ++)   
  48.     {   
  49.         result += data[i].name + "<br>";   
  50.     }   
  51.     document.getElementById("show").innerHTML = result;   
  52. }   
  53. //---------------调用返回数组的方法-------------------------   
  54. function getBeanArray()   
  55. {   
  56.     hello.getPersonArray(arrayCb);   
  57. }   
  58. function arrayCb(data)   
  59. {   
  60.     var result='';   
  61.     for (var i = 0 ; i < data.length ; i ++)   
  62.     {   
  63.         result += data[i].name + "<br>";   
  64.     }   
  65.     document.getElementById("show").innerHTML = result;   
  66. }   
  67. //---------------调用返回数组的方法-------------------------   
  68. function getBeanMap()   
  69. {   
  70.     hello.getPersonMap(mapCb);   
  71. }   
  72. function mapCb(data)   
  73. {   
  74.     var result='';   
  75.     for (var key in data)   
  76.     {   
  77.         result += "键为" + key + ",其值为:" + data[key].name + "<br>";   
  78.     }   
  79.     document.getElementById("show").innerHTML = result;   
  80. }   
  81.   
  82. //---------------调用发送集合的方法-------------------------   
  83. function sendBeanList()   
  84. {   
  85.     var args = [   
  86.     {name:"客户端aaa"},   
  87.     {name:"客户端bbb"},   
  88.     {name:"客户端ccc"}   
  89.     ];   
  90.     hello.sendList(args , sendListCb);   
  91. }   
  92. function sendListCb(data)   
  93. {   
  94.     document.getElementById("show").innerHTML = data;   
  95. }   
  96.   
  97. //---------------调用发送Map的方法-------------------------   
  98. function sendBeanMap()   
  99. {   
  100.     var args = {   
  101.     first:{name:"客户端aaa"},   
  102.     second:{name:"客户端bbb"},   
  103.     third:{name:"客户端ccc"}   
  104.     };   
  105.     hello.sendMap(args , sendMapCb);   
  106. }   
  107. function sendMapCb(data)   
  108. {   
  109.     document.getElementById("show").innerHTML = data;   
  110. }  
//--------------------发送简单字符串参数,返回普通字符串----------------------------
function sendMessage()
{
	var name = document.getElementById("name").value;
	hello.hello(name , cb)
}
function cb(data)
{
	document.getElementById("show").innerHTML = data;
}
//-------------------发送一个JavaBean对象作为参数,返回普通字符串-------------------
function sendObject()
{
	var nameValue = document.getElementById("name").value;
	hello.sendObj({name:nameValue} , cb);
}

//--------------------调用返回JavaBean方法----------------------
function getBean()
{
	var name = document.getElementById("name").value;
	hello.getBean(name , beanCb)
}
function beanCb(data)
{		
	document.getElementById("show").innerHTML = data.name + ",您好,您已经学会了使用JavaBean返回值";
}

//--------------------调用返回getObject方法----------------------
function getObject()
{
	var name = document.getElementById("name").value;
	hello.getObject(name , objCb)
}
function objCb(data)
{		
	document.getElementById("show").innerHTML = data.name + ",是从服务器返回的猫的名字";
}
//---------------调用返回集合的方法--------------------------
function getBeanList()
{
	hello.getPersonList(listCb);
}
function listCb(data)
{
	var result='';
	for (var i = 0 ; i < data.length ; i ++)
	{
		result += data[i].name + "<br>";
	}
	document.getElementById("show").innerHTML = result;
}
//---------------调用返回数组的方法-------------------------
function getBeanArray()
{
	hello.getPersonArray(arrayCb);
}
function arrayCb(data)
{
	var result='';
	for (var i = 0 ; i < data.length ; i ++)
	{
		result += data[i].name + "<br>";
	}
	document.getElementById("show").innerHTML = result;
}
//---------------调用返回数组的方法-------------------------
function getBeanMap()
{
	hello.getPersonMap(mapCb);
}
function mapCb(data)
{
	var result='';
	for (var key in data)
	{
		result += "键为" + key + ",其值为:" + data[key].name + "<br>";
	}
	document.getElementById("show").innerHTML = result;
}

//---------------调用发送集合的方法-------------------------
function sendBeanList()
{
	var args = [
	{name:"客户端aaa"},
	{name:"客户端bbb"},
	{name:"客户端ccc"}
	];
	hello.sendList(args , sendListCb);
}
function sendListCb(data)
{
	document.getElementById("show").innerHTML = data;
}

//---------------调用发送Map的方法-------------------------
function sendBeanMap()
{
	var args = {
	first:{name:"客户端aaa"},
	second:{name:"客户端bbb"},
	third:{name:"客户端ccc"}
	};
	hello.sendMap(args , sendMapCb);
}
function sendMapCb(data)
{
	document.getElementById("show").innerHTML = data;
}


Html代码 复制代码
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
  2. <HTML>  
  3. <HEAD>  
  4. <TITLE>DWR入门</TITLE>  
  5. <script type='text/javascript' src='dwr/interface/hello.js'></script>  
  6. <script type='text/javascript' src='dwr/engine.js'></script>  
  7. <script type='text/javascript' src='dwr/util.js'></script>  
  8. <script type="text/javascript" src="hellodwr.js"></script>  
  9. </HEAD>  
  10. <BODY>  
  11. <h3>DWR入门</h3>  
  12. 请输入您的名字<input id="name" name="name" type="text"/><br>  
  13. <input type="button" value="发送简单请求" onClick="sendMessage();"/>  
  14. <input type="button" value="发送对象参数" onClick="sendObject();"/>  
  15. <input type="button" value="返回JavaBean" onClick="getBean();"/><br>  
  16. <input type="button" value="返回Object" onClick="getObject();"/>  
  17. <input type="button" value="返回Bean集合" onClick="getBeanList();"/>  
  18. <input type="button" value="返回Bean数组" onClick="getBeanArray();"/><br>  
  19. <input type="button" value="返回Bean Map" onClick="getBeanMap();"/>  
  20. <input type="button" value="发送Bean集合" onClick="sendBeanList();"/>  
  21. <input type="button" value="发送Bean Map" onClick="sendBeanMap();"/><br>  
  22. <hr>  
  23. 下面是服务器的回应:<br>  
  24. <div id"show"></div>  
  25. </BODY>  
  26. </HTML>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>DWR入门</TITLE>
<script type='text/javascript' src='dwr/interface/hello.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type="text/javascript" src="hellodwr.js"></script>
</HEAD>
<BODY>
<h3>DWR入门</h3>
请输入您的名字<input id="name" name="name" type="text"/><br>
<input type="button" value="发送简单请求" onClick="sendMessage();"/>
<input type="button" value="发送对象参数" onClick="sendObject();"/>
<input type="button" value="返回JavaBean" onClick="getBean();"/><br>
<input type="button" value="返回Object" onClick="getObject();"/>
<input type="button" value="返回Bean集合" onClick="getBeanList();"/>
<input type="button" value="返回Bean数组" onClick="getBeanArray();"/><br>
<input type="button" value="返回Bean Map" onClick="getBeanMap();"/>
<input type="button" value="发送Bean集合" onClick="sendBeanList();"/>
<input type="button" value="发送Bean Map" onClick="sendBeanMap();"/><br>
<hr>
下面是服务器的回应:<br>
<div id= "show"></div>
</BODY>
</HTML>

dwr.xml
Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">  
  3. <dwr>  
  4.     <allow>  
  5.         <create creator="new" javascript="hello">  
  6.             <param name="class" value="com.wangyu.HelloDwr"/>  
  7.         </create>  
  8.         <convert converter="bean" match="com.wangyu.Person"/>  
  9.         <convert converter="object" match="com.wangyu.Cat">  
  10.             <param name="force" value="true"/>  
  11.         </convert>  
  12.     </allow>  
  13.     <signatures>  
  14.     <![CDATA[  
  15.         import com.wangyu.HelloDwr;  
  16.         import com.wangyu.Person;  
  17.         import java.util.List;  
  18.         import java.util.Map;  
  19.     ]]>  
  20.     </signatures>  
  21. </dwr>  
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
	<allow>
    	<create creator="new" javascript="hello">
      		<param name="class" value="com.wangyu.HelloDwr"/>
    	</create>
		<convert converter="bean" match="com.wangyu.Person"/>
		<convert converter="object" match="com.wangyu.Cat">
			<param name="force" value="true"/>
		</convert>
	</allow>
	<signatures>
	<![CDATA[
		import com.wangyu.HelloDwr;
		import com.wangyu.Person;
		import java.util.List;
		import java.util.Map;
	]]>
	</signatures>
</dwr>

web.xml
Xml代码 复制代码
  1. <?xml version="1.0" encoding="GBK"?>  
  2. <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  5.     <!-- 配置DWR的核心Servlet -->  
  6.     <servlet>  
  7.         <!-- 指定DWR核心Servlet的名字 -->  
  8.         <servlet-name>dwr</servlet-name>
   发表时间:2008-08-25  
一个字:乱
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics