• jabsorb笔记


    研究了一下 jabsorb,写了几个简单的例子,基本上覆盖了大部分用法,希望能够帮助菜鸟快速入门。

    首先引用jabsorb-1.2.2.jar,slf4j-api-1.4.2.jar,slf4j-jdk14-1.4.2.jar,jsonrpc.js

    类文件:

    package com.test;

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    public class TestJabsorb {
        public String getMessage(String s) {
            return "你好: " + s;
        }
        
        public String getMessage() {
            return "无参数";
        }
        
        public String getMessage(List al) {
            String res="list参数:";
            for(Iterator it = al.iterator();it.hasNext();){
                Object next = it.next();
                res+=next+",";
            }
            return res;
        }
        
        public String getMessage(String[] array) {
            String res="数组参数:";
            for(int i=0;i<array.length;i++){
                res+=array[i]+",";
            }
            return res;
        }
        
        public String getMessage(Map map) {
            String res="map参数:";
            Set entrySet = map.entrySet();
            for(Iterator it = entrySet.iterator();it.hasNext();){
                Object next = it.next();
                res+=next+",";
            }
            return res;
        }
        
        public String getMessage(Test2 t2) {
            String res="Test2(bean)参数:";
            res+=t2.p1+",";
            res+=t2.p2+",";
            return res;
        }
        
        public String getMessage(Test3 t2) {
            String res="Test3(bean)参数:";
            res+=t2.p1+",";
            res+=t2.p2+",";
            return res;
        }
        
        public Test2 getMessage2() {
            Test2 res=new Test2();
            res.p1="11";
            res.p2="22";
            return res;
        }
        
        public Test3 getMessage3() {
            Test3 res=new Test3();
            res.p1="11";
            res.p2="22";
            return res;
        }

        public List getList()
        {
            List list = new LinkedList();
            list.add("中国");
            list.add(1234);
            return list;
        }
        
        public Map getMap()
        {
            Map map = new HashMap();
            map.put("bird", "鸟");
            map.put("human", "人类");
            return map;
        } 

    }


    package com.test;


    public class Test2{
        public String p1;
        public String p2;
        public String getP1() {
            return p1;
        }
        public void setP1(String p1) {
            this.p1 = p1;
        }
        public String getP2() {
            return p2;
        }
        public void setP2(String p2) {
            this.p2 = p2;
        }

    }


    package com.test;


    public class Test3{
        public String p1;
        public String p2;
        public String p3;
        public String getP1() {
            return p1;
        }
        public void setP1(String p1) {
            this.p1 = p1;
        }
        public String getP2() {
            return p2;
        }
        public void setP2(String p2) {
            this.p2 = p2;
        }
        public String getP3() {
            return p3;
        }
        public void setP3(String p3) {
            this.p3 = p3;
        }

    }

    jsp文件:

    <%@ page contentType="text/html;charset=gb2312" %>
    <jsp:useBean id="JSONRPCBridge" scope="session" class="org.jabsorb.JSONRPCBridge" />
    <jsp:useBean id="testJabsorb" scope="session" class="com.test.TestJabsorb" />
    <% 
    JSONRPCBridge.registerObject("testJabsorb", testJabsorb);
    %>

    <script type="text/javascript" src="<%= request.getContextPath() %>/scripts/jsonrpc.js"></script> 

    <script>

        jsonrpc = new JSONRpcClient("JSON-RPC")
        //字符串参数
        var result = jsonrpc.testJabsorb.getMessage('ray2')
        document.write(result+'<br>')
        //无参数
        var result = jsonrpc.testJabsorb.getMessage()
        document.write(result+'<br>')
        //list参数
        var result = jsonrpc.testJabsorb.getMessage({"javaClass":"java.util.ArrayList",'list':['h1','h2','h3']})
        document.write(result+'<br>')
        //数组参数
        var result = jsonrpc.testJabsorb.getMessage(['h1','h2','h3'])
        document.write(result+'<br>')
        //bean参数
        var result = jsonrpc.testJabsorb.getMessage({'javaClass':"com.test.Test3",p1:11,p2:22,p3:33})
        document.write(result+'<br>')
        //bean参数
        var result = jsonrpc.testJabsorb.getMessage({'javaClass':"com.test.Test2",p1:1,p2:2})
        document.write(result+'<br>')
        
        //bean返回值
        var res = jsonrpc.testJabsorb.getMessage2()
        printProperty(res)
        
        //bean返回值
        var res = jsonrpc.testJabsorb.getMessage3()
        printProperty(res)
        
        //list返回值
        var res = jsonrpc.testJabsorb.getList().list
        printProperty(res)
        
        //map返回值
        var res = jsonrpc.testJabsorb.getMap().map
        printProperty(res)
        
        function printProperty(ele){
            for(var p in ele){
                document.write(p+':'+ele[p]+',')
            }
            document.write('<br>')
        }
        
        //异步调用
        function callback(result,exception){
            if(exception==null){
                //alert(result)
            }
        }
        var result = jsonrpc.testJabsorb.getMessage(callback,'ray2')
    </script>
     

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
      "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
        <servlet>
        <servlet-name>JSONRPCServlet</servlet-name>
        <servlet-class>org.jabsorb.JSONRPCServlet</servlet-class>
       
        <init-param>
          <param-name>gzip_threshold</param-name>
          <param-value>0</param-value>
        </init-param>
      </servlet>
      <servlet-mapping>
        <servlet-name>JSONRPCServlet</servlet-name>
        <url-pattern>/JSON-RPC</url-pattern>
      </servlet-mapping>
        
    </web-app>
     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ray3868/archive/2008/10/11/3057909.aspx

  • 相关阅读:
    解决安装IIS时提示找不到zClientm.exe文件的问题
    在函数体内开辟动态内存时,函数形参选择指向指针的指针的原理解析
    const用法之修饰指向常量的指针
    辅助记忆“map”使用细节的经典例题
    “变量名”和“函数名”典型选记
    宁静致远
    多参数“模板类”的使用启发
    cplusplus和MSDN的优势分工
    理解关联容器“map”的关键点
    字符串或文件处理的一个可选流程
  • 原文地址:https://www.cnblogs.com/meetrice/p/1540531.html
Copyright © 2020-2023  润新知