天天看點

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]+",";

    public String getMessage(Map map) {

        String res="map參數:";

        Set entrySet = map.entrySet();

        for(Iterator it = entrySet.iterator();it.hasNext();){

    public String getMessage(Test2 t2) {

        String res="Test2(bean)參數:";

        res+=t2.p1+",";

        res+=t2.p2+",";

    public String getMessage(Test3 t2) {

        String res="Test3(bean)參數:";

    public Test2 getMessage2() {

        Test2 res=new Test2();

        res.p1="11";

        res.p2="22";

    public Test3 getMessage3() {

        Test3 res=new Test3();

    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;

    } 

}

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;

public class Test3{

    public String p3;

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

    //list參數

    var result = jsonrpc.testJabsorb.getMessage({"javaClass":"java.util.ArrayList",'list':['h1','h2','h3']})

    //數組參數

    var result = jsonrpc.testJabsorb.getMessage(['h1','h2','h3'])

    //bean參數

    var result = jsonrpc.testJabsorb.getMessage({'javaClass':"com.test.Test3",p1:11,p2:22,p3:33})

    var result = jsonrpc.testJabsorb.getMessage({'javaClass':"com.test.Test2",p1:1,p2:2})

    //bean傳回值

    var res = jsonrpc.testJabsorb.getMessage2()

    printProperty(res)

    var res = jsonrpc.testJabsorb.getMessage3()

    //list傳回值

    var res = jsonrpc.testJabsorb.getList().list

    //map傳回值

    var res = jsonrpc.testJabsorb.getMap().map

    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>

    <url-pattern>/JSON-RPC</url-pattern>

  </servlet-mapping>

</web-app>

本文來自CSDN部落格,轉載請标明出處:http://blog.csdn.net/ray3868/archive/2008/10/11/3057909.aspx