研究了一下 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