ajax框架--jsonrpc-JSON-RPC框架的使用步骤

公司框架中集成了jsonrpc框架,所以研究了一下,下面是在讲解公司框架的时候写的一个关于jsonrpc使用流程的一个简单例子

 

使用步骤

1.在jsp中导入jsonrpc.js
2.导入jsonrpc.jar包
3.配置servlet

 <!--begin json rpc  --> 
  <servlet>
 <servlet-name>JSONRPCServlet</servlet-name>
 <servlet-class>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-class>
  </servlet>

  <servlet-mapping>
   <servlet-name>JSONRPCServlet</servlet-name>
   <url-pattern>/JSON-RPC</url-pattern>
  </servlet-mapping>
  <!--end json rpc  -->

4.在要使用JSON-RPC的JSP文件中将要使用的类注册到JSONRPCBridge对象中
<jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge"/>
<jsp:useBean id="JsonRpcTest" scope="session" class="com.wzk.jsonrpctest.JsonRpcTest" />
<%
 JSONRPCBridge.registerObject("JsonRpcTest",JsonRpcTest);
%>
5.在JavaScript脚本中创建一个JSONRpcClient对象
function onLoad()
{
    jsonrpc = new JSONRpcClient("../JSON-RPC");
}
我这里使用地址../JSON-RPC是因为我的js文件是在自己建立的一个script目录下,这个可以根据自己的文件路劲来调整
/JSON-RPC就是你配置的servlet的路径。创建该js对象的时候会发送请求,到servlet。如果发现程序不起作用。可以
查看是否该地址配置有问题。
6.通过jsonrpc.JsonRpcTest.java方法()方式调用
其中jsonrpc是------创建的JSONRpcClient对象
jsonRpcTest是------jsp中自己注册的类的对象名
java方法()------即为jsonRpcTest对象中的方法
 
源码如下

工程目录结构如下图

1,创建jsonrpctest.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
%>
<jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge"/>
<jsp:useBean id="JsonRpcTest" scope="session" class="com.wzk.jsonrpctest.JsonRpcTest" />
<%
 JSONRPCBridge.registerObject("JsonRpcTest",JsonRpcTest);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
 <script type="text/javascript" src="<%=path%>/script/jsonrpc.js"></script>
 <script type="text/javascript" src="<%=path%>/script/jsonrpctest.js"></script>
  </head>
 
  <body  onLoad="onLoad()">
   <input type="text" value="milk" id="who" width="200" />&nbsp;
  <input type="button" name="btn" value="返回字符" οnclick="textbtnclick('milk')"/>
  <hr/>
  <input type="button" name="btn" value="返回数组" οnclick="arraybtnclick()"/>
  <hr/>
  <input type="button" name="btn" value="测试传递数组" οnclick="testArrayArg()"/>
  </body>
</html>

2,创建的jsonrpctest.js

function onLoad()
{
    jsonrpc = new JSONRpcClient("../JSON-RPC");
}

function textbtnclick()
{
 var name = document.getElementById("who").value;
    var result = jsonrpc.JsonRpcTest.returnText(name);
    alert(result);
}


function arraybtnclick()
{
    var result = jsonrpc.JsonRpcTest.returnArray();
    alert("数组长度="+result.length+"  数组内容 ="+result);
}

function testArrayArg()
{
  var array = ["a","b"];
  var result = jsonrpc.JsonRpcTest.testArrayArg(array);
  alert("传递的参数数组长度="+result);
}

3,创建的java类,JsonRpcTest

package com.wzk.jsonrpctest;

import java.io.Serializable;

public class JsonRpcTest implements Serializable {

 private final static long serialVersionUID = 1;

 public String returnText(String name) {
  return "Hello " + name;
 }

 public String[] returnArray() {
  String temp[] = { "1", "2" };
  return temp;
 }
 
 public int testArrayArg(String[] arg) {
  return arg.length;
 }
}

4,配置servlet

 <!--begin json rpc  --> 
  <servlet>
 <servlet-name>JSONRPCServlet</servlet-name>
 <servlet-class>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-class>
  </servlet>

  <servlet-mapping>
   <servlet-name>JSONRPCServlet</servlet-name>
   <url-pattern>/JSON-RPC</url-pattern>
  </servlet-mapping>
  <!--end json rpc  -->

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值