知识大全 DWR调用客户端Java代码的程序实例

Posted

篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 DWR调用客户端Java代码的程序实例相关的知识,希望对你有一定的参考价值。

DWR调用客户端Java代码的程序实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  //———— 发送简单字符串参数 返回普通字符串————–

  function sendMessage()

  //获取页面中name元素的值

  var name = document getElementById( name ) value;

  //调用远程方法 cb是回调函数

  hello hello(name cb)

  function cb(data)

  document getElementById( show ) innerHTML = data;

  

  //———–发送一个JavaBean对象作为参数 返回普通字符串————

  function sendObject()

  var nameValue = ( name ) value;

  //调用远程方法 使用JavaScript对象作为参数

  hello sendObj(name:nameValue cb);

  

  //————— 调用返回JavaBean方法—————–

  function getBean() var name = document getElementById( name ) value;

  //调用远程方法 beanCb是回调函数

  hello getBean(name beanCb)

  

  function beanCb(data)

  //服务器方法返回JavaBean对象 客户端的data是JavaScript对象

  document getElementById( show ) innerHTML = data name + 您好 您已经学会了使用JavaBean返回值 ;

  

  //————— 调用返回getObject方法—————

  function getObject() var name = document getElementById( name ) value;

  //调用远程方法 objCb是回调函数

  hello getObject(name objCb)

  

  function objCb(data)

  //服务器方法返回非JavaBean式的对象 客户端的data是JavaScript对象

  document getElementById( show ) innerHTML = data name + 是从服务器返回的猫的名字 ;

  

  //—————调用返回集合的方法————–

  function getBeanList()

  //调用远程方法 listCb返回回调函数

  hello getPersonList(listCb);

  

  //远程Java方法返回List对象 集合元素是JavaBean式的对象

  //此处的data是JavaScript对象数组

  function listCb(data)

  var result= ;

  //遍历每个数组元素

  for (var i = ; i < data length ; i ++)

  result += data[i] name + <br /> ;

  

  document getElementById( show ) innerHTML = result;

  

  //—————调用返回数组的方法————–

  function getBeanArray() hello getPersonArray(arrayCb);

  

  function arrayCb(data)

  var result = ;

  //下面的data是远程Java方法的返回值

  //data是个数组 遍历数组

  for (var i = ; i < data length ; i ++)

  //依次访问数组元素 数组元素是JSON格式的对象 访问其name属性

  result += data[i] name + <br /> ;

  

  document getElementById( show ) innerHTML = result;

  

  //—————调用返回Map对象的方法————

  function getBeanMap()

  hello getPersonMap(mapCb);

  

  //远程Java方法返回Map对象 集合元素是JavaBean式的对象

  //此处的data是JavaScript对象 且每个属性值都是JavaScript对象

  function mapCb(data)

  var result= ;

  for (var key in data)

  result += 键为 + key + 其值为: + data[key] name + <br /> ;

  

  document getElementById( show ) innerHTML = result;

  

  //—————调用发送集合的方法——————

  function sendBeanList()

  //创建JavaScript数组

  var args = [ name: 客户端aaa name: 客户端bbb name: 客户端ccc ];

  //Java方法需要List参数 以JavaScript数组作为参数调用远程方法

  hello sendList(args sendListCb);

  

  function sendListCb(data)

  document getElementById( show ) innerHTML = data;

  

  //—————调用发送无泛型限制的集合——————–

  function sendBeanListNoGeneric()

  //创建JavaScript数组

  var args = [ name: 客户端aaa name: 客户端bbb name: 客户端ccc ];

  //Java方法需要List参数 以JavaScript数组作为参数调用远程方法

  hello sendListNoGeneric(args sendListCb);

  

  //—————调用发送Map的方法————————

  function sendBeanMap()

  //创建JavaScript对象

  var args = first:name: 客户端aaa second:name: 客户端bbb third:name: 客户端ccc

  ;

  //Java方法需要Map参数 以JavaScript对象作为参数调用远程方法

  hello sendMap(args sendMapCb);

  

  function sendMapCb(data)

  document getElementById( show ) innerHTML = data;

  

  web xml文件

  <?xml version= ″ encoding= GBK ?>

  <web app xmlns= xmlns:xsi= instance xsi:schemaLocation= app_ _ xsd version= ″> <!– 配置DWR的核心Servlet –> <servlet>

  <!– 指定DWR核心Servlet的名字 –>

  <servlet name>dwr invoker</servlet name>

  <!– 指定DWR核心Servlet的实现类 –>

  <servlet class> direcebremoting servlet DwrServlet</servlet class>

  <!– 指定DWR核心Servlet处于调试状态 –>

  <init param> <param name>debug</param name> <param value>true</param value> </init param> </servlet>

  <!– 指定核心Servlet的URL映射 –>

  <servlet mapping> <servlet name>dwr invoker</servlet name>

  <!– 指定核心Servlet映射的URL –>

  <url pattern>/dwr/*</url pattern> </servlet mapping></web app>

  客户端处理类

  package lbx dwr simplefunction;

  import java util List;

  import java util ArrayList;

  import java util Map;

  import java util HashMap;

  public class HelloDwr

  // 第一个简单的hello方法

  public String hello(String name)

  return name + 您好!您已经开始了DWR的学习之旅 祝您学得开心… ;

  

  // 使用一个JavaBean作为参数的方法

  public String sendObj(Person p)

  return p getName() + 您好!您已经学会了使用JavaBean参数… ;

  

  // 返回JavaBean实例的方法

  public Person getBean(String name)

  return new Person(name);

  

  // 返回一个普通的Java对象 Cat对象为其属性提供setter和getter方法

  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[ ];

  result[ ] = new Person( 数组aaaa );

  result[ ] = new Person( 数组bbbb );

  result[ ] = new Person( 数组cccc );

  return result;

  

  // 返回一个Map对象

  public Map<String Person> getPersonMap()

  // 创建一个Map对象

  Map<String Person> result = new HashMap<String Person>();

  // 填充Map对象的内容

  result put( first new Person( Map aaaa ));

  result put( second new Person( Map bbb ));

  result put( third new Person( Map cccc ));

  // 返回Map

  return result;

  

  // 远程方法的参数是集合

  public String sendList(List<Person> pl)

  String result = ;

  for (Person p : pl)

  result += p getName() + <br /> ;

  

  return result;

  

  // 远程方法的参数是不带泛型的集合

  public String sendListNoGeneric(List pl)

  String result = ;

  for (Object p : pl)

  result += ((Person) 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;

  

  

  Person类

  package lbx dwr simplefunction;

  public class Person

  //私有属性

  private String name;

  public Person()

  //构造器

  public Person(String name)

  this name = name;

  

  //name属性的setter方法

  public void setName(String name)

  this name = name;

  

  //name属性的getter方法

  public String getName()

  return name;

  

  

  Cat类

  package lbx dwr simplefunction;

  public class Cat

  //Cat类的私有属性

  private String name;

  //构造器

  public Cat(String name)

  this name = name;

  

  

  dwr xml文件的配置

  <?xml version= ″ encoding= GBK ?>

  <!– 指定DWR配置文件的DTD等信息 –>

  <!DOCTYPE dwr PUBLIC //GetAhead Limited//DTD Direct Web Remoting //EN ><!– DWR配置文件的根元素是dwr –><dwr> <allow>

  <!– 使用new关键资创建一个Java实例 指定创建的JavaScript对象名为hello–>

  <create creator= new javascript= hello >

  <!– 使用class属性指定创建该Java实例的实现类 –>

  <param name= class value= /> </create>

  <!– 对lee Person类使用Bean转换器 –>

  <convert converter= bean match= lbx dwr simplefunction Person />

  <!– 对lee Cat使用Object转换器 –>

  <convert converter= object match= lbx dwr simplefunction Cat >

  <!– 指定force= true 强制使用反射访问私有属性 –> <param name= force value= /> </convert> </allow> <signatures>

  <![CDATA[ import java util List; import lbx dwr simplefunction HelloDwr; import lbx dwr simplefunction Person; HelloDwr sendListNoGeneric(List<Person>); ]]> </signatures></dwr>

  客户端代码

  <!DOCTYPE PUBLIC //W C//DTD XHTML Transitional//EN transitional dtd >

  < xmlns= >

  <head>

  <title>DWR入门</title>

  <meta name= website content= />

  <meta equiv= Content Type content= text/; charset=UTF ″ />

  <!– 导入DWR为hello对象动态生成的JavaScript代码库 –>

  <script type= text/javascript src= > </script>

  <!– 导入DWR引擎的核心JavaScript代码库 –>

  <script type= text/javascript src= ></script>

  <!– 导入开发者为本应用编写的JavaScript代码库 –>

  <script type= text/javascript src= ></script>

  </head>

  <body>

  <h > DWR入门 </h >

  请输入您的名字

  <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集合 onclick= sendBeanListNoGeneric(); /> <br />

  <input type= button value= 发送Bean Map onclick= sendBeanMap(); />

  <hr />

  下面是服务器的回应: <br />

  <div id= show ></div>

  </body>

cha138/Article/program/Java/hx/201311/25649

相关参考

知识大全 Java 发Post请求实例程序代码

Java发Post请求实例程序代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //说明使用j

知识大全 java调用天气预报调用代码

  天气预报调用代码  最近要做一个网站需要用到天气预报本来是想找到API自己写一个自己的天气预报小程序的没有成功只好去找现成的代码调用经过测试我找到了几种现在还可以使用的调用代码由于大部分效果使用的

知识大全 java程序设计与问题解决

  异常处理允许读者为程序的正常情况单独设计和编写代码并与不正常情况下的处理代码分开  throw语句的作用类似一个方法调用但它并没有去调用一个方法而是调用了catch块  预定义的异常类Except

知识大全 java应用程序远程登录linux并执行其命令

  在这个网址下载一个调用ssh和scp命令的jar包  然后就可以写程序了将上面的jar包导入MyEclipse下面是一个类的实例代码  packagehh;  importjavaioBuffer

知识大全 Java中调用本地代码

Java中调用本地代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java中调用dll中本地

知识大全 jsp中如何调用dwr

  首先需要引入dwrjar包到工程中的lib中在webxml中配置dwr如下<!——DWR配置——>  <servlet>  <servletname>dwrin

知识大全 JAVA RMI远程方法调用简单实例

JAVARMI远程方法调用简单实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  RMI的概念 

知识大全 关于webservice的异步调用实例

  关于webservice的异步调用简单实例无论在任何情况下被调用方的代码无论是被异步调用还是同步调用的情况下被调用方的代码都是一样的  下面我们就以异步调用一个webservice为例作说明这是一

知识大全 Java代码调用JavaFX的例子

Java代码调用JavaFX的例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在JavaFX

知识大全 jsp如何调用dwr方法步骤

   首先需要引入dwrjar包到工程中的lib中      在webxml中配置dwr如下 &nb