您现在的位置是:首页 >

axis2客户端调用 DWR调用客户端Java代码的程序实例

火烧 2023-01-03 15:43:23 1079
DWR调用客户端Java代码的程序实例   //———— 发送简单字符串参数 返回普通字符串————–  fu ctio e dMe age {  //获取页面中 ame元素的值  var ame =

DWR调用客户端Java代码的程序实例  

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

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

  }

axis2客户端调用 DWR调用客户端Java代码的程序实例

  //————— 调用返回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>

lishixinzhi/Article/program/Java/hx/201311/25649  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码